/* =====================================================================
   Lume Design System → SWELL 子テーマ移植本体
   このファイル = トークン変数 + コンポーネントCSS + フォーカスリング
   ===================================================================== */

/* =====================================================================
   @swell-dep ＝ 親テーマ依存マーカー
   このタグが付いたブロックは SWELL 固有クラス（.c-* .l-* .p-* .w-* #sidebar
   .swell-* / [data-style] 等）に依存しており、SWELLのアップデートで DOM/クラスが
   変わると見た目が壊れうる。テーマを差し替える/SWELLが大きく変わる時は、
   エディタで「@swell-dep」を grep すれば直すべき箇所が一覧できる。
   ※ .wp-block-* / is-style-* / .post_content 等は WordPress コア由来＝SWELL非依存。
   ===================================================================== */

/* =====================================================================
   TOKENS — colors.css（全行コピー）
   主役は1色のジェイド。使用量の目安は 紙60 / ジェイド33 / ゴールド7。
   文字は黒ではなくインク(やや緑寄り)。ゴールドはごく少量のアクセント。
   ===================================================================== */
:root {
  /* ---- Jade scale (primary) ---- */
  --jade-900: #143A33;
  --jade-700: #226053;
  --jade-500: #33917E; /* Primary */
  --jade-300: #8AC4B7;
  --jade-100: #DCEDE9;
  --jade-50:  #F1F8F6;

  /* ---- Ink / neutral text ---- */
  --ink:        #16211E; /* 本文 — black avoided, slightly green */
  --ink-muted:  #5E6A66; /* 補助テキスト — WCAG AA on paper/tint (≥5.2:1) */

  /* ---- Paper / surface ---- */
  --paper:       #F6F9F8; /* 紙白 — page background */
  --paper-white: #FFFFFF; /* pure white cards */

  /* ---- Gold accent (ごく少量) ---- */
  --gold:        #C7A24C; /* decorative / large */
  --gold-text:   #7A5C16; /* accessible gold for small text */

  /* ---- Hairline ---- */
  --hairline:        #DDE6E3;
  --hairline-strong: #C4D3CE;

  /* ============ Semantic aliases ============ */
  --color-primary:        var(--jade-500);
  --color-primary-strong: var(--jade-700);
  --color-primary-deep:   var(--jade-900);

  --text-heading:    var(--ink);
  --text-body:       var(--ink);
  --text-muted:      var(--ink-muted);
  --text-on-jade:    var(--paper);
  --text-accent:     var(--gold-text);

  --surface-page:    var(--paper);
  --surface-card:    var(--paper-white);
  --surface-tint:    var(--jade-50);
  --surface-tint-2:  var(--jade-100);
  --surface-jade:    var(--jade-500);
  --surface-jade-deep: var(--jade-900);

  --border-hairline: var(--hairline);
  --border-strong:   var(--hairline-strong);

  --accent:          var(--gold);
  --accent-text:     var(--gold-text);

  /* States */
  --primary-hover:   var(--jade-700);
  --primary-active:  var(--jade-900);
  --tint-hover:      var(--jade-100);
}

/* =====================================================================
   TOKENS — typography.css（全行コピー）
   見出し=Zen Old Mincho(Bold) / 本文=Noto Sans JP / 英数・ラベル=Inter
   基準16px・行間1.85(日本語本文)・スケール比1.25
   ===================================================================== */
:root {
  /* ---- Families ---- */
  --font-serif:   'Zen Old Mincho', 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --font-sans:    'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  --font-label:   'Inter', 'Noto Sans JP', sans-serif; /* 英数・ラベル */
  --font-display: 'Fraunces', 'Zen Old Mincho', serif; /* 英語セクション見出し（正典トークン準拠） */

  /* Semantic family aliases */
  --font-heading: var(--font-serif);
  --font-body:    var(--font-sans);
  --font-mono:    var(--font-label); /* labels / numerals */

  /* ---- Weights ---- */
  --weight-body:     400;
  --weight-medium:   500;
  --weight-heading:  700;
  --weight-display:  900;

  /* ---- Line heights ---- */
  --leading-body:    1.85; /* 日本語本文 */
  --leading-snug:    1.5;
  --leading-heading: 1.32; /* 明朝見出し */
  --leading-tight:   1.12; /* display */

  /* ---- Letter spacing ---- */
  --tracking-label: 0.14em; /* Inter uppercase labels */
  --tracking-body:  0.01em;
  --tracking-head:  0.02em;
}

/* =====================================================================
   TOKENS — spacing.css（全行コピー）
   余白を広く・静かに。角丸控えめ(6〜18px)。影は最小限、ヘアラインで区切る。
   ===================================================================== */
:root {
  /* ---- Spacing scale (8px base) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  /* ---- Radius (控えめ) ---- */
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   18px;
  --radius-pill: 999px;

  /* ---- Border widths ---- */
  --border-hair:  1px;
  --border-med:   1.5px;

  /* ---- Shadow (minimal) ---- */
  --shadow-none: none;
  --shadow-sm:   0 1px 2px rgba(20, 58, 51, 0.05);
  --shadow-md:   0 6px 24px rgba(20, 58, 51, 0.07);
  --shadow-focus: 0 0 0 3px rgba(51, 145, 126, 0.28);

  /* ---- Layout ---- */
  --maxw-prose:  680px;
  --maxw-content: 1080px;
}

/* =====================================================================
   TYPOGRAPHY 適用（DESIGN.md §準拠）
   見出し=明朝700 / 本文=ゴシック400・行間1.85 / ラベル英数=Inter600 uppercase
   SWELLの詳細度に負ける箇所は実測のうえ、必要な箇所だけ詳細度を上げる。
   ===================================================================== */

/* 本文 */
body,
.post_content,
.entry-content {
  font-family: var(--font-sans);
  font-weight: var(--weight-body);
  line-height: var(--leading-body);
  color: var(--text-body);
}

/* 見出し h1〜h3 = 明朝 700 */
.post_content h1,
.post_content h2,
.post_content h3,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-title,
.p-postList__title,
h1.is-style-default,
h2.is-style-default,
h3.is-style-default {
  font-family: var(--font-serif);
  font-weight: var(--weight-heading);
  line-height: var(--leading-heading);
  color: var(--text-heading);
}

/* ラベル・英数（utility） */
.lume-eyebrow {
  font-family: var(--font-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

/* =====================================================================
   GLOBAL FOCUS RING（DESIGN.md §3・styles.css と一字一致）
   :where() で詳細度0を保ち、要素側スタイルは outline 以外勝てる。
   ===================================================================== */
:where(a, button, [tabindex], input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--color-primary-strong);
  outline-offset: 2px;
}

/* =====================================================================
   COMPONENTS（見た目は全てここ。パターン/スタイルは class を出すだけ）
   ===================================================================== */

/* ---- Eyebrow（部品により 10.5〜11.5px：EvidenceNote=10.5 / Card=11 / Tag=11.5） ---- */
.lume-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-label);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-primary-strong);
}

