/* === lk-core.css === */
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0");

/*
 * lk-core.css – LiftKit Core 変数（NeoJp 向け適応版）
 *
 * LiftKit (https://github.com/Chainlift/liftkit) の黄金比ベースの
 * CSS 設計システムから、コア変数・スケーリングシステム・シャドウ・
 * タイポグラフィスケールを本プロジェクト向けに抽出・適応したもの。
 *
 * 原プロジェクト: Chainlift/liftkit (Apache-2.0 License)
 * 適応: NeoJp Quarto Book 用 – React 非依存、純 CSS 変数のみ
 */

/* ============================================================
 * §1  Golden Ratio Scale Foundation
 * ============================================================
 * すべてのサイズ・余白・余白比・フォントスケールの基底。
 * --lk-scalefactor (φ = 1.618) を唯一の手動設定値とし、
 * 残りは累乗・逆累乗で自動算出する。
 * ============================================================ */

:root {
  /* ---- 基底スケール係数 ------------------------------------ */
  --lk-scalefactor: 1.618;

  /* ---- ステップ乗数（φ の累乗根） ------------------------- */
  --lk-wholestep: 1.618; /* φ^1   */
  --lk-halfstep: 1.272; /* φ^0.5 */
  --lk-quarterstep: 1.128; /* φ^0.25 */
  --lk-eighthstep: 1.062; /* φ^0.125 */

  /* ---- 減算バリアント（hover/transition 幅等に利用） ------- */
  --lk-wholestep-dec: 0.618; /* φ^1 − 1 */
  --lk-halfstep-dec: 0.272; /* φ^0.5 − 1 */
  --lk-quarterstep-dec: 0.128; /* φ^0.25 − 1 */
  --lk-eighthstep-dec: 0.062; /* φ^0.125 − 1 */

  /* ============================================================
   * §2  Size Scale（指数的余白・サイズ変数）
   * ============================================================
   * md = 1em を中心に、上下に φ の累乗で展開。
   * Quarto の Bootstrap 基盤は rem ベースなので、
   * 本適応では 1em ≈ 1rem（root 16px）を前提とする。
   * ============================================================ */
  --lk-size-4xl: 11.089em; /* φ^5 */
  --lk-size-3xl: 6.854em; /* φ^4 */
  --lk-size-2xl: 4.236em; /* φ^3 */
  --lk-size-xl: 2.618em; /* φ^2 */
  --lk-size-lg: 1.618em; /* φ^1 */
  --lk-size-md: 1em; /* 基準 */
  --lk-size-sm: 0.618em; /* φ^−1 */
  --lk-size-xs: 0.382em; /* φ^−2 */
  --lk-size-2xs: 0.236em; /* φ^−3 */
  --lk-size-3xs: 0.146em; /* φ^−4 */

  /* ---- 無単位バリアント（calc() 乗除用） ------------------- */
  --lk-size-lg-unitless: 1.618;
  --lk-size-xl-unitless: 2.618;
  --lk-size-sm-unitless: 0.618;
  --lk-size-xs-unitless: 0.382;

  /* ============================================================
   * §3  Typography Scale
   * ============================================================
   * φ ベースの指数的フォントサイズ・行高スケール。
   * Quarto のデフォルトタイポグラフィと共存するため、
   * --lk-fs-* / --lk-lh-* 名前空間で定義。
   * ============================================================ */
  --lk-fs-display1: 4.236em; /* φ^3 */
  --lk-fs-display2: 2.618em; /* φ^2 */
  --lk-fs-title1: 2.058em; /* φ × √φ */
  --lk-fs-title2: 1.618em; /* φ */
  --lk-fs-title3: 1.272em; /* √φ */
  --lk-fs-heading: 1.128em; /* φ^0.25 */
  --lk-fs-subheading: 0.886em; /* 1/φ^0.25 */
  --lk-fs-body: 1em; /* 基準 */
  --lk-fs-callout: 0.942em; /* 1/φ^0.125 */
  --lk-fs-label: 0.834em; /* (1/φ^0.25)/φ^0.125 */
  --lk-fs-caption: 0.786em; /* 1/√φ */

  /* ---- 行高（無単位＝em 倍率） ----------------------------- */
  --lk-lh-display: 1.128; /* φ^0.25 */
  --lk-lh-title: 1.272; /* √φ */
  --lk-lh-heading: 1.272; /* √φ */
  --lk-lh-body: 1.618; /* φ */
  --lk-lh-caption: 1.272; /* √φ */

  /* ============================================================
   * §4  Shadows（奥行き階層）
   * ============================================================ */
  --lk-shadow-sm: 0 0 1px 0 rgba(0, 0, 0, 0.12);
  --lk-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.11), 0 0 1px rgba(0, 0, 0, 0.4);
  --lk-shadow-lg: 0 11px 15px -3px rgba(0, 0, 0, 0.11), 0 2px 6px rgba(0, 0, 0, 0.07), 0 0 1px rgba(0, 0, 0, 0.4);
  --lk-shadow-xl: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.3);

  /* ============================================================
   * §5  Border Radius Scale
   * ============================================================ */
  --lk-radius-xs: 0.382em; /* φ^−2 */
  --lk-radius-sm: 0.618em; /* φ^−1 */
  --lk-radius-md: 1em; /* 基準 */
  --lk-radius-lg: 1.618em; /* φ */
  --lk-radius-pill: 100em; /* 完全丸角 */

  /* ============================================================
   * §6  Transition
   * ============================================================ */
  --lk-transition-fast: 120ms ease;
  --lk-transition-normal: 200ms ease;
  --lk-transition-slow: 350ms ease;
}

/* === styles.css === */
/*
 * styles.css – NeoJp Book スタイルシート
 *
 * LiftKit Core (frontend/css/lk-core.css) の黄金比スケール変数を
 * 基盤として使用し、Quarto Book のカスタムスタイルを定義する。
 *
 * lk-core.css はビルド時に本ファイルの先頭に結合される。
 */

