@charset "utf-8";

/* ============================================================ */
/* 共通パーツ: サブナビ / パンくず / レイアウト / サイドバー       */
/* ============================================================ */


/* --- アクセシビリティ（スクリーンリーダー専用） --- */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- サポートサイト コンテンツヘッダー（T74: D01/D02/D03/D10 / T111 親テーマ機構準拠化） --- */
/* D03: 親テーマ .post-list を継承（common/js/functions.js の pl-scroll/active トグル、
   common/css/style.css:18524〜 の .post-list 定義）。
   - 追従動作（下スクロール隠れ/上スクロール表示）は親テーマ JS に委譲
   - ポジショニング（absolute/fixed, top:clamp, translateY, height 75px）は親テーマに委譲
   - admin-bar 対応は親テーマの body.customize-support .post-list { translateY(32px) } に委譲
   - 高さ 75px のまま採用（D03 差戻対応: 48px 圧縮指示は親テーマ機構と衝突のため撤回依頼）
   D10: wp_nav_menu() で WP管理画面から項目をカスタマイズ可能
   子テーマ独自の見た目調整（色・ボタンスタイル・WPメニュー連携）は support.css 末尾
   「子テーマ独自差分」セクションを参照 */

/* --- パンくず --- */
/* 親テーマ .post-list は position:absolute / height:75px / top:clamp(70,9.1vw,100) で
   フロー外配置のため、後続要素は margin-top で自力回避する必要あり */
.breadcrumb {
  background: var(--bg-light, #f8f9fa);
  border-bottom: 1px solid var(--border-color, #dee2e6);
  position: relative;
  /* D28: 追従ヘッダー .post-list (z-index:3) の下に重ねるため 1 に下げる */
  z-index: 1;
  margin-top: calc(clamp(70px, 9.1vw, 100px) + 75px);
}
.breadcrumb__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 10px 20px;
  font-size: var(--fs-14);
  color: var(--text-light, #666);
}
.breadcrumb__inner a {
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.breadcrumb__inner a:hover {
  text-decoration: underline;
}
/* D08: 区切り文字はHTMLスパンで出力（アンカー領域から除外） */
.breadcrumb__sep {
  color: #999;
  margin: 0 2px;
  display: inline;
  pointer-events: none;
}
.breadcrumb__inner span:not(.breadcrumb__sep) {
  color: var(--text-color, #333);
}
/* Yoast SEO yoast_breadcrumb() 出力対応:
   構造は <span><a>…</a></span> [sep テキスト] <span class="breadcrumb_last">現在</span>。
   区切りは素のテキストノードのため .breadcrumb__sep は付かない。色味を独自関数（#999）に寄せる。 */
.breadcrumb__inner {
  /* 区切りテキストノードはこの色を継承する（D08 相当のグレー） */
  color: #999;
}
.breadcrumb__inner a {
  color: var(--link-color, #034B77);
}
.breadcrumb__inner .breadcrumb_last {
  color: var(--text-color, #333);
  font-weight: normal;
}

/* --- 2カラムレイアウト（メイン＋サイドバー） --- */
.content-with-sidebar {
  display: flex;
  gap: 40px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
.content-with-sidebar #main {
  flex: 1;
  min-width: 0;
}
.content-with-sidebar #sidebar {
  width: 300px;
  flex-shrink: 0;
}

/* サイドバーなし（1カラム） */
.content-no-sidebar #main {
  max-width: 900px;
}

/* --- サイドバー --- */
#sidebar {
  width: 300px;
}
@media (max-width: 768px) {
  #sidebar {
    width: 100%;
  }
}
#sidebar .sidebar-widget {
  margin-bottom: 24px;
}
#sidebar .sidebar-title {
  font-size: var(--fs-16);
  font-weight: bold;
  padding: 10px 0;
  margin: 0 0 12px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
#sidebar .sidebar-widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#sidebar .sidebar-widget ul li {
  border-bottom: 1px solid var(--border-color, #dee2e6);
}
#sidebar .sidebar-widget ul li a {
  display: block;
  padding: 10px 0;
  font-size: var(--fs-14);
  color: var(--link-color, #034B77);
  text-decoration: none;
  line-height: 1.5;
}
#sidebar .sidebar-widget ul li a:hover {
  color: var(--ui-accent-hover);
}

/* Sticky Sidebar Table of Contents用 */
div.ez-toc-widget-sticky-container.is_stuck{
  margin-top: 200px !important;
}

/* ============================================================ */
/* 製品サポートページ (page-tm_product_support)                    */
/* US版 support.esri.com 準拠                                    */
/* ============================================================ */

.ps-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

/* パンくず */
.ps-breadcrumb {
  background: #f8f9fa;
  padding: 10px 0;
  font-size: 14px;
  color: #666;
  border-bottom: 1px solid #e9ecef;
}
.ps-breadcrumb a {
  color: var(--link-color);
  text-decoration: none;
}
.ps-breadcrumb a:hover {
  text-decoration: underline;
}
.ps-breadcrumb span {
  color: #333;
}
.ps-breadcrumb a + a::before,
.ps-breadcrumb a + span::before {
  content: " > ";
  color: #999;
  margin: 0 6px;
}

/* --- 1. 製品ヘッダー --- */
.ps-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 40px 0 24px;
}
.ps-header__icon {
  width: 64px;
  height: 64px;
  object-fit: contain;
}
.ps-header__title {
  font-size: 28px;
  font-weight: bold;
  margin: 0 0 4px;
  line-height: 1.3;
}
.ps-header__desc {
  font-size: 14px;
  color: #666;
  margin: 0;
}

/* --- 2. CTAボタン --- */
.ps-cta {
  display: flex;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.ps-cta__btn {
  display: inline-block;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  border-radius: var(--radius);
  transition: background-color 0.2s, color 0.2s;
}
.ps-cta__btn.outline {
  border: 2px solid var(--ui-accent);
  color: var(--ui-accent);
  background: #fff;
}
.ps-cta__btn.outline:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}
.ps-cta__btn.filled {
  border: 2px solid var(--ui-accent);
  background: var(--ui-accent);
  color: #fff;
}
.ps-cta__btn.filled:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}

/* --- 3. 検索ボックス --- */
.ps-search {
  margin-bottom: 36px;
}
.ps-search__form {
  display: flex;
  gap: 8px;
  max-width: 600px;
}
.ps-search__input {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: var(--radius);
  font-size: 14px;
}
.ps-search__input:focus {
  outline: none;
  border-color: var(--ui-accent);
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb),0.15);
}
.ps-search__btn {
  padding: 10px 24px;
  background: var(--ui-accent);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
}
.ps-search__btn:hover {
  background: var(--ui-accent-hover);
}

/* --- 4. 記事3カラム --- */
.ps-articles {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  margin-bottom: 36px;
}
.ps-articles__heading {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.ps-articles__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ps-articles__list li {
  margin-bottom: 8px;
}
.ps-articles__list a {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  line-height: 1.5;
}
.ps-articles__list a:hover {
  text-decoration: underline;
}
.ps-articles__date {
  display: block;
  font-size: 12px;
  color: #888;
  margin-top: 2px;
}
.ps-articles__empty {
  font-size: 14px;
  color: #999;
}
.ps-articles__more {
  grid-column: 1 / -1;
  text-align: center;
  margin-top: 8px;
}

/* 共通ボタンスタイル */
.ps-btn-outline {
  display: inline-block;
  padding: 10px 28px;
  border: 2px solid var(--ui-accent);
  color: var(--ui-accent);
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  border-radius: var(--radius);
  transition: background-color 0.2s, color 0.2s;
}
.ps-btn-outline:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}
.ps-btn-green {
  display: inline-block;
  padding: 10px 24px;
  background: var(--ui-accent);
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  border-radius: var(--radius);
  border: none;
}
.ps-btn-green:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}

/* --- 5. リンクカード3カラム --- */
.ps-link-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}
.ps-link-card {
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  padding: 24px;
  background: #fff;
}
.ps-link-card__title {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 8px;
}
.ps-link-card__desc {
  font-size: 14px;
  color: #666;
  margin: 0 0 12px;
  line-height: 1.6;
}
.ps-link-card__link {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  font-weight: bold;
}
.ps-link-card__link:hover {
  text-decoration: underline;
}

/* --- 6. 特集カード --- */
.ps-featured {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 24px;
  margin-bottom: 48px;
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  background: #fff;
}
.ps-featured__icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex-shrink: 0;
}
.ps-featured__title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 8px;
}
.ps-featured__desc {
  font-size: 14px;
  color: #666;
  margin: 0 0 12px;
  line-height: 1.6;
}
.ps-featured__link {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  font-weight: bold;
}
.ps-featured__link:hover {
  text-decoration: underline;
}

/* --- 7. 参考資料 --- */
.ps-section {
  margin-bottom: 48px;
}
.ps-section__title {
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  margin: 0 0 28px;
}
.ps-resources {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ps-resource-card {
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  padding: 24px;
  background: #fff;
}
.ps-resource-card__title {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 8px;
}
.ps-resource-card__desc {
  font-size: 14px;
  color: #666;
  margin: 0 0 12px;
  line-height: 1.6;
}
.ps-resource-card__link {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  font-weight: bold;
}
.ps-resource-card__link:hover {
  text-decoration: underline;
}

/* --- 8. エクステンション --- */
.ps-extensions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ps-extension-item {
  display: inline-block;
  padding: 10px 20px;
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  font-size: 14px;
  color: #333;
  text-decoration: none;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ps-extension-item:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 6px rgba(var(--ui-accent-rgb),0.1);
  color: var(--ui-accent-hover);
}

/* --- 9. サポート案内バー（共通） --- */
.ps-support-bar {
  background: #f5f5f5;
  padding: 48px 0;
  margin-top: 48px;
  text-align: center;
}
.ps-support-bar__title {
  font-size: 24px;
  font-weight: bold;
  margin: 0 0 12px;
}
.ps-support-bar__desc {
  font-size: 14px;
  color: #666;
  max-width: 700px;
  margin: 0 auto 32px;
  line-height: 1.7;
}
.ps-support-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.ps-support-card {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  padding: 32px 24px;
  text-align: center;
}
.ps-support-card h3 {
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 8px;
}
.ps-support-card p {
  font-size: 14px;
  color: #666;
  margin: 0 0 16px;
}

/* --- 動的メニュー（taxonomy-product.php） --- */
.ps-dynamic-menu {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 48px;
}
.ps-dynamic-menu__item {
  display: block;
  padding: 16px 20px;
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: bold;
  color: var(--link-color);
  text-decoration: none;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ps-dynamic-menu__item:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 6px rgba(var(--ui-accent-rgb),0.1);
}

/* 月別グループ見出し */
.ps-articles__month {
  font-size: 12px;
  font-weight: bold;
  color: #666;
  margin-top: 12px;
  margin-bottom: 4px;
  padding-top: 8px;
  border-top: 1px solid #eee;
  list-style: none;
}
.ps-articles__month:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* リッチエディター内リソース: 左固定+右側自由配置 */
.ps-richtext--resources {
  margin: 0;
  grid-column: span 2;
}

/* --- 10. リッチエディタ領域 --- */
.ps-richtext {
  margin: 36px 0;
}

/* --- レスポンシブ --- */
@media (max-width: 768px) {
  /* サブナビ: 横スクロール */
  .support-nav__list {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .support-nav__list li a {
    white-space: nowrap;
    padding: 8px 14px;
    font-size: 14px;
  }

  /* パンくず */
  .breadcrumb__inner {
    font-size: 12px;
    overflow-x: auto;
    white-space: nowrap;
  }

  /* 2カラム → 1カラム */
  .content-with-sidebar {
    flex-direction: column;
    gap: 24px;
  }
  .content-with-sidebar #sidebar {
    width: 100%;
  }

  /* 製品サポートページ */
  .ps-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 24px 0 16px;
  }
  .ps-header__title {
    font-size: 28px;
  }
  .ps-articles {
    grid-template-columns: 1fr;
  }
  .ps-link-cards,
  .ps-resources,
  .ps-support-cards,
  .ps-dynamic-menu {
    grid-template-columns: 1fr;
  }
  .ps-richtext--resources {
    grid-column: span 1;
  }
  .ps-cta {
    flex-direction: column;
  }
  .ps-cta__btn {
    text-align: center;
  }
  .ps-featured {
    flex-direction: column;
  }
  .ps-search__form {
    max-width: 100%;
  }
}

/* ============================================================ */
/* トップページ (front-page.php) — T40                          */
/* ============================================================ */

/* --- 共通 --- */
.fp-main {
  /* 親テーマ .post-list (absolute/height:75px) + ヘッダー(clamp) 分の余白
     トップページはパンくずがないため直接確保 */
  margin-top: calc(clamp(70px, 9.1vw, 100px) + 75px);
}

/* --- セクション1: 検索エリア --- */
.fp-search {
  background: #fff;
  padding: 40px 0;
  border-bottom: 1px solid var(--border-color, #dee2e6);
}
.fp-search__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: center;
}
.fp-search__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 16px;
  letter-spacing: 0.02em;
}
/* fp-search 共通スタイルは後方（検索エリアの調整セクション）で定義 */
.fp-search__help {
  margin-top: 14px;
  font-size: 14px;
  color: var(--text-muted, #888);
}
.fp-search__help a {
  color: var(--link-color, #034B77);
}

/* --- セクション2: お知らせ --- */
.fp-news {
  padding: 40px 0 48px;
  background: #fff;
}
/* D18: 横幅を旧サイト準拠に調整 */
.fp-news__inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
}
.fp-news__box {
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.fp-news__header {
  background: var(--ui-accent-strong);
  padding: 12px 24px;
}
.fp-news__heading {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  letter-spacing: 0.04em;
}
.fp-news__body {
  padding: 20px 24px;
}
.fp-news__item {
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f0f0f0;
  /* T261(D30/D31): 日付・バッジを独立列にし、タイトルと抜粋を同じ body 列にネスト。
     抜粋を「タイトル開始位置」に揃える（バッジ有無に依存しない／重要・通常統一）。 */
  display: flex;
  align-items: baseline;
  gap: 8px;
}
/* T261: タイトル行（.fp-news__row）と展開抜粋（.fp-news__excerpt）を内包する列。
   この列の左端＝タイトル開始位置なので、抜粋もこの左端に自然に揃う。
   ※ .fp-news__body はセクション外枠（リスト領域）で別用途のため、項目内列は __content を使う。 */
.fp-news__content {
  flex: 1 1 auto;
  min-width: 0;
}
.fp-news__item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.fp-news__row {
  font-size: var(--fs-14); /* T378 3-2: お知らせのリンクは 14px（大滝様ご指定） */
  font-size: 14px;
  line-height: 1.6;
  margin: 0 0 2px;
  display: flex;
  /* D30-②/③: 複数行タイトル時に +/- ボタンを先頭行（上付き）に揃える */
  align-items: baseline;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
}
.fp-news__date {
  min-width: 77px;
  color: var(--text-color, #333);
  margin-right: 8px;
  font-weight: 400;
  min-width: 5.5em;
  flex-shrink: 0;
}
.fp-news__row a {
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.fp-news__row a:hover {
  text-decoration: underline;
}
/* D18: +ボタン右端揃え */
.fp-news__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: auto;
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--ui-accent);
  background: none;
  border: none;
  cursor: pointer;
  vertical-align: middle;
  line-height: 1;
}
.fp-news__toggle:hover {
  color: var(--ui-accent-hover);
}
.fp-news__toggle:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb),0.3);
  border-radius: var(--radius);
}
.fp-news__excerpt {
  display: none;
  font-size: 14px;
  color: var(--text-light, #666);
  /* T261: body 内に配置したため、タイトル開始位置に自然に揃う（固定 padding 不要）。 */
  padding-left: 0;
  margin: 0 0 8px;
  line-height: 1.6;
}
/* D15: 重要お知らせデザイン改善 */
.fp-news__important .fp-news__item:last-child {
  margin-bottom: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f0f0f0;
}
.fp-news__item--important .fp-news__row a {
  color: var(--col-Red-darker);
  font-weight: 700;
}
.fp-news__item--important .fp-news__row a:hover {
  color: #c62828;
}
.fp-news__item--important .fp-news__badge {
  background: var(--col-Red-darker);
}
/* T261(D30-①/D31-②): 重要お知らせの抜粋揃えは通常と統一（body ネストでタイトル開始位置）。
   旧 padding-left:0（ボックス左端）の個別指定は撤廃。 */
.fp-news__badge {
  min-width: 42px;
  text-align: center;
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--col-Red-darker);
  padding: 1px 6px;
  border-radius: var(--radius);
  margin-right: 6px;
  vertical-align: middle;
}
/* T171: 外部記事マージ表示の「外部」バッジ（重要バッジと色で差別化） */
.fp-news__badge--external {
  background: var(--ui-accent);
}
.fp-news__empty {
  font-size: 14px;
  color: var(--text-light, #666);
}
.fp-news__footer {
  padding: 12px 24px 16px;
  text-align: right;
  border-top: 1px solid #f0f0f0;
}
.fp-news__more {
  font-size: 14px;
  font-weight: 600;
  color: var(--link-color);
  text-decoration: none;
}
.fp-news__more:hover {
  text-decoration: underline;
}

/* --- セクション3: 目的から探す --- */
.fp-purpose {
  background: var(--bg-light, #f8f9fa);
  padding: 48px 0 56px;
  border-top: 1px solid var(--border-color, #dee2e6);
}
.fp-purpose__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: center;
}
.fp-purpose__title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 8px;
  letter-spacing: 0.02em;
}
.fp-purpose__lead {
  font-size: 14px;
  color: var(--text-light, #666);
  margin: 0 0 28px;
}
.fp-purpose__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.fp-purpose__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 20px 24px;
  background: #fff;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.fp-purpose__card:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.fp-purpose__icon {
  font-size: 28px;
  margin-bottom: 10px;
  color: var(--ui-accent-strong);
  background: var(--ui-accent-tint);
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
/* D19: カード文字サイズ拡大 */
.fp-purpose__label {
  font-size: 20px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin-bottom: 6px;
}
.fp-purpose__desc {
  font-size: 16px;
  color: var(--text-light, #666);
  line-height: 1.5;
}

/* --- トップページ レスポンシブ --- */
@media (max-width: 768px) {
  .fp-search {
    padding: 24px 0;
  }
  .fp-search__form {
    flex-direction: column;
    gap: 8px;
  }
  .fp-search__product-select select {
    width: 100%;
    border-right: 2px solid var(--ui-accent);
    border-radius: var(--radius);
  }
  .fp-search__input-wrap {
    width: 100%;
  }
  .fp-search__input {
    border-left: 2px solid var(--ui-accent);
    border-radius: var(--radius) 0 0 var(--radius);
  }

  .fp-purpose__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .fp-purpose__card {
    padding: 20px 12px;
  }
}

@media (max-width: 480px) {
  .fp-purpose__grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================ */
/* ナレッジ詳細 (single-knowledge.php) — T44 / T380              */
/* ------------------------------------------------------------ */
/* T380（再デザイン 2026-08・ガイド 5-3）でこの画面を組み直した。 */
/* 部品の意匠は T378 の共通パーツ（末尾）に集約してあるので、     */
/* ここが持つのは「この画面の骨格と余白」だけにしてある。         */
/*                                                              */
/* 余白のリズム（T380 で確定・8px グリッド）:                     */
/*   ・ブロック間      24px（ヘッダー → 目次 → 本文）             */
/*   ・セクション間    32px（区切り線の上下・本文見出し h2 の上） */
/*   ・記事末尾のブロック上 40px（フィードバック）                */
/*   ・カード内 padding 20px（4-3 に合わせる）                    */
/* ============================================================ */

/* --- レイアウト --- */
.sk-main {
  padding-bottom: 40px;
  position: relative;
  z-index: 1;
}
.sk-wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
  padding-bottom: 40px;
}
.sk-wrap--with-sidebar {
  display: flex;
  flex-direction: row;
  gap: 40px;
  padding-top: 24px;
}
.sk-wrap--with-sidebar .sk-article {
  width: calc(100% - 340px);
  flex: 1;
}
.sk-wrap--no-sidebar {
  padding-top: 24px;
}
.sk-wrap--no-sidebar .sk-article {
  max-width: 100%;
}

/* --- 記事ヘッダー --- */
.sk-header {
  margin-bottom: 24px;
}
.sk-header__title {
  font-size: var(--fs-28);
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 12px;
  color: var(--text-color, #333);
}
.sk-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
/* T380 (4-2): タグの意匠は T378 共通パーツ（.sk-tag / a.sk-tag）に集約済み。
   ここが持つのは並びだけにする。
   旧実装は 種類=ティール / 機能=グレー / 製品=緑 と塗り分けていたが、確定仕様は
   「地色は淡い青とグレーの 2 系統・種類ごとの色分けはしない」。打ち消された
   まま残すと次に触る人が色を戻してしまうため、宣言ごと削除した。 */
/* T421: 並びが「タイトル → 日付 → タグ」になったため、日付とタグのあいだの
   余白をこちらが持つ（旧並びではタグ側の margin-bottom が担っていた）。 */
.sk-header__dates {
  font-size: var(--fs-14);
  color: var(--text-muted, #888);
  margin-bottom: 8px;
}

/* --- 本文 --- */
/* T380: 見出し（h2 / h3 / h4）の意匠は T378 の「本文見出し（D70①）」へ集約済み。
   ここに同じ宣言を置くと、ナレッジだけ後から片方を直して基礎解説・用語集と
   ずれる（D70① がまさにその状態だった）ため、こちらからは外してある。 */
.sk-body {
  line-height: 1.8;
  font-size: var(--fs-16);
}
.sk-body p,
.gg-single-body p,
.gl-single-body p {
  margin: 0 0 16px;
}
.sk-body ul,
.gg-single-body ul,
.gl-single-body ul,
.sk-body ol,
.gg-single-body ol,
.gl-single-body ol {
  margin: 0 0 16px;
  padding-left: 24px;
}
.sk-body li,
.gg-single-body li,
.gl-single-body li {
  margin-bottom: 6px;
}
.sk-body img,
.gg-single-body img,
.gl-single-body img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius);
}

/* --- 区切り線 --- */
.sk-divider {
  border: none;
  border-top: 1px solid var(--border-color, #dee2e6);
  margin: 32px 0;
}

/* T380: アンケートは daext-helpful プラグインの出力（.daexthefu-*）に一本化されており、
   .sk-survey__* を出力するテンプレートはローカル・本番とも存在しない（実測 0 件）。
   意匠は T378 の 4-8 と、末尾の T380 セクション（記事末尾ブロックとしての枠）が持つ。 */

/* --- 関連ナレッジ（T380 / 4-3: カードへ）--- */
/* 4-3 のカードを流用する。DOM は変えずに ul > li をカード面にしている
   （li = カード、a = タイトル行、.sk-related__meta = 区切り線の下の説明行）。
   タイトルは 4-3 の 20px ではなく 16px にしてある。4-3 の 20px はトップの
   「目的から探す」のような短いラベル向けの値で、ナレッジのタイトルは
   1 枚で 3〜4 行になるため 20px では関連記事が本文より目立ってしまう。 */
.sk-related__title {
  font-size: var(--fs-20);
  font-weight: 700;
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.sk-related__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.sk-related__list li {
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--ui-accent);
  border-radius: var(--radius);
  background: #fff;
  transition: background-color 0.2s, border-color 0.2s;
}
.sk-related__list li:hover {
  background: var(--ui-accent-tint);
  border-color: var(--ui-accent-hover);
}
.sk-related__list a {
  font-size: var(--fs-16);
  font-weight: 700;
  color: var(--link-color, #034B77);
  text-decoration: none;
  line-height: 1.5;
}
.sk-related__list a:hover {
  text-decoration: underline;
}
/* 4-3 と同じく、タイトル行と説明行のあいだに区切り線を 1 本引く。
   説明行は下端に置き、タイトルの行数が違ってもカードの高さが揃うようにする。 */
.sk-related__meta {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--border-color);
  font-size: var(--fs-12);
  color: var(--text-muted, #888);
}

/* --- サイドバー（ナレッジ固有） --- */
/* 幅の実体は id セレクタの #sidebar{width:300px}（クラス側では詳細度で負ける）。
   ここは 2 カラム時に縮まないことだけを担保する。
   T380: 出力元の無い .sk-sidebar__section / __heading / __tag / __ver-item は削除した
   （ウィジェット化＝T213 で役目を終えており、実際に出るのは下の .esrij-kb-* 系）。 */
.sk-sidebar {
  flex-shrink: 0;
}

/* --- T213: widgets in #sidebar (Esrij_Widget_KB_*) --- */
#sidebar .esrij-kb-terms__list,
#sidebar .esrij-kb-related-manual__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
#sidebar .esrij-kb-terms__list li,
#sidebar .esrij-kb-related-manual__list li {
  border-bottom: 1px solid var(--border-color, #dee2e6);
  font-size: var(--fs-14);
  line-height: 1.5;
}
#sidebar .esrij-kb-terms__list li:last-child,
#sidebar .esrij-kb-related-manual__list li:last-child {
  border-bottom: none;
}
#sidebar .esrij-kb-terms__list a,
#sidebar .esrij-kb-related-manual__list a {
  display: block;
  padding: 10px 0;
  color: var(--link-color, #034B77);
  text-decoration: none;
}
#sidebar .esrij-kb-terms__list a:hover,
#sidebar .esrij-kb-related-manual__list a:hover {
  color: var(--ui-accent-hover);
}
/* version 等の非リンク表示 */
#sidebar .esrij-kb-terms__list li:not(:has(a)) {
  padding: 8px 0;
}
#sidebar .esrij-kb-terms__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
/* T380 (4-2): チップの地色・文字・角丸・ホバーは T378 共通パーツが持つ。
   ここは並び（.esrij-kb-terms__chips の flex）だけを残す。
   旧ホバーはタグと同じく緑（#d4edda / #155724）で、確定仕様と食い違っていた。 */

/* --- ナレッジ詳細 レスポンシブ --- */
/* 1 カラム化そのものは T379 の 1024px 指定が担当する（D78 / 4-7）。
   ここは狭い画面での文字の詰めだけを持つ。 */
@media (max-width: 768px) {
  .sk-header__title {
    font-size: var(--fs-24);
  }
}

/* ============================================================ */
/* 製品一覧 (page-products.php) — T41                           */
/* ============================================================ */

/* --- 1. ヘッダー --- */
/* D12/D13: ページヘッダー（h1統一位置） */
.pl-page-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 20px 0;
}
.pl-page-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-primary, #333);
  margin: 0;
}