/* ---- Card ---- */
.lume-card {
  background: var(--surface-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 200ms ease, transform 200ms ease, border-color 200ms ease;
}
/* 持ち上げ演出はマウス環境に限定（タッチの sticky hover を根絶）。
   タッチ端末の押下フィードバックは末尾の :active で別途付与。 */
@media (hover: hover) and (pointer: fine) {
  .lume-card.is-interactive:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    border-color: var(--border-strong);
  }
}
.lume-card__title {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  color: var(--text-heading);
  margin: 0 0 10px;
}
.lume-card__meta {
  font-family: var(--font-label);
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 14px;
}

/* ---- Button（pill 999px・Inter 600・1.5px border） ---- */
.wp-block-button.is-style-lume-primary .wp-block-button__link,
.wp-block-button.is-style-lume-secondary .wp-block-button__link,
.wp-block-button.is-style-lume-ghost .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-label);
  font-weight: 600;
  letter-spacing: 0.02em;
  border-radius: var(--radius-pill);
  border: 1.5px solid transparent;
  padding: 11px 24px;
  font-size: 15px;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 120ms ease;
}
/* primary */
.wp-block-button.is-style-lume-primary .wp-block-button__link {
  background: var(--color-primary);
  color: var(--text-on-jade);
  border-color: var(--color-primary);
}
.wp-block-button.is-style-lume-primary .wp-block-button__link:hover {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
}
/* secondary */
.wp-block-button.is-style-lume-secondary .wp-block-button__link {
  background: transparent;
  color: var(--color-primary-strong);
  border-color: var(--border-strong);
}
.wp-block-button.is-style-lume-secondary .wp-block-button__link:hover {
  background: var(--surface-tint);
  border-color: var(--color-primary);
}
/* ghost */
.wp-block-button.is-style-lume-ghost .wp-block-button__link {
  background: transparent;
  color: var(--color-primary-strong);
  border-color: transparent;
}
.wp-block-button.is-style-lume-ghost .wp-block-button__link:hover {
  background: var(--surface-tint);
}

/* ---- 「一覧へ」誘導リンクを ghost ボタン化（セクション見出し横） ----
   固定ページの段落リンクに .lume-morelink を付けるだけで ghost ピル化する。
   控えめな副次アクションなので ghost（枠なし・地色透明、hoverで jade-50）。 */
p:has(> a.lume-morelink) { margin: 0; }   /* 段落由来の余白を消して見出しと揃える */
a.lume-morelink {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-label);
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: 0.02em;
  border-radius: var(--radius-pill);
  border: 1.5px solid transparent;
  padding: 7px 16px;
  color: var(--color-primary-strong);
  background: transparent;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, transform 120ms ease;
}
a.lume-morelink:hover {
  background: var(--surface-tint);   /* jade-50 */
}
a.lume-morelink:active { transform: scale(0.98); }
a.lume-morelink:focus-visible {
  outline: 2px solid var(--color-primary-strong);
  outline-offset: 2px;
}

/* ---- Tag (jade / gold / neutral) ---- */
.lume-tag {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 11px;
  border-radius: var(--radius-pill);
  border: 1px solid;
  line-height: 1;
}
.lume-tag--jade {
  background: var(--surface-tint-2);
  color: var(--color-primary-strong);
  border-color: transparent;
}
.lume-tag--gold {
  background: transparent;
  color: var(--accent-text);
  border-color: var(--accent);
}

/* ---- ホームのセクション見出し（Featured / Latest / Categories）＋日本語小 ----
   英語= Fraunces。見出しデザイン統一に合わせ、緑バーは廃止し「中立の全幅ヘアライン1本」に。
   Featured/Latest は右に「一覧へ→」がある flex 行なので、線は“行全体”の下に引いて
   Categories（単独・全幅）と線の長さを揃える（旧：Featured/Latestだけ文字幅で短かった）。 */
.lume-section-head {
  margin: 52px 0 var(--space-5);
  padding: 0 0 10px;
  border-bottom: 1px solid var(--h-rule);   /* 単独配置(Categories)はこの線が全幅で出る */
}
.lume-section-head::after { content: none; }  /* 旧72px緑バーを撤去 */
/* 見出し＋「一覧へ→」を含む行(flexグループ)：線は行全体の下に1本。見出し自体の線は消す */
.wp-block-group:has(> .lume-section-head) {
  border-bottom: 1px solid var(--h-rule);
  padding-bottom: 10px;
}
.wp-block-group:has(> .lume-section-head) > .lume-section-head {
  border-bottom: 0;
  padding-bottom: 0;
}
.lume-section-head__en {
  display: block;
  font-family: var(--font-display);
  font-optical-sizing: auto;
  font-weight: 500;
  font-size: 30px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: var(--ink);
  margin: 0;
}
.lume-section-head__ja {
  display: block;
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--text-muted);                 /* 緑(jade)→中立グレーへ（見出しの緑を全廃） */
  margin: 6px 0 0;
}


/* === セクション見出し(H2)：中立の下線1本（緑なし・全幅ヘアライン #DDE6E3・1px）。
   旧「2px＋72px緑バー」を廃し、タイトル・ホーム見出しと同じ“下線方式・同色”に統一。
   階層はサイズで分ける（タイトル30 > H2 22 > H3 17）。
   ※カード見出し .lume-card__title はプレーンのまま（除外）。 */
.lume-h2,
h2.is-style-lume-h2,
.post_content h2,
.post_content h2.wp-block-heading,
.entry-content h2,
.entry-content h2.wp-block-heading {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: var(--h2-size);
  line-height: 1.4; /* 見出しとして締める（本文1.85寄りの1.5→1.4） */
  color: var(--ink);
  margin: 44px 0 18px;
  padding: 0 0 10px;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--hairline-strong); /* 区切りの視認性UP #DDE6E3→#C4D3CE（色方針は維持） */
  border-radius: 0;
  position: relative;
}
/* SWELL残装飾(::before 上線/枠)・旧72px緑バー(::after)を無効化 */
.lume-h2::before,
h2.is-style-lume-h2::before,
.post_content h2::before,
.entry-content h2::before,
.lume-h2::after,
h2.is-style-lume-h2::after,
.post_content h2::after,
.entry-content h2::after {
  content: none;
}
/* === 小見出し(H3)：無地（緑なし・線なし）。サイズと余白だけで階層化。
   カード見出し .lume-card__title は対象外。 */
.lume-h3,
h3.is-style-lume-h3,
.post_content h3:not(.lume-card__title),
.post_content h3.wp-block-heading:not(.lume-card__title),
.entry-content h3:not(.lume-card__title) {
  display: block;
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: var(--h3-size);
  line-height: 1.45; /* 見出しとして締める（1.6→1.45） */
  color: var(--ink);
  margin: 30px 0 6px;
  padding: 0;
  background: none;
  border: 0;
}
/* SWELL標準・旧Lumeの H3 行頭ドット/装飾を確実に消す */
.lume-h3::before,
h3.is-style-lume-h3::before,
.post_content h3:not(.lume-card__title)::before,
.post_content h3.wp-block-heading:not(.lume-card__title)::before,
.entry-content h3:not(.lume-card__title)::before {
  content: none !important;
  display: none !important;
}