/* ============================================================
 * §1  NeoJp プロジェクト固有トークン
 * ============================================================ */

:root {
  /* ---- フォント -------------------------------------------- */
  --neojp-font: "FOT-TsukuOldMin Pro", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  --neojp-qr-ui-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* ---- テキスト・サーフェス -------------------------------- */
  --neojp-text-primary: #1f1f1f;
  --neojp-text-secondary: #5d6670;

  /* ---- サイドバー ------------------------------------------ */
  --neojp-sidebar-section-bg: #eceff3;
  --neojp-sidebar-section-border: #d9dee5;
  --neojp-sidebar-section-text: #2d3742;
  --neojp-sidebar-nested-border: #cfd8e6;
  --neojp-sidebar-toggle-color: #5d6670;

  /* ---- フォーカスリング ------------------------------------ */
  --neojp-focus-ring: rgba(36, 76, 158, 0.5);

  /* ---- 組織種別カラー -------------------------------------- */
  --neojp-type-sokyoku: #e9e9e9;
  --neojp-type-kyoku: #ededed;
  --neojp-type-shi: #f1f1f1;
  --neojp-type-bu: #f5f5f5;
  --neojp-type-ka: #f9f9f9;
  --neojp-type-shitsu: #fdfdfd;
  --neojp-type-shingikai: #e4eeaf;
  --neojp-type-shisetsu: #f5f0c0;
  --neojp-type-tokubetsu: #ddd0ee;
  --neojp-type-chiho: #f0d5cf;
  --neojp-type-butai: #c0e6d4;
  --neojp-type-gaikyoku: #d0e8f5;
  --neojp-type-houjin: #f0dcc0;

  /* ---- 組織種別見出し border-left -------------------------- */
  --neojp-border-sokyoku: #c7c7c7;
  --neojp-border-kyoku: #d4d4d4;
  --neojp-border-shi: #dadada;
  --neojp-border-bu: #e0e0e0;
  --neojp-border-ka: #e6e6e6;
  --neojp-border-shitsu: #ececec;
  --neojp-border-shingikai: #5a7028;
  --neojp-border-shisetsu: #8a7200;
  --neojp-border-tokubetsu: #6858a0;
  --neojp-border-chiho: #a05840;
  --neojp-border-butai: #308060;
  --neojp-border-gaikyoku: #4080a0;
  --neojp-border-houjin: #907028;

  /* ---- 合議・独任マーカー ---------------------------------- */
  --neojp-kind-collegial-bg: #eef6ff;
  --neojp-kind-collegial-border: #b8d7fb;
  --neojp-kind-single-bg: #f5f5f5;
  --neojp-kind-single-border: #d8d8d8;

  /* ---- 組織種別バッジ（::after） --------------------------- */
  --neojp-badge-bg: rgba(255, 255, 255, 0.55);
  --neojp-badge-border: rgba(0, 0, 0, 0.22);
  --neojp-badge-text: #1f1f1f;

  /* ---- 凡例チップ ------------------------------------------ */
  --neojp-legend-chip-border: rgba(0, 0, 0, 0.25);

  /* ---- Share ウィジェット ---------------------------------- */
  --neojp-share-fab-bg: #ffffff;
  --neojp-share-fab-border: #27468a;
  --neojp-share-fab-icon: #1f1f1f;
  --neojp-share-fab-hover-bg: #f2f7ff;
  --neojp-share-overlay: rgba(0, 0, 0, 0.45);
  --neojp-share-sheet-bg: #1e1e1e;
  --neojp-share-title-color: rgba(255, 255, 255, 0.45);
  --neojp-share-icon-bg: #3a3a3a;
  --neojp-share-icon-color: #ffffff;
  --neojp-share-icon-hover-bg: #4a4a4a;
  --neojp-share-label-color: rgba(255, 255, 255, 0.7);
  --neojp-share-status: #8ab4f8;
  --neojp-share-error: #f28b82;
  --neojp-qr-overlay: rgba(0, 0, 0, 0.7);
  --neojp-qr-panel-bg: #2a2a2a;
  --neojp-qr-desc-color: rgba(255, 255, 255, 0.65);
  --neojp-qr-close-color: rgba(255, 255, 255, 0.85);

  /* ---- 影・奥行き ------------------------------------------ */
  --neojp-heading-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  --neojp-sidebar-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  --neojp-sidebar-card-hover-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);

  /* ---- 組織種別インデント ---------------------------------- */
  --neojp-type-indent-step: var(--lk-size-sm);

  /* ---- 組織種別フォントサイズ ------------------------------ */
  --neojp-type-font-top: var(--lk-fs-title3);
  --neojp-type-font-sokyoku: 1.17rem;
  --neojp-type-font-kyoku: 1.12rem;
  --neojp-type-font-shi: var(--lk-fs-heading);
  --neojp-type-font-bu: 1.04rem;
  --neojp-type-font-ka: 1rem;
  --neojp-type-font-shitsu: 0.96rem;
}

/* ============================================================
 * §1b ダークモード（WCAG 2.2 AA 準拠）
 * ============================================================
 * デジタル庁デザインシステム (DADS) のカラーアクセシビリティ指針:
 *   - テキスト vs 背景: コントラスト比 ≥ 4.5:1
 *   - 非テキスト要素 vs 隣接色: コントラスト比 ≥ 3:1
 *   - 前景色と背景色を常にセットで指定する
 *   - 色のみで情報を区別しない（色覚多様性への配慮）
 * ============================================================ */