/* D13: 検索ボックス（トップと同じデザイン） */
.pl-search {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px 20px 24px;
}
/* D26: サポート製品ページの検索ボックスを中央寄せに（ナレッジ一覧と統一） */
.pl-search__inner {
  max-width: 640px;
  margin: 0 auto;
}

/* --- 3. 主力製品カード --- */
.pl-featured {
  padding: 0 0 40px;
}
.pl-featured__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
.pl-featured__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.pl-featured__card {
  display: flex;
  flex-direction: column;
  padding: 28px 24px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  background: #fff;
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.pl-featured__card:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 8px rgba(var(--ui-accent-rgb),0.1);
}
.pl-featured__icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
  margin-bottom: 12px;
}
.pl-featured__name {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 8px;
}
.pl-featured__desc {
  font-size: 14px;
  color: var(--text-light, #666);
  margin: 0 0 16px;
  line-height: 1.6;
  flex: 1;
}
.pl-featured__link {
  font-size: 14px;
  color: var(--link-color);
  font-weight: 600;
}

/* --- 4. カテゴリー別テキストリスト --- */
.pl-list {
  padding: 40px 0;
  background: var(--bg-light, #f8f9fa);
}
.pl-list__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
.pl-list__title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 28px;
  text-align: center;
}
.pl-list__group {
  margin-bottom: 28px;
}
.pl-list__group-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.pl-list__group-title a {
  color: var(--text-color, #333);
  text-decoration: none;
}
.pl-list__group-title a:hover {
  color: var(--ui-accent-hover);
}
.pl-list__items {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px 24px;
}
.pl-list__items li a {
  display: block;
  padding: 6px 0;
  font-size: 14px;
  color: var(--link-color, #034B77);
  text-decoration: none;
  line-height: 1.5;
}
.pl-list__items li a:hover {
  color: var(--ui-accent-hover);
  text-decoration: underline;
}

/* --- 製品一覧 レスポンシブ --- */
@media (max-width: 768px) {
  .pl-featured__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .pl-list__items {
    grid-template-columns: repeat(2, 1fr);
  }
  .pl-page-header__title {
    font-size: 24px;
  }
}

@media (max-width: 480px) {
  .pl-list__items {
    grid-template-columns: 1fr;
  }
}

/* ============================================================ */
/* 404ページ (404.php) — T52                                     */
/* ============================================================ */

.nf-main {
  padding: 60px 0 80px;
}
.nf-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 20px;
}
.nf-content {
  text-align: center;
}
.nf-code {
  font-size: 72px;
  font-weight: 700;
  color: var(--gray-border, #ccc);
  margin: 0 0 8px;
  line-height: 1;
}
.nf-title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 16px;
}
.nf-message {
  font-size: 16px;
  color: var(--text-light, #666);
  line-height: 1.7;
  margin: 0 0 32px;
}

/* 404 検索ボックス */
.nf-search {
  display: flex;
  max-width: 480px;
  margin: 0 auto 40px;
}
.nf-search__input {
  flex: 1;
  padding: 10px 14px;
  font-size: 16px;
  border: 1px solid var(--border-color, #dee2e6);
  border-right: none;
  border-radius: var(--radius) 0 0 var(--radius);
  outline: none;
}
.nf-search__input:focus {
  border-color: var(--ui-accent);
}
.nf-search__btn {
  padding: 10px 20px;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: var(--ui-accent);
  border: 1px solid var(--ui-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  cursor: pointer;
  transition: background 0.2s;
}
.nf-search__btn:hover {
  background: var(--ui-accent-hover);
}

/* 404 ナビリンク */
.nf-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  justify-content: center;
  gap: 24px;
}
.nf-nav__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px 24px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.nf-nav__link:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 8px rgba(var(--ui-accent-rgb),0.1);
}
.nf-nav__icon {
  font-size: 28px;
  color: var(--ui-accent-strong);
}
.nf-nav__label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-color, #333);
}

/* 404 レスポンシブ */
@media (max-width: 480px) {
  .nf-code { font-size: 48px; }
  .nf-title { font-size: 24px; }
  .nf-nav__list {
    flex-direction: column;
    gap: 12px;
  }
  .nf-nav__link {
    flex-direction: row;
    padding: 14px 20px;
  }
}

/* ============================================================ */
/* 検索結果 (search.php) — T52                                   */
/* ============================================================ */

.sr-main {
  padding-bottom: 60px;
  max-width: 1240px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}

/* D12: 検索結果ページヘッダー（h1統一位置） */
.sr-page-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 20px 0;
}
.sr-page-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-primary, #333);
  margin: 0;
}

/* D14: 検索ボックス（トップと同じfp-search共通デザインに統一） */
.sr-search {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px 20px 24px;
}
/* D21: 詳細フィルターを含むため幅制約を緩和 */
.sr-search__inner {
  max-width: 940px;
  margin-inline: auto;
  padding-right: 20px;
  padding-left: 20px;
}

/* 詳細フィルター */
.sr-filters {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.sr-filters__item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.sr-filters__item label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-light, #666);
  white-space: nowrap;
}
.sr-filters__item select {
  padding: 6px 10px;
  font-size: 14px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  background: #fff;
}