/* ---- @swell-dep ｜ 目次(TOC) — SWELL標準機能の色だけ jade に寄せる ---- */
.swell-toc__title,
.p-toc__title { color: var(--color-primary-strong); }
.p-toc a:hover { color: var(--color-primary-strong); }

/* =====================================================================
   CITATIONS — 記事の引用は脚注方式（本文中の上付き番号＋末尾「参考文献」リスト）。
   - 本文中の脚注番号 : <sup class="lume-fn-ref"><a href="#ref-N">N</a></sup>
   - 末尾の参考文献   : H2「参考文献」(.lume-references-title) ＋ ol.lume-references
   ===================================================================== */
/* 本文中の脚注番号（控えめ・jadeリンク） */
.post_content sup.lume-fn-ref,
.entry-content sup.lume-fn-ref {
  font-family: var(--font-label);
  font-size: 0.68em;
  line-height: 0;
  font-weight: 600;
  margin-left: 1px;
}
.post_content sup.lume-fn-ref a,
.entry-content sup.lume-fn-ref a {
  color: var(--color-primary-strong);
  text-decoration: none;
}
.post_content sup.lume-fn-ref a:hover,
.entry-content sup.lume-fn-ref a:hover { text-decoration: underline; }

/* 末尾「参考文献」見出し：装飾なし・H2バー(::after)を出さない */
.post_content h2.lume-references-title,
.entry-content h2.lume-references-title {
  font-family: var(--font-serif);
  font-size: var(--h2-size);                /* 他のH2（まとめ等＝22px）と同じ大きさに統一 */
  font-weight: 700;
  color: var(--ink);                        /* 本文と同じ色（特別な色にしない） */
  letter-spacing: 0.02em;
  margin: 48px 0 14px;
  padding: 0 0 10px;
  border-top: 0;   /* 上の余分なヘアラインは出さない。下線は通常の見出しと同じ border-bottom が担当（他のH2と統一） */
}
.post_content h2.lume-references-title::after,
.entry-content h2.lume-references-title::after { content: none; }
/* 参考文献見出しは通常H2と同じ下線(border-bottom)1本だけで区切る。
   記事HTMLに直前の <hr> が残っていると二重線になるため隠す。 */
.post_content hr + h2.lume-references-title,
.entry-content hr + h2.lume-references-title { margin-top: 0; }
.post_content hr:has(+ h2.lume-references-title),
.entry-content hr:has(+ h2.lume-references-title) { display: none; }

/* 参考文献リスト：番号付き・Inter・ミュート・キャプション級の重さ */
.post_content ol.lume-references,
.entry-content ol.lume-references {
  margin: 14px 0 0;
  padding-left: 1.6em;
  list-style: decimal;
}
.post_content ol.lume-references li,
.entry-content ol.lume-references li {
  font-family: var(--font-label);
  font-size: 15px;            /* 13px→15px：本文(17px)との差を詰めて小さく見えすぎないように */
  line-height: 1.8;
  color: var(--ink-muted);
  margin: 0 0 10px;
}
.post_content ol.lume-references li a,
.entry-content ol.lume-references li a {
  color: var(--color-primary-strong);
  text-decoration: none;
  word-break: break-word;
}
.post_content ol.lume-references li a:hover,
.entry-content ol.lume-references li a:hover { text-decoration: underline; }
/* 雑誌名などの斜体は serif に寄せず Inter のまま italic（キャプション統一） */
.post_content ol.lume-references li cite,
.entry-content ol.lume-references li cite { font-style: italic; }
/* 脚注へ戻った時のハイライト（任意） */
.post_content ol.lume-references li:target,
.entry-content ol.lume-references li:target { color: var(--ink); }

/* =====================================================================
   SITE STRUCTURE — IA層（SWELL-SITE-STRUCTURE.md）
   サイドバー「よく読まれている」番号バッジ / ホーム・About 微調整
   ===================================================================== */