body.quarto-dark,
[data-bs-theme="dark"] {
  /* ---- テキスト・サーフェス -------------------------------- */
  --neojp-text-primary: #c0c5cc;
  --neojp-text-secondary: #9aa0a8;

  /* ---- サイドバー ------------------------------------------ */
  --neojp-sidebar-section-bg: #2a2d32;
  --neojp-sidebar-section-border: #3a3f47;
  --neojp-sidebar-section-text: #b0b6be;
  --neojp-sidebar-nested-border: #3a3f47;
  --neojp-sidebar-toggle-color: #9aa0a8;

  /* ---- フォーカスリング ------------------------------------ */
  --neojp-focus-ring: rgba(120, 165, 255, 0.55);

  /* ---- 組織種別カラー（暗色背景用）------------------------- *
   * darkly テーマの page-bg (#212529) に対して、見出し帯は
   * わずかに明るい程度に抑え、色相はほんのりと残す。
   * 色情報の主な伝達は border-left に委ねる。
   * ---------------------------------------------------------- */

  /* ── ニュートラル階層（総局〜室）：無彩色ステップ ──────── */
  --neojp-type-sokyoku: #2b2d30;
  --neojp-type-kyoku: #2d2f32;
  --neojp-type-shi: #2f3134;
  --neojp-type-bu: #313336;
  --neojp-type-ka: #333538;
  --neojp-type-shitsu: #35373a;

  /* ── カラー階層：ほんのり色相を含む暗色 ──────────────── */
  --neojp-type-shingikai: #282b24; /* 黄緑ヒント */
  --neojp-type-shisetsu: #2b2a22; /* 金ヒント */
  --neojp-type-tokubetsu: #292630; /* 紫ヒント */
  --neojp-type-chiho: #2c2726; /* 暖色ヒント */
  --neojp-type-butai: #252b28; /* 緑ヒント */
  --neojp-type-gaikyoku: #252930; /* 青ヒント */
  --neojp-type-houjin: #2c2822; /* 琥珀ヒント */

  /* ---- 組織種別見出し border-left（主要な色識別手段） ------ *
   * 背景が非常に暗いため、中明度で彩度を抑えたトーンを使い
   * 非テキスト要素として背景との ≥ 3:1 を確保する。
   * ---------------------------------------------------------- */
  --neojp-border-sokyoku: #7a7a7a;
  --neojp-border-kyoku: #808080;
  --neojp-border-shi: #7c7c7c;
  --neojp-border-bu: #828282;
  --neojp-border-ka: #888888;
  --neojp-border-shitsu: #8e8e8e;
  --neojp-border-shingikai: #6e8830;
  --neojp-border-shisetsu: #8a7e10;
  --neojp-border-tokubetsu: #856bb2;
  --neojp-border-chiho: #a06850;
  --neojp-border-butai: #3a8868;
  --neojp-border-gaikyoku: #5090b0;
  --neojp-border-houjin: #a07828;

  /* ---- 合議・独任マーカー ---------------------------------- */
  --neojp-kind-collegial-bg: #232a34;
  --neojp-kind-collegial-border: #344a6e;
  --neojp-kind-single-bg: #2a2a2c;
  --neojp-kind-single-border: #4a4a4e;

  /* ---- 組織種別バッジ（::after） --------------------------- */
  --neojp-badge-bg: rgba(255, 255, 255, 0.08);
  --neojp-badge-border: rgba(255, 255, 255, 0.18);
  --neojp-badge-text: #b8bcc2;

  /* ---- 凡例チップ ------------------------------------------ */
  --neojp-legend-chip-border: rgba(255, 255, 255, 0.22);

  /* ---- Share ウィジェット ---------------------------------- */
  --neojp-share-fab-bg: #2a2d32;
  --neojp-share-fab-border: #4e6aa0;
  --neojp-share-fab-icon: #c0c5cc;
  --neojp-share-fab-hover-bg: #30354a;
  --neojp-share-overlay: rgba(0, 0, 0, 0.6);
  --neojp-share-sheet-bg: #1a1a1a;
  --neojp-share-title-color: rgba(255, 255, 255, 0.4);
  --neojp-share-icon-bg: #333333;
  --neojp-share-icon-color: #e0e0e0;
  --neojp-share-icon-hover-bg: #444444;
  --neojp-share-label-color: rgba(255, 255, 255, 0.6);
  --neojp-share-status: #7a9dd0;
  --neojp-share-error: #d05050;
  --neojp-qr-overlay: rgba(0, 0, 0, 0.75);
  --neojp-qr-panel-bg: #222222;
  --neojp-qr-desc-color: rgba(255, 255, 255, 0.6);
  --neojp-qr-close-color: rgba(255, 255, 255, 0.8);

  /* ---- 影・奥行き ------------------------------------------ */
  --neojp-heading-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  --neojp-sidebar-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  --neojp-sidebar-card-hover-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

/* ---- ダークモード：パンくずリスト ------------------------- */
body.quarto-dark nav.quarto-page-breadcrumbs {
  background-color: #2a2e34;
}

body.quarto-dark nav.quarto-page-breadcrumbs .breadcrumb-item a,
body.quarto-dark nav.quarto-page-breadcrumbs .breadcrumb-item {
  color: #a8b0ba;
}

body.quarto-dark nav.quarto-page-breadcrumbs .breadcrumb-item + .breadcrumb-item::before {
  color: #808890;
}

body.quarto-dark nav.quarto-page-breadcrumbs .breadcrumb-item.active {
  color: #c0c5cc;
}

/* ---- 検索バーアイコン（Material Symbols 差替） ------------ */
#quarto-search .aa-SubmitButton {
  align-items: center;
  display: flex;
  justify-content: center;
}

#quarto-search .aa-SubmitIcon {
  display: none;
}

#quarto-search .aa-SubmitButton::before {
  content: "search";
  color: var(--neojp-text-secondary);
  font-family: "Material Symbols Outlined";
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  transition: color var(--lk-transition-fast);
  -webkit-font-smoothing: antialiased;
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