/* --- 検索結果 --- */
.sr-results__inner {
  max-width: 940px;
  margin-inline: auto;
  padding-right: 20px;
  padding-left: 20px;
}
.sr-results__count {
  font-size: 16px;
  color: var(--text-light, #666);
  padding: 20px 0 12px;
  border-bottom: 1px solid var(--border-color, #dee2e6);
  margin: 0 0 4px;
}

/* 結果カード */
.sr-card {
  padding: 20px 0;
  border-bottom: 1px solid var(--border-color, #dee2e6);
}
.sr-card__title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px;
}
.sr-card__title a {
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.sr-card__title a:hover {
  text-decoration: underline;
}
.sr-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.sr-card__date {
  font-size: 14px;
  color: var(--text-muted, #888);
}
.sr-card__excerpt {
  font-size: 14px;
  color: var(--text-light, #666);
  line-height: 1.6;
  margin: 0;
}
/* T385: 抜粋の mark 色指定はここには置かない。D77（4-5 セクション）の
   .sr-card__title mark, .sr-card__excerpt mark … に一本化した。
   同じセレクタを 2 箇所に持つと将来また色が割れるため。 */

/* ページネーション */
.sr-pagination {
  padding: 32px 0;
  text-align: center;
}
.sr-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 4px;
}
.sr-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  font-size: 14px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  color: var(--link-color, #034B77);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.sr-pagination .page-numbers:hover {
  background: var(--bg-light, #f8f9fa);
  border-color: var(--ui-accent-hover);
}
.sr-pagination .page-numbers.current {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
}

/* 0件ヒット */
.sr-noresults {
  padding: 40px 0;
  text-align: center;
}
.sr-noresults__message {
  font-size: 18px;
  font-weight: 600;
  color: var(--text-color, #333);
  margin: 0 0 24px;
}
.sr-noresults__tips {
  text-align: left;
  max-width: 500px;
  margin: 0 auto 32px;
  background: var(--bg-light, #f8f9fa);
  padding: 20px 24px;
  border-radius: var(--radius);
}
.sr-noresults__tips h3 {
  font-size: 16px;
  margin: 0 0 12px;
}
.sr-noresults__tips ul {
  margin: 0;
  padding-left: 20px;
}
.sr-noresults__tips li {
  font-size: 14px;
  color: var(--text-light, #666);
  line-height: 1.8;
}
.sr-noresults__popular {
  text-align: left;
  max-width: 500px;
  margin: 0 auto;
}
.sr-noresults__popular h3 {
  font-size: 16px;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.sr-noresults__popular ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sr-noresults__popular li {
  border-bottom: 1px solid var(--border-color, #dee2e6);
  padding: 10px 0;
}
.sr-noresults__popular li a {
  font-size: 14px;
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.sr-noresults__popular li a:hover {
  text-decoration: underline;
}
.sr-noresults__product {
  font-size: 12px;
  color: var(--text-muted, #888);
  margin-left: 8px;
}

/* 検索結果 レスポンシブ */
@media (max-width: 768px) {
  .sr-search__row {
    flex-direction: column;
    gap: 8px;
  }
  .sr-search__product-select select {
    width: 100%;
    border-right: 1px solid var(--border-color, #dee2e6);
    border-radius: var(--radius);
  }
  .sr-search__input {
    border-radius: var(--radius) 0 0 var(--radius);
  }
  .sr-filters {
    flex-direction: column;
    gap: 8px;
  }
}

/* ============================================================ */
/* 用語集 一覧 (archive-glossary.php) — T52                      */
/* ============================================================ */

.gl-main {
  padding-bottom: 60px;
  max-width: 1240px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}

/* ヘッダー */
.gl-hero {
  background: var(--bg-light, #f8f9fa);
  padding: 40px 0;
  text-align: center;
  border-bottom: 1px solid var(--border-color, #dee2e6);
}
.gl-hero__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}
.gl-hero__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 12px;
}
.gl-hero__desc {
  font-size: 16px;
  color: var(--text-light, #666);
  line-height: 1.7;
  margin: 0;
}

/* 索引ナビ */
.gl-index {
  background: #fff;
  border-bottom: 1px solid var(--border-color, #dee2e6);
  padding: 16px 0;
  position: sticky;
  top: 0;
  z-index: 10;
}
.gl-index__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: center;
}
.gl-index__group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  margin-bottom: 4px;
}
.gl-index__group:last-child {
  margin-bottom: 0;
}
.gl-index__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--link-color, #034B77);
  text-decoration: none;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  transition: background 0.2s, border-color 0.2s;
}
.gl-index__link:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
  color: #fff;
}

/* 用語一覧 */
.gl-list__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}
.gl-list__section {
  padding-top: 32px;
}
.gl-list__heading {
  font-size: 24px;
  font-weight: 700;
  color: var(--ui-accent-strong);
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.gl-list__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.gl-list__card {
  display: block;
  padding: 16px 20px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.gl-list__card:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 8px rgba(var(--ui-accent-rgb),0.1);
}
.gl-list__term {
  font-size: 16px;
  font-weight: 600;
  color: var(--link-color, #034B77);
  margin: 0 0 4px;
}
.gl-list__desc {
  font-size: 14px;
  color: var(--text-light, #666);
  line-height: 1.5;
  margin: 0;
}
.gl-list__empty {
  text-align: center;
  padding: 60px 0;
  font-size: 16px;
  color: var(--text-light, #666);
}

/* 用語集 レスポンシブ */
@media (max-width: 768px) {
  .gl-list__grid {
    grid-template-columns: 1fr;
  }
  .gl-hero__title {
    font-size: 28px;
  }
}

/* ============================================================ */
/* 用語集 詳細 (single-glossary.php) — T52                       */
/* ============================================================ */

.gl-single-main {
  padding: 0 0 40px;
}
/* T423: ナレッジ／基礎解説と体裁を揃えるためサイドバーを持てる骨格にする。
   幅・列の値は基礎解説（.gg-single-*）と同じにしてある＝並べたときに揃う。 */
/* T423 fix (2026-08-26): 記事本体を白いカードに載せる。
   ナレッジ（.sk-wrap）・お知らせ（.ns-main）は背景白・角丸・影を持っていたが、
   用語集と基礎解説だけ地のグレーの上に直接置かれていて、記事の体裁が揃っていなかった。
   値はナレッジ（.sk-wrap）と同一にしてある＝並べたときにカードの見え方が一致する。 */
.gl-single-wrap {
  max-width: 1240px;
  margin: 16px auto 48px;
  padding: 24px 20px 40px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.gl-single-wrap--with-sidebar {
  display: flex;
  gap: 40px;
}
.gl-single-wrap--no-sidebar .gl-single-article {
  max-width: 800px;
}
.gl-single-article {
  flex: 1;
  min-width: 0;
}
.gl-single-sidebar {
  width: 300px;
  flex-shrink: 0;
}
/* T423: 公開日・更新日の併記（D80 / T415）。基礎解説と同じ見た目。 */
.gl-single-header__dates {
  font-size: 14px;
  color: var(--text-muted, #888);
  margin-bottom: 24px;
}
.gl-single-header__title {
  font-size: 28px; /* T215: ka-page-header__title と統一 */
  font-weight: 700;
  color: var(--text-color, #333);
  /* T423: 直下に日付行が付いたので、基礎解説と同じ 8px に詰める。 */
  margin: 0 0 8px;
}
.gl-single-body {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color, #333);
}
.gl-single-body p {
  margin: 0 0 16px;
}
.gl-single-divider {
  border: none;
  border-top: 1px solid var(--border-color, #dee2e6);
  margin: 32px 0;
}
.gl-single-related__title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.gl-single-related__list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.gl-single-related__list li {
  border-bottom: 1px solid var(--border-color, #dee2e6);
  padding: 10px 0;
}
.gl-single-related__list li a {
  font-size: 14px;
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.gl-single-related__list li a:hover {
  text-decoration: underline;
}
.gl-single-back {
  padding-top: 16px;
}
.gl-single-back a {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  font-weight: 600;
}
.gl-single-back a:hover {
  text-decoration: underline;
}

/* ============================================================ */
/* GIS基礎解説 一覧 (archive-gis_guide.php) — T52                */
/* ============================================================ */

.gg-main {
  padding-bottom: 60px;
  max-width: 1240px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}

/* ヘッダー */
.gg-hero {
  background: var(--bg-light, #f8f9fa);
  padding: 40px 0;
  text-align: center;
  border-bottom: 1px solid var(--border-color, #dee2e6);
}
.gg-hero__inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 20px;
}
.gg-hero__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 12px;
}
.gg-hero__desc {
  font-size: 16px;
  color: var(--text-light, #666);
  line-height: 1.7;
  margin: 0;
}

/* 記事カード一覧 */
.gg-list__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 32px 20px 0;
}
.gg-list__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.gg-list__card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  background: #fff;
  text-decoration: none;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.gg-list__card:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 8px rgba(var(--ui-accent-rgb),0.1);
}
.gg-list__thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--bg-light, #f8f9fa);
}
.gg-list__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gg-list__body {
  padding: 16px 20px;
  flex: 1;
}
.gg-list__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-color, #333);
  margin: 0 0 8px;
  line-height: 1.4;
}
.gg-list__excerpt {
  font-size: 14px;
  color: var(--text-light, #666);
  line-height: 1.6;
  margin: 0;
}
.gg-list__empty {
  text-align: center;
  padding: 60px 0;
  font-size: 16px;
  color: var(--text-light, #666);
}

/* ページネーション (共有スタイル) */
.gg-pagination {
  padding: 32px 0;
  text-align: center;
}
.gg-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 4px;
}
.gg-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  font-size: 14px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  color: var(--link-color, #034B77);
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.gg-pagination .page-numbers:hover {
  background: var(--bg-light, #f8f9fa);
  border-color: var(--ui-accent-hover);
}
.gg-pagination .page-numbers.current {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
}

/* GIS基礎解説 レスポンシブ */
@media (max-width: 768px) {
  .gg-list__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .gg-hero__title {
    font-size: 28px;
  }
}
@media (max-width: 480px) {
  .gg-list__grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================ */
/* GIS基礎解説 詳細 (single-gis_guide.php) — T52                 */
/* ============================================================ */

.gg-single-main {
  padding: 0 0 40px;
}
/* T423 fix (2026-08-26): 用語集と同じく、記事本体を白いカードに載せる。
   値はナレッジ（.sk-wrap）と同一。詳細は .gl-single-wrap のコメント参照。 */
.gg-single-wrap {
  max-width: 1240px;
  margin: 16px auto 48px;
  padding: 24px 20px 40px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.gg-single-wrap--with-sidebar {
  display: flex;
  gap: 40px;
}
.gg-single-wrap--no-sidebar .gg-single-article {
  max-width: 800px;
}
.gg-single-article {
  flex: 1;
  min-width: 0;
}
.gg-single-sidebar {
  width: 300px;
  flex-shrink: 0;
}
.gg-single-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 8px;
}
.gg-single-header__dates {
  font-size: 14px;
  color: var(--text-muted, #888);
  margin-bottom: 24px;
}
.gg-single-body {
  font-size: 16px;
  line-height: 1.8;
  color: var(--text-color, #333);
}
.gg-single-body p {
  margin: 0 0 16px;
}
.gg-single-divider {
  border: none;
  border-top: 1px solid var(--border-color, #dee2e6);
  margin: 32px 0;
}
.gg-single-related__title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.gg-single-related__list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.gg-single-related__list li {
  border-bottom: 1px solid var(--border-color, #dee2e6);
  padding: 10px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.gg-single-related__list li a {
  font-size: 14px;
  color: var(--link-color, #034B77);
  text-decoration: none;
}
.gg-single-related__list li a:hover {
  text-decoration: underline;
}
.gg-single-related__date {
  font-size: 12px;
  color: var(--text-muted, #888);
}
.gg-single-back {
  padding-top: 16px;
}
.gg-single-back a {
  font-size: 14px;
  color: var(--link-color);
  text-decoration: none;
  font-weight: 600;
}
.gg-single-back a:hover {
  text-decoration: underline;
}

/* GIS詳細 レスポンシブ */
@media (max-width: 768px) {
  .gg-single-wrap--with-sidebar {
    flex-direction: column;
    gap: 32px;
  }
  .gg-single-sidebar {
    width: 100%;
  }
  .gg-single-header__title {
    font-size: 24px;
  }
}

/* =====================================================
   お知らせ一覧 (na- prefix)  T60
   ===================================================== */

/* ページヘッダー（D06: バナー廃止→シンプルヘッダー） */
.na-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 24px 0 16px;
  border-bottom: 1px solid var(--border-color, #dee2e6);
  margin-bottom: 24px;
}
.na-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0;
}
.na-header__count {
  font-size: 14px;
  color: var(--text-light, #666);
  margin: 0;
}

/* 旧ヒーローセクション（非使用） */
.na-hero {
  display: none;
}
.na-hero__inner {
  max-width: 1240px;
  margin: 0 auto;
}
.na-hero__title {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px;
}
.na-hero__desc {
  font-size: 16px;
  color: rgba(255,255,255,0.85);
  margin: 0;
  line-height: 1.7;
}

/* D12: ページヘッダー（h1統一位置） */
.na-page-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 20px 0;
}
.na-page-header__inner {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.na-page-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-primary, #333);
  margin: 0;
}
.na-page-header__count {
  font-size: 14px;
  color: var(--text-secondary, #666);
}

.na-main {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px 20px 48px;
}

.na-wrap {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  padding: 20px 24px;
}

/* カード一覧 */
.na-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.na-card {
  padding: 20px 0;
  border-bottom: 1px solid var(--gray-200, #e5e5e5);
}

.na-card:first-child {
  border-top: 1px solid var(--gray-200, #e5e5e5);
}

.na-card--important {
  background: #fffde7;
  padding: 20px 16px;
  margin: 0 -16px;
  border-left: 3px solid var(--warning-border, #ffc107);
}

.na-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.na-card__date {
  font-size: 14px;
  color: var(--text-secondary, #666);
  letter-spacing: 0.02em;
}

.na-card__badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--radius);
  line-height: 1.4;
}

.na-card__badge--important {
  background: var(--danger, #dc3545);
  color: #fff;
}

.na-card__badge--external {
  background: var(--gray-200, #e5e5e5);
  color: var(--text-secondary, #666);
}

.na-card__title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0;
}

.na-card__title a {
  color: var(--text-primary, #333);
  text-decoration: none;
  transition: color 0.2s;
}

.na-card__title a:hover {
  color: var(--accent-teal, #29718d);
  text-decoration: underline;
}

.na-card__excerpt {
  font-size: 14px;
  color: var(--text-secondary, #666);
  margin-top: 6px;
  line-height: 1.6;
}

/* ページネーション */
.na-pagination {
  margin-top: 32px;
  text-align: center;
}

.na-pagination .page-numbers {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 4px;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
}

.na-pagination .page-numbers li {
  display: inline-block;
}

.na-pagination .page-numbers a,
.na-pagination .page-numbers span {
  display: inline-block;
  padding: 8px 14px;
  font-size: 14px;
  border: 1px solid var(--gray-200, #e5e5e5);
  border-radius: var(--radius);
  color: var(--text-primary, #333);
  text-decoration: none;
  transition: background 0.2s;
}

.na-pagination .page-numbers a:hover {
  background: var(--gray-100, #f5f5f5);
}

.na-pagination .page-numbers .current {
  background: var(--accent-teal, #29718d);
  color: #fff;
  border-color: var(--accent-teal, #29718d);
}

.na-empty {
  padding: 48px 0;
  text-align: center;
  color: var(--text-secondary, #666);
}

/* レスポンシブ */
@media (max-width: 768px) {
  .na-hero {
    padding: 32px 20px;
  }
  .na-hero__title {
    font-size: 28px;
  }
  .na-wrap {
    padding: 20px 16px;
  }
  .na-header {
    flex-direction: column;
    gap: 4px;
  }
  .na-card--important {
    margin: 0 -12px;
    padding: 12px;
  }
}

/* =====================================================
   お知らせ詳細 (ns- prefix)  T60
   ===================================================== */

.ns-main {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 20px 48px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}

.ns-wrap--with-sidebar {
  display: flex;
  gap: 40px;
}

.ns-wrap--no-sidebar {
  max-width: 860px;
}

.ns-article {
  flex: 1;
  min-width: 0;
}

/* 記事ヘッダー */
.ns-header {
  margin-bottom: 32px;
}

.ns-header__badge {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius);
  background: var(--col-Red-darker);
  color: #fff;
  margin-bottom: 8px;
}

.ns-header__title {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--text-primary, #333);
  margin: 0 0 8px;
}

.ns-header__dates {
  font-size: 14px;
  color: var(--text-secondary, #666);
}

.ns-header__separator {
  margin: 0 4px;
}

/* 本文 */
.ns-body {
  line-height: 1.8;
  font-size: 16px;
  color: var(--text-primary, #333);
}

.ns-body h2 {
  font-size: 24px;
  font-weight: 700;
  margin: 32px 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}

.ns-body h3 {
  font-size: 20px;
  font-weight: 700;
  margin: 24px 0 12px;
}

.ns-body p {
  margin: 0 0 16px;
}

.ns-body a {
  color: var(--link-color);
}

.ns-body img {
  max-width: 100%;
  height: auto;
}

.ns-divider {
  border: none;
  border-top: 1px solid var(--gray-200, #e5e5e5);
  margin: 32px 0;
}

/* シェアボタン: .share-box は末尾「子テーマ独自差分」セクションに集約 */

/* サイドバー */
.sidebar {
  position: relative;
}

/* T391: 追従位置を support.js の実測配信（--esrij-sticky-top）に一本化した。
   旧実装は top:124px（追従グローバルナビが隠れている状態）と、.sidebar.active 時の
   top:199px（ナビが出ている状態）を**別々にハードコード**し、さらに D58①（T333）が
   その両方を 134px / 209px へ +10px していた。値が 4 か所に散り、しかも
   「クローム下端に密着している」という前提自体が実測と食い違っていた
   （実測: クローム下端は 100px / 175px。つまり 124/199 の時点で 24px 浮いており、
   D58① の 10px と合わせて実際の余白は 34px）。

   --esrij-sticky-top は 100px / 175px を状態に応じて配信するため、2 状態を
   書き分ける必要がなくなり、.sidebar.active の分岐ごと不要になる。
   当初の余白 34px は**当時の見た目をそのまま維持するための値**だった（顧客が
   2026-07-10 に受け入れた見え方を 1px も変えない）。内訳は D58① の 10px ＋
   旧実装が持っていた 24px の下駄。 */
/* T400: 基礎解説（.gg-single-main）も同じ追従に乗せる。目次をサイドバーへ戻した結果、
   ここだけ追従しないと 3 系統で見え方が揃わない。active01 の付与は support.js 側。 */
/* T412: 余白を親子タブと同じ --esrij-sticky-gap（10px）に統一する。
   34px を残していたのは「サイドバーには関連タグしか入っておらず、親子タブとは
   離れた位置にあった」ためだが、T400 で目次がサイドバーへ戻り、**親子タブと目次が
   真横に並ぶ配置になった**。この状態では 24px の差がそのまま段差として見える
   （本番実測: 追従時にタブ上端 185px / 目次上端 209px）。並ぶ以上は同じ値が正。 */
/* T423: 用語集詳細（.gl-single-main）も同じ追従に乗せる。 */
.sk-main.active01 .sidebar-inner,
.ns-main.active01 .sidebar-inner,
.gg-single-main.active01 .sidebar-inner,
.gl-single-main.active01 .sidebar-inner {
  position: sticky;
  left: 0;
  top: calc(var(--esrij-sticky-top, 100px) + var(--esrij-sticky-gap, 10px));
  /* T422: transition: top 0.3s ease を外した。理由は親子タブ（document-nav.css）と
     同じで、--esrij-sticky-top 自体が 0.3s かけて動くため遷移が二重になり、
     スクロールを止めたあとに 5〜10px の「もう一段」が出ていた。 */
}

@media (max-width: 768px) {
  .sk-main.active01 .sidebar-inner,
  .ns-main.active01 .sidebar-inner,
  .gg-single-main.active01 .sidebar-inner,
  .gl-single-main.active01 .sidebar-inner {
    position: unset;
  }
}

.ns-sidebar {
  width: 280px;
  flex-shrink: 0;
}

.ns-sidebar__section {
  margin-bottom: 24px;
}

.ns-sidebar__heading {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
  color: var(--text-primary, #333);
}

.ns-sidebar__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ns-sidebar__item {
  padding: 8px 0;
  border-bottom: 1px solid var(--gray-100, #f5f5f5);
}

.ns-sidebar__item a {
  color: var(--text-primary, #333);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.5;
  display: block;
}

.ns-sidebar__item a:hover {
  color: var(--ui-accent-hover);
}

.ns-sidebar__date {
  font-size: 12px;
  color: var(--text-secondary, #666);
  display: block;
  margin-top: 2px;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .ns-wrap--with-sidebar {
    flex-direction: column;
    gap: 32px;
  }
  .ns-sidebar {
    width: 100%;
  }
  .ns-header__title {
    font-size: 24px;
  }
}

/* =====================================================
   ナレッジ一覧 (ka- prefix)  T61
   ===================================================== */

/* D12: ページヘッダー（h1統一位置） */
.ka-page-header {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 20px 0;
}
.ka-page-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-primary, #333);
  margin: 0;
}

/* D14: 検索ボックス + 詳細フィルター */
.ka-search {
  max-width: 1240px;
  margin: 0 auto;
  /* T135 Phase B2: 検索ボタン行と結果件数の間に余白追加 */
  padding: 16px 20px 24px;
}
.ka-search__inner {
  max-width: 100%;
}

.ka-main {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px 48px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}

/* 詳細フィルターエリア */
.ka-filters {
  background: var(--gray-100, #f5f5f5);
  padding: 20px;
  border-radius: var(--radius);
  margin-top: 16px;
  margin-bottom: 0;
}

.ka-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.ka-filters__item {
  flex: 1;
  min-width: 160px;
}

.ka-filters__item label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary, #666);
  margin-bottom: 4px;
}

.ka-filters__item select {
  width: 100%;
  padding: 8px 12px;
  font-size: 14px;
  border: 1px solid var(--gray-300, #ccc);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text-primary, #333);
  appearance: auto;
}

.ka-filters__submit {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.ka-filters__btn {
  padding: 8px 24px;
  font-size: 14px;
  font-weight: 600;
  background: var(--ui-accent);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: opacity 0.2s;
}

.ka-filters__btn:hover {
  opacity: 0.85;
}

.ka-filters__clear {
  font-size: 14px;
  color: var(--text-secondary, #666);
  text-decoration: underline;
}

/* 結果エリア */
.ka-results__inner {
  max-width: 940px;
  margin-inline: auto;
  padding-right: 20px;
  padding-left: 20px;
}

.ka-results__header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 16px;
}

.ka-results__title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary, #333);
}

.ka-results__count {
  font-size: 14px;
  color: var(--text-secondary, #666);
}

.ka-results__filtered {
  color: var(--ui-accent);
  font-weight: 600;
}

/* カード一覧 */
.ka-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ka-card {
  padding: 16px 0;
  border-bottom: 1px solid var(--gray-200, #e5e5e5);
}

.ka-card:first-child {
  border-top: 1px solid var(--gray-200, #e5e5e5);
}

.ka-card__title {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  margin: 0 0 6px;
}

.ka-card__title a {
  color: var(--text-primary, #333);
  text-decoration: none;
}

.ka-card__title a:hover {
  color: var(--ui-accent-hover);
  text-decoration: underline;
}

.ka-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.ka-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius);
  line-height: 1.4;
  text-decoration: none;
}

.ka-tag--type {
  background: #e3f2fd;
  color: #1565c0;
}

.ka-tag--product {
  background: #e8f5e9;
  color: #2e7d32;
}

.ka-tag--product:hover {
  background: #c8e6c9;
}

.ka-card__date {
  font-size: 12px;
  color: var(--text-secondary, #666);
}

.ka-card__excerpt {
  font-size: 14px;
  color: var(--text-secondary, #666);
  margin-top: 4px;
  line-height: 1.6;
}

/* ページネーション */
.ka-pagination {
  margin-top: 32px;
  text-align: center;
}

.ka-pagination .page-numbers {
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 4px;
  padding: 0;
  margin: 0;
  flex-wrap: wrap;
}

.ka-pagination .page-numbers li {
  display: inline-block;
}

.ka-pagination .page-numbers a,
.ka-pagination .page-numbers span {
  display: inline-block;
  padding: 8px 14px;
  font-size: 14px;
  border: 1px solid var(--gray-200, #e5e5e5);
  border-radius: var(--radius);
  color: var(--text-primary, #333);
  text-decoration: none;
  transition: background 0.2s;
}

.ka-pagination .page-numbers a:hover {
  background: var(--gray-100, #f5f5f5);
}

.ka-pagination .page-numbers .current {
  background: var(--ui-accent);
  color: #fff;
  border-color: var(--ui-accent);
}

/* 0件 */
.ka-empty {
  padding: 48px 0;
  text-align: center;
}

.ka-empty__message {
  font-size: 16px;
  color: var(--text-primary, #333);
  margin-bottom: 8px;
}

.ka-empty__hint {
  font-size: 14px;
  color: var(--text-secondary, #666);
  margin-bottom: 16px;
}

.ka-empty__reset {
  display: inline-block;
  padding: 8px 24px;
  font-size: 14px;
  background: var(--gray-100, #f5f5f5);
  color: var(--text-primary, #333);
  border-radius: var(--radius);
  text-decoration: none;
}

.ka-empty__reset:hover {
  background: var(--gray-200, #e5e5e5);
}

/* レスポンシブ */
@media (max-width: 768px) {
  .ka-filters__row {
    flex-direction: column;
    gap: 8px;
  }
  .ka-filters__item {
    min-width: 100%;
  }
  .ka-filters__submit {
    width: 100%;
  }
  .ka-filters__btn {
    flex: 1;
  }
  .ka-results__header {
    flex-direction: column;
    gap: 4px;
  }
  .ka-card__meta {
    gap: 4px;
  }
}

/* =====================================================
   タクソノミーアーカイブ
   T215: 独自 ta- プレフィクスを撤廃し ka- 規約に統一。
   term 説明文用の .ka-term-description のみ追加。
   ===================================================== */

.ka-term-description {
  font-size: 14px;
  color: var(--text-secondary, #666);
  margin: 0 0 16px;
  line-height: 1.7;
}

/* --- ヒーローイメージ --- */
.fp-hero {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  min-height: 160px;
  display: flex;
  align-items: center;
}
.fp-hero--no-image {
  background-color: #333;
}
.fp-hero__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2em 1.5em;
  position: relative;
  z-index: 1;
}
.fp-hero__title {
  color: #fff;
  font-size: 28px;
  font-weight: bold;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

/* --- 検索エリアの調整 --- */
.fp-search__form {
  display: flex;
  justify-content: center;
  gap: 16px;
  max-width: 900px;
  margin: 0 auto;
  align-items: stretch;
}
.fp-search__product-select {
  flex-shrink: 0;
}
.fp-search__product-select select {
  height: 52px;
  font-size: 16px;
  padding: 0 2em 0 1em;
  border: 2px solid var(--ui-accent);
  border-radius: var(--radius);
  background-color: #fff;
  cursor: pointer;
}
.fp-search__product-select select:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb),0.2);
}
.fp-search__input-wrap {
  display: flex;
  flex: 1;
}
.fp-search__input {
  flex: 1;
  height: 52px;
  font-size: 16px;
  padding: 0 1em;
  border: 2px solid var(--ui-accent);
  border-right: none;
  border-radius: var(--radius) 0 0 var(--radius);
  background-color: #fff;
  color: #333;
  min-width: 350px;
  outline: none;
}
.fp-search__input:focus {
  box-shadow: inset 0 0 0 1px rgba(var(--ui-accent-rgb),0.3);
}
.fp-search__input::placeholder {
  color: #999;
}
.fp-search__btn {
  height: 52px;
  padding: 0 2em;
  font-size: 16px;
  font-weight: 700;
  background: var(--ui-accent);
  color: #fff;
  border: 2px solid var(--ui-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  cursor: pointer;
  transition: background-color 0.2s;
}
.fp-search__btn:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}

/* --- ヘッダー右上ボタン --- */
/* D01: fp-header-buttons 廃止 → 親テーマ __btnm に移行 */
.fp-header-buttons {
  display: none;
  gap: 0;
}
.fp-header-buttons__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  height: 45px;
  min-width: 160px;
  color: #fff;
  text-decoration: none;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.fp-header-buttons__btn--trial {
  background-color: #008b7b;
}
.fp-header-buttons__btn--trial:hover {
  background-color: #007368;
}
.fp-header-buttons__btn--contact {
  background-color: #003c52;
}
.fp-header-buttons__btn--contact:hover {
  background-color: #002d3e;
}

/* ============================================================ */
/* 共通: セクションタイトル アイコン                              */
/* ============================================================ */
.fp-section-icon {
  font-size: 24px;
  vertical-align: middle;
  margin-right: 6px;
  color: var(--ui-accent-strong);
}
.fp-news__icon {
  font-size: 18px;
  vertical-align: middle;
  margin-right: 6px;
}
/* サポートカード アイコン */
.ps-support-card__icon {
  font-size: 32px;
  color: var(--ui-accent-strong);
  margin-bottom: 8px;
  display: block;
}

/* ============================================================ */
/* 製品ページ 白カード処理                                        */
/* ============================================================ */
.pl-list {
  background: #fff;
  padding-top: 40px;
  padding-bottom: 40px;
}
.pl-featured {
  padding: 40px 0;
}
.ps-support-bar {
  background: var(--bg-light, #f8f9fa);
  border-top: 1px solid var(--border-color, #dee2e6);
}
.ps-support-card {
  background: #fff;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  text-align: center;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ps-support-card .ps-btn-outline {
  margin-top: auto;
}

/* ============================================================ */
/* お問い合わせページ (ct- prefix)                                */
/* ============================================================ */
.ct-main {
  padding-bottom: 60px;
}
.ct-wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding: 32px 20px 48px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  margin-top: 16px;
  margin-bottom: 48px;
}
.ct-header {
  margin-bottom: 32px;
}
.ct-header__title {
  font-size: 28px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 12px;
}
.ct-header__lead {
  font-size: 16px;
  color: var(--text-light, #666);
  line-height: 1.7;
}

/* ページ内ナビ */
.ct-pagenav {
  margin-bottom: 40px;
}
.ct-pagenav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ct-pagenav__list li a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ui-accent);
  background: #fff;
  border: 2px solid var(--ui-accent);
  border-radius: var(--radius);
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.ct-pagenav__list li a .material-symbols-outlined {
  font-size: 18px;
}
.ct-pagenav__list li a:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}

/* セクション */
.ct-section {
  margin-bottom: 48px;
  padding-top: 24px;
  border-top: 2px solid var(--ui-accent-strong);
}
.ct-section__title {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ct-section__icon {
  font-size: 24px;
  color: var(--ui-accent-strong);
}

/* ブロック */
.ct-block {
  margin-bottom: 28px;
  padding: 20px 24px;
  background: var(--bg-light, #f8f9fa);
  border-radius: var(--radius);
}
.ct-block__title {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-color, #333);
  margin: 0 0 12px;
}
.ct-block p {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 8px;
}
.ct-block__note {
  margin: 8px 0 12px 0;
  padding-left: 20px;
  font-size: 14px;
  color: var(--text-light, #666);
}
.ct-block__sub {
  font-size: 14px;
  color: var(--text-muted, #888);
}
.ct-block__warning {
  font-size: 14px;
  color: #c62828;
  font-weight: 600;
}
.ct-block__actions {
  margin-top: 16px;
}

/* ボタン */
.ct-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--radius);
  transition: background 0.2s, box-shadow 0.2s;
}
.ct-btn .material-symbols-outlined {
  font-size: 20px;
}
.ct-btn--primary {
  background: var(--ui-accent);
  color: #fff;
  border: 2px solid var(--ui-accent);
}
.ct-btn--primary:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
  color: #fff;
  text-decoration: none;
}
.ct-btn--outline {
  background: #fff;
  color: var(--ui-accent);
  border: 2px solid var(--ui-accent);
}
.ct-btn--outline:hover {
  background: var(--ui-accent-hover);
  color: #fff;
  text-decoration: none;
}

/* アコーディオン */
.ct-accordion {
  margin-top: 16px;
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  overflow: hidden;
}
.ct-accordion__trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  font-size: 16px;
  font-weight: 600;
  color: var(--ui-accent);
  cursor: pointer;
  background: #fff;
  list-style: none;
  transition: background 0.2s;
}
.ct-accordion__trigger:hover {
  background: var(--bg-light, #f8f9fa);
}
.ct-accordion__trigger::-webkit-details-marker { display: none; }
.ct-accordion__trigger .material-symbols-outlined {
  font-size: 20px;
}
.ct-accordion__body {
  padding: 20px 24px;
  border-top: 1px solid var(--border-color, #dee2e6);
}

/* ステップリスト */
.ct-steps {
  padding-left: 20px;
}
.ct-steps li {
  margin-bottom: 16px;
  font-size: 16px;
  line-height: 1.7;
}
.ct-steps li strong {
  display: block;
  margin-bottom: 4px;
}
.ct-steps li p {
  font-size: 14px;
  margin: 4px 0;
}

/* 電話番号 */
.ct-phone-number {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 24px;
  font-weight: 700;
  color: var(--link-color);
  margin: 4px 0;
}
.ct-phone-number .material-symbols-outlined {
  font-size: 24px;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .ct-pagenav__list {
    flex-direction: column;
  }
  .ct-pagenav__list li a {
    width: 100%;
    justify-content: center;
  }
  .ct-block {
    padding: 16px;
  }
}

/* ============================================================
   子テーマ独自差分（T111 / 親テーマ継承ポリシー準拠）

   親テーマ更新時の差分マージを容易にするため、独自カスタムは
   このセクションに集約する。原則:
   - セレクタ基点は .support-nav などの独自クラス（.post-list に
     ぶら下げない）
   - 親テーマ既存機構（ポジショニング・追従動作・admin-bar対応）は
     上書きしない
   - 親テーマ更新時はこのセクションの有効性を検査すれば差分反映が
     完結する構造を維持する
   ============================================================ */

/* --- support-nav（D02/D10）: 色・ボタン・WPメニュー連携 --- */
.support-nav {
  background-color: var(--ui-accent-strong);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.support-nav .support-nav__list li a {
  transition: background-color 0.2s;
}
.support-nav .support-nav__list li a:hover,
.support-nav .support-nav__list li.current-menu-item a {
  background: rgba(255, 255, 255, 0.15);
  text-decoration: none;
}
/* D02: アウトラインボタン — WPメニューCSSクラス -otbtn / support-nav__item--outline */
.support-nav .support-nav__list li.support-nav__item--outline a,
.support-nav .support-nav__list li.-otbtn a {
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: var(--radius);
  margin: 2px 4px;
  background-color: var(--ui-accent);
}
.support-nav .support-nav__list li.support-nav__item--outline a:hover,
.support-nav .support-nav__list li.-otbtn a:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.25);
}
/* WPメニュー: 外部リンクアイコン非表示 */
.support-nav .support-nav__list li.menu-item-type-custom a[target="_blank"]::after {
  content: "";
}
/* 親テーマ .post-list の縦区切り線を非表示（サポートナビは独自デザイン） */
.support-nav.post-list > ul > li:not(:last-child)::after {
  display: none;
}
/* support-nav モバイル: ___pt-container 経由で親テーマのタブ化CSSが効く。
   以下は -support バリアント固有の色調整のみ */
@media (max-width: 1100px) {
  /* 固定ヘッダー(70-100px)の下に潜り込まないようコンテナにオフセット */
  .___pt-container.-support {
    padding-top: clamp(70px, 9.1vw, 100px);
    position: relative;
    z-index: 2;
    background-color: #fff;
  }
  /* -- admin-bar補正は別メディアクエリで(≤782pxのみ。下記参照) -- */
  /* 親テーマ customize-support の translateY(32px) はデスクトップ(absolute)用。
     モバイル(static配置)では不要なので打ち消す */
  body.customize-support .___pt-container.-support > .post-list.support-nav {
    transform: none;
  }
  .___pt-container.-support > .post-list.support-nav {
    background-color: transparent;
    border-bottom: none;
    height: auto;
    padding-top: 15px;
    padding-bottom: 0;
    margin-top: 0;
  }
  .___pt-container.-support > .post-list ul {
    margin-top: 0;
    padding-bottom: 15px;
  }
  /* 通常項目を先（左）、-otbtn を後（右）に — デスクトップと同じ並び順 */
  .___pt-container.-support > .post-list ul li {
    order: 1;
  }
  .___pt-container.-support > .post-list ul li.-otbtn {
    order: 2;
  }
  .___pt-container.-support > .post-list ul a {
    color: var(--ui-accent-strong);
  }
  .___pt-container.-support > .post-list ul li.-otbtn a {
    background-color: var(--ui-accent);
    color: #fff;
    border-color: var(--ui-accent);
  }
  /* モバイルでは .post-list が static なので絶対配置用マージン不要 */
  .breadcrumb {
    margin-top: 0;
  }
  .fp-main {
    margin-top: 0;
  }
  /* 検索入力: min-width がビューポート幅を超えるのを防止 */
  .fp-search__input {
    min-width: 0;
  }
}
/* WP管理バー補正: ≤782pxのみ。
   理由: ≤782pxではbodyが46px下がるがheaderはtop:0のまま→46px引く必要あり。
   ≥783pxではbody・header両方が32px下がる→相殺されるため補正不要 */
@media (max-width: 782px) {
  body.admin-bar .___pt-container.-support {
    padding-top: calc(clamp(70px, 9.1vw, 100px) - 46px);
  }
}

.ns-body .messageBox,
.sk-body .messageBox,
.gg-single-body .messageBox,
.gl-single-body .messageBox {
  border: 1px solid;
  margin: 10px 0px;
  padding:15px 15px 15px 15px;
  background-repeat: no-repeat;
  background-position: 10px center;
}

.ns-body .messageBox.info,
.sk-body .messageBox.info,
.gg-single-body .messageBox.info,
.gl-single-body .messageBox.info {
  background-color: #e6f2f8;
  border-color:#9fc7db;
}

.ns-body .messageBox.success,
.sk-body .messageBox.success,
.gg-single-body .messageBox.success,
.gl-single-body .messageBox.success {
  background-color: #eff7e2;
  border-color:#adca7e;
}

.ns-body .messageBox.warning,
.sk-body .messageBox.warning,
.gg-single-body .messageBox.warning,
.gl-single-body .messageBox.warning {
  background-color: #f9f1d5;
  border-color:#d3bf70;
}

.ns-body .messageBox.error,
.sk-body .messageBox.error,
.gg-single-body .messageBox.error,
.gl-single-body .messageBox.error {
  background-color: #f8e1e1;
  border-color:#e4a5a5;
}

/* styling for code */
.ns-body code,
.ns-body samp,
.ns-body pre,
.sk-body code,
.gg-single-body code,
.gl-single-body code,
.sk-body samp,
.gg-single-body samp,
.gl-single-body samp,
.sk-body pre,
.gg-single-body pre,
.gl-single-body pre {
  border:1px solid #ACC2D1;
  font-size: 12px;
  background-color:#F0F6FA;
  padding:10px;
  display:block;
  margin: 0 0 16px;
}

.sk-body pre code,
.gg-single-body pre code,
.gl-single-body pre code {
  border: 0 none;
  background-color:none;
  padding:0;
  display:inline;
  margin: 0;
}

.ns-body table,
.sk-body :not(.syntaxhighlighter) table,
.gg-single-body :not(.syntaxhighlighter) table,
.gl-single-body :not(.syntaxhighlighter) table {
  clear: both;
  margin: 10px 0;
  width: 100%;
  padding: 0;
  border-collapse: collapse;
  border: none;
}

.ns-body table tr th,
.sk-body table tr th,
.gg-single-body table tr th,
.gl-single-body table tr th {
  padding: 8px 10px;
  position: relative;
  text-align: center;
  vertical-align: middle;
  color: #ffffff;
  font-weight: bold;
  background-color: #003c52;
  background-image: none;
  border-left: 1px solid #ffffff;
  border-top: 1px solid #ffffff;
}

.ns-body table tr:nth-child(odd),
.sk-body table tr:nth-child(odd),
.gg-single-body table tr:nth-child(odd),
.gl-single-body table tr:nth-child(odd) {
  background-color: #e2e2e2;
}

.ns-body table tr:nth-child(even),
.sk-body table tr:nth-child(even),
.gg-single-body table tr:nth-child(even),
.gl-single-body table tr:nth-child(even) {
  background-color: #ededed;
}

.ns-body table td,
.sk-body table td,
.gg-single-body table td,
.gl-single-body table td {
  text-align: left;
  padding: 8px 10px;
  border: none;
  border-left: 1px solid #fff;
  border-top: 1px solid #fff;
  vertical-align: top;
}

.ns-body ul,
.sk-body ul,
.gg-single-body ul,
.gl-single-body ul,
.ns-body ol,
.sk-body ol,
.gg-single-body ol,
.gl-single-body ol {
  margin: 0 0 20px;
  padding: 0 0 0 30px;
  line-height: 1.7rem;
} 

.ns-body ul,
.sk-body ul,
.gg-single-body ul,
.gl-single-body ul {
  list-style: disc;
}

.ns-body ol,
.sk-body ol,
.gg-single-body ol,
.gl-single-body ol {
  list-style: decimal;
}

.ns-body strong,
.sk-body strong,
.gg-single-body strong,
.gl-single-body strong {
  font-weight: bold;
}

.ns-body h4,
.sk-body h4,
.gg-single-body h4,
.gl-single-body h4 {
  font-weight: bold;
}

/* ============================================================
   T112: 製品詳細デザイン微調整（2026-04-15）
   本家 Esri Support の製品ページに寄せるための独自差分。
   親テーマ・既存 .ps- プレフィクス CSS を上書きする形で末尾集約。
   親テーマ継承ポリシー（.claude/rules/parent-theme-policy.md）準拠。
   ============================================================ */

/* T112: ヒーロー 中央寄せ・ロゴを大きく・余白広めに（US参考サイト準拠） */
.ps-header {
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 64px 0 24px;
  gap: 16px;
}
.ps-header__icon {
  width: 80px;
  height: 80px;
}
.ps-header__text {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ps-header__title {
  font-size: 36px;
  margin: 0;
}
.ps-header__desc {
  font-size: 16px;
  color: #444;
  line-height: 1.6;
  margin-top: 8px;
  max-width: 640px;
}

/* T112: 検索ボックス 中央寄せ（US参考サイト準拠） */
.ps-search {
  display: flex;
  justify-content: center;
  margin: 16px auto 40px;
}
.ps-search__form {
  width: 100%;
  max-width: 560px;
}

/* T112: 3カラム見出しを黒文字＋細下線に（参考サイト準拠）
   親テーマ common/css/template.css L88-92 の `main.-page h2:not(.__ptitle)`
   が全 h2 に緑背景＋白文字を強制するため、同じ特異度で明示的に上書き。 */
main.-page h2.ps-articles__heading:not(.__ptitle) {
  background-color: transparent;
  color: #1a1a1a;
  border-bottom: 1px solid #d0d0d0;
  font-size: 18px;
  font-weight: 700;
  padding: 0 0 10px;
  margin: 0 0 16px;
}
/* T112: 参考資料・エクステンションのセクションタイトルも同様 */
main.-page h2.ps-section__title:not(.__ptitle),
main.-page h2.ps-support-bar__title:not(.__ptitle) {
  background-color: transparent;
  color: #1a1a1a;
  padding: 0;
}
main.-page h2.ps-section__title:not(.__ptitle) {
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5e5e5;
}
main.-page h2.ps-support-bar__title:not(.__ptitle) {
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  margin: 0 0 12px;
}
/* T112: 動的メニュー／リソースカードの h3 は親テーマの下線を消す */
main.-page h3.ps-dynamic-menu__title,
main.-page h3.ps-resource-card__title,
main.-page .ps-richtext h3 {
  border-bottom: 0;
  padding: 0;
}

/* T112: 動的メニューをカード式に刷新 */
.ps-dynamic-menu {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  margin: 56px 0 64px;
  padding-top: 40px;
  border-top: 1px solid #eee;
}
/* 既存の .ps-dynamic-menu__item は残しつつ、新しい .ps-dynamic-menu__card を追加定義 */
.ps-dynamic-menu__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px 22px 22px;
  border: 1px solid #e0e0e0;
  border-radius: var(--radius);
  background: #fff;
  color: #1a1a1a;
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  position: relative;
  min-height: 170px;
}
.ps-dynamic-menu__card:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 4px 14px rgba(var(--ui-accent-rgb), 0.12);
  transform: translateY(-2px);
}
.ps-dynamic-menu__icon {
  display: inline-flex;
  width: 36px;
  height: 36px;
  color: var(--ui-accent-strong);
  margin-bottom: 12px;
}
.ps-dynamic-menu__icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.ps-dynamic-menu__title {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 8px;
  line-height: 1.4;
}
.ps-dynamic-menu__desc {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin: 0 0 16px;
  white-space: pre-line;
  flex-grow: 1;
}
.ps-dynamic-menu__arrow {
  font-size: 16px;
  font-weight: 700;
  color: var(--link-color);
  margin-top: auto;
}

/* T112: セクション間余白・区切り線（参考資料・エクステンション） */
.ps-section + .ps-section {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid #eee;
}

/* T112: リッチエディタ内のカード風表現（h3 / ul > li） */
.ps-richtext h3 {
  font-size: 20px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 24px 0 10px;
  padding-top: 14px;
  border-top: 1px solid #e5e5e5;
}
.ps-richtext h3:first-child {
  padding-top: 0;
  border-top: 0;
  margin-top: 0;
}
.ps-richtext ul {
  padding-left: 1.2em;
}
.ps-richtext li {
  margin-bottom: 6px;
  line-height: 1.7;
}

/* T112: Esri ブログ固定カードのトーンを新カード式に揃える（維持） */
.ps-resource-card {
  border: 1px solid #e0e0e0;
  border-radius: var(--radius);
  padding: 22px 20px;
  background: #fff;
}
.ps-resource-card__title {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 6px;
}
.ps-resource-card__desc {
  font-size: 14px;
  color: #555;
  margin: 0 0 12px;
  line-height: 1.6;
}
.ps-resource-card__link {
  font-size: 14px;
  color: var(--link-color);
  font-weight: 700;
  text-decoration: none;
}

/* T112: レスポンシブ */
@media (max-width: 768px) {
  .ps-dynamic-menu {
    grid-template-columns: repeat(2, 1fr);
  }
  .ps-header__icon {
    width: 64px;
    height: 64px;
  }
  .ps-header__title {
    font-size: 28px;
  }
}
@media (max-width: 480px) {
  .ps-dynamic-menu {
    grid-template-columns: 1fr;
  }
}
/* === T112 差分 ここまで === */

/* ============================================================
   T100: SNSシェアボタン（TBD-013 解決 / PHP直書き方式）
   template-parts/share-buttons.php と連動。
   対象ページ: single-knowledge.php / single-news.php 等の記事末尾。
   プレフィクス: .share-box（独立クラス・親テーマ継承ポリシー準拠）。
   ============================================================ */
/* T380: 上下の余白は持たない。記事末尾のブロックの間隔は区切り線の
   margin（32px）に一本化してある（共有ブロックだけ独自 margin を持っていて、
   上下が非対称に見えていた）。 */
.share-box {
  margin: 0;
}
.share-box__title {
  font-size: var(--fs-14);
  font-weight: 700;
  margin: 0 0 12px;
  color: var(--text-primary, #333);
}
.share-box__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.share-box__item {
  margin: 0;
}
.share-box__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: var(--fs-14);
  font-weight: 600;
  line-height: 1.2;
  border-radius: var(--radius);
  border: 1px solid transparent;
  text-decoration: none;
  color: #fff;
  background: #555;
  cursor: pointer;
  transition: opacity 0.2s, background-color 0.2s;
  font-family: inherit;
}
.share-box__btn:hover {
  opacity: 0.85;
  text-decoration: none;
  color: #fff;
}
.share-box__btn:focus-visible {
  outline: 2px solid var(--ui-accent);
  outline-offset: 2px;
}
.share-box__icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
}
.share-box__icon svg {
  width: 100%;
  height: 100%;
}
.share-box__btn--x {
  background: #000;
}
.share-box__btn--facebook {
  background: #1877f2;
}
.share-box__btn--line {
  background: #06c755;
}
/* T421: 白抜き（白地＋グレー枠）をやめ、他の 3 つと同じ塗りボタンに揃える。
   顧客決定（2026-08-25）＝「白抜きにならないよう色を変更」。地色は主役色
   --ui-accent（#00619B）＝大滝様デザイン案から採取した色と一致する。
   コピー完了時の色は「押した後に色が変わる」ことが伝わるよう濃い側へ振る。 */
.share-box__btn--copy {
  background: var(--ui-accent);
  color: #fff;
  border-color: transparent;
}
.share-box__btn--copy:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}
.share-box__btn--copy.is-copied {
  background: var(--ui-accent-hover);
  color: #fff;
  border-color: var(--ui-accent-hover);
}
@media (max-width: 600px) {
  .share-box__list {
    flex-direction: column;
  }
  .share-box__btn {
    justify-content: center;
    width: 100%;
  }
}
/* === T100 差分 ここまで === */

/* === T128: D20 common弊社変更→support.css移動 ===
 * 親テーマ common/css/style.css は羽田氏が上書きする領域のため、
 * 弊社が追加した admin-bar(customize-support) 対応の追従メニュー調整を
 * こちらに移動（parent-theme-policy 原則2 準拠）
 */
@media(min-width:1101px){
  body.customize-support .post-list.pl-scroll{
    transform: translateY(-43px);
  }
  body.customize-support .post-list.active{
    transform: translateY(32px);
  }
}
/* === T128 差分 ここまで === */

/* === T130: 検索UI統合 — プラグイン出力クラスとの整合 ===
 * esrij-algolia-bridge プラグインが出力するHTML構造に
 * 弊社デザイン（fp-search__* 旧実装）を移植。
 * HTML順序: input → select → hidden → button だが、
 * CSSの order で 製品DD(左) → テキスト入力+ボタン(右) に並べ替え。
 */

/* --- プラグイン検索ボックス (.search-box) — 弊社旧デザイン移植 ---
 * 旧 fp-search__form 準拠:
 *   - 製品DD(左) と テキスト入力+ボタン(右) の間に gap: 16px
 *   - テキスト入力は左揃え（flex: 1 で残りの幅を埋める）
 *   - 各パーツに独立した border
 */
.search-box {
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}
.search-box form {
  display: flex;
  justify-content: center;
  gap: 0;
  align-items: stretch;
}
/* 製品ドロップダウンを左に配置（旧 fp-search__product-select 準拠） */
.search-box .search-product-dropdown {
  order: 1;
  flex-shrink: 0;
  height: 52px;
  font-size: 16px;
  padding: 0 2em 0 1em;
  border: 2px solid var(--ui-accent);
  border-radius: var(--radius);
  background-color: #fff;
  cursor: pointer;
  margin-right: 16px;
}
.search-box .search-product-dropdown:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb),0.2);
}
/* テキスト入力 — 残り幅を埋めて左揃え */
.search-box #search-input {
  order: 2;
  flex: 1;
  height: 52px;
  font-size: 16px;
  padding: 0 1em;
  border: 2px solid var(--ui-accent);
  border-right: none;
  border-radius: var(--radius) 0 0 var(--radius);
  background-color: #fff;
  color: #333;
  min-width: 300px;
  outline: none;
}
.search-box #search-input:focus {
  box-shadow: inset 0 0 0 1px rgba(var(--ui-accent-rgb),0.3);
}
.search-box #search-input::placeholder {
  color: #999;
}
/* hidden input は見た目に影響しない */
.search-box input[type="hidden"] {
  order: 3;
}
/* 検索ボタンを右端に配置 */
.search-box .search-submit {
  order: 4;
  height: 52px;
  padding: 0 2em;
  font-size: 16px;
  font-weight: 700;
  background: var(--ui-accent);
  color: #fff;
  border: 2px solid var(--ui-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  cursor: pointer;
  transition: background-color 0.2s;
  white-space: nowrap;
}
.search-box .search-submit:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}

/* 製品DDが非表示の場合（page-products等）テキスト入力の左端にborder */
.search-box form:not(:has(.search-product-dropdown)) #search-input,
.search-box form:not(:has(select)) #search-input {
  border-left: 2px solid var(--ui-accent);
  border-radius: var(--radius) 0 0 var(--radius);
}

/* --- トップ以外: 検索ボックスをh1左端に揃える ---
 * トップページ (.fp-search__inner) は text-align:center で中央揃え維持。
 * 他ページ（検索結果・ナレッジ・製品一覧・製品別・404）は h1 の左端に揃える。
 */
.sr-search .search-box,
.ka-search .search-box,
.pl-search .search-box,
.ps-search .search-box {
  margin: 0;
}
.sr-search .search-box form,
.ka-search .search-box form,
.pl-search .search-box form,
.ps-search .search-box form {
  justify-content: flex-start;
}
.sr-search .search-detail-filters,
.ka-search .search-detail-filters {
  margin-left: 0;
  margin-right: 0;
}

/* --- プラグイン詳細フィルター (.search-detail-filters) --- */
.search-detail-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 16px;
  align-items: flex-end;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.search-detail-filters .filter-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.search-detail-filters .filter-group label {
  font-size: 14px;
  font-weight: 600;
  color: #555;
}
.search-detail-filters .search-filter-select {
  height: 40px;
  padding: 0 2em 0 0.8em;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: var(--radius);
  background: #fff;
  min-width: 140px;
  cursor: pointer;
}
.search-detail-filters .search-filter-select:focus {
  outline: none;
  border-color: var(--ui-accent);
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb),0.15);
}

/* --- タブUI (.search-tabs) --- */
.search-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  border-bottom: 2px solid #ddd;
  margin-bottom: 16px;
}
.search-tabs__tab {
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  margin-bottom: -2px;
  text-align: center;
}
.search-tabs__tab:hover {
  color: #333;
}
.search-tabs__tab.is-active {
  color: var(--ui-accent-strong);
  border-bottom-color: var(--ui-accent-strong);
}
.search-tabs__count {
  font-weight: normal;
  font-size: 14px;
  margin-left: 4px;
  color: #888;
}
.search-tabs__count--zero {
  color: #bbb;
}
.search-tabs__panel {
  display: none;
}
.search-tabs__panel.is-active {
  display: block;
}

/* --- バッジ (.badge-site) --- */
.badge-site {
  display: inline-block;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 600;
  border-radius: var(--radius);
  color: #fff;
  margin-right: 6px;
}
.badge-site--support {
  background: var(--ui-accent);
}
.badge-site--docs {
  background: #2563eb;
}
.badge-site--corporate {
  background: #7c3aed;
}

/* --- 外部カードURL表示 --- */
.sr-card__url {
  font-size: 12px;
  color: #888;
}

/* --- レスポンシブ --- */
@media (max-width: 768px) {
  /* モバイル: 旧デザイン準拠
     1行目: 製品DD（フルワイド）
     2行目: テキスト入力 + 検索ボタン（横並び）
     flex-wrap で折り返し、select を 100% にして強制改行 */
  .search-box form {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px 0;
  }
  .search-box .search-product-dropdown {
    order: 1;
    width: 100%;
    height: 52px;
    border: 2px solid var(--ui-accent);
    border-radius: var(--radius);
    margin-right: 0;
  }
  .search-box #search-input {
    order: 2;
    flex: 1;
    min-width: 0;
    height: 52px;
    border: 2px solid var(--ui-accent);
    border-right: none;
    border-radius: var(--radius) 0 0 var(--radius);
  }
  .search-box .search-submit {
    order: 4;
    width: auto;
    height: 52px;
    border-radius: 0 var(--radius) var(--radius) 0;
  }
  .search-detail-filters {
    flex-direction: column;
    gap: 12px;
  }
  .search-detail-filters .search-filter-select {
    width: 100%;
  }
  .search-tabs__tab {
    padding: 8px 12px;
    font-size: 14px;
  }
}
/* === T130 差分 ここまで === */

/* ============================================================
 * === T146: VKFS 純正ブロック × 旧デザイン再整合 (2026-04-22) ===
 * ------------------------------------------------------------
 * T141 で VKFS Pro 純正ブロック出力に切り替えた結果、旧ヘルパー
 * 実装 (Phase A) のデザインが剥がれたため、旧 er-web 参照デザインに
 * 寄せ直すための再整合スタイル。5 接点（ナレッジアーカイブ / 検索
 * 結果 / トップ / 製品アーカイブ / 404）を一括でカバーする。
 *
 * 親テーマ継承ポリシー (`.claude/rules/parent-theme-policy.md`) 準拠:
 *   原則1: VKFS ネイティブクラス (.vkfs__*) および checkbox の
 *          :before/:after 標準挙動は踏襲する
 *   原則2: 独自差分は各接点の独自 context クラス
 *          (.ka-search / .sr-search / .fp-search / .ps-search /
 *          .nf-search) を基点にこの末尾セクションへ集約
 *   原則3: submit ボタンは VKFS DOM 上 .vkfs__labels の外側にあるため、
 *          pill 完全統合ではなく flex 末尾配置で近似する妥協を採用
 *   原則4: 関連 D 番号 — D01 キーワード検索、D02 アウトラインボタン、
 *          D14/D15 検索フォーム統一デザイン
 * ============================================================ */

/* --- 共通ユーティリティ: 投稿タイプ軸の非表示 (T142 引継) ---
 * トップ等で CPT 絞り込みブロックを hidden input 的に運用するためのクラス。
 * 仕様書 §4.1 / §4.5: 将来 UI 解禁時はこのクラスを外すだけで可視化される。 */
.vkfs-hidden {
  display: none !important;
}

/* --- 共通: VKFS フォームコンテナ --- */
.ka-search .vkfs,
.sr-search .vkfs,
.fp-search .vkfs,
.ps-search .vkfs,
.nf-search .vkfs {
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

/* --- 共通: ラベル (全接点でトンマナ統一) --- */
.ka-search .vkfs__label-name,
.sr-search .vkfs__label-name,
.fp-search .vkfs__label-name,
.ps-search .vkfs__label-name,
.nf-search .vkfs__label-name {
  font-size: 12px;
  font-weight: 700;
  color: #555;
  margin-bottom: 4px;
  line-height: 1.2;
  text-align: left;
}

/* --- 共通: キーワード input (旧 pl-search 準拠、太枠グリーン) --- */
/* text-align: left を明示 — 親 .fp-search__inner 等の text-align: center
 * からの継承を打ち消し (2026-04-22 ユーザ指摘) */
.ka-search .vkfs__input-wrap--keyword input[type="text"],
.sr-search .vkfs__input-wrap--keyword input[type="text"],
.fp-search .vkfs__input-wrap--keyword input[type="text"],
.ps-search .vkfs__input-wrap--keyword input[type="text"],
.nf-search .vkfs__input-wrap--keyword input[type="text"] {
  width: 100%;
  height: 44px;
  font-size: 16px;
  padding: 0 14px;
  border: 2px solid var(--ui-accent);
  border-radius: var(--radius);
  background: #fff;
  color: #333;
  outline: none;
  box-sizing: border-box;
  text-align: left;
}
.ka-search .vkfs__input-wrap--keyword input[type="text"]:focus,
.sr-search .vkfs__input-wrap--keyword input[type="text"]:focus,
.fp-search .vkfs__input-wrap--keyword input[type="text"]:focus,
.ps-search .vkfs__input-wrap--keyword input[type="text"]:focus,
.nf-search .vkfs__input-wrap--keyword input[type="text"]:focus {
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb), 0.15);
}

/* --- 共通: タクソノミー select (製品 / 種類) --- */
.ka-search select.vkfs__input-wrap--select,
.sr-search select.vkfs__input-wrap--select,
.fp-search select.vkfs__input-wrap--select,
.ps-search select.vkfs__input-wrap--select,
.nf-search select.vkfs__input-wrap--select {
  width: 100%;
  height: 44px;
  padding: 0 10px;
  font-size: 14px;
  border: 1px solid #ced4da;
  border-radius: var(--radius);
  background: #fff;
  color: #333;
  box-sizing: border-box;
  text-align: left;
}
.ka-search select.vkfs__input-wrap--select:focus,
.sr-search select.vkfs__input-wrap--select:focus,
.fp-search select.vkfs__input-wrap--select:focus,
.ps-search select.vkfs__input-wrap--select:focus,
.nf-search select.vkfs__input-wrap--select:focus {
  border-color: var(--ui-accent);
  outline: none;
}

/* --- 共通: checkbox 軸 (機能 / バージョン) 多列 wrap --- */
/* VKFS ネイティブ li/input/:before/:after の標準挙動は維持。
 * 旧 er-web デザインに倣い、全幅で横に並べて折返す。 */
.ka-search ul.vkfs__input-wrap--checkbox,
.sr-search ul.vkfs__input-wrap--checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  padding: 0;
  margin: 0;
  list-style: none;
  width: 100%;
}
.ka-search ul.vkfs__input-wrap--checkbox li,
.sr-search ul.vkfs__input-wrap--checkbox li {
  font-size: 14px;
  margin: 0;
  /* VKFS ネイティブの padding-left: 24px (checkbox 用スペース) は維持。
     右パディングのみ gap で代替するためゼロ化。親テーマ継承ポリシー原則1。 */
  padding: 2px 0 2px 24px;
  flex: 0 0 auto;
}
/* T141 JS が未選択項目 label に付与する esrij-dim クラス */
.ka-search ul.vkfs__input-wrap--checkbox li label,
.sr-search ul.vkfs__input-wrap--checkbox li label {
  transition: opacity 0.12s;
}
.ka-search ul.vkfs__input-wrap--checkbox li label.esrij-dim,
.sr-search ul.vkfs__input-wrap--checkbox li label.esrij-dim {
  opacity: 0.45;
}

/* --- 共通: submit ボタン (親テーマ btn-primary を緑化) --- */
/* 親テーマ / VKFS で display:block + width:100% の btn 継承があるため
 * inline-flex + width:auto で content 幅に戻す。 */
.ka-search .vkfs button.vkfs_submit.btn.btn-primary,
.sr-search .vkfs button.vkfs_submit.btn.btn-primary,
.fp-search .vkfs button.vkfs_submit.btn.btn-primary,
.ps-search .vkfs button.vkfs_submit.btn.btn-primary,
.nf-search .vkfs button.vkfs_submit.btn.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
  height: 44px;
  padding: 0 28px;
  font-size: 16px;
  font-weight: 700;
  border-radius: var(--radius);
  min-width: 100px;
  cursor: pointer;
  margin: 0;
}
.ka-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.sr-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.fp-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.ps-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.nf-search .vkfs button.vkfs_submit.btn.btn-primary:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}

/* --- T141 JS 動的挿入: バージョンの「すべて選択 / すべて解除」ボタン --- */
.esrij-chk-ctrls {
  display: flex;
  gap: 6px;
  margin-top: 6px;
}
.esrij-chk-btn {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: var(--radius);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.12s;
  line-height: 1.2;
}
.esrij-chk-btn--all {
  background: var(--ui-accent);
  color: #fff;
  border: 1px solid var(--ui-accent);
}
.esrij-chk-btn--all:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}
.esrij-chk-btn--none {
  background: #fff;
  color: #333;
  border: 1px solid #dee2e6;
}
.esrij-chk-btn--none:hover {
  border-color: var(--ui-accent-hover);
}

/* ============================================================
 * 接点別レイアウト
 * ============================================================ */

/* --- (1) .ka-search / .sr-search: ナレッジアーカイブ / 検索結果 ---
 * 旧デザイン: キーワード 1 行目 (640px 幅) / 製品・種類 横並び /
 *            機能・バージョン checkbox 全幅多列 wrap / 送信ボタン右下配置。
 * VKFS の .vkfs__labels は flex-wrap だが、col クラスの幅を
 * CSS grid で 2 列強制上書きする。 */
.ka-search .vkfs,
.sr-search .vkfs {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  align-items: center;
  gap: 20px;
}
.ka-search .vkfs__labels,
.sr-search .vkfs__labels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
  margin: 0;
}
/* col クラス制約を解除 (grid 側で明示) */
.ka-search .vkfs__outer-wrap,
.sr-search .vkfs__outer-wrap {
  max-width: none;
  flex: none;
  width: auto;
}
/* キーワードは 2 列またぎ + max-width で pl-search と視覚整合 */
.ka-search .vkfs__outer-wrap.vkfs__keyword,
.sr-search .vkfs__outer-wrap.vkfs__keyword {
  grid-column: 1 / -1;
  max-width: 640px;
}
/* 機能 / バージョン (checkbox) は 2 列またぎ */
.ka-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-function,
.sr-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-function,
.ka-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-version,
.sr-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-version {
  grid-column: 1 / -1;
}
/* 送信ボタン: labels の外側なのでフォーム末尾に配置、幅は内容分のみ */
.ka-search .vkfs button.vkfs_submit,
.sr-search .vkfs button.vkfs_submit {
  display: inline-block;
  margin-top: 16px;
  width: auto;
  min-width: 160px;
}

/* --- (2) .fp-search: トップページ ---
 * 旧デザイン: 製品 DD (左) + キーワード input + 検索ボタン、全て 1 行 pill 風。
 * VKFS DOM は <form>直下に [.vkfs__labels, <button>] の並び。
 * .vkfs を flex row にすることで labels と submit を横並びにする。 */
.fp-search .vkfs {
  max-width: 820px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}
.fp-search .vkfs > .vkfs__labels {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
  justify-content: flex-start;
}
.fp-search .vkfs__outer-wrap {
  max-width: none;
  flex: none;
  width: auto;
  /* VKFS ネイティブの margin-bottom: 16px を打ち消し、submit ボタンが
     flex-end alignment で 16px 下にずれる現象を回避 */
  margin-bottom: 0;
}
/* er-web 準拠: 製品 DD を左に (order:1)、キーワードを右に (order:2) */
.fp-search .vkfs__outer-wrap.vkfs__taxonomy {
  flex: 0 0 200px;
  width: 200px;
  order: 1;
}
.fp-search .vkfs__outer-wrap.vkfs__keyword {
  flex: 1 1 300px;
  min-width: 240px;
  order: 2;
}
.fp-search .vkfs button.vkfs_submit {
  align-self: flex-end;
}
@media (max-width: 639px) {
  .fp-search .vkfs__outer-wrap.vkfs__taxonomy,
  .fp-search .vkfs__outer-wrap.vkfs__keyword {
    flex: 1 1 100%;
    width: 100%;
  }
  .fp-search .vkfs button.vkfs_submit {
    width: 100%;
  }
}

/* --- (3) .ps-search: 製品アーカイブ ---
 * 旧デザイン: 製品 pre-select + キーワード + 検索ボタンの 3 要素 pill 風 1 行。
 * トップ (.fp-search) と同じ構造で幅だけ調整。 */
.ps-search .vkfs {
  max-width: 740px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}
.ps-search .vkfs > .vkfs__labels {
  flex: 1 1 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px;
}
.ps-search .vkfs__outer-wrap {
  max-width: none;
  flex: none;
  width: auto;
  /* VKFS ネイティブ margin-bottom 打ち消し (fp-search と同様) */
  margin-bottom: 0;
}
/* 製品 DD を左に (order:1)、キーワードを右に (order:2) — fp-search と統一 */
.ps-search .vkfs__outer-wrap.vkfs__taxonomy {
  flex: 0 0 200px;
  width: 200px;
  order: 1;
}
.ps-search .vkfs__outer-wrap.vkfs__keyword {
  flex: 1 1 240px;
  min-width: 200px;
  order: 2;
}
.ps-search .vkfs button.vkfs_submit {
  align-self: flex-end;
}
@media (max-width: 639px) {
  .ps-search .vkfs__outer-wrap.vkfs__taxonomy,
  .ps-search .vkfs__outer-wrap.vkfs__keyword {
    flex: 1 1 100%;
    width: 100%;
  }
  .ps-search .vkfs button.vkfs_submit {
    width: 100%;
  }
}

/* --- (4) .nf-search: 404 ---
 * 結合テスト §E-D-5 要件: 「keyword + 4 タクソノミー + 0 件ヒント が併存」
 * を維持しつつ、全体を中央寄せコンパクトにしてヒント・人気ナレッジと
 * 併存したときの視覚バランスを確保する。.ka-search と同じ grid レイアウト。 */
.nf-search .vkfs {
  max-width: 720px;
  margin: 0 auto;
}
.nf-search .vkfs__labels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  margin: 0;
}
.nf-search .vkfs__outer-wrap {
  max-width: none;
  flex: none;
  width: auto;
}
.nf-search .vkfs__outer-wrap.vkfs__keyword {
  grid-column: 1 / -1;
  max-width: 520px;
  margin: 0 auto;
  width: 100%;
}
.nf-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-function,
.nf-search .vkfs__outer-wrap.vkfs__block-id--esrij-tx-version {
  grid-column: 1 / -1;
}
/* 404 の checkbox リストも ka-search と同じく多列 wrap */
.nf-search ul.vkfs__input-wrap--checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  padding: 0;
  margin: 0;
  list-style: none;
  width: 100%;
}
.nf-search ul.vkfs__input-wrap--checkbox li {
  font-size: 14px;
  margin: 0;
  padding: 2px 0 2px 24px;
  flex: 0 0 auto;
}
.nf-search ul.vkfs__input-wrap--checkbox li label {
  transition: opacity 0.12s;
}
.nf-search ul.vkfs__input-wrap--checkbox li label.esrij-dim {
  opacity: 0.45;
}
/* submit は中央寄せで配置 (display:block + margin auto) */
.nf-search .vkfs button.vkfs_submit {
  display: block;
  margin: 16px auto 0;
  width: auto;
  min-width: 160px;
}

/* --- レスポンシブ微調整 (全接点共通) --- */
@media (max-width: 767px) {
  .ka-search .vkfs__labels,
  .sr-search .vkfs__labels {
    grid-template-columns: 1fr;
  }
  .ka-search .vkfs__outer-wrap.vkfs__keyword,
  .sr-search .vkfs__outer-wrap.vkfs__keyword {
    max-width: none;
  }
  .ka-search ul.vkfs__input-wrap--checkbox,
  .sr-search ul.vkfs__input-wrap--checkbox {
    gap: 4px 12px;
  }
  .esrij-chk-btn {
    padding: 6px 12px;
    font-size: 12px;
  }
}

/* ============================================================
 * T210 (D13 親): /products/ 検索ボックス 旧 fp-search デザイン復元
 * ------------------------------------------------------------
 * T146 で .ka-search / .sr-search / .fp-search / .ps-search /
 * .nf-search の 5 接点には VKFS 共通スタイルが当たっていたが、
 * .pl-search (page-products.php) は対象外で純正ブロック既定
 * スタイル (細枠・低背・無彩色ボタン) のまま放置されていた。
 * モック (claude_work/mock-T210-products-search-box.html) 準拠で
 * 高さ 52px・枠 2px green・main-dark ボタンを .pl-search 限定で復元。
 *
 * 設計判断:
 *   - 製品 DD は esrij_child_render_vkfs_form_filtered() で実行時除外
 *     済み (T192/T193) のため、ここでは layout 側のみケア
 *   - keyword input と submit button を 1 行 pill 風に連結する
 *     (input は右枠線なし、ボタンは左角丸なし) → 旧 fp-search__form 風
 *   - .pl-search 配下に厳密に限定し他接点に波及させない
 * ============================================================ */

.pl-search .vkfs {
  max-width: 640px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
}
.pl-search .vkfs > .vkfs__labels {
  flex: 1 1 auto;
  display: flex;
  margin: 0;
  min-width: 0;
}
.pl-search .vkfs__outer-wrap {
  max-width: none;
  flex: 1 1 auto;
  width: auto;
  /* VKFS プラグイン既定の上下左右マージン (--vkfs-outer-margin / -left-right) を打ち消し、
     キーワード入力欄と検索ボタンを隙間なく連結する */
  margin: 0;
  min-width: 0;
}
.pl-search .vkfs__outer-wrap.vkfs__keyword {
  flex: 1 1 100%;
}
/* キーワード入力欄のラベル「キーワード」は冗長なため非表示
   (placeholder で意味は伝わる、トップと同じ pill 1 行) */
.pl-search .vkfs__label-name {
  display: none;
}
/* キーワード input: 高さ 52px / 2px green 枠 / 右枠線なし */
.pl-search .vkfs__input-wrap--keyword input[type="text"] {
  width: 100%;
  height: 52px;
  font-size: 16px;
  padding: 0 1em;
  border: 2px solid var(--ui-accent);
  border-right: 0;
  border-radius: var(--radius) 0 0 var(--radius);
  background: #fff;
  color: #333;
  outline: none;
  box-sizing: border-box;
  text-align: left;
}
.pl-search .vkfs__input-wrap--keyword input[type="text"]:focus {
  box-shadow: inset 0 0 0 1px rgba(var(--ui-accent-rgb), 0.3);
}
.pl-search .vkfs__input-wrap--keyword input[type="text"]::placeholder {
  color: #999;
}
/* submit ボタン: 高さ 52px / main-dark / 左角丸なしで input と連結 */
.pl-search .vkfs button.vkfs_submit.btn.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: auto;
  height: 52px;
  padding: 0 2em;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
  background: var(--ui-accent);
  border: 2px solid var(--ui-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  min-width: 100px;
  cursor: pointer;
  margin: 0;
  white-space: nowrap;
}
.pl-search .vkfs button.vkfs_submit.btn.btn-primary:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}
@media (max-width: 480px) {
  .pl-search .vkfs button.vkfs_submit.btn.btn-primary {
    padding: 0 1.2em;
    min-width: 80px;
  }
}
/* === T210 ここまで === */

/* === T146 ここまで === */

/* === D34: 本文テーブル セル padding（ナレッジ・お知らせ個別） ===
   親テーマ common/css/style.css L453 の `td, th { padding: 0 }` を上書き。
   リッチエディタで作成された罫線なし表で列間に空白を確保する。
   罫線あり表との両立も問題なし（border + padding は併存可能）。 */
.sk-body table td,
.gg-single-body table td,
.gl-single-body table td,
.sk-body table th,
.gg-single-body table th,
.gl-single-body table th,
.ns-body table td,
.ns-body table th {
  padding: 6px 12px;
}
/* === D34 ここまで === */

/* === T176/T181 ADM-008 — core/accordion 系（WPコア標準ブロック） ===
   設計判断: ADM-008 アコーディオンブロック要件を WP 6.5+ 標準
   `core/accordion`(item/heading/panel) で充足する案A採用。
   既存 .ct-accordion (上記 L3317-3346, page-contact.php 電話サポート手順)
   のデザインを継承して視覚整合性を保つ。
   挿入箇所: ブロックエディタの「デザイン」カテゴリから挿入可能。 */

/* 親ラッパー: 上下マージン */
.wp-block-accordion {
  margin-top: 16px;
  margin-bottom: 16px;
}

/* アイテム枠（.ct-accordion のボーダー・角丸を継承） */
.wp-block-accordion .wp-block-accordion-item {
  border: 1px solid var(--border-color, #dee2e6);
  border-radius: var(--radius);
  overflow: hidden;
  background: #fff;
  margin-bottom: 8px;
}
.wp-block-accordion .wp-block-accordion-item:last-child {
  margin-bottom: 0;
}

/* 見出しの h要素 のマージンリセット */
.wp-block-accordion .wp-block-accordion-heading {
  margin: 0;
}

/* トグルボタン（.ct-accordion__trigger 相当） */
.wp-block-accordion .wp-block-accordion-heading__toggle {
  padding: 14px 20px;
  font-size: 16px;
  font-weight: 600;
  color: var(--ui-accent);
  background: #fff;
  gap: 8px;
  transition: background 0.2s;
}
.wp-block-accordion .wp-block-accordion-heading__toggle:hover,
.wp-block-accordion .wp-block-accordion-heading__toggle:focus-visible {
  background: var(--bg-light, #f8f9fa);
}
/* コア標準の hover 時 underline を抑制（.ct-accordion 整合） */
.wp-block-accordion .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
  text-decoration: none;
}

/* 開閉アイコン: コア標準の rotate(45deg) を活かす擬似要素 "+" / open時 "×"
   コア標準 CSS: .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon{transform:rotate(45deg)} */
.wp-block-accordion .wp-block-accordion-heading__toggle-icon {
  position: relative;
  color: var(--ui-accent-strong);
  width: 1.2em;
  height: 1.2em;
}
.wp-block-accordion .wp-block-accordion-heading__toggle-icon::before,
.wp-block-accordion .wp-block-accordion-heading__toggle-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  background: currentColor;
  border-radius: 1px;
}
.wp-block-accordion .wp-block-accordion-heading__toggle-icon::before {
  width: 0.9em;
  height: 2px;
  transform: translate(-50%, -50%);
}
.wp-block-accordion .wp-block-accordion-heading__toggle-icon::after {
  width: 2px;
  height: 0.9em;
  transform: translate(-50%, -50%);
}

/* パネル（.ct-accordion__body 相当） */
.wp-block-accordion .wp-block-accordion-panel {
  padding: 20px 24px;
  border-top: 1px solid var(--border-color, #dee2e6);
}
.wp-block-accordion .wp-block-accordion-panel > *:first-child {
  margin-top: 0;
}
.wp-block-accordion .wp-block-accordion-panel > *:last-child {
  margin-bottom: 0;
}
/* === T176/T181 ここまで === */

/* === D12: h1 既定統一 (24px / 700) — 監査 2026-05-15 ===
 * 親テーマ既定 (31px / 500) を子テーマ既定として 24px / 700 に揃える。
 * /support-policy 等、独自クラスを持たない固定ページに自動波及させ、
 * 将来追加される固定ページも同サイズに揃う状態を作る。
 *
 * 既存の .sk-header__title / .ka-page-header__title / .na-page-header__title
 * / .pl-page-header__title 等の個別再指定は、より高い詳細度でそのまま残して
 * いるため挙動に変化なし（ロールバック容易）。
 * ============================================================ */
body h1 {
  font-size: 28px;
  font-weight: 700;
}
/* === D12 ここまで === */

/* === T283 → T386: コードブロックの基礎スタイル ===
 * 旧 FastAnswer 由来の <pre class="brush: LANG"> を本文無改変のまま
 * コードブロックらしく表示する基礎スタイル。
 * 色分けは SyntaxHighlighter Evolved が担当し（T386 でエンジンを
 * プラグインへ一本化）、読み込み完了時にこの <pre> 自体が
 * プラグインの描画結果に差し替わる。そのため本セクションは
 * 差し替え前に素の <pre> が見えてしまうのを防ぐ土台として残す。
 * ============================================================ */
pre[class*='brush'] {
  display: block;
  overflow-x: auto;
  padding: 1em;
  border: 1px solid #ddd;
  border-radius: var(--radius);
  background: #f8f8f8;
  font-family: Consolas, Monaco, 'Courier New', monospace;
  font-size: 0.875rem;
  line-height: 1.5;
  white-space: pre;
}
/* === T283 ここまで === */

/* D27/T262: 製品詳細「その他のリソース」リッチエディター領域を最大幅で表示
   （旧 .ps-resources グリッドの span2 制約を解除し、ブログ固定カード削除後の全幅化）。 */
.ps-richtext--full {
  grid-column: auto;
  width: 100%;
  max-width: 100%;
}
/* === D27/T262 ここまで === */

/* ============================================================
 * D27/D47/T262: 製品リソース 5枚固定カード（タイトルのみ・説明文なし）
 * issue #78。.ps-resources（page-tm_product_support.php と共用）とは別クラスで定義し
 * 波及を避ける。URL があるカードのみテンプレ側で出力される。
 * ============================================================ */
.ps-reslinks {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}
.ps-reslink {
  flex: 1 1 170px;
  max-width: 210px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  padding: 22px 16px;
  border: 1px solid #dee2e6;
  border-radius: var(--radius);
  background: #fff;
  text-decoration: none;
  color: #222;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ps-reslink:hover,
.ps-reslink:visited {
  color: #222;
}
.ps-reslink:hover {
  border-color: var(--ui-accent-hover);
  box-shadow: 0 2px 8px rgba(var(--ui-accent-rgb), 0.1);
}
.ps-reslink__icon {
  color: var(--ui-accent-strong);
  line-height: 0;
}
.ps-reslink__icon svg {
  width: 28px;
  height: 28px;
}
.ps-reslink__title {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.4;
  color: #222;
}
@media (max-width: 600px) {
  .ps-reslink { flex-basis: 130px; }
}

/* 製品詳細ページ（taxonomy-product.php）はサポートバー（緑CTA）を持たず白地で終わるため、
   フッターとの間に余白を確保する。.ps-container 共通には付けない
   （page-products.php 等では .ps-container が緑バー内にネストされるため）。 */
.ps-container--product {
  padding-bottom: 64px;
}
/* === D27/D47/T262 ここまで === */

/* ============================================================
 * D47(3/3)/T274: 文末 My Esri CTA カード
 * issue #78。旧「サポートのご案内」3カードは廃止（T262 §6）、代わりに My Esri への
 * 導線を1枚の CTA として復活。デザインは既存の白カード（.ps-support-card）＋緑アイコン
 * ＋緑ボタン（.ps-btn-green）に統一し、サイト全体のカード言語に揃える。全幅だと間延び
 * するためヘッダー説明文相当（max-width 680px）に絞り中央寄せ＋上に区切り線。
 * ============================================================ */
/* 区切り線は .ps-container 全幅（カード幅に縛られない）。カードのみ 680px 中央寄せ。 */
.ps-myesri-divider {
  border: 0;
  border-top: 1px solid #dee2e6;
  margin: 8px 0 32px;
}
.ps-myesri-wrap {
  max-width: 680px;
  margin: 0 auto;
}
.ps-myesri-card {
  padding: 32px 24px;
}
.ps-myesri-card__icon {
  display: block;
  color: var(--ui-accent-strong);
  line-height: 0;
  margin-bottom: 12px;
}
.ps-myesri-card__icon svg {
  width: 40px;
  height: 40px;
}
.ps-myesri-card__title {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 8px;
}
/* 親テーマの h3 緑下線を打ち消す（中央寄せの単一カード見出しのため） */
main.-page h3.ps-myesri-card__title {
  border-bottom: 0;
  padding: 0;
}
.ps-myesri-card__desc {
  font-size: 14px;
  color: #555;
  line-height: 1.7;
  margin: 0 0 20px;
  max-width: 480px;
}
.ps-myesri-card__btn {
  padding: 12px 40px;
}
/* === D47(3/3)/T274 ここまで === */

/* ============================================================
 * T274: 製品詳細「自由記述（ブロック参照）」の本文タイポグラフィ
 * do_blocks() で差し込んだ同期パターン/投稿のブロックは、何も当てないと親テーマ
 * （common/css/template.css）の `main.-page h2:not(.__ptitle)` が全 h2 に緑バー＋
 * 白文字を強制し「見出しが大きすぎ・本文に余白が無い」状態になる。ナレッジ本文
 * （.ns-body）相当の記事タイポを .ps-richtext--full（A=wysiwyg / C=ブロック参照の
 * 両パスが使う自由記述コンテナ）に当てて整える。
 * ============================================================ */
.ps-richtext--full {
  font-size: 16px;
  line-height: 1.8;
  color: #333;
}
.ps-richtext--full > *:first-child {
  margin-top: 0;
}
/* 親テーマの緑バー h2 を記事見出し（緑下線）へ上書き（同特異度＋祖先で勝つ） */
main.-page .ps-richtext--full h2:not(.__ptitle),
.ps-richtext--full h2 {
  background-color: transparent;
  color: #1a1a1a;
  font-size: 24px;
  font-weight: 700;
  margin: 32px 0 16px;
  padding: 0 0 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.ps-richtext--full h3 {
  font-size: 20px;
  font-weight: 700;
  margin: 24px 0 12px;
}
.ps-richtext--full p {
  margin: 0 0 16px;
}
.ps-richtext--full ul,
.ps-richtext--full ol {
  margin: 0 0 16px;
  padding-left: 1.4em;
}
.ps-richtext--full li {
  margin-bottom: 6px;
}
.ps-richtext--full a:not(.wp-block-button__link) {
  color: var(--link-color);
}
/* ブロックボタンは本文 a 色の影響を受けず、ブロック側で設定した配色を保つ */
.ps-richtext--full .wp-block-button__link {
  color: #fff;
}
.ps-richtext--full img {
  max-width: 100%;
  height: auto;
}
/* ブロックの上下を製品リソース等とほどよく離す（コンテナ余白の不足を補う） */
.ps-richtext--full .wp-block-buttons,
.ps-richtext--full .wp-block-columns {
  margin-top: 20px;
  margin-bottom: 20px;
}
/* === T274 自由記述タイポ ここまで === */

/* ============================================================
   2026-06-19 MTG 製品まわりバッチ（T298 / T307）子テーマ独自差分
   ============================================================ */

/* T307 (#132): /products 主力製品カードを中央揃え（アイコン・製品名・説明・リンク）。
   従来は flex-direction:column の既定で左揃えだった。 */
.pl-featured__card {
  align-items: center;
  text-align: center;
}

/* T298 (#126): /products フッター上部の My Esri 導線カード（製品詳細と統一）。
   カード本体の見た目（.ps-myesri-wrap / .ps-myesri-card 等）は taxonomy-product.php と
   共通の既存スタイルを流用し、ここでは一覧ページ側のセクション余白のみ補う。 */
.ps-myesri-section {
  padding: 40px 0;
  background: var(--bg-light, #f8f9fa);
}
.ps-myesri-section .ps-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}
/* === 2026-06-19 MTG 製品まわりバッチ ここまで === */

/* ============================================================
   2026-06-25 デザイン修正指示バッチ（D58 / T318）子テーマ独自差分
   ============================================================ */

/* D58 (#141) / T318: ページ内アンカー遷移時に見出しが固定追従ヘッダーへ潜るのを防ぐ。
   下スクロール後に上方アンカーへ飛ぶと、上スクロールで再出現する親テーマ追従ヘッダーが
   見出しを覆っていた。固定クロームは2段重ね＝親テーマ <header>（上端0〜clamp(70,9.1vw,100)px）
   の「下」に追従グローバルナビ .post-list.support-nav（高さ約75〜85px）が重なり、wp70 実測で
   下端 175px@1280 まで覆う。当初 header 分のみ（116px）では nav バー分が不足していた（2026-06-26 修正）。

   方針: スクロールコンテナ（html）に scroll-padding-top を与え、ネイティブな #hash 遷移
   ・URL ハッシュ着地・キーボードフォーカス送りのスクロール位置を固定クローム分だけ下げる。

   T391: 値を親テーマ高の近似（clamp(70px,9.1vw,100px) ＋ ナビバー高+余白の概算 90px）から、
   support.js が実測配信する --esrij-anchor-offset へ移した。近似値は
   ①親テーマのヘッダー高が変わると追随しない ②WP 管理バー分を含まない
   ③追従タブ・索引の分を含まない、の 3 点で実態とズレる。JS が測る値は
   window.esrijAnchorOffset() と同一の計算なので、明示スクロールとネイティブ着地で
   同じ位置に着く。**フォールバックには従来の近似式をそのまま残した**——JS が値を配信する前に
   ブラウザーが #hash 着地を実行しうるため、ここを固定値にすると狭い画面で従来より深く
   下げてしまう（390px 幅で 160px → 190px）。JS が動けば実測値で上書きされる。

   二重補正の回避（#68/D39 と非干渉）: 独自TOC（custom-toc.js）はクリック時に
   e.preventDefault() ＋ window.scrollTo({top}) で明示位置へスクロールし、その getScrollOffset()
   側でも header＋nav＋管理バーを実測加算している。scroll-padding-top は明示 scrollTo には作用
   しないため二重補正にはならない。本指定は TOC を経由しないネイティブアンカー向け。 */
html {
  scroll-padding-top: var(--esrij-anchor-offset, calc(clamp(70px, 9.1vw, 100px) + 90px));
}
/* 念のためのフォールバック: 本文中の見出し・id 付き要素にも同量の scroll-margin を付与
   （scroll-padding 非対応の旧環境や scrollIntoView 経由の着地に効く）。 */
.single-knowledge .entry-content :is(h2, h3, h4, h5),
.single-news .entry-content :is(h2, h3, h4, h5),
article.type-knowledge :is(h2, h3, h4, h5)[id],
article.type-news :is(h2, h3, h4, h5)[id] {
  scroll-margin-top: var(--esrij-anchor-offset, calc(clamp(70px, 9.1vw, 100px) + 90px));
}
/* === 2026-06-25 デザイン修正指示バッチ ここまで === */

/* ============================================================
   2026-07-08 デザイン修正指示バッチ（T333 = 新採番 D58 / PDF D58）子テーマ独自差分
   ※ 既存の「D58 (#141)/T318」(上記アンカー offset) は旧採番＝新 D57。
     本ブロックは 2026-07-08 再採番後の別 D58（ナレッジ サイドバー刷新）。
     衝突回避のため以降は安定した T番号（T333）で識別する。
   ============================================================ */

/* T333 ①（D58）: 目次（サイドバー）固定・追従時にヘッダーとの間へマージン。
 *   → T391 で上の「サイドバー」セクション（.sidebar-inner の sticky 指定）へ統合した。
 *     当初はここで top を 134px / 209px に上書きしていたが、土台の 124px / 199px と
 *     合わせて 4 か所に値が散っていたため、support.js が実測配信する
 *     --esrij-sticky-top を基点にした 1 つの式へまとめている。
 *     余白は T391 時点では 34px を維持していたが、T412 で親子タブと同じ
 *     --esrij-sticky-gap（10px）へ揃えた（目次がサイドバーへ戻り横並びになったため）。 */

/* === 2026-07-08 デザイン修正指示バッチ（T333）ここまで === */

/* ============================================================
   2026-07-08 デザイン修正指示バッチ（D65 / T340）子テーマ独自差分
   ============================================================ */

/* D65 (PDF) / T340: 検索結果の外部サイトバッジ（.badge-site）視認性。
   外部サイト（ArcGIS ブログ／リソース集／開発リソース集）は
   ESRI_Cross_Site_Search::$label_slug_map に無いラベルのため get_badge_slug() が空を返し、
   バッジは `.badge-site .badge-site--`（空サフィックス）となる。基底 .badge-site は
   color:#fff だが背景指定が無く、既知の --support/--docs/--corporate 以外は
   白文字＋背景なし＝白地に白文字で不可視になっていた（顧客報告）。
   対処: :where() で 0 詳細度の既定背景を与え、未知slugのバッジを可読にする。
   既知バッジ（--support 等）は詳細度 (0,1,0) が :where()(0,0,0) に必ず勝つため
   ソース順に関わらず各自の色を維持する（本指定で上書きされない）。 */
:where(.badge-site) {
  background: #475569; /* slate系ニュートラル。白文字とのコントラスト約7:1 */
}
/* === 2026-07-08 デザイン修正指示バッチ（T340）ここまで === */

/* ============================================================
   2026-07-10 ナレッジ一覧 / 検索結果 検索フォーム再設計
   ------------------------------------------------------------
   目的: ナレッジ一覧（.ka-search）と検索結果（.sr-search）の検索 UI を
     トップ（.fp-search）と同じ「主フィルタ 1 行 + 詳細検索ディスクロージャ」
     の見え方に統一する。

   経緯: T343 で 種類/機能/バージョンを <details class="esrij-adv-search"> へ
     畳む JS（search-filters.js）を入れたが、装飾 CSS は「追って調整」の
     まま未実装で、素の <details> 既定表示＋旧 2 列グリッドのちぐはぐな
     見た目のまま放置されていた（顧客指摘 2026-07-10）。

   設計（親テーマ継承ポリシー準拠・VKFS/common 非改修）:
     - 主フィルタ行 = 製品 DD + キーワード + 検索ボタンを 1 行に。
       submit ボタンは VKFS DOM 上 .vkfs__labels の外（form 直下の兄弟）に
       あるため、.vkfs__labels を display:contents で潰して、その子
       （キーワード / 製品 / details）を submit ボタンと同じ CSS グリッドに
       フラット化して並べる。details だけ 2 行目に全幅で落とす。
     - 詳細検索 = <summary> をアウトラインボタン化、本体はライトグレーの
       パネル。中身の select / checkbox は既存共通スタイルを流用。
   ============================================================ */

/* --- 主フィルタ行: .ka-search / .sr-search を fp-search 風 1 行グリッドへ --- */
.ka-search .vkfs,
.sr-search .vkfs {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(160px, 200px) minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px 14px;
}
/* .vkfs__labels を潰して子（キーワード/製品/details）を .vkfs グリッド直参加させる */
.ka-search .vkfs__labels,
.sr-search .vkfs__labels {
  display: contents;
}
/* 製品 DD = 1 列目 / キーワード = 2 列目 / 検索ボタン = 3 列目（全て 1 行目） */
.ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__taxonomy,
.sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__taxonomy {
  grid-column: 1;
  grid-row: 1;
  max-width: none;
  width: auto;
  margin-bottom: 0;
}
.ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__keyword,
.sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__keyword {
  grid-column: 2;
  grid-row: 1;
  max-width: none;
  width: auto;
  margin-bottom: 0;
}
.ka-search .vkfs > button.vkfs_submit.btn.btn-primary,
.sr-search .vkfs > button.vkfs_submit.btn.btn-primary {
  grid-column: 3;
  grid-row: 1;
  margin-top: 0;
  min-width: 96px;
}

/* 種類/機能/バージョンが details へ移動する前（JS 実行前）や JS 無効時の
   フォールバック: labels 直下に残る間は全幅で縦積みし、製品 DD との重なりを防ぐ。
   移動後は details 内に入り本セレクタ（labels 直下限定）に一致しなくなる。 */
.ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-type,
.ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-function,
.ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-version,
.sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-type,
.sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-function,
.sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__block-id--esrij-tx-version {
  grid-column: 1 / -1;
}

/* --- 詳細検索ディスクロージャ（2 行目・全幅） --- */
.ka-search .vkfs__labels > details.esrij-adv-search,
.sr-search .vkfs__labels > details.esrij-adv-search {
  grid-column: 1 / -1;
  grid-row: 2;
}
.esrij-adv-search {
  margin: 0;
  border-top: 1px solid #e5e9ee;
  padding-top: 16px;
}
/* summary をアウトラインボタン化。ネイティブ三角マーカーは消す */
.esrij-adv-search__summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 9px 20px;
  border: 1.5px solid var(--ui-accent);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ui-accent);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  list-style: none;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.esrij-adv-search__summary::-webkit-details-marker {
  display: none;
}
/* 開閉インジケータ（+ / −）を独自クラス側で描画 */
.esrij-adv-search__summary::before {
  content: "＋";
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}
.esrij-adv-search[open] > .esrij-adv-search__summary::before {
  content: "－";
}
.esrij-adv-search__summary:hover {
  background: var(--ui-accent-hover);
  color: #fff;
}
.esrij-adv-search__summary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--ui-accent-rgb), 0.30);
}
/* 展開パネル: ライトグレー面に 種類 / 機能 / バージョン を縦積み */
.esrij-adv-search__body {
  margin-top: 16px;
  padding: 20px;
  background: #f6f8fa;
  border: 1px solid #e5e9ee;
  border-radius: var(--radius);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.esrij-adv-search__body .vkfs__outer-wrap {
  max-width: none;
  width: auto;
  margin-bottom: 0;
}
/* 種類（select）は幅を抑えて左寄せ。機能/バージョン（checkbox）は全幅維持 */
.esrij-adv-search__body .vkfs__outer-wrap.vkfs__block-id--esrij-tx-type {
  max-width: 300px;
}

/* --- レスポンシブ: 640px 以下で主フィルタ行を縦積み --- */
@media (max-width: 640px) {
  .ka-search .vkfs,
  .sr-search .vkfs {
    grid-template-columns: 1fr;
  }
  .ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__taxonomy,
  .sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__taxonomy,
  .ka-search .vkfs__labels > .vkfs__outer-wrap.vkfs__keyword,
  .sr-search .vkfs__labels > .vkfs__outer-wrap.vkfs__keyword {
    grid-column: 1;
    grid-row: auto; /* 1 列積みでは行固定を解除（製品とキーワードの重なり防止） */
  }
  .ka-search .vkfs > button.vkfs_submit.btn.btn-primary,
  .sr-search .vkfs > button.vkfs_submit.btn.btn-primary {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
  }
  .ka-search .vkfs__labels > details.esrij-adv-search,
  .sr-search .vkfs__labels > details.esrij-adv-search {
    grid-row: auto;
  }
  .esrij-adv-search__summary {
    width: 100%;
    justify-content: center;
  }
}
/* === 2026-07-10 ナレッジ検索フォーム再設計 ここまで === */

/* ============================================================
   2026-07-23 7/16 研修 預かり事項（即対応 CSS）
   ============================================================ */

/* T354 (Q40): 本文の小画像が本文幅いっぱいに引き伸ばされる件の是正。
   原因は移行コンテンツ（FastAnswer 由来）の画像に付く width="100%" 属性 /
   style="width:100%" 指定で、これがあると .sk-body img の max-width:100% を
   超えて本文幅まで拡大される（小さな画面キャプチャがボヤけて全幅化）。
   対処: 100% 幅を強制している画像だけを対象に width:auto へ戻し、
   小画像は等倍（本来のピクセルサイズ）、大画像は max-width:100% で本文幅に収める。
   ブロックエディタで意図的に px 幅指定・リサイズした画像（style="width:400px" 等）は
   本セレクタ（100% 指定限定）に一致しないため影響しない。
   news 本文（.ns-body）も同じ移行由来リスクがあるため併せて対象にする。 */
.sk-body img[width="100%"],
.ns-body img[width="100%"] {
  width: auto;
  max-width: 100%;
  height: auto;
}
.sk-body img[style*="width:100%"],
.sk-body img[style*="width: 100%"],
.ns-body img[style*="width:100%"],
.ns-body img[style*="width: 100%"] {
  width: auto !important; /* インライン style を上書きするため !important が必要 */
  max-width: 100%;
  height: auto;
}

/* T357 (Q40): 用語集一覧の索引ナビ（0-9 + A〜Z のアルファベット見出し）が
   .gl-index__inner の max-width:900px に収まらず 2 行に折り返す件の是正。
   27 個のボタンは 1 行に約 970px 必要なため、内側コンテナ幅を広げて
   デスクトップでは 1 行に収める（狭幅では従来どおり折り返す＝可読性維持）。 */
.gl-index__inner {
  max-width: 1024px;
}

/* ============================================================
   2026-08-12 T371 / D56: 絞り込み検索の結果表示・ナレッジID 欄・タブ移動順
   ------------------------------------------------------------
   目的:
     - T371 (B04): キーワードを入力せず絞り込みだけで検索したときに、件数と
       「何で検索したか」が画面に出るようにする。0 件時は絞り込み向けの案内と
       クリア導線を出す。
     - T371 (D68②): 「詳細検索」にナレッジID 欄を足す（JS が DOM 注入。
       フォームの実体は DB 上の filter-search 投稿のため、子テーマのデプロイだけで
       完結させる意図）。
     - D56 (T364): ナレッジ一覧 / 検索結果で「詳細検索」ディスクロージャが
       submit ボタンより前の DOM に居たためタブ順が見た目とズレていた。JS 側で
       form 直下の末尾へ移したので、グリッド配置指定をその位置にも当て直す。

   親テーマ継承ポリシー準拠: 独自差分は独自クラス（.sr-results__* / .esrij-kid /
   .esrij-search-hint）を基点に本末尾セクションへ集約。common/ は触らない。
   ============================================================ */

/* --- D56: form 直下へ移した「詳細検索」のグリッド配置 ---
   従来の `.vkfs__labels > details` 指定と同じ見え方を維持する（.vkfs__labels は
   display:contents のため、labels 直下でも form 直下でも同じ .vkfs グリッドの
   アイテムになる）。旧セレクタは JS 未実行時のフォールバックとして残置。 */
.ka-search .vkfs > details.esrij-adv-search,
.sr-search .vkfs > details.esrij-adv-search {
  grid-column: 1 / -1;
  grid-row: 2;
}

/* --- T371: 検索フォーム直下の補足文言（キーワードは任意） --- */
.esrij-search-hint {
  max-width: 900px;
  margin: 10px auto 0;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}

/* --- T371: 検索条件の併記行（件数行の直下） --- */
.sr-results__conditions {
  margin: 4px 0 14px;
  font-size: 14px;
  color: #555;
  line-height: 1.7;
}
.sr-results__conditions-label {
  font-weight: 700;
  margin-right: 4px;
}
.sr-results__condition {
  display: inline-block;
  margin-right: 10px;
  white-space: nowrap;
}

/* --- T371: ナレッジID を引き当てられなかったときの案内 --- */
.sr-results__notice {
  margin: 0 0 12px;
  padding: 10px 14px;
  border: 1px solid #e6d28a;
  border-left: 4px solid #d9a800;
  border-radius: var(--radius);
  background: #fdf8e6;
  font-size: 14px;
  line-height: 1.7;
  color: #5a4a10;
}

/* --- T371: 0 件時のクリア導線 --- */
.sr-noresults__reset {
  margin: 20px 0 32px;
}
.sr-noresults__reset-link {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border: 1.5px solid var(--ui-accent);
  border-radius: var(--radius);
  color: var(--ui-accent);
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.sr-noresults__reset-link:hover,
.sr-noresults__reset-link:focus {
  background: var(--ui-accent-hover);
  color: #fff;
}

/* --- T371 (D68②): 「詳細検索」内のナレッジID 欄 ---
   .esrij-adv-search__body 内の他の軸（種類 select 等）と同じ見え方に揃える。
   幅を絞るセレクタは VKFS の `.vkfs input[type="text"] { max-width: 100% }`
   （詳細度 0,1,1）を上回る必要があるため、wrap を経由して書く。補足文言は
   input 幅に引きずられないよう wrap 側は絞らない。 */
.esrij-adv-search__body .vkfs__outer-wrap.esrij-kid .esrij-kid__input {
  max-width: 300px;
}
.esrij-kid__input {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  font-size: 14px;
  border: 1px solid #ced4da;
  border-radius: var(--radius);
  background: #fff;
  color: #333;
  box-sizing: border-box;
  text-align: left;
}
.esrij-kid__input:focus {
  border-color: var(--ui-accent);
  outline: none;
  box-shadow: 0 0 0 2px rgba(var(--ui-accent-rgb), 0.15);
}
.esrij-kid__note {
  margin: 6px 0 0;
  font-size: 12px;
  color: #666;
  line-height: 1.6;
}

/* --- レスポンシブ: 640px 以下は主フィルタ行が縦積みになるため行固定を解除 --- */
@media (max-width: 640px) {
  .ka-search .vkfs > details.esrij-adv-search,
  .sr-search .vkfs > details.esrij-adv-search {
    grid-row: auto;
  }
  .esrij-kid__input {
    max-width: none;
  }
}
/* === 2026-08-12 T371 / D56 ここまで === */

/* ============================================================
   T378 — 再デザイン 2026-08 共通パーツ（4-1〜4-9）
   ------------------------------------------------------------
   仕様の正:
     docs/ui-structure/design-guide-2026-08_大滝様ご回答_20260816.md
     docs/ui-structure/design-guide-2026-08-v2.html（顧客・大滝様へ提示中の確定版）

   ここは「部品の意匠」を 1 か所に集めるセクション。画面別の指定
   （fp- / sk- / ps- …）より後ろに置くことで、同じ詳細度なら後勝ちで
   このセクションが効く。個別画面の事情で外したい場合は、画面別の
   セクション側に詳細度の高いセレクタを足して打ち消すこと。

   色・角丸・文字サイズは style.css の意味トークンを経由する。
   ここで hex を直書きしない（パレット外の色を新設する場合のみ例外）。
   ============================================================ */

/* --- 4-1 ボタン ------------------------------------------------
   大 52px/16px（画面の主役＝検索）／標準 44px/14px（塗り・線）／
   キャンセル 44px/14px（地グレー）の 4 種類に集約する。
   現状は場所ごとに padding と文字サイズがばらついていたため、
   ここで高さ・文字・角丸・配色を揃える。 */

/* 標準（塗り） */
.ps-cta__btn.filled,
.ps-btn-green,
.ct-btn--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 20px;
  font-size: var(--fs-14);
  font-weight: 700;
  line-height: 1;
  border-radius: var(--radius);
  border: 1px solid var(--ui-accent);
  background: var(--ui-accent);
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.ps-cta__btn.filled:hover,
.ps-btn-green:hover,
.ct-btn--primary:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
  color: #fff;
}

/* 標準（線）— ホバーで地が淡い青に変わる（v2 ガイド 4-1） */
.ps-cta__btn.outline,
.ps-btn-outline,
.ct-btn--outline,
.ct-pagenav__list li a,
.sr-noresults__reset-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 20px;
  font-size: var(--fs-14);
  font-weight: 700;
  line-height: 1;
  border-radius: var(--radius);
  border: 1px solid var(--ui-accent);
  background: #fff;
  color: var(--ui-accent);
  text-decoration: none;
  cursor: pointer;
}
.ps-cta__btn.outline:hover,
.ps-btn-outline:hover,
.ct-btn--outline:hover,
.ct-pagenav__list li a:hover,
.sr-noresults__reset-link:hover {
  background: var(--ui-accent-tint);
  border-color: var(--ui-accent-hover);
  color: var(--ui-accent-hover);
  text-decoration: none;
}

/* アイコン付き（大滝様ご指示）。
   Material Symbols は header.php で読み込み済みのため、テンプレートに
   手を入れず擬似要素で足せる。文字列は合字（ligature）名。 */
/* すでにテンプレート側にアイコンを持つボタン（お問い合わせページ等）には
   足さない。二重にアイコンが並んでしまうため。 */
.ps-cta__btn.filled:not(:has(.material-symbols-outlined))::before,
.ps-btn-green:not(:has(.material-symbols-outlined))::before,
.ct-btn--primary:not(:has(.material-symbols-outlined))::before,
.ps-cta__btn.outline:not(:has(.material-symbols-outlined))::before,
.ps-btn-outline:not(:has(.material-symbols-outlined))::before,
.ct-btn--outline:not(:has(.material-symbols-outlined))::before {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-variation-settings: 'FILL' 1;
  font-size: 20px;
  line-height: 1;
  content: 'arrow_forward';
}
.sr-noresults__reset-link::before {
  font-family: 'Material Symbols Outlined';
  font-variation-settings: 'FILL' 1;
  font-size: 20px;
  line-height: 1;
  content: 'refresh';
}

/* 大（52px）＝検索ボタン。4-4 で虫眼鏡アイコンを付ける */
.fp-search__btn,
.nf-search__btn,
.search-box .search-submit,
.pl-search .vkfs button.vkfs_submit.btn.btn-primary,
.nf-search .vkfs button.vkfs_submit.btn.btn-primary,
.ka-search .vkfs button.vkfs_submit.btn.btn-primary,
.sr-search .vkfs button.vkfs_submit.btn.btn-primary,
.fp-search .vkfs button.vkfs_submit.btn.btn-primary,
.ps-search .vkfs button.vkfs_submit.btn.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 52px;
  padding: 0 24px;
  font-size: var(--fs-16);
  font-weight: 700;
  line-height: 1;
  border-radius: var(--radius);
  border: 1px solid var(--ui-accent);
  background: var(--ui-accent);
  color: #fff;
  cursor: pointer;
}
.fp-search__btn:hover,
.nf-search__btn:hover,
.search-box .search-submit:hover,
.pl-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.nf-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.ka-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.sr-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.fp-search .vkfs button.vkfs_submit.btn.btn-primary:hover,
.ps-search .vkfs button.vkfs_submit.btn.btn-primary:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
}
.fp-search__btn::before,
.nf-search__btn::before,
.search-box .search-submit::before,
.pl-search .vkfs button.vkfs_submit.btn.btn-primary::before,
.nf-search .vkfs button.vkfs_submit.btn.btn-primary::before,
.ka-search .vkfs button.vkfs_submit.btn.btn-primary::before,
.sr-search .vkfs button.vkfs_submit.btn.btn-primary::before,
.fp-search .vkfs button.vkfs_submit.btn.btn-primary::before,
.ps-search .vkfs button.vkfs_submit.btn.btn-primary::before {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-variation-settings: 'FILL' 1;
  font-size: 22px;
  line-height: 1;
  content: 'search';
}

/* --- 4-6 に準じた横断検索のタブ --------------------------------
   esrij-algolia-bridge が「フォルダ型・緑」のタブ CSS をインラインで
   出力している。同プラグインは相談所さん管轄で弊社は中身を改修しない
   取り決めのため（.claude/rules/soudanjyo-policy.md）、ここで上書きする。
   見せ方は 4-6 と同じ「並列 ＋ 太字 ＋ 下の帯」に揃える。 */
.search-tabs {
  border-bottom: 2px solid var(--border-color);
  background: none;
}
.search-tabs__tab {
  margin-right: 0;
  bottom: 0;
  padding: 10px 20px;
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  color: var(--text-light);
}
.search-tabs__tab:hover {
  background: none;
  color: var(--text-color);
}
.search-tabs__tab.is-active {
  padding-top: 10px;
  background: none;
  border: 0;
  border-bottom: 3px solid var(--ui-accent-strong);
  border-radius: 0;
  color: var(--ui-accent-strong);
}
.search-tabs__tab.is-active .search-tabs__count {
  color: var(--ui-accent-strong);
}

/* --- 4-4 検索フォーム ------------------------------------------
   高さ 52px でどの画面も統一。製品セレクト・キーワード入力・検索ボタンを
   それぞれ独立した箱にして間隔をあける（確定デザイン画像の組み方）。
   「入力欄の左端にメインカラーの線を入れる」意匠は外す。 */
.fp-search__input,
.search-box #search-input,
.nf-search .vkfs__input-wrap--keyword input[type="text"],
.pl-search .vkfs__input-wrap--keyword input[type="text"],
.ka-search .vkfs__input-wrap--keyword input[type="text"],
.sr-search .vkfs__input-wrap--keyword input[type="text"],
.fp-search .vkfs__input-wrap--keyword input[type="text"],
.ps-search .vkfs__input-wrap--keyword input[type="text"] {
  height: 52px;
  font-size: var(--fs-16);
  border: 1px solid var(--ui-accent);
  border-radius: var(--radius);
}
.fp-search__product-select select,
.search-box .search-product-dropdown,
.nf-search select.vkfs__input-wrap--select,
.pl-search select.vkfs__input-wrap--select,
.ka-search select.vkfs__input-wrap--select,
.sr-search select.vkfs__input-wrap--select,
.fp-search select.vkfs__input-wrap--select,
.ps-search select.vkfs__input-wrap--select {
  height: 52px;
  font-size: var(--fs-16);
  border: 1px solid var(--ui-accent);
  border-radius: var(--radius);
}
/* 連結（角丸を片側だけ落とす／隣接ボーダーを消す）意匠の解除 */
.fp-search__input-wrap {
  gap: 12px;
}
.search-box form:not(:has(select)) #search-input {
  border-left: 1px solid var(--ui-accent);
}

/* --- 4-2 タグ・バッジ ------------------------------------------
   本文より目立ってはいけない部品。地色は「淡い青」と「グレー」の
   2 系統だけに絞る（種類ごとの色分けはしない）。 */
.ka-tag,
.sk-tag,
a.sk-tag,
#sidebar .esrij-kb-terms__chip,
.na-card__badge,
.badge-site {
  display: inline-block;
  padding: 2px 8px;
  font-size: var(--fs-12);
  font-weight: 600;
  line-height: 1.4;
  border-radius: var(--radius);
  border: 0;
  background: var(--ui-accent-tint);
  color: var(--ui-accent-strong);
  text-decoration: none;
}
.ka-tag:hover,
a.sk-tag:hover,
#sidebar .esrij-kb-terms__chip:hover {
  background: var(--col-Blue-lighter);
  color: var(--ui-accent-strong);
  text-decoration: none;
}
/* 外部サイトのバッジはグレー系 */
.badge-site,
.badge-site--docs,
.badge-site--corporate,
.na-card__badge--external,
.fp-news__badge--external {
  background: var(--gray-exlight);
  color: var(--gray-dark);
}
/* サポートサイト自身のバッジだけはメインカラーで区別する */
.badge-site--support {
  background: var(--ui-accent);
  color: #fff;
}
/* 「重要」バッジ。従来の #e53935 はパレット外だったため Red-darker に寄せる。
   .fp-news__badge は「重要」専用のバッジ（--external だけが別用途）。 */
.na-card__badge--important,
.ns-header__badge,
.fp-news__badge,
.fp-news__item--important .fp-news__badge {
  background: var(--col-Red-darker);
  color: #fff;
}
.fp-news__badge--external {
  background: var(--gray-exlight);
  color: var(--gray-dark);
}
/* 重要お知らせのタイトルも同じ赤に揃える */
.fp-news__item--important .fp-news__row a {
  color: var(--col-Red-darker);
}
.fp-news__item--important .fp-news__row a:hover {
  color: var(--col-Red-exdark);
}

/* --- 4-3 カード ------------------------------------------------
   アイコン左 ＋ タイトル右 → 区切り線 → 説明文。
   DOM は変えない（顧客が固定ページで同じクラスを直接使っているため）。
   顧客のページはアイコンを .fp-purpose__icon ではなく <img> で
   直接入れているので、そちらも同じ位置・同じ大きさに収まるようにする。 */
.fp-purpose__card {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 14px;
  padding: 20px;
  border: 1px solid var(--ui-accent);
  border-radius: var(--radius);
  background: #fff;
  text-align: left;
}
.fp-purpose__icon,
.fp-purpose__card > img {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0;
  object-fit: contain;
}
/* 弊社が置くアイコンは「濃い青の円 ＋ 白の塗りアイコン」。
   顧客が入れている <img>（製品アイコン）には円を付けない。 */
.fp-purpose__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ui-accent-strong);
  color: #fff;
  font-size: 24px;
  font-variation-settings: 'FILL' 1;
}
.fp-purpose__label {
  flex: 1 1 0; /* 長いタイトルでもアイコンと同じ行に留める（折り返しは行内で） */
  min-width: 0;
  margin: 0;
  font-size: var(--fs-20);
  font-weight: 700;
  color: var(--text-color);
}
.fp-purpose__desc {
  flex: 1 0 100%;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border-color);
  font-size: var(--fs-16);
  line-height: 1.6;
  color: var(--text-light);
}
/* 文字揃え: トップページだけ中央。それ以外（製品ページ・固定ページ・
   関連記事）は左。顧客の固定ページは説明文が 3〜4 行と長く、中央だと
   行頭が毎行ずれて読みにくいため（v2 ガイド 4-3 の確定表）。

   判別は body クラスではなくラッパーで行う。親テーマは body に
   `_page` しか付けずトップとその他を区別できない一方、トップのカードは
   front-page.php の <section class="fp-purpose"> の中にあり、顧客が
   固定ページに貼るカードは .fp-purpose__grid 単体で置かれるため。 */
.fp-purpose .fp-purpose__card {
  justify-content: center;
  text-align: center;
}
.fp-purpose .fp-purpose__label {
  flex: 0 1 auto;
}

/* 製品一覧の主力製品カードも 4-3 の形（アイコン左＋タイトル右）に揃える。
   T307（#132）で中央揃えにしていたが、2026-08 の再デザインで
   「カードはアイコン左＋タイトル右／トップ以外は左揃え」に確定したため
   そちらへ寄せる。アイコンは製品の SVG なので円は付けない。 */
.pl-featured__card {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 14px;
  padding: 20px;
  border-color: var(--ui-accent);
  text-align: left;
}
.pl-featured__icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0;
}
.pl-featured__name {
  flex: 1 1 auto;
  margin: 0;
  font-size: var(--fs-20);
}
.pl-featured__desc,
.pl-featured__link {
  flex: 1 0 100%;
  margin: 0;
}
/* 区切り線は「アイコン＋タイトルの行の直後」に 1 本だけ引く。
   説明文が無いカード（現状の /products）ではリンク側に引く。 */
.pl-featured__desc,
.pl-featured__card:not(:has(.pl-featured__desc)) .pl-featured__link {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border-color);
}
.pl-featured__desc {
  font-size: var(--fs-16);
}

/* --- 本文見出し（D70①）----------------------------------------
   GIS 基礎解説・用語集の本文に見出しスタイルが当たっておらず、
   ナレッジ・お知らせと見え方が揃っていなかった。同じ意匠にする。
   大きさは 3 章の文字トークン（h2 24 / h3 20 / h4 18・太字）。 */
.sk-body h2,
.ns-body h2,
.gg-single-body h2,
.gl-single-body h2,
.ps-richtext--full h2 {
  font-size: var(--fs-24);
  font-weight: 700;
  margin: 32px 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ui-accent-strong);
}
.sk-body h3,
.ns-body h3,
.gg-single-body h3,
.gl-single-body h3,
.ps-richtext--full h3 {
  font-size: var(--fs-20);
  font-weight: 700;
  margin: 24px 0 12px;
  padding-left: 12px;
  border-left: 3px solid var(--ui-accent-strong);
}
.sk-body h4,
.ns-body h4,
.gg-single-body h4,
.gl-single-body h4,
.ps-richtext--full h4 {
  font-size: var(--fs-18);
  font-weight: 700;
  margin: 20px 0 10px;
}
/* daext-helpful（フィードバック）の h3 は本文見出しではないので除外 */
.sk-body .daexthefu-container h3,
.ns-body .daexthefu-container h3,
.gg-single-body .daexthefu-container h3,
.gl-single-body .daexthefu-container h3 {
  border-left: none;
  padding-left: 0;
  font-size: var(--fs-16);
}

/* --- 4-5 検索キーワードのハイライト（D77）----------------------
   タイトル側に指定が無くブラウザ標準の黄色になっていたのが不揃いの原因。
   タイトル・本文とも同じ色にする。 */
.sr-card__title mark,
.sr-card__excerpt mark,
.ka-card__title mark,
.ka-card__excerpt mark,
.sk-body mark,
mark {
  background: var(--highlight-bg);
  color: inherit;
  padding: 0 2px;
}

/* --- 4-8 フィードバック UI（D74）-------------------------------
   ①「はい」「いいえ」の横幅を揃える ②「送信」「キャンセル」も揃える
   ③文字を上下中央に ④キャンセルは文字色ではなく背景をグレーに
   ＋ 大滝様ご指示: 送信＝右／キャンセル＝左（DOM は 送信→キャンセル の
   順なので、並びを入れ替えて表示する） */
/* daext-helpful 側が width / height / padding / display を !important で
   固定しているため、ここでも !important を使わないと当たらない。
   （プラグイン本体は改変しない方針のため CSS で上書きする） */
.daexthefu-container .daexthefu-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  box-sizing: border-box !important;
  width: 140px !important;
  height: 44px !important;
  padding: 0 16px !important;
  margin: 0 !important;
  font-size: var(--fs-14);
  font-weight: 700;
  line-height: 1;
  border-radius: var(--radius);
  border: 1px solid var(--ui-accent);
  background: #fff;
  color: var(--ui-accent);
  cursor: pointer !important;
}
.daexthefu-container .daexthefu-button:hover {
  background: var(--ui-accent-tint);
  border-color: var(--ui-accent-hover);
  color: var(--ui-accent-hover);
  opacity: 1 !important;
}
/* D74③: プラグイン既定の height:32px + overflow:hidden で文字が上寄りに
   見えていた。高さを解除して上下中央に置く。 */
.daexthefu-container .daexthefu-button-text {
  height: auto !important;
  overflow: visible !important;
  line-height: 1;
}
.daexthefu-container .daexthefu-buttons,
.daexthefu-container .daexthefu-comment-buttons-container {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
/* 送信＝右／キャンセル＝左（DOM は 送信 → キャンセル の順） */
.daexthefu-container .daexthefu-comment-buttons-container {
  flex-direction: row-reverse !important;
  justify-content: flex-end !important;
}
.daexthefu-container .daexthefu-comment-submit {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
}
.daexthefu-container .daexthefu-comment-submit:hover {
  background: var(--ui-accent-hover);
  border-color: var(--ui-accent-hover);
  color: #fff;
}
.daexthefu-container .daexthefu-comment-cancel {
  background: var(--gray-exlight);
  border-color: var(--gray-exlight);
  color: var(--gray-darker);
}
.daexthefu-container .daexthefu-comment-cancel:hover {
  background: var(--gray-lighter);
  border-color: var(--gray-lighter);
  color: var(--gray-darker);
}
.daexthefu-container .daexthefu-comment-submit::before {
  font-family: 'Material Symbols Outlined';
  font-variation-settings: 'FILL' 1;
  font-size: 18px;
  line-height: 1;
  content: 'send';
}
.daexthefu-container .daexthefu-comment-cancel::before {
  font-family: 'Material Symbols Outlined';
  font-variation-settings: 'FILL' 1;
  font-size: 18px;
  line-height: 1;
  content: 'close';
}
.daexthefu-container .daexthefu-comment-textarea {
  border-radius: var(--radius);
  border: 1px solid var(--border-color);
  font-size: var(--fs-14);
}
/* 狭い画面では設問とボタンを縦に積む。プラグイン既定の横並び（side-by-side）
   のままだと、ボタンの幅を固定した分だけ設問が潰れて縦書きのようになる。 */
@media (max-width: 640px) {
  .daexthefu-container .daexthefu-feedback {
    display: block !important;
  }
  .daexthefu-container .daexthefu-buttons-container {
    margin-top: 12px !important;
  }
  .daexthefu-container .daexthefu-button {
    width: 120px !important;
  }
}

/* --- 4-9 ページネーション --------------------------------------
   36×36px・14px・角丸 5px・現在地は #00619B。
   .sr- / .ka- / .gg- の 3 系統が別々に定義されているのでここで揃える。 */
.sr-pagination .page-numbers,
.ka-pagination .page-numbers,
.gg-pagination .page-numbers,
.na-pagination .page-numbers {
  min-width: 36px;
  height: 36px;
  font-size: var(--fs-14);
  border-radius: var(--radius);
}
.sr-pagination .page-numbers.current,
.ka-pagination .page-numbers.current,
.gg-pagination .page-numbers.current,
.na-pagination .page-numbers.current,
.ka-pagination .page-numbers .current {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
}

/* === T378 共通パーツ ここまで === */

/* ============================================================
   T379 — 目次・サイドバー・親子タブの作り直し（2026-08）
   （D46 / D57 / D70② / D73①②③④ / D78 / MT05 / 追加開発 #19）

   目次そのものと親子タブの意匠は esrij-support-core 側
   （custom-toc.css / document-nav.css）にある。ここに置くのは
   「レイアウト＝本文とサイドバーの関係」と「用語集の索引」。
   ============================================================ */

/* --- D78 / 4-7: サイドバーは 1024px 未満で本文の下へ ------------
   目次は T379 で本文の上部へ移したので、下へ回るのはカテゴリー等だけになる。
   ナレッジ・固定ページ（sk-）／お知らせ（ns-）／基礎解説（gg-）の 3 系統とも
   同じ閾値で揃える。
   ※ 従来 .sk-wrap--with-sidebar の 768px 指定は grid-template-columns を
     書いていたが、当の要素は display:flex のため何も効いていなかった
     （＝狭い画面でも 2 カラムのままだった）。flex-direction で書き直す。 */
@media (max-width: 1024px) {
  .sk-wrap--with-sidebar,
  .ns-wrap--with-sidebar,
  .gg-single-wrap--with-sidebar,
  .gl-single-wrap--with-sidebar {
    flex-direction: column;
    gap: 32px;
  }
  .sk-wrap--with-sidebar .sk-article {
    width: 100%;
  }
  .sk-sidebar,
  .ns-sidebar,
  .gg-single-sidebar,
  .gl-single-sidebar {
    width: 100%;
  }
  /* 幅の実体は id セレクタの #sidebar{width:300px}（既存の全幅化は 768px 止まり）。
     クラス側だけ書いても詳細度で負けるので、同じ形で 1024px まで引き上げる。 */
  #sidebar {
    width: 100%;
  }
  /* 本文の下へ回った後まで追従させると画面を覆うので、追従を解除する。 */
  .sk-main.active01 .sidebar-inner,
  .ns-main.active01 .sidebar-inner,
  .gg-single-main.active01 .sidebar-inner,
  .gl-single-main.active01 .sidebar-inner,
  .sk-main.active01 .sidebar.active .sidebar-inner,
  .ns-main.active01 .sidebar.active .sidebar-inner,
  .gg-single-main.active01 .sidebar.active .sidebar-inner,
  .gl-single-main.active01 .sidebar.active .sidebar-inner {
    position: static;
    top: auto;
  }
}

/* --- D46: サイドバー非表示時は本文をサイドバー領域まで広げる ----
   「サイドバーを非表示」が有効な記事、およびサイドバーに出すものが無い記事は
   1 カラム＋本文全幅にする。ナレッジ（.sk-）は既に全幅だったが、
   基礎解説（800px）とお知らせ（860px）が幅を絞ったままで 1 カラムに見えなかった。 */
.gg-single-wrap--no-sidebar .gg-single-article,
.gl-single-wrap--no-sidebar .gl-single-article,
.ns-wrap--no-sidebar {
  max-width: 100%;
}

/* --- D73① / D73②: 用語集の索引 --------------------------------
   ① ログイン時、索引が WP 管理バーの下へ潜っていた（top:0 固定のため）。
      追従要素の実際の下端（support.js が配信する --esrij-sticky-top）に貼る。
   ② 索引をクリックしたときの着地位置は support.js のハンドラが合わせる。
      JS が無い場合の保険として scroll-margin-top も入れておく。
   T391: 位置指定は親子タブ（.doc-nav）と同じ「--esrij-sticky-top ＋ --esrij-sticky-gap」の
      式に統一する。ただし索引の余白は 0 のまま＝見た目は従来どおり。理由は 2 つ。
      ①今回の指摘は親子タブについてのもので、索引に余白の要望は出ていない
      ②索引は前に兄弟要素（.ka-results）があり、隙間を塞ぐ帯を敷くと追従していない
        ときに直前の要素の下端を 10px 覆ってしまう（タブは容器の先頭で前が無いため
        この問題が起きない）。余白を入れるなら塞ぐ帯とセットで別途検討する。
      変数を明示的に 0 にしておくことで、support.js の着地オフセット計算も
      「索引には余白が無い」と正しく認識する（:root の 10px を継承させない）。
      保険の scroll-margin-top も、72px という概算をやめて support.js が実測配信する
      --esrij-anchor-offset に寄せる（値の出どころを 1 つにする）。 */
.gl-index {
  --esrij-sticky-gap: 0px;
  top: calc(var(--esrij-sticky-top, 0px) + var(--esrij-sticky-gap, 0px));
}

.gl-list__section {
  scroll-margin-top: var(--esrij-anchor-offset, calc(clamp(70px, 9.1vw, 100px) + 90px));
}

/* --- 4-7: 目次を本文上部へ出したことによる余白調整 --------------
   基礎解説は本文が .gg-single-body 直開始だったため、目次との間を空ける。 */
.gg-single-article .esrij-toc--inline,
.gl-single-article .esrij-toc--inline {
  margin-top: 8px;
}

/* === T379 ここまで === */

/* ============================================================
   T380 — ナレッジ詳細の作り込み（2026-08 再デザイン・ガイド 5-3）
   ------------------------------------------------------------
   T378（トークン・共通パーツ）と T379（目次・サイドバー・親子タブ）の
   上に 5-3「ナレッジ詳細」を組み上げるためのセクション。

   画面固有の骨格と余白は上の「ナレッジ詳細」セクションに置いてある。
   ここに置くのは、記事の末尾に並ぶブロック（フィードバック・共有・
   関連記事）どうしの関係のように、記事系テンプレートで共通に効かせたいもの。
   ============================================================ */

/* --- 4-8: フィードバックを「記事末尾のブロック」として立てる ----
   ボタンの並び・幅・順序は T378 が持っている（幅 140px・送信＝右）。
   ここで足すのは ①記事末尾の独立した部品としての「面」 ②下記のとおり
   環境によって当たらなかった配色・文字。

   【重要・T380 で判明】daext-helpful は管理画面の設定から
   `wp-content/uploads/daexthefu_uploads/custom-1.css` を生成し、
   **`!important` 付き・クラス 3 個の高い詳細度**でボタンの地色・文字・枠・
   角丸・コンテナの padding / border まで固定する。
   このファイルは**コードではなく環境ごとのデータ**で、ローカル（MAMP）は
   中身が空・wp70 と本番はプラグイン既定のまま（約 4.7KB）という差があった。
   そのため 4-8（D74）は**ローカルでだけ正しく見えていて、wp70・本番では
   当たっていなかった**（はい／いいえがグレーの塗り、送信が黒、角丸 4px 等）。

   対処は CSS 側で行う。プラグイン本体は改変しない方針（相談所さん管轄では
   ないが、設定データに依存させると環境ごとにずれ、顧客が設定を保存し直すたび
   再発するため）。プラグインの生成 CSS はクラス 3 個＋`!important` なので、
   **id セレクタ（プラグインが必ず出す `#daexthefu-container`）を前置**して
   詳細度で確実に上回る。読み込み順に依存しないのが狙い。 */
.daexthefu-container {
  margin-top: 40px !important;
  margin-bottom: 0 !important;
  padding: 24px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--border-color) !important;
  border-radius: var(--radius);
  background: var(--bg-light);
}
/* プラグイン既定は Inter を強制する。サイトの本文と書体が変わってしまうため戻す。 */
#daexthefu-container,
#daexthefu-container * {
  font-family: inherit !important;
}
/* 「お困りごとは解決しましたか？」は本文見出しではないので、本文 h3 の
   縦罫（T378 の D70① 系）を引き継がせず、ボタンと同じ行で上下中央に置く。 */
#daexthefu-container .daexthefu-title {
  margin: 0;
  font-size: var(--fs-16) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  color: var(--text-color) !important;
}
.daexthefu-container .daexthefu-feedback {
  align-items: center;
}
/* 4-1 の標準ボタン（線）。プラグイン既定はグレーの塗り＋19px・行送り 48px。 */
#daexthefu-container .daexthefu-button.daexthefu-yes,
#daexthefu-container .daexthefu-button.daexthefu-no {
  background: #fff !important;
  border-color: var(--ui-accent) !important;
}
#daexthefu-container .daexthefu-button.daexthefu-yes:hover,
#daexthefu-container .daexthefu-button.daexthefu-no:hover {
  background: var(--ui-accent-tint) !important;
  border-color: var(--ui-accent-hover) !important;
}
#daexthefu-container .daexthefu-button-text {
  font-size: var(--fs-14) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  color: var(--ui-accent) !important;
}
#daexthefu-container .daexthefu-button:hover .daexthefu-button-text {
  color: var(--ui-accent-hover) !important;
}
/* 送信＝メインカラーの塗り／キャンセル＝背景グレー（D74・大滝様ご指示）。 */
#daexthefu-container .daexthefu-comment-submit {
  background: var(--ui-accent) !important;
  border-color: var(--ui-accent) !important;
  color: #fff !important;
}
#daexthefu-container .daexthefu-comment-submit:hover {
  background: var(--ui-accent-hover) !important;
  border-color: var(--ui-accent-hover) !important;
}
#daexthefu-container .daexthefu-comment-cancel {
  background: var(--gray-exlight) !important;
  border-color: var(--gray-exlight) !important;
  color: var(--gray-darker) !important;
}
#daexthefu-container .daexthefu-comment-cancel:hover {
  background: var(--gray-lighter) !important;
  border-color: var(--gray-lighter) !important;
}
#daexthefu-container .daexthefu-comment-submit,
#daexthefu-container .daexthefu-comment-cancel {
  font-size: var(--fs-14) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}
/* 4-10: 角丸は 5px に統一（プラグイン既定は 4px）。 */
#daexthefu-container .daexthefu-button,
#daexthefu-container .daexthefu-comment-textarea {
  border-radius: var(--radius) !important;
}
#daexthefu-container .daexthefu-comment-textarea {
  border-color: var(--border-color) !important;
  font-size: var(--fs-14) !important;
  line-height: 1.6 !important;
  color: var(--text-color) !important;
}
#daexthefu-container .daexthefu-comment-label,
#daexthefu-container .daexthefu-comment-character-counter-number,
#daexthefu-container .daexthefu-comment-character-counter-text {
  font-size: var(--fs-14) !important;
  color: var(--text-light) !important;
}
/* 送信後の御礼文はプラグイン既定が上下 35px で、枠を付けると間延びする。 */
#daexthefu-container .daexthefu-successful-submission-text {
  margin: 0 !important;
  font-size: var(--fs-16) !important;
  font-weight: 700 !important;
  color: var(--ui-accent-strong) !important;
}

/* === T380 ここまで === */

/* ============================================================
 * T401 / MT08: 製品ページのカードを確定デザインへ展開
 * 仕様の正 = docs/intake/再デザインPJ/esriジャパンさまトップページデザイン1.png
 *           （顧客ご質問1「TOP のカードを変えると他ページのカードも変わるのか」への
 *             大滝様ご回答。確定版ガイド v2 の 5-5「製品詳細下部のカードは
 *             デザインB_1 を参照＝トップのカード意匠を展開」と同じ指示）
 * ------------------------------------------------------------
 * T378 の再デザインでカード意匠を .fp-purpose__card / .pl-featured__card にだけ
 * 当てたため、製品詳細（taxonomy-product.php）の製品リソース・My Esri が
 * 旧意匠（グレー枠・円なしの線アイコン・14px タイトル）のまま残っていた。
 * 絵から実測した値: 枠 #00619B / アイコンの円 70px・#034B77・白のグリフ 36px /
 * タイトル 20px / カード内の区切り線 1px。
 * ============================================================ */

/* --- 製品リソース（.ps-reslink）---
   幅と左右パディングは絵の実測（カード 216px・左右 18px）に合わせる。
   「製品ライフサイクル」が 20px で 1 行に収まる下限がこの値。 */
.ps-reslink {
  flex-basis: 216px;
  max-width: 216px;
  border-color: var(--ui-accent);
  gap: 18px;
  padding: 16px 12px 32px;
}
.ps-reslink__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: var(--ui-accent-strong);
  color: #fff;
}
.ps-reslink__icon svg {
  width: 36px;
  height: 36px;
}
.ps-reslink__title {
  font-size: var(--fs-20);
  color: var(--text-color);
}
/* 上の max-width 指定が既存のモバイル用 flex-basis（130px）より後ろに来るため、
   狭い画面での指定をここで置き直す（130px ではタイトルが 3 行に割れる）。 */
@media (max-width: 600px) {
  .ps-reslink {
    flex-basis: 150px;
  }
}

/* --- My Esri カード（.ps-myesri-card）---
   DOM は変えずに「アイコン ＋ タイトル → 区切り線 → 説明文 → ボタン」へ組み替える。
   説明文に flex-basis:100% を持たせることで、以降のボタンが次の行へ送られる。 */
.ps-myesri-card {
  display: flex;
  /* .ps-support-card が column 指定のため row を明示する（アイコン左＋タイトル右）。 */
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 14px;
  border-color: var(--ui-accent);
  padding: 32px 40px;
}
.ps-myesri-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 70px;
  width: 70px;
  height: 70px;
  margin: 0;
  border-radius: 50%;
  background: var(--ui-accent-strong);
  color: #fff;
  line-height: 1;
}
.ps-myesri-card__icon svg {
  width: 36px;
  height: 36px;
}
.ps-myesri-card__title {
  flex: 0 1 auto;
  margin: 0;
  font-size: var(--fs-20);
  color: var(--text-color);
}
.ps-myesri-card__desc {
  flex: 1 0 100%;
  max-width: none;
  margin: 0;
  margin-top: 14px;
  padding-top: 19px;
  border-top: 1px solid var(--border-color);
  font-size: var(--fs-16);
  color: var(--text-light);
}
.ps-myesri-card__btn {
  flex: 0 0 auto;
  margin-top: 20px;
}

/* === T401 / MT08 ここまで === */

/* ============================================================
 * T401 / MT09: コンテンツヘッダーを白地にし、トップ以外は下に濃色バー
 * 仕様の正 = docs/intake/再デザインPJ/esriジャパンさまトップページデザイン3.png
 *           （顧客ご質問3「コンテンツヘッダーの背景色を白にする場合、TOP 以外を
 *             開いたときに下へ濃い色のバーを入れたい」への大滝様ご回答）
 *           トップ = 同 デザインB_TOP.png（バーなし・下にキービジュアルが続く）
 * ------------------------------------------------------------
 * 確定版ガイド v2 には「コンテンツヘッダー」の項目が無く、絵の中にしか存在しない
 * 指示だったため T378 の再デザインで反映が漏れ、D02/T74 当時の濃紺帯のままだった。
 * 絵から実測した値: 帯の地 #fff / メニューの文字 #343434 / 現在地 #034B77 /
 * 区切り線 1px #343434 / ボタンは白地に #00619B の枠と文字 / バー 6px #00619B。
 * ============================================================ */
.support-nav {
  background-color: #fff;
  border-bottom: 1px solid var(--border-color);
}
/* トップ以外のみ濃色バー。高さの変化は support.js が実測して
   --esrij-sticky-top に配信するため、追従要素の位置は自動で追随する。 */
.___pt-container.-support.-sub .support-nav {
  border-bottom: 6px solid var(--ui-accent);
}
.support-nav .support-nav__list li a {
  color: var(--text-color);
}
.support-nav .support-nav__list li a:hover {
  background: var(--ui-accent-tint);
  color: var(--ui-accent-strong);
}
.support-nav .support-nav__list li.current-menu-item a {
  background: transparent;
  color: var(--ui-accent-strong);
  font-weight: 700;
}
/* 親テーマの縦区切り線を復活させる（地が白になったため白のままでは見えない）。
   ボタン（-otbtn）の前後には出さない＝確定デザインどおり文字項目の間だけ。 */
.support-nav.post-list > ul > li:not(:last-child):not(.-otbtn)::after {
  display: block;
  background: var(--text-color);
}
/* アウトラインボタン（D02）: 濃紺地の白枠 → 白地に青枠・青文字へ。
   左右の余白は D02 当時の 4px では区切り線とボタンが詰まって見えるため、
   絵の実測（ボタン同士 29px）に合わせて 14px にする。 */
.support-nav .support-nav__list li.support-nav__item--outline a,
.support-nav .support-nav__list li.-otbtn a {
  margin: 2px 14px;
  background-color: #fff;
  border: 1px solid var(--ui-accent);
  color: var(--ui-accent);
}
/* 区切り線とボタンの間はボタン同士より広い（絵の実測 26px）。
   文字項目に続く最初のボタンだけ左を広げる。 */
.support-nav .support-nav__list li:not(.-otbtn):not(.support-nav__item--outline) + li.support-nav__item--outline a,
.support-nav .support-nav__list li:not(.-otbtn):not(.support-nav__item--outline) + li.-otbtn a {
  margin-left: 26px;
}
.support-nav .support-nav__list li.support-nav__item--outline a:hover,
.support-nav .support-nav__list li.-otbtn a:hover {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: #fff;
}

/* === T401 / MT09 ここまで === */

/* ============================================================
   T400 — 目次を広い画面でサイドバー追従に戻す（2026-08-19）

   T379 で目次を「本文上部の折りたたみ」1 形式に統一したが、広い画面では
   常に見えている追従型のほうが読みやすいというご指摘を受けて 2 形式に戻した。
   折りたたみ（.esrij-toc--inline）は狭い画面の解として残す。

   テンプレートは両方を出力し、切り替えはここだけで行う。閾値はサイドバーが
   本文の下へ回る D78 の 1024px と同じにする（別の値にすると「サイドバーは
   下に回っているのに目次はサイドバーの中」という状態ができてしまう）。

   目印になるクラスはテンプレートが付ける:
     .esrij-has-sidebar-toc  … サイドバーに追従目次を出した wrap
     .esrij-sidebar--toc-only … 目次しか入っていないサイドバー
   ============================================================ */

/* 広い画面: サイドバーに目次があるので、本文上部の折りたたみは出さない。
   「サイドバーを非表示」の記事やサイドバーを持たないページには
   .esrij-has-sidebar-toc が付かないため、折りたたみがそのまま残る。 */
@media (min-width: 1025px) {
  .esrij-has-sidebar-toc .esrij-toc--inline {
    display: none;
  }
}

/* 狭い画面: サイドバーは本文の下へ回る（D78）ので、目次は本文上部の折りたたみだけにする。 */
@media (max-width: 1024px) {
  .esrij-toc--widget {
    display: none;
  }
  /* 目次しか入っていないサイドバーは、下に回ると空の箱になるので畳む。
     ウィジェット（カテゴリー等）がある場合は従来どおり本文の下に出す。 */
  .esrij-sidebar--toc-only {
    display: none;
  }
}

/* ============================================================
 * T403 / MT11: トップページ 大滝様フィードバック（2026-08-20）の反映
 * 仕様の正 = docs/intake/再デザインPJ/デザインB_左寄せ.png（実測）
 * ------------------------------------------------------------
 * ②「サポートからのお知らせ」＝枠線とドロップシャドウを外し、地を敷いてフラットに
 *    （絵の実測: 地 #F8F8F8 / 行の区切り線 #CED4DA / 角丸は 5px のまま）
 * ④ セクション間の縦余白が実装で詰まっていた（絵は 70px 前後）
 * ⑤ 要素の間に罫線が入っていた（絵にはない）
 * ※ ③「はじめにお読みください」の再表示ボタン #E69100 は T398（プラグイン側）。
 * ============================================================ */

/* --- ② お知らせボックスをフラットに --- */
.fp-news__box {
  border: 0;
  box-shadow: none;
  background: #f8f8f8;
}
.fp-news__item {
  border-bottom-color: #ced4da;
}

/* --- ⑤ セクション間の罫線を外す（絵には無い） --- */
.fp-search {
  border-bottom: 0;
}
.fp-purpose {
  border-top: 0;
}

/* --- ④ 縦余白を絵の実測（70px 前後）へ戻す。8px グリッドに乗せて 72px --- */
.fp-search {
  padding-top: 72px;    /* キービジュアル → 検索見出し（絵 75px） */
}
.fp-news {
  padding-bottom: 96px; /* お知らせボックス → グレー帯（絵 101px） */
}
.fp-purpose {
  padding: 72px 0;      /* 絵の実測 上 74px / 下 70px */
}

@media (max-width: 768px) {
  /* 狭い画面まで 72px を持ち込むと間延びするため、従来比で少しだけ広げる。 */
  .fp-search {
    padding-top: 40px;
  }
  .fp-news {
    padding-bottom: 56px;
  }
  .fp-purpose {
    padding: 40px 0;
  }
}

/* === T403 / MT11 ここまで === */

/* ============================================================
 * T403 / MT11（追補）: キービジュアルを切らずに見せる
 * 2026-08-20 に新しいキービジュアル（5923×751・約 7.9:1）を受領。
 * 高さが 160px 固定だと、コンテナ幅での自然な高さ（1560px 幅で 196px）に対して
 * 上下が 36px 切り落とされ、空の上端と地球の下端が欠けていた。
 * 高さを画像の縦横比に追従させることで、どの幅でも切れずに収まる。
 * min-height は「見出しが収まる下限」として残す（狭い画面では比率より優先される）。
 * ============================================================ */
.fp-hero {
  aspect-ratio: 2560 / 325;
  /* aspect-ratio を入れると、幅が「高さ × 比率」から逆算されて親より広くなり
     横スクロールが出る（768px 実測で 945px に膨らんだ）。幅を明示して止める。 */
  width: 100%;
}
@media (max-width: 768px) {
  /* 狭い画面は比率どおりだと帯が細くなりすぎて見出しが載らないため、下限を下げて調整。 */
  .fp-hero {
    min-height: 120px;
  }
}

/* === T403 / MT11（追補）ここまで === */

/* ============================================================
 * T404 / MT12: 関連ナレッジの列数
 * 表示件数（5→6）は single-knowledge.php 側。ここは列数だけを持つ。
 *
 * 従来は repeat(auto-fill, minmax(280px, 1fr)) で幅任せに並べていたため、
 * サイドバーの無いページ（本文幅がコンテナいっぱい＝最大 1200px）では 4 列になり、
 * 6 件だと 2 行目が 2 枚だけの中途半端な形になっていた（顧客ご指摘の実例＝
 * サポートポリシー配下「製品ライフサイクル」）。列数をサイドバーの有無で明示し、
 * 3×2 / 2×3 のどちらでも最終行が埋まるようにする。
 *
 * 閾値 1025px は D78（サイドバーが本文の下へ回る幅）と同値。これ未満では
 * サイドバーが下へ回って本文が全幅になるため、有無で分ける意味が無くなり、
 * 従来どおり幅任せ（auto-fill）に戻る。
 * ============================================================ */
@media (min-width: 1025px) {
  .sk-wrap--no-sidebar .sk-related__list {
    grid-template-columns: repeat(3, 1fr);
  }
  .sk-wrap--with-sidebar .sk-related__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* === T404 / MT12 ここまで === */

/* ============================================================
 * T418 / D81: 本文中に画像を入れると改行される
 *
 * 真因は親テーマ common/css/style.css の `img { max-width:100%; display:block }`。
 * 顧客のご指摘は「display: inline が原因」だったが、実際に効いている宣言は
 * block のほうで、inline は**あるべき値**。ブロック要素になった画像は必ず
 * 自分の行を占めるため、文中に置いても前後で改行される。
 * 旧 FastAnswer 由来の本文は <img class="contentMedia"> を文中にそのまま置く
 * 書き方（例: /knowledge/23541・ローカルでは ID 25253）なのでこれと衝突する。
 *
 * common/ は親テーマ機構＝顧客管轄で編集しないため、本文領域だけを子テーマで
 * inline に戻す（顧客のご要望も「子テーマで上書きして引き継ぎを解除」）。
 *
 * 行末に隙間が出ないのは、親テーマが既に
 * `svg, img, embed, object, iframe { vertical-align: bottom }` を持っているため
 * （inline に戻してもディセンダ分の下余白が出ない）。
 * ============================================================ */
.sk-body img,
.ns-body img,
.gg-single-body img,
.gl-single-body img {
  display: inline;
}

/* 保険: ブロックエディターで配置指定された画像と figure 直下の画像は、
   中央寄せ・回り込みが margin:auto / float と display:block の組み合わせで
   成立するため従来どおりブロックのまま残す。
   （ローカル実データでは align 系クラスは 0 件＝現時点で該当は無く、
   今後 顧客が新規記事を書いたときのための保険） */
.sk-body img.aligncenter,
.sk-body img.alignleft,
.sk-body img.alignright,
.sk-body figure > img,
.ns-body img.aligncenter,
.ns-body img.alignleft,
.ns-body img.alignright,
.ns-body figure > img,
.gg-single-body img.aligncenter,
.gg-single-body img.alignleft,
.gg-single-body img.alignright,
.gg-single-body figure > img,
.gl-single-body img.aligncenter,
.gl-single-body img.alignleft,
.gl-single-body img.alignright,
.gl-single-body figure > img {
  display: block;
}

/* === T418 / D81 ここまで === */

/* ============================================================
 * T413: ページ最下部でサイドバー目次の上部が固定ヘッダーに隠れる
 *
 * position: sticky は包含ブロック（サイドバー列）の下端までしか粘れない。
 * 記事の下には「お困りごとは解決しましたか？」「関連するナレッジ」フッターが
 * 続くため、最下部ではサイドバー列の下端が画面内まで上がってきて、目次カードが
 * その下端に押し上げられる。押し上げられた先が固定ヘッダーの裏になるので、
 * カードの上部だけが切れて見える（＝壊れて見える）。
 *
 * sticky の仕様上、ピン位置は「包含ブロック下端 − 要素高さ」で決まり top の値では
 * 動かせないため、位置では直せない。押し上げが始まったら**役目を終えたものとして
 * 消える**ようにする（サイドバー列が終わった＝本文が終わった、なので目次も不要）。
 * ヘッダーの裏に半分潜ったカードを見せ続けるよりこちらが自然。
 *
 * 判定は support.js が実測で行い .esrij-sticky-out を付け外しする。閾値は
 * 「いま実際に覆っている下端」＝ --esrij-sticky-top と同じ出どころなので、
 * ここに固有の px を置かない（T391 で値の出どころを 1 本化した方針を維持）。
 *
 * 幅の出し分けも持たない: 押し上げは sticky が効いている二段組のときしか
 * 起きず、1024px 以下（サイドバーが本文の下へ回る D78 / 目次は本文上部の
 * 折りたたみ T400）では判定自体が成立しないため、幾何条件だけで自動的に
 * 対象が絞られる。ここに breakpoint を足すと T400 の 1 か所管理が崩れる。
 * ============================================================ */
/* T422: 上のサイドバーセクションから transition: top を外したため、ここも
   opacity / visibility だけにする（退場のフェードは従来どおり）。 */
.sk-main.active01 .sidebar-inner,
.ns-main.active01 .sidebar-inner,
.gg-single-main.active01 .sidebar-inner,
.gl-single-main.active01 .sidebar-inner {
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.sidebar-inner.esrij-sticky-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* === T413 ここまで === */