/* ---- よく読まれている：番号付きランキング（§3-2） ---- */
.lume-rank { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--hairline); }
.lume-rank:last-child { border-bottom:none; }
.lume-rank__no {
  flex:none; width:20px; height:20px; border-radius:var(--radius-pill); color:var(--paper-white);
  font-family:var(--font-label); font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.lume-rank__no--top  { background:var(--color-primary-strong); } /* 1–3 */
.lume-rank__no--rest { background:var(--ink-muted); }            /* 4–5 */
.lume-rank__title { font-size:13.5px; line-height:1.5; color:var(--ink); }
.lume-rank a.lume-rank__title:hover { color:var(--color-primary-strong); }

/* ---- サイドバー プロフィール（この媒体について） ---- */
.lume-profile { text-align:center; }
.lume-profile__icon { width:56px; height:56px; margin:0 auto 10px; display:block; }
.lume-profile__name { font-family:var(--font-serif); font-weight:700; font-size:16px; color:var(--ink); margin:0 0 2px; }
.lume-profile__bio { font-size:13px; line-height:1.8; color:var(--ink-muted); text-align:left; }

/* About ボックス（媒体説明）専用のタイポ磨き込み：
   媒体名は明朝をやや大きく字間を開け、紹介文は中央・ゆったり行間で静かに読ませる。 */
.lume-about { padding-top: 4px; }
.lume-about .lume-profile__name {
  font-size: 19px;
  letter-spacing: 0.06em;
  margin: 4px 0 10px;
}
.lume-about .lume-profile__bio {
  text-align: center;
  font-family: var(--font-serif); /* ヒーローsubと同じ明朝の質感に揃える */
  font-size: 14.5px; /* 小サイズ明朝が痩せて読みづらいので13.5→14.5px */
  line-height: 2;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

/* About ボックスをカードリンク化（→ /about/「このメディアについて」）。
   可視リンクを本体に、::after で全面ヒット領域＝アンカー二重化なし（SR冗長読みを回避）。
   押下演出は (hover:hover) でガードしタッチ端末の sticky hover を防ぐ。tap-highlight もブランド色に。 */
.lume-about.is-interactive { position: relative; cursor: pointer; }
.lume-about__more { margin: 14px 0 0; text-align: center; }
.lume-about__link {
  display: inline-block;
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--color-primary-strong);
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(51, 145, 126, 0.12);
}
.lume-about__link::after {           /* カード全面をヒット領域に拡張 */
  content: "";
  position: absolute;
  inset: 0;
}
@media (hover: hover) and (pointer: fine) {
  .lume-about.is-interactive:hover { border-color: var(--border-strong); }
  .lume-about.is-interactive:hover .lume-about__link {
    text-decoration: underline;
    text-underline-offset: 2px;
  }
}
.lume-about.is-interactive:active { transform: scale(0.995); }

/* ---- ホーム ヒーロー（背景リズム＋「香りの拡散」：CSS/トークンのみ・画像なし） ---- */
/* 紙地にヒスイの“溜まり”を複数落として奥行きと官能性を出す。背面で大きくぼかした
   ヒスイの塊をゆっくり漂わせ「香りの拡散」を暗示。右上に分子マークの透かし（科学の署名）。
   写真は使わず、既存の視覚言語（ヒスイ・lume-mark）だけでアート性を作る。 */
.lume-home-hero {
  position: relative;
  isolation: isolate;              /* 疑似要素の z-index を内側で完結させる */
  overflow: hidden;
  border-radius: var(--radius-xl);
  padding: clamp(40px, 7vw, 84px) clamp(24px, 5vw, 56px);
  margin-bottom: 14px;
  background:
    radial-gradient(120% 110% at 12% -10%, var(--jade-100) 0%, transparent 52%),
    radial-gradient(90% 120% at 108% 120%, var(--jade-300) 0%, transparent 46%),
    linear-gradient(165deg, var(--paper-white) 0%, var(--jade-50) 100%);
}
/* 香りの揺らぎ：大きくぼかしたヒスイの塊をゆっくり漂わせる（背面・テキストより後ろ） */
.lume-home-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -8%;
  bottom: -32%;
  width: 58%;
  aspect-ratio: 1;
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, var(--jade-300) 0%, transparent 70%);
  opacity: 0.55;
  filter: blur(48px);
  pointer-events: none;
  animation: lume-hero-drift 22s ease-in-out infinite alternate;
}
/* 分子マークの透かし（科学の署名）：右上に薄く */
.lume-home-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 6%;
  right: -40px;
  width: clamp(180px, 26vw, 300px);
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 52' fill='none'%3E%3Ccircle cx='26' cy='27' r='17' stroke='%23226053' stroke-width='2.4' stroke-linecap='round' stroke-dasharray='78 28' transform='rotate(-58 26 27)'/%3E%3Ccircle cx='34.5' cy='13.5' r='3.4' fill='%23C7A24C'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0.08;
  pointer-events: none;
}
@keyframes lume-hero-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(10%, -12%, 0) scale(1.14); }
}
@media (prefers-reduced-motion: reduce) {
  .lume-home-hero::before { animation: none; }
}
/* コンテンツは前面に */
.lume-home-hero > * { position: relative; z-index: 1; }
.lume-home-hero h1 {
  font-size: clamp(32px, 5.5vw, 54px);
  line-height: 1.25;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.lume-home-hero .lume-eyebrow { margin-bottom: 10px; }
/* ヒーロー補足：静かな明朝で「編集室のキャプション」として置く。 */
.lume-home-hero .lume-hero-sub {
  font-family: var(--font-serif);
  font-size: clamp(15px, 1.6vw, 17px);
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
  margin-top: 16px;
}
.lume-home-hero .wp-block-separator { display: none; }
@media (max-width: 600px) {
  .lume-home-hero { padding: 40px 24px; }
}

/* ---- ホーム：セクション背景リズム（帯／コンテンツ列幅・CSS+トークンのみ） ----
   Featured=紙地のまま、Latest=ヒスイ薄地で一段沈め、Categories=深いヒスイのドレンチで締める。
   サイドバーがあるため全画面ブリードはせず、コンテンツ列幅の帯（角丸パネル）で緩急を作る。 */
.lume-band {
  margin: 14px 0;
  padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 36px);
  border-radius: var(--radius-xl);
}
.lume-band > *:first-child,
.lume-band .lume-section-head { margin-top: 0; }
/* 帯リズムを「平面の色面」で明確化（PC/モバイル共通・トリック無し・トークンのみ）。
   紙地(#F6F9F8)に対し Featured=白で“持ち上げ”、Latest=jade-100で“沈め”、Categories=深ヒスイで締める。
   段差を白→薄ヒスイ→深ヒスイの3段にし、淡いグラデ同士で差が出なかった問題を解消する。 */
/* Featured：白で一段持ち上げ（紙地より明るく） */
.lume-band--soft {
  background: var(--paper-white);
}
/* Latest：ヒスイ薄地(jade-100)で一段沈める */
.lume-band--tint {
  background: var(--surface-tint-2);
}
/* Categories：深いヒスイのドレンチ（白文字／白カードが映える） */
.lume-band--jade {
  background: linear-gradient(160deg, var(--jade-900) 0%, var(--jade-700) 100%);
}
.lume-band--jade .lume-section-head { border-bottom-color: rgba(255, 255, 255, 0.22); }
.lume-band--jade .lume-section-head__en { color: var(--paper-white); }
.lume-band--jade .lume-section-head__ja { color: rgba(255, 255, 255, 0.72); }

/* =====================================================================
   レビュー指摘の修正
   ===================================================================== */

/* ---- @swell-dep ｜ カテゴリーラベルを Lume jade pill に（SWELL既定chip上書き・AA配慮で jade-700字×jade-100地） ----
   単一記事=.c-categoryList__link / リスト・関連=.c-postThumb__cat */
.c-categoryList__link,
.c-postThumb__cat,
.c-postThumb__cat .c-postThumb__catLink,
a.c-postThumb__cat {
  display: inline-flex;
  align-items: center;
  background: var(--surface-tint-2); /* jade-100 */
  color: var(--color-primary-strong) !important; /* jade-700 = AA 7:1+ */
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  padding: 4px 11px;
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
}
/* サムネ上に絶対配置される塗りカテゴリは視認のため少し濃いめ jade-700 地＋白字（AA 7.3:1） */
.c-postThumb__cat,
a.c-postThumb__cat {
  background: var(--color-primary-strong);
  color: var(--paper-white) !important;
}

/* ---- @swell-dep ｜ ページネーション現在ページ：jade-500地(白字3.8:1)→ jade-700地(7.3:1) で AA 確保 ---- */
.c-pagination .page-numbers.current,
.c-pagination span.current,
.c-pagination .current {
  background: var(--color-primary-strong) !important;
  color: var(--paper-white) !important;
}

/* ---- @swell-dep ｜ サイドバー・フッターのウィジェット見出し：構造（下1pxヘアライン＋余白）。
   書体・色は下の「Fraunces に統一」ブロックが一括で担当するので、ここでは持たない。 ---- */
.l-sidebar .lume-eyebrow,
#sidebar .lume-eyebrow,
.p-footerWidgets .lume-eyebrow,
.c-widget__title {
  display: block;
  padding-bottom: 8px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--border-hairline);
}
/* @swell-dep ｜【見出し統一 Step1：サイドバー】SWELL純正ウィジェット(.c-widget__title.-side＝Popular)が
   ::before(ヒスイ)＋::after(グレー rgba199)で描く“2色下線”を消し、上の Lume 1pxヘアライン
   1本に統一する。これでサイドバー見出しが SWELL Core 由来 → Lume独自CSS の1系統に揃う。 */
.c-widget__title::before,
.c-widget__title::after { content: none !important; }

/* ---- @swell-dep ｜ アイキャッチ未設定サムネを中立グレー(no_img.png)から jade-tint パネルへ ----
   SWELL は eyecatch 無し時にコンテナへ .noimg_ を付与し、.c-postThumb__img に
   グレーの no_img.png を敷く。.noimg_ を手がかりに gradient で覆い、画像を隠す。 */