/* 検索アクティブ時：search → search_check */
#quarto-search .aa-Autocomplete[aria-expanded="true"] .aa-SubmitButton::before {
  content: "search_check";
  color: var(--neojp-focus-ring);
}

/* ---- 検索: 結果パネル ------------------------------------ */
#quarto-search-results .aa-Panel {
  max-height: 60vh;
  overflow-y: auto;
  z-index: 1050;
}

/* ---- 検索: 一致件数バッジ --------------------------------- *
 * .aa-Form 内に position:absolute で配置。フォームの
 * レイアウトに影響を与えず、× ボタンの左側に表示する。       */
.neojp-search-badge {
  align-items: center;
  background: #244c9e;
  border-radius: var(--lk-radius-pill);
  color: #fff;
  display: inline-flex;
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.66rem;
  font-weight: 600;
  height: 1.3em;
  justify-content: center;
  letter-spacing: 0.02em;
  line-height: 1;
  min-width: 2.4em;
  padding: 0 var(--lk-size-3xs);
  pointer-events: none;
  position: absolute;
  right: 2.2rem;
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  z-index: 2;
}

body.quarto-dark .neojp-search-badge,
[data-bs-theme="dark"] .neojp-search-badge {
  background: #4878c0;
  color: #f0f2f4;
}

/* ---- ダークモード：検索バー ------------------------------- */
body.quarto-dark #quarto-search input[type="search"] {
  background-color: #2a2e34;
  border: 1px solid #707880;
  color: #b8bfc8;
}

body.quarto-dark #quarto-search input[type="search"]::placeholder {
  color: #808890;
}

body.quarto-dark #quarto-search input[type="search"]:focus {
  background-color: #303640;
  border-color: #5070a0;
  box-shadow: 0 0 0 2px rgba(80, 112, 160, 0.25);
}

body.quarto-dark #quarto-search .aa-SubmitButton::before {
  color: #808890;
}

body.quarto-dark #quarto-search .aa-Autocomplete[aria-expanded="true"] .aa-SubmitButton::before {
  color: rgba(120, 165, 255, 0.8);
}

/* ---- ダークモード：右サイドバー目次 ----------------------- */
body.quarto-dark #quarto-margin-sidebar .nav-link {
  color: #a0a8b2;
}

body.quarto-dark #quarto-margin-sidebar .nav-link.active {
  color: #b8bfc8;
  font-weight: 500;
}

/* ============================================================
 * §2  グローバルタイポグラフィ
 * ============================================================ */

body,
.quarto-title-banner,
main.content {
  font-family: var(--neojp-font);
}

h1,
h2,
h3,
h4,
h5,
h6,
.title,
.subtitle {
  font-family: var(--neojp-font);
  letter-spacing: 0.02em;
}

/* ============================================================
 * §2b ナビゲーション（Hortulus）
 * ============================================================ */

#quarto-header .navbar-brand-container {
  margin-right: 0;
  padding-left: 0.72rem;
  padding-right: 0.72rem;
  position: relative;
}

#quarto-header .navbar-brand-container::after {
  content: "";
  border-left: 1px solid currentColor;
  border-right: 1px solid currentColor;
  height: 1.3rem;
  opacity: 0.16;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
}

#quarto-header .navbar-brand {
  font-weight: 500;
}

#quarto-header .navbar-nav .nav-link {
  font-weight: 500;
}

@media (min-width: 992px) {
  #quarto-header .navbar-nav > .nav-item {
    padding-left: 0.72rem;
    padding-right: 0.72rem;
    position: relative;
  }

  #quarto-header .navbar-nav > .nav-item > .nav-link {
    padding-left: 0;
    padding-right: 0;
  }

  #quarto-header .navbar-nav > .nav-item + .nav-item::before {
    border-left: 1px solid currentColor;
    content: "";
    height: 1.05rem;
    left: 0;
    opacity: 0.2;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* ============================================================
 * §3  サイドバー
 * ============================================================ */

#quarto-sidebar .chapter-number {
  display: none;
}

#quarto-sidebar.sidebar-navigation {
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  padding: 0.4rem 0.55rem 0.6rem !important;
}

body.quarto-dark #quarto-sidebar.sidebar-navigation {
  border-right-color: rgba(255, 255, 255, 0.12);
}

#quarto-sidebar .sidebar-header,
#quarto-sidebar .sidebar-search,
#quarto-sidebar .sidebar-menu-container {
  padding-left: 0;
  padding-right: 0;
}

#quarto-sidebar .sidebar-menu-container > ul.list-unstyled.mt-1 {
  margin-left: 0;
  margin-right: 0;
}

/* ---- Book 風のセクション表示 ------------------------------- */
#quarto-sidebar .sidebar-item.sidebar-item-section > .sidebar-item-container {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0.45rem 0 0.18rem;
  padding: 0;
  align-items: center;
  display: flex;
  gap: 0.35rem;
  justify-content: flex-start;
}

#quarto-sidebar .sidebar-item.sidebar-item-section > .sidebar-item-container > .sidebar-item-text {
  color: var(--neojp-sidebar-section-text);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin: 0.06rem 0;
  text-transform: none;
}

#quarto-sidebar .sidebar-item.sidebar-item-section > .sidebar-item-container > .sidebar-item-toggle {
  color: var(--neojp-sidebar-toggle-color);
}

#quarto-sidebar .sidebar-item-container > .sidebar-item-text.sidebar-link,
#quarto-sidebar .sidebar-item-container > .sidebar-link {
  border-radius: 4px;
  margin-left: 0;
  padding: 0.18rem 0.5rem;
}

#quarto-sidebar .sidebar-item-container > .sidebar-item-text.sidebar-link:hover,
#quarto-sidebar .sidebar-item-container > .sidebar-link:hover {
  background: rgba(0, 0, 0, 0.04);
}