.c-postThumb.noimg_ .c-postThumb__figure,
.p-postList__thumb.noimg_,
.c-postThumb.noimg_ {
  background: linear-gradient(135deg, var(--jade-100) 0%, var(--jade-300) 100%);
}
.c-postThumb.noimg_ .c-postThumb__img,
.p-postList__thumb.noimg_ .c-postThumb__img {
  opacity: 0;
}

/* =====================================================================
   参照デザイン（reference-shots）との不一致のうち、子テーマCSSで直せるものの修正。
   ===================================================================== */

/* ---- @swell-dep ｜ 見出しを明朝に：SWELL既定ゴシックが残る投稿/アーカイブH1・記事下見出し ----
   正典は見出し＝明朝。SWELLの .c-postTitle__ttl / .c-pageTitle / .c-secTitle 等は
   親テーマでゴシックのままなので、子テーマで font-family のみ上書き（構造は触らない）。 */
.c-postTitle__ttl,
.c-pageTitle,
.c-pageTitle .c-pageTitle__inner,
.c-secTitle,
.l-articleBottom__title,
.l-articleBottom__title.c-secTitle,
.p-commentArea__title,
.p-authorBox__name {
  font-family: var(--font-serif);
  font-weight: var(--weight-heading);
  color: var(--text-heading);
}

/* @swell-dep ｜ アーカイブH1の英字サフィックス「– tag – / – category –」を抑制（正典に無い） */
.c-pageTitle__subTitle { display: none !important; }

/* =====================================================================
   固定ページの見出し階層まわり。
   注意：SWELLは body_class() を <body> ではなくサイトラッパーの <div> に出力するため
        body.page では当たらない。固定ページ判定は .page（＝WPの body class）で行い、
        トップ（page_on_front）は .home を除外する。 */

/* 【見出しデザインシステム：トークン】役割→装飾を1系統に統一。
   見出しの装飾は「中立色の下線1本（緑なし）」のみ。色も方式も全階層で共通。
   階層はサイズだけで分ける（タイトル > H2 > H3）。緑(ヒスイ)は必要なら最後に別途付与する。 */
:root {
  --h1-size: clamp(27px, 5vw, 32px); /* タイトル（モバイルfloor 24→27px：H2(22px)との差を確保） */
  --h2-size: 22px;                      /* セクション */
  --h3-size: 19px;                      /* 小見出し（本文17px化に連動し17→19px） */
  --h-rule:  var(--border-hairline);    /* 見出し下線の色（全階層共通＝#DDE6E3・緑なし） */
}
/* タイトル(H1)：固定ページ/アーカイブ(.c-pageTitle)＋記事(.c-postTitle__ttl)を
   中立の全幅ヘアライン1本に統一（SWELL b_bottom は下で解除）。 */
.c-pageTitle,
.c-postTitle__ttl {
  position: relative;
  font-family: var(--font-serif);
  font-weight: var(--weight-heading);
  font-size: var(--h1-size);
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--text-heading);
  padding-bottom: 14px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--h-rule);
}
/* 左ヒスイ・リード（緑）は撤去＝見出しの緑を全廃。タイトルは中立のヘアライン1本のみ。 */
.c-pageTitle::after,
.c-postTitle__ttl::after { content: none; }
/* @swell-dep ｜ SWELL b_bottom は [data-style=b_bottom]（クラス＋属性）で詳細度が高く、.c-pageTitle 単体では
   勝てない。属性セレクタで詳細度を合わせ（子テーマが後勝ち）、コアのグレー全幅線と
   __inner の文字幅ヒスイ下線(float)を確実に上書き＝解除して、Lumeの下線に一本化する。 */
.c-pageTitle[data-style] {
  border-bottom: 1px solid var(--h-rule);
}
.c-pageTitle[data-style] .c-pageTitle__inner {
  float: none;
  display: inline;
  padding: 0;
  border-bottom: 0;
  font-size: inherit;
}

/* 固定ページのセクション見出しは記事と同じ共通定義（上部 .post_content h2 等）に集約。
   固定ページ専用の上書きは持たない。 */

/* ---- @swell-dep ｜ 著者ボックス見出し「執筆」に英語 Author を重ねる ----
   SWELL設定 post_author_title='執筆'。ホームの .lume-section-head と同系統に。
   英語=Fraunces（小さめ）を ::before で上に出し、「Author / 執筆」の二段見出しに。 */
.l-articleBottom__section.-author .l-articleBottom__title {
  position: relative;
  line-height: 1.2;
}
.l-articleBottom__section.-author .l-articleBottom__title::before {
  content: 'Author';
  display: block;
  /* SWELL の .c-secTitle::before は position:absolute＋装飾バー。通常フローへ戻す。 */
  position: static;
  inset: auto;
  width: auto;
  height: auto;
  margin: 0 0 2px;
  background: none;
  border: 0;
  font-family: var(--font-display);
  font-optical-sizing: auto;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: var(--ink);
}
/* 日本語「執筆」側は控えめなラベル級に（英語が主役） */
.l-articleBottom__section.-author .l-articleBottom__title {
  font-family: var(--font-label);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--color-primary-strong);
}

/* ---- @swell-dep ｜ グローバルナビ：ブランドの明朝署名を効かせる ----
   SWELL既定はゴシック。正典の「見出し＝明朝」をナビにも適用し、編集メディアらしい
   落ち着いた佇まいに。サイズ・字間をわずかに整える（構造・色は触らない）。 */
.c-gnav .menu-item > a,
.c-gnav__item > a {
  font-family: var(--font-serif);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.c-gnav .menu-item > a .menu-item-text,
.c-gnav .menu-item > a .ttl {
  font-family: inherit;
}

/* ---- @swell-dep ｜ ウィジェット見出し（About / Popular / Categories / Contents / Nagiro）を
   英語ディスプレイセリフ Fraunces に統一。セクション見出しと書体を揃える。 ---- */
.c-widget__title,
#sidebar .lume-eyebrow,
.l-footer .lume-eyebrow,
.p-footerWidgets .lume-eyebrow {
  font-family: var(--font-display);
  font-optical-sizing: auto;
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.02em;
  text-transform: none;            /* eyebrowのuppercase化を解除（英単語は素のまま） */
  color: var(--ink);
}

/* ---- @swell-dep ｜ サイドバー/フッターのカテゴリ・リンクリストを明朝に（ナビと同じ署名） ---- */
#sidebar .wp-block-categories a,
#sidebar .wp-block-categories-list a,
.l-footer .wp-block-categories a,
.l-footer .wp-block-categories-list a,
.l-footer .wp-block-list a,
.p-footerWidgets .wp-block-categories a,
.p-footerWidgets .wp-block-list a {
  font-family: var(--font-serif);
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* @swell-dep ｜ 単一記事H1左の縦並び日付ブロックを抑制（正典はメタ行に公開・更新を集約） */
.c-postTitle__date { display: none; }

/* 著者ボックス（SNSアイコン含む）は SWELL 標準のまま使用＝子テーマで上書きしない。 */

/* ---- @swell-dep ｜ フッター：深いヒスイのドレンチ（白文字）。Categories帯と呼応し、
   ページを締める“床”として全幅で沈める。テキスト/リンクは白系へ。 ---- */
.l-footer {
  background: linear-gradient(180deg, var(--jade-900) 0%, var(--jade-700) 100%);
}
/* フッターは暗色になったので、見出し・タグライン・コピーライトを白系に */
.l-footer .c-widget__title,
.l-footer .lume-eyebrow,
.l-footer .p-footerWidgets__title { color: var(--paper-white); }
.l-footer,
.l-footer .copyright,
.l-footer__foot { color: rgba(255, 255, 255, 0.66); }
/* フッターウィジェット（現状はNagiro列のみ）を中央揃え。
   コンテナは中央だが中身が text-align:start で左端に貼り付くため、見出し・リンクを中央へ。 */
.l-footer__widgetArea .w-footer.-col1 .w-footer__box,
.l-footer__widgetArea .w-footer.-col1 .c-widget {
  text-align: center;
}
.l-footer__widgetArea .w-footer.-col1 .wp-block-list,
.l-footer__widgetArea .w-footer.-col1 ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.l-footer__widgetArea .w-footer.-col1 .lume-eyebrow {
  display: block;       /* inline-flex だと中央寄せが効かないため */
}
/* フッターのリンク4つを ghost ボタン化。
   テキストリンクだと押せると分かりにくいため、Button の ghost variant に揃える
   （透明地・jade文字・pill、hover で jade-50 + ヘアライン）。縦に積んで中央。 */
.l-footer__widgetArea .w-footer.-col1 .wp-block-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}
.l-footer__widgetArea .w-footer.-col1 .wp-block-list li { margin: 0; }
.l-footer__widgetArea .w-footer.-col1 .wp-block-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 9px 20px;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  font-family: var(--font-serif);   /* ブランド署名の明朝は維持 */
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.28);
  background: transparent;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}
.l-footer__widgetArea .w-footer.-col1 .wp-block-list a:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.5);
  color: var(--paper-white);
}
/* コピーライトは中央寄せ（免責文をPPページへ移したため単独行＝センタリング） */
.l-footer__foot .l-container {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 6px 16px;
}
.l-footer__foot .copyright { margin: 0; text-align: center; width: 100%; }

/* ---- @swell-dep ｜ サイドバー「この媒体について」プロフィールをカード枠に（正典＝角丸ボーダーのカード） ---- */
.l-sidebar .c-widget .lume-profile,
.c-widget .lume-profile {
  background: linear-gradient(180deg, var(--jade-50) 0%, var(--surface-tint-2) 100%);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-lg);
  padding: 22px 20px;
  box-shadow: none;   /* 真っ白＋影で浮きすぎていたので、ヒスイ薄地で馴染ませる */
}

/* ---- ホーム「新着の記事」core/latest-posts をカード調に（純ブロック近似） ----
   カテゴリーラベル・読了時間は core ブロックの非対応のため[許容]。枠だけ正典に寄せる。 */
.wp-block-latest-posts.is-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 0;
  padding: 0;
  grid-auto-rows: 1fr; /* 全カードの高さを行ごとに均等化 */
}
.wp-block-latest-posts.is-grid > li {
  width: auto;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  background: var(--surface-card);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 200ms ease, transform 200ms ease, border-color 200ms ease;
  /* 縦flexにして高さいっぱいに伸ばし、日付を下端へ固定（タイトル行数差を吸収） */
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
/* アイキャッチ画像：16:9固定・カード上端いっぱい（padding相殺） */
.wp-block-latest-posts__featured-image {
  display: block;
  margin: -24px -24px 16px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.wp-block-latest-posts__featured-image a,
.wp-block-latest-posts__featured-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 600px) {
  .wp-block-latest-posts.is-grid { grid-template-columns: 1fr; }
}
@media (hover: hover) and (pointer: fine) {
  .wp-block-latest-posts.is-grid > li:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    border-color: var(--border-strong);
  }
}
.wp-block-latest-posts__post-title {
  font-family: var(--font-serif);
  font-weight: var(--weight-heading);
  font-size: 18px;
  line-height: 1.45;
  color: var(--text-heading);
}
.wp-block-latest-posts__post-date {
  font-family: var(--font-label);
  font-size: 12px;
  color: var(--text-muted);
  margin-top: auto; /* 日付をカード下端へ固定し、タイトル行数差を吸収 */
  padding-top: 8px;
}

/* ---- ホーム「カテゴリーから探す」カードの件数バッジ（名称右・正典準拠） ---- */
.lume-cat-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.lume-cat-card__count {
  flex: none;
  font-family: var(--font-label);
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}
/* カテゴリカードの高さを4枚そろえる。説明文を外し名称＋件数のみにしたので
   wp-block-columns(flex)の各カラムを stretch し、カード本体を height:100% で行高に合わせる。
   2行(4枚)間の不揃いは、内容が一定になったので min-height を与えて完全一致させる。 */
.lume-cat-card.is-interactive {
  height: 100%;
  display: flex;
  align-items: center;          /* 名称行をカード内で縦中央に */
  min-height: 84px;
}
.lume-cat-card .lume-cat-card__head { width: 100%; margin: 0; }

/* ---- 特集：2本立て（横並びカード） ---- */
/* .lume-features = 2カラムのグリッド。各 .lume-feature = 1枚のカード（画像上／本文下）。
   画像枠は固定アスペクト比で intrinsic な高さを持たせ、本文長に左右されず安定。 */
/* SWELL は wp:group を .wp-block-group__inner-container でラップするため、
   グリッドは内側コンテナ側に当てる。.lume-features 本体は通常フロー（block）のまま
   にしないと、本体gridの唯一の子(inner-container)が grid item として内容幅に縮む。 */