body.quarto-dark #quarto-sidebar .sidebar-item-container > .sidebar-item-text.sidebar-link:hover,
body.quarto-dark #quarto-sidebar .sidebar-item-container > .sidebar-link:hover {
  background: rgba(255, 255, 255, 0.06);
}

#quarto-sidebar .sidebar-item-container > .sidebar-item-text.sidebar-link.active,
#quarto-sidebar .sidebar-item-container > .sidebar-link.active {
  background: rgba(36, 76, 158, 0.1);
  font-weight: 600;
}

#quarto-sidebar .sidebar-section .sidebar-item {
  margin: 0;
}

#quarto-sidebar .sidebar-section.depth1 > .sidebar-item {
  padding-left: 0.45rem;
}

#title-block-header .quarto-title .title,
#title-block-header .quarto-title-block .title {
  text-align: left;
}

/* ============================================================
 * §4  組織種別マーカーアイコン
 * ============================================================ */

:is(h2, h3, h4, h5, h6).kind-collegial::before,
:is(h2, h3, h4, h5, h6).kind-single::before,
.kind-marker::before {
  color: var(--neojp-text-primary);
  display: inline-block;
  flex: 0 0 auto;
  font-family: "Material Symbols Outlined";
  font-size: 1.02rem;
  font-style: normal;
  font-weight: 400;
  height: 1em;
  line-height: 1;
  width: 1em;
  -webkit-font-smoothing: antialiased;
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

:is(h2, h3, h4, h5, h6).kind-collegial::before,
.kind-marker.collegial::before {
  content: "groups";
}

:is(h2, h3, h4, h5, h6).kind-single::before,
.kind-marker.single::before {
  content: "person";
}

:is(h2, h3, h4, h5, h6).kind-collegial::before,
:is(h2, h3, h4, h5, h6).kind-single::before {
  margin-right: var(--lk-size-xs);
}

/* ---- 凡例チップ -------------------------------------------- */
.kind-marker {
  align-items: center;
  border-radius: var(--lk-radius-pill);
  color: var(--neojp-text-primary);
  display: inline-flex;
  gap: var(--lk-size-2xs);
  line-height: 1;
  padding: var(--lk-size-3xs) var(--lk-size-sm);
}

.kind-marker.collegial {
  background: var(--neojp-kind-collegial-bg);
  border: 1px solid var(--neojp-kind-collegial-border);
}

.kind-marker.single {
  background: var(--neojp-kind-single-bg);
  border: 1px solid var(--neojp-kind-single-border);
}

/* ============================================================
 * §5  凡例カラーチップ
 * ============================================================ */

.legend-chip {
  border: 1px solid var(--neojp-legend-chip-border);
  border-radius: 3px;
  display: inline-block;
  height: 0.95em;
  margin-right: var(--lk-size-xs);
  vertical-align: -0.08em;
  width: 1.25em;
}

.legend-chip.sokyoku {
  background: var(--neojp-type-sokyoku);
}
.legend-chip.kyoku {
  background: var(--neojp-type-kyoku);
}
.legend-chip.shi {
  background: var(--neojp-type-shi);
}
.legend-chip.bu {
  background: var(--neojp-type-bu);
}
.legend-chip.ka {
  background: var(--neojp-type-ka);
}
.legend-chip.shitsu {
  background: var(--neojp-type-shitsu);
}
.legend-chip.shingikai {
  background: var(--neojp-type-shingikai);
}

.legend-chip.shisetsu,
.legend-chip.shisetsu-kikan {
  background: var(--neojp-type-shisetsu);
}

.legend-chip.tokubetsu,
.legend-chip.tokubetsu-kikan {
  background: var(--neojp-type-tokubetsu);
}

.legend-chip.chiho,
.legend-chip.chiho-shibumbu {
  background: var(--neojp-type-chiho);
}

.legend-chip.butai,
.legend-chip.gun-kankei {
  background: var(--neojp-type-butai);
}

.legend-chip.gaikyoku {
  background: var(--neojp-type-gaikyoku);
}

.legend-chip.dokuritsu,
.legend-chip.kenkyu,
.legend-chip.daigaku,
.legend-chip.kyodo,
.legend-chip.saishi,
.legend-chip.tokushu,
.legend-chip.ninka,
.legend-chip.minkan,
.legend-chip.kyosai,
.legend-chip.tokuhou,
.legend-chip.daikou,
.legend-chip.seifu-kanren-houjin {
  background: var(--neojp-type-houjin);
}

/* ============================================================
 * §6  組織種別 CSS Variables（レベル・ラベル・フォントサイズ）
 * ============================================================ */

.sokyoku {
  --neojp-type-level: 2;
  --neojp-type-label: "総";
  --neojp-type-font-size: var(--neojp-type-font-sokyoku);
}

.kyoku {
  --neojp-type-level: 3;
  --neojp-type-label: "局";
  --neojp-type-font-size: var(--neojp-type-font-kyoku);
}

.shi {
  --neojp-type-level: 4;
  --neojp-type-label: "司";
  --neojp-type-font-size: var(--neojp-type-font-shi);
}

.bu {
  --neojp-type-level: 5;
  --neojp-type-label: "部";
  --neojp-type-font-size: var(--neojp-type-font-bu);
}

.ka {
  --neojp-type-level: 6;
  --neojp-type-label: "課";
  --neojp-type-font-size: var(--neojp-type-font-ka);
}

.shitsu {
  --neojp-type-level: 7;
  --neojp-type-label: "室";
  --neojp-type-font-size: var(--neojp-type-font-shitsu);
}

.shingikai {
  --neojp-type-level: 1;
  --neojp-type-label: "審議会等";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.shisetsu,
.shisetsu-kikan {
  --neojp-type-level: 1;
  --neojp-type-label: "施設等機関";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.tokubetsu,
.tokubetsu-kikan {
  --neojp-type-level: 1;
  --neojp-type-label: "特別の機関";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.chiho,
.chiho-shibumbu {
  --neojp-type-level: 1;
  --neojp-type-label: "地方支分部局";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.butai,
.gun-kankei {
  --neojp-type-level: 0;
  --neojp-type-label: "部隊等";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.gaikyoku {
  --neojp-type-level: 0;
  --neojp-type-label: "外局";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.dokuritsu {
  --neojp-type-level: 0;
  --neojp-type-label: "独立行政法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.kenkyu {
  --neojp-type-level: 0;
  --neojp-type-label: "国立研究開発法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.daigaku {
  --neojp-type-level: 0;
  --neojp-type-label: "国立大学法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.kyodo {
  --neojp-type-level: 0;
  --neojp-type-label: "大学共同利用機関法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.saishi {
  --neojp-type-level: 0;
  --neojp-type-label: "国立祭祀法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.tokushu {
  --neojp-type-level: 0;
  --neojp-type-label: "特殊法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.ninka {
  --neojp-type-level: 0;
  --neojp-type-label: "認可法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.minkan {
  --neojp-type-level: 0;
  --neojp-type-label: "特別民間法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.kyosai {
  --neojp-type-level: 0;
  --neojp-type-label: "共済組合類型法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.tokuhou {
  --neojp-type-level: 0;
  --neojp-type-label: "特別法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.daikou {
  --neojp-type-level: 0;
  --neojp-type-label: "行政代行法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

.seifu-kanren-houjin {
  --neojp-type-level: 0;
  --neojp-type-label: "政府関連法人";
  --neojp-type-font-size: var(--neojp-type-font-top);
}

/* ============================================================
 * §7  組織種別見出しスタイル
 * ============================================================ */

:is(h2, h3, h4, h5, h6).sokyoku,
:is(h2, h3, h4, h5, h6).kyoku,
:is(h2, h3, h4, h5, h6).shi,
:is(h2, h3, h4, h5, h6).bu,
:is(h2, h3, h4, h5, h6).ka,
:is(h2, h3, h4, h5, h6).shitsu,
:is(h2, h3, h4, h5, h6).shingikai,
:is(h2, h3, h4, h5, h6).shisetsu,
:is(h2, h3, h4, h5, h6).shisetsu-kikan,
:is(h2, h3, h4, h5, h6).tokubetsu,
:is(h2, h3, h4, h5, h6).tokubetsu-kikan,
:is(h2, h3, h4, h5, h6).chiho,
:is(h2, h3, h4, h5, h6).chiho-shibumbu,
:is(h2, h3, h4, h5, h6).butai,
:is(h2, h3, h4, h5, h6).gun-kankei,
:is(h2, h3, h4, h5, h6).gaikyoku,
:is(h2, h3, h4, h5, h6).dokuritsu,
:is(h2, h3, h4, h5, h6).kenkyu,
:is(h2, h3, h4, h5, h6).daigaku,
:is(h2, h3, h4, h5, h6).kyodo,
:is(h2, h3, h4, h5, h6).saishi,
:is(h2, h3, h4, h5, h6).tokushu,
:is(h2, h3, h4, h5, h6).ninka,
:is(h2, h3, h4, h5, h6).minkan,
:is(h2, h3, h4, h5, h6).kyosai,
:is(h2, h3, h4, h5, h6).tokuhou,
:is(h2, h3, h4, h5, h6).daikou,
:is(h2, h3, h4, h5, h6).seifu-kanren-houjin {
  align-items: center;
  border-radius: var(--lk-radius-xs);
  box-shadow: var(--neojp-heading-shadow);
  color: var(--neojp-text-primary);
  display: flex;
  font-size: var(--neojp-type-font-size, inherit);
  gap: var(--lk-size-xs);
  line-height: var(--lk-lh-heading);
  margin-left: calc(var(--neojp-type-level, 0) * var(--neojp-type-indent-step));
  max-width: calc(100% - (var(--neojp-type-level, 0) * var(--neojp-type-indent-step)));
  padding: var(--lk-size-2xs) var(--lk-size-sm);
}

section > :is(p, ul, ol, dl, blockquote, pre, table, .table-responsive, .callout, .quarto-figure, .cell) {
  margin-left: calc(var(--neojp-type-level, 0) * var(--neojp-type-indent-step));
  max-width: calc(100% - (var(--neojp-type-level, 0) * var(--neojp-type-indent-step)));
}

/* ---- 組織種別ラベルバッジ（::after） ----------------------- */
:is(h2, h3, h4, h5, h6).sokyoku::after,
:is(h2, h3, h4, h5, h6).kyoku::after,
:is(h2, h3, h4, h5, h6).shi::after,
:is(h2, h3, h4, h5, h6).bu::after,
:is(h2, h3, h4, h5, h6).ka::after,
:is(h2, h3, h4, h5, h6).shitsu::after,
:is(h2, h3, h4, h5, h6).shingikai::after,
:is(h2, h3, h4, h5, h6).shisetsu::after,
:is(h2, h3, h4, h5, h6).shisetsu-kikan::after,
:is(h2, h3, h4, h5, h6).tokubetsu::after,
:is(h2, h3, h4, h5, h6).tokubetsu-kikan::after,
:is(h2, h3, h4, h5, h6).chiho::after,
:is(h2, h3, h4, h5, h6).chiho-shibumbu::after,
:is(h2, h3, h4, h5, h6).butai::after,
:is(h2, h3, h4, h5, h6).gun-kankei::after,
:is(h2, h3, h4, h5, h6).gaikyoku::after,
:is(h2, h3, h4, h5, h6).dokuritsu::after,
:is(h2, h3, h4, h5, h6).kenkyu::after,
:is(h2, h3, h4, h5, h6).daigaku::after,
:is(h2, h3, h4, h5, h6).kyodo::after,
:is(h2, h3, h4, h5, h6).saishi::after,
:is(h2, h3, h4, h5, h6).tokushu::after,
:is(h2, h3, h4, h5, h6).ninka::after,
:is(h2, h3, h4, h5, h6).minkan::after,
:is(h2, h3, h4, h5, h6).kyosai::after,
:is(h2, h3, h4, h5, h6).tokuhou::after,
:is(h2, h3, h4, h5, h6).daikou::after,
:is(h2, h3, h4, h5, h6).seifu-kanren-houjin::after {
  content: var(--neojp-type-label, "");
  background: var(--neojp-badge-bg);
  border: 1px solid var(--neojp-badge-border);
  border-radius: var(--lk-radius-pill);
  color: var(--neojp-badge-text);
  font-size: 0.66rem;
  font-weight: 400;
  line-height: 1.2;
  margin-left: auto;
  padding: 0.04rem var(--lk-size-xs);
  white-space: nowrap;
}

/* 内部階層（sokyoku..shitsu）に kind アイコンが付く場合は二重表示を防止 */
:is(h2, h3, h4, h5, h6):is(.sokyoku, .kyoku, .shi, .bu, .ka, .shitsu):is(.kind-collegial, .kind-single)::before {
  content: none;
  display: none;
}

/* 内部階層のラベルバッジは固定幅・中央揃え */
:is(h2, h3, h4, h5, h6).sokyoku::after,
:is(h2, h3, h4, h5, h6).kyoku::after,
:is(h2, h3, h4, h5, h6).shi::after,
:is(h2, h3, h4, h5, h6).bu::after,
:is(h2, h3, h4, h5, h6).ka::after,
:is(h2, h3, h4, h5, h6).shitsu::after {
  margin-left: 0;
  min-width: 2.1em;
  text-align: center;
}

/* ============================================================
 * §8  組織種別見出し個別色
 * ============================================================ */

:is(h2, h3, h4, h5, h6).sokyoku {
  background: var(--neojp-type-sokyoku);
  border-left: 4px solid var(--neojp-border-sokyoku);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).kyoku {
  background: var(--neojp-type-kyoku);
  border-left: 4px solid var(--neojp-border-kyoku);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).shi {
  background: var(--neojp-type-shi);
  border-left: 4px solid var(--neojp-border-shi);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).bu {
  background: var(--neojp-type-bu);
  border-left: 4px solid var(--neojp-border-bu);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).ka {
  background: var(--neojp-type-ka);
  border-left: 4px solid var(--neojp-border-ka);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).shitsu {
  background: var(--neojp-type-shitsu);
  border-left: 4px solid var(--neojp-border-shitsu);
  justify-content: flex-end;
}

:is(h2, h3, h4, h5, h6).shingikai {
  background: var(--neojp-type-shingikai);
  border-left: 4px solid var(--neojp-border-shingikai);
}

:is(h2, h3, h4, h5, h6).shisetsu,
:is(h2, h3, h4, h5, h6).shisetsu-kikan {
  background: var(--neojp-type-shisetsu);
  border-left: 4px solid var(--neojp-border-shisetsu);
}

:is(h2, h3, h4, h5, h6).tokubetsu,
:is(h2, h3, h4, h5, h6).tokubetsu-kikan {
  background: var(--neojp-type-tokubetsu);
  border-left: 4px solid var(--neojp-border-tokubetsu);
}

:is(h2, h3, h4, h5, h6).chiho,
:is(h2, h3, h4, h5, h6).chiho-shibumbu {
  background: var(--neojp-type-chiho);
  border-left: 4px solid var(--neojp-border-chiho);
}

:is(h2, h3, h4, h5, h6).butai,
:is(h2, h3, h4, h5, h6).gun-kankei {
  background: var(--neojp-type-butai);
  border-left: 4px solid var(--neojp-border-butai);
}

:is(h2, h3, h4, h5, h6).gaikyoku {
  background: var(--neojp-type-gaikyoku);
  border-left: 4px solid var(--neojp-border-gaikyoku);
}

:is(h2, h3, h4, h5, h6).dokuritsu,
:is(h2, h3, h4, h5, h6).kenkyu,
:is(h2, h3, h4, h5, h6).daigaku,
:is(h2, h3, h4, h5, h6).kyodo,
:is(h2, h3, h4, h5, h6).saishi,
:is(h2, h3, h4, h5, h6).tokushu,
:is(h2, h3, h4, h5, h6).ninka,
:is(h2, h3, h4, h5, h6).minkan,
:is(h2, h3, h4, h5, h6).kyosai,
:is(h2, h3, h4, h5, h6).tokuhou,
:is(h2, h3, h4, h5, h6).daikou,
:is(h2, h3, h4, h5, h6).seifu-kanren-houjin {
  background: var(--neojp-type-houjin);
  border-left: 4px solid var(--neojp-border-houjin);
}

/* ============================================================
 * §9  QR ウィジェット – FAB（浮遊ボタン）
 * ============================================================ */

/* ── Share FAB (右下常置) ──────────────────────────────────── */

.share-fab-wrap {
  align-items: center;
  bottom: var(--lk-size-md);
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: fixed;
  right: var(--lk-size-md);
  z-index: 1000;
}

.share-fab-label {
  color: var(--neojp-share-fab-icon);
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  opacity: 0.7;
  pointer-events: none;
  text-transform: uppercase;
  user-select: none;
}

.share-fab {
  align-items: center;
  background: var(--neojp-share-fab-bg);
  border: 2px solid var(--neojp-share-fab-border);
  border-radius: var(--lk-radius-pill);
  box-shadow: var(--lk-shadow-lg);
  cursor: pointer;
  display: inline-flex;
  height: calc(var(--lk-size-xl) + var(--lk-size-sm));
  justify-content: center;
  transition:
    box-shadow var(--lk-transition-fast),
    background-color var(--lk-transition-fast),
    transform 0.15s ease;
  width: calc(var(--lk-size-xl) + var(--lk-size-sm));
}

.share-fab .material-symbols-outlined {
  color: var(--neojp-share-fab-icon);
  font-family: "Material Symbols Outlined";
  font-size: 28px;
  display: block;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

.share-fab:hover {
  background: var(--neojp-share-fab-hover-bg);
  box-shadow: var(--lk-shadow-xl);
}

.share-fab:focus-visible {
  outline: 3px solid var(--neojp-focus-ring);
  outline-offset: 2px;
}

.share-fab:active {
  transform: scale(0.92);
}

@media (max-width: 767px) {
  .share-fab-wrap {
    bottom: var(--lk-size-sm);
    right: var(--lk-size-sm);
  }

  .share-fab {
    height: var(--lk-size-xl);
    width: var(--lk-size-xl);
  }

  .share-fab .material-symbols-outlined {
    font-size: 24px;
  }
}

/* ── Share Overlay + Sheet (SoundCloud 風ボトムシート) ──── */

.share-overlay[hidden] {
  display: none;
}

.share-overlay {
  background: var(--neojp-share-overlay);
  inset: 0;
  position: fixed;
  z-index: 1100;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.share-sheet {
  background: var(--neojp-share-sheet-bg);
  border-radius: 16px 16px 0 0;
  max-width: 460px;
  padding: 20px 16px 24px;
  width: 100%;
  animation: share-sheet-slide-up 0.25s ease-out;
}

@keyframes share-sheet-slide-up {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.share-sheet-title {
  color: var(--neojp-share-title-color);
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.share-sheet-row {
  display: flex;
  gap: 20px;
  padding: 0 4px;
}

.share-sheet-item {
  align-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  width: 64px;
}

.share-sheet-item:focus-visible {
  outline: 2px solid var(--neojp-focus-ring);
  outline-offset: 4px;
  border-radius: 8px;
}

.share-sheet-icon {
  align-items: center;
  background: var(--neojp-share-icon-bg);
  border-radius: 50%;
  display: flex;
  height: 56px;
  justify-content: center;
  transition: background-color 0.15s ease;
  width: 56px;
}

.share-sheet-item:hover .share-sheet-icon {
  background: var(--neojp-share-icon-hover-bg);
}

.share-sheet-item:active .share-sheet-icon {
  transform: scale(0.92);
}

.share-sheet-icon .material-symbols-outlined {
  color: var(--neojp-share-icon-color);
  font-family: "Material Symbols Outlined";
  font-size: 26px;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

.share-sheet-label {
  color: var(--neojp-share-label-color);
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.68rem;
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}

.share-copy-status {
  color: var(--neojp-share-status);
  display: block;
  font-family: var(--neojp-qr-ui-font);
  font-size: var(--lk-fs-caption);
  margin-top: 12px;
  min-height: 1.2em;
  text-align: center;
}

.share-copy-status:empty {
  display: none;
}

.share-copy-status.error {
  color: var(--neojp-share-error);
}

/* ============================================================
 * §10  QR ウィジェット – モーダル
 * ============================================================ */

.qr-modal[hidden] {
  display: none;
}

.qr-modal {
  background: var(--neojp-qr-overlay);
  inset: 0;
  position: fixed;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
}

.qr-panel {
  background: var(--neojp-qr-panel-bg);
  border-radius: 12px;
  font-family: var(--neojp-qr-ui-font);
  max-width: min(92vw, 380px);
  padding: 28px 24px 24px;
  text-align: center;
}

.qr-panel img {
  border-radius: 8px;
  height: auto;
  max-width: 100%;
  width: 280px;
}

.qr-description {
  color: var(--neojp-qr-desc-color);
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.82rem;
  line-height: 1.5;
  margin: 16px auto 0;
  max-width: 280px;
}

.qr-close-text {
  background: transparent;
  border: none;
  color: var(--neojp-qr-close-color);
  cursor: pointer;
  display: block;
  font-family: var(--neojp-qr-ui-font);
  font-size: 0.92rem;
  font-weight: 600;
  margin: 20px auto 0;
  padding: 8px 24px;
}

.qr-close-text:hover {
  text-decoration: underline;
}

.qr-close-text:focus-visible {
  outline: 2px solid var(--neojp-focus-ring);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ============================================================
 * §  著者情報・朱肉印影（SVG 版）
 * ============================================================ */

/* 白舟篆書教漢（著者名） */
@font-face {
  font-family: "HakushuTensho";
  src:
    url("../assets/fonts/HOT-Tenshokk-M.otf") format("opentype"),
    url("../assets/fonts/HOT-Tenshokk-M-subset.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

/* 白舟篆古印（印鑑文字） */
@font-face {
  font-family: "HakushuTenkoin";
  src: url("../assets/fonts/HOT-Tenkoinkk-M.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

.author-block {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.2rem;
  margin: 1.5rem 0 2.5rem;
  padding-right: 1rem;
  flex-wrap: nowrap;
}

.author-name {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--neojp-text-primary);
  white-space: nowrap;
}

/*
 * SVG 印影
 * - viewBox 固定のため画面幅によるレイアウト崩れなし
 * - currentColor 経由でダークテーマ対応
 * - paint-order: stroke により太い画線 = 印相体風の質感
 */
.author-seal-svg {
  flex-shrink: 0;
  width: 5.5rem;
  height: 5.5rem;
  color: #b22222;
  user-select: none;
}

@media (max-width: 767px) {
  .author-block {
    gap: 1rem;
    margin: 1.75rem 0 2.25rem;
    padding-right: 0;
  }

  .author-seal-svg {
    transform: translateY(0.3rem);
  }
}

/* ダークテーマ対応 */
[data-bs-theme="dark"] .author-name {
  color: #e0e0e0;
}

[data-bs-theme="dark"] .author-seal-svg {
  color: #cd3333;
}