.lume-features { display: block; width: 100%; }
.lume-features > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: stretch; /* 2枚のカードを行の高さに合わせて均等化（右だけ長い問題を解消） */
  grid-auto-rows: 1fr;   /* 複数行（新着6件）でも全行＝全カードを同じ高さに */
}
/* inner-container が無い構成（テーマ差異）への保険 */
.lume-features:not(:has(> .wp-block-group__inner-container)) {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: stretch;
  grid-auto-rows: 1fr;
}
.lume-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%; /* グリッドトラックの高さいっぱい＝もう一方と同じ高さに揃う */
  padding: 20px; /* 2カラムで横幅が狭くなるため、カード内余白を控えめに */
}
/* 狭い幅で見出しが過度に折り返さないよう、特集カードのタイトルは少し小さく */
.lume-feature .lume-card__title {
  font-size: 17px;
  line-height: 1.5;
}
.lume-feature .lume-card__meta {
  margin-bottom: 0;
}
.lume-feature__media {
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, var(--jade-100) 0%, var(--jade-300) 100%);
  aspect-ratio: 16 / 9;
  width: 100%;
  margin-bottom: 16px;
}
/* アイキャッチ画像を持つ場合：16:9枠いっぱいに cover で表示 */
.lume-feature__media--img {
  overflow: hidden;
  background: var(--jade-100); /* 画像読込中のフォールバック地色 */
}
.lume-feature__media--img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lume-feature__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
/* 特集カードのタグ行（gold「特集」＋ jade カテゴリ）を横並び・余白付きに */
.lume-feature__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.lume-feature__excerpt {
  font-size: 14px;
  line-height: 1.8;
  color: var(--text-body);
  margin: 6px 0 0;
  /* 抜粋は3行までで切り、2枚のカード高さを揃える */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lume-feature__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--radius-lg);
  /* テキストは持たないが a11y のため aria-label を付与（HTML側） */
}
.lume-feature__link:focus-visible {
  outline: 2px solid var(--color-primary-strong);
  outline-offset: 2px;
}
/* 見出しはホバーで jade に寄せ、リンクであることを示す（マウス限定。タッチは :active で） */
@media (hover: hover) and (pointer: fine) {
  .lume-feature:hover .lume-card__title {
    color: var(--color-primary-strong);
  }
}
/* スマホは Featured / Latest を1カラム（縦1列・全幅カード）に。
   ※本体グリッドが .lume-features:not(:has(...)) (詳細度0,2,0) のため、ここも同詳細度で
   指定しないと負ける（＝以前スマホでも2列のままだった原因）。 */
@media (max-width: 600px) {
  .lume-features,
  .lume-features:not(:has(> .wp-block-group__inner-container)),
  .lume-features > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
}

/* ---- Featured リード大判 ----
   特集セクション先頭の1枚を大判化し、「推し」の役割を視覚的に分離。
   PC: 2カラムグリッドの1行を丸ごと占有（横長リード）。スマホ: 1カラムなので自然に全幅。
   いずれも画像を 3:2 に・見出しを 22px に上げ、続く通常カード／新着と差をつける。 */
.lume-feature--lead {
  grid-column: 1 / -1;   /* PCグリッドで全幅。1カラム時は無効（=そのまま全幅） */
}
.lume-feature--lead .lume-feature__media {
  aspect-ratio: 3 / 2;
}
.lume-feature--lead .lume-card__title {
  font-size: 22px;
  line-height: 1.45;
}
.lume-feature--lead .lume-feature__excerpt {
  -webkit-line-clamp: 2;   /* 横長なので2行で十分。縦消費を抑える */
}
@media (max-width: 600px) {
  /* スマホは横長になりすぎないよう画像を 16:9 に戻し、見出しは 20px に。 */
  .lume-feature--lead .lume-feature__media { aspect-ratio: 16 / 9; }
  .lume-feature--lead .lume-card__title { font-size: 20px; }
}

/* ---- カテゴリカード：カード全体をクリック可能に（特集と同型の stretched-link） ---- */
/* 新着記事ブロックと挙動を統一。href は各カテゴリーアーカイブ（/scalp/ 等）。 */
.lume-cat-card.is-interactive {
  position: relative;
}
.lume-cat-card__link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--radius-lg);
}
.lume-cat-card__link:focus-visible {
  outline: 2px solid var(--color-primary-strong);
  outline-offset: 2px;
}
@media (hover: hover) and (pointer: fine) {
  .lume-cat-card.is-interactive:hover .lume-card__title {
    color: var(--color-primary-strong);
  }
}
/* カード内の「記事を読む →」は冗長になるため非表示にし、全面クリックへ一本化 */
.lume-cat-card .lume-cat-card__readmore {
  display: none;
}

/* =====================================================================
   モバイル（390px中心）の読み物としての快適性に効く修正群。
   ※ Contact/Privacyの1カラム化は About と同じ swell_meta_show_sidebar=hide
      （post meta・サイドバーをDOMから外す＝CSSハックより堅牢）で対応。
   ※ 著者SNSアイコンリストは現状DOMに無い（bio文章化済み）ため対象外。
   ===================================================================== */

/* 本文p：SWELL親の 0.975rem(=15.6px) が残るので 17px に明示（読み物中心で読みやすさ優先。
   見出しとの差は明朝×太字が担保）。段落の縦リズムも SWELL既定の約2em → 1.6em に締める。 */
.post_content p,
.entry-content p {
  font-size: 17px;
  margin-top: 0;
  margin-bottom: 1.6em;
}

/* 検索入力の自動ズーム防止：iOS Safari は 16px未満の input で自動ズーム→
   レイアウトが飛ぶ。検索系inputを 16px に固定（404/検索結果/ヘッダー共通）。 */
input[name="s"],
.c-searchForm__s {
  font-size: 16px;
}

/* カードサムネのローディング地をブランド色に。アイキャッチ遅延読込(lazyload)中の
   一瞬の空白/ローダーを、ヒスイ薄地の“意図したプレースホルダ”に見せる。画像確定後は
   .c-postThumb__img(absolute/cover) が覆う。未設定(.noimg_)は既存gradientが優先。 */
.c-postThumb__figure {
  background: var(--jade-100);
}

/* 検索ページ：再検索フォーム＋0件CTA（child search.php と対）。
   フォーム自体は SWELL の .c-searchForm を流用。ここは余白と0件導線の体裁のみ。 */
.nagiro-search-rebox {
  max-width: 520px;
}
.nagiro-search-empty {
  padding: 4px 0 8px;
}
.nagiro-search-empty__lead {
  color: var(--ink-muted, #5E6A66);
  margin-bottom: 1.2em;
}
.nagiro-search-empty__cats {
  list-style: none;
  margin: 0 0 1.6em;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
.nagiro-search-empty__cats li {
  margin: 0;
}
.nagiro-search-empty__cats a {
  display: inline-flex;
  align-items: center;
  min-height: 44px; /* タップ44px確保 */
  padding: 8px 16px;
  border: 1px solid var(--hairline-strong, #C4D3CE);
  border-radius: 999px;
  text-decoration: none;
  font-size: 14px;
}

/* ---- モバイル(≤600px)限定の調整 ---- */
@media (max-width: 600px) {
  /* サイドバーの「Categories」ウィジェットを非表示（本文のCategories帯と二重）。
     About(プロフィール)/Popular は残す。:has() で wp-block-categories を含む widget だけを狙う
     ＝ブロックIDに依存しない堅牢な指定。 */
  #sidebar .c-widget.widget_block:has(.wp-block-categories) {
    display: none;
  }

  /* タップ領域の底上げ（44px目安）。 */
  a.lume-morelink {
    min-height: 44px;
    padding: 11px 18px;       /* 見た目を保ちつつ高さを確保 */
  }
  .c-searchForm__submit {
    min-height: 44px;
    min-width: 44px;
  }
  /* パンくず：font10px・19px高は小さすぎ → 11pxに上げ、リンクの当たり判定を縦に拡張。
     横長の帯になり過ぎないよう min-height は 38px に留める（P2・現実的な妥協）。 */
  .p-breadcrumb__item .p-breadcrumb__text { font-size: 11px; }
  a.p-breadcrumb__text {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 6px 2px;
  }

  /* （任意）1カラムで横幅が確保できるので、カード見出しを 19px に上げて可読性UP。
     特集カード(2列前提の17px)もモバイルは1列なので引き上げ。 */
  .lume-card__title,
  .lume-feature .lume-card__title,
  .wp-block-latest-posts__post-title {
    font-size: 19px;
  }

  /* ホーム「Latest」をモバイルで間引く（PCは全件・スマホは mobile_max 件）。
     超過分カードに付く lume-feature--m-hide を隠してホームの縦長（約8.2画面）を緩和。 */
  .lume-features .lume-feature--m-hide {
    display: none;
  }

  /* アーカイブ/検索カードの抜粋を2行で切り、縦消費を抑える。
     @swell-dep: .p-postList__excerpt は親SWELLのクラス（clamp無しで3〜4行＝1記事150〜180px）。
     .lume-feature__excerpt は既に clamp:3 だが、ホームカードのタイトルも2行に揃え言語統一。 */
  .p-postList__excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  /* カード見出しもモバイルは2行で切り、一覧の走査性を均す（lead は除外＝主役は3行可）。 */
  .lume-feature:not(.lume-feature--lead) .lume-card__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

/* =====================================================================
   モバイルの状態表現・タップ快適性・タイポの仕上げ群。
   ===================================================================== */

/* タッチの手応え：押下フィードバック（:active）＋ブランド色タップハイライト。
   sticky hover は上の hover ガードで解消済み。ここは「押した」を指に返す層。 */
.lume-card.is-interactive:active,
.wp-block-latest-posts.is-grid > li:active {
  transform: translateY(0) scale(0.99);
}
.lume-feature:active .lume-card__title,
.lume-cat-card.is-interactive:active .lume-card__title {
  color: var(--color-primary-strong);
}
.wp-block-button__link:active,
.l-footer__widgetArea .w-footer.-col1 .wp-block-list a:active {
  transform: scale(0.97);
}
.lume-feature__link, .lume-cat-card__link, .lume-about__link,
.wp-block-button__link, a.lume-morelink,
.c-categoryList__link, a.c-postThumb__cat,
.l-footer__widgetArea .w-footer.-col1 .wp-block-list a,
.c-pagination a.page-numbers, .nagiro-search-empty__cats a,
.p-spMenu__nav a {
  -webkit-tap-highlight-color: rgba(51, 145, 126, 0.12);
}

/* 脚注/見出しアンカーのジャンプが固定ヘッダー裏に潜るのを防ぐ。 */
html { scroll-padding-top: 72px; }
.post_content sup.lume-fn-ref,
.post_content ol.lume-references li,
.post_content :is(h2, h3)[id],
.entry-content :is(h2, h3)[id] {
  scroll-margin-top: 80px;
}

/* 暗いヒスイ帯／フッター上ではフォーカスリングを明色に（jade-700は沈むため）。 */
.lume-band--jade :focus-visible,
.l-footer :focus-visible {
  outline-color: var(--paper-white);
}

/* 本文中リンク（クラス無しの地の文リンク）を jade-700 に＝AA確保（jade-500≈3.4:1→6.6:1）。
   ボタン/morelink等のクラス付きは除外して既存意匠を壊さない。 */
.post_content a:not([class]),
.entry-content a:not([class]) {
  color: var(--color-primary-strong);
  text-underline-offset: 2px;
}

/* reduced-motion 総合ガード：連続スピナー等を含め全アニメ/トランジションを抑止。 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* viewport-fit=cover 下の安全領域：全幅フッターがホームインジケータ/ノッチに潜らないように。 */
.l-footer__foot {
  padding-bottom: calc(16px + env(safe-area-inset-bottom));
}
.l-footer__widgetArea {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

/* 本文の長語/URLの横はみ出し予防（実記事投入前のフェイルセーフ）。 */
.post_content,
.entry-content {
  overflow-wrap: break-word;
}

/* 検索プレースホルダのコントラスト：薄すぎる既定色を muted に固定（iOSの薄表示も防止）。 */
.c-searchForm__s::placeholder {
  color: var(--ink-muted);
  opacity: 1;
}

/* フッターghostリンク：縦間隔と高さを底上げ（誤タップ防止）。 */
.l-footer__widgetArea .w-footer.-col1 .wp-block-list {
  gap: 12px;
}
.l-footer__widgetArea .w-footer.-col1 .wp-block-list a {
  min-height: 44px;
}

@media (max-width: 600px) {
  /* ページネーション 36→44px（親SWELL由来の小ターゲット底上げ）。 */
  .c-pagination a.page-numbers,
  .c-pagination span.page-numbers,
  .c-pagination .page-numbers {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
  }

  /* 記事メタのカテゴリピル：地色は維持し当たり判定だけ縦に拡張。 */
  .c-categoryList__link {
    min-height: 34px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  /* ドロワーのメニュー行を48pxのブロックリンクに（行全体をタップ可能に）。 */
  .p-spMenu__nav .c-listMenu li > a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
}

/* ============================================================
   1ページのみのページネーション「1」を畳む。
   @swell-dep: 親は $show_only=true で単一ページでも <span>1</span> を出す。
   リンク(<a>)を1つも含まない pagination＝実質1ページなので非表示にする
   （:has は本CSSで既出の手法）。
   ============================================================ */
.c-pagination:not(:has(a)) {
  display: none;
}

/* ============================================================
   パンくず末端の記事名を表示（末尾シェブロンの宙ぶらりん解消）
   @swell-dep: 親SWELLは現在ページ名(.p-breadcrumb__item:last-child > span)を
   display:none で隠す設計のため、「ホーム › カテゴリ ›」で途切れて見えた。
   現在地（記事名／ページ名）を出し、IA上の「今どこか」を明示する。
   ============================================================ */
.p-breadcrumb__item:last-child > span.p-breadcrumb__text {
  display: inline;
  opacity: 0.8;   /* 親の last-child span と同じ非リンク表現 */
}

/* ============================================================
   404ページのブランド適用
   ============================================================ */
.nagiro-404 {
  max-width: 560px;
  margin: 8px auto 0;
  padding: 8px 0 24px;
}
.nagiro-404__eyebrow {
  font-family: var(--font-label);
  font-weight: 600;
  letter-spacing: 0.14em;
  font-size: 13px;
  color: var(--color-primary);
  margin: 0 0 0.4em;
}
.nagiro-404__ttl {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(22px, 5vw, 28px);
  line-height: 1.45;
  color: var(--ink);
  margin: 0 0 0.6em;
}
.nagiro-404__lead {
  color: var(--ink-muted);
  line-height: 1.9;
  margin: 0 0 1.6em;
}
.nagiro-404 .nagiro-search-rebox { margin: 0 0 1.6em; }
.nagiro-404 .nagiro-search-empty__cats { margin: 0 0 1.6em; }
.nagiro-404__home { margin: 0; }

