/* ==========================================================================
   税制ナビ コンポーネント / kt-*  (Xwrite 移植版)
   出自: _core/data/kaikei-tax-theme/css-src/kt.css(321行)
   移植時の改変:
     - :root(L8-15)は 00-tokens.css へ移動
     - .entry-content → .articleBody (Xwrite 本文コンテナ・解析§3 / parts/single/post-content.php:10)
     - .breadcrumb    → .breadcrumbs (Xwrite パンくず・解析§3 / lib/utils.php:107-109)
     - Cocoon固有DOM依存で移植先で意味を失う宣言は削除(#navi 系・.ect-entry-card 系)
   色・寸法の値は1つも変えていない。
   ========================================================================== */

/* --- 見出し（記事内 H2）------------------------------------------------- */
.articleBody h2.kt-h2{
  font-size:18px; font-weight:600; color:var(--kt-deep);
  border:0; border-bottom:1px solid var(--kt-deep);
  background:none; padding:0 0 9px; margin:34px 0 12px; border-radius:0;
}

/* --- アンサーカプセル（H1直後 120〜150字・事実のみ・リンクなし）--------- */
.kt-capsule{
  background:var(--kt-panel); border-left:3px solid var(--kt-deep);
  padding:18px 20px; margin:0 0 24px;
}
.kt-capsule__label{
  display:block; font:500 10px/1 var(--kt-mono); letter-spacing:.14em;
  color:var(--kt-muted); margin-bottom:8px;
}
.kt-capsule p{ margin:0; font-size:15px; line-height:1.95; color:var(--kt-ink); text-wrap:pretty; }

/* --- 鮮度メタ（公開・更新・出典別確認日）------------------------------- */
.kt-meta{ display:flex; flex-wrap:wrap; gap:6px; font:500 11px/1 var(--kt-mono); margin:0 0 22px; }
.kt-meta > span{ padding:7px 9px; }
.kt-meta__updated{ background:var(--kt-deep); color:#fff; }
.kt-meta__published{ background:var(--kt-bg); border:1px solid var(--kt-line); color:#56645C; }
.kt-meta__checked{ background:var(--kt-tint); border:1px solid var(--kt-tint-bd); color:var(--kt-link); }

/* --- 確認日バッジ（本文中・出典ごと）----------------------------------- */
.kt-checked{
  display:inline-block; font:500 11px/1 var(--kt-mono);
  background:var(--kt-tint); border:1px solid var(--kt-tint-bd);
  color:var(--kt-link); padding:7px 9px; vertical-align:middle;
}

/* --- 原文リンクバッジ ---------------------------------------------------- */
.kt-srcs{ display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin:10px 0 0; }
.kt-srcs__label{ font-size:12px; color:#56645C; padding-right:2px; }
.kt-src{
  display:inline-flex; align-items:baseline; gap:7px;
  font-size:12px; padding:6px 10px; color:#fff !important; text-decoration:none;
}
.kt-src small{ font:500 11px/1 var(--kt-mono); opacity:.72; }
.kt-src:hover{ text-decoration:underline; }
.kt-src--nta { background:var(--kt-deep); }   /* 国税庁 */
.kt-src--egov{ background:var(--kt-mid); }    /* e-Gov  */
.kt-src--mof { background:#4A6357; }          /* 財務省 */
.kt-src--asbj{ background:#5B7168; }          /* ASBJ   */

/* --- 横断表 / 比較表 ------------------------------------------------------
   左上十字固定。モバイルは横スクロールし、左の項目列とヘッダ行が追従する。
   sticky ヘッダは「スクロールコンテナの高さが制限されている」ことが条件なので
   max-height を置く（外すと縦追従が死ぬ=DESIGN-SPEC §7 継承罠8）。
   -------------------------------------------------------------------- */
.kt-table{
  overflow:auto; max-height:70vh;
  border:1px solid var(--kt-line); margin:0 0 4px; -webkit-overflow-scrolling:touch;
}
.kt-table table{ width:100%; min-width:830px; border-collapse:separate; border-spacing:0; font-size:13px; margin:0; }
.kt-table thead th{
  position:sticky; top:0; z-index:3;
  background:var(--kt-deep); color:#fff;
  text-align:center; padding:10px 13px; font-size:12px; font-weight:600; border:0;
}
.kt-table thead th:first-child{ left:0; z-index:4; text-align:left; }
.kt-table thead th:last-child { text-align:left; }
.kt-table tbody th{
  position:sticky; left:0; z-index:2;
  background:var(--kt-paper); text-align:left; padding:10px 13px;
  font-weight:400; color:var(--kt-ink); border-right:1px solid var(--kt-line);
}
.kt-table tbody td{ text-align:center; padding:10px 13px; color:var(--kt-ink); }
.kt-table tbody td:last-child{ text-align:left; font:500 11px/1.5 var(--kt-mono); color:#56645C; }
.kt-table tbody th, .kt-table tbody td{ border-bottom:1px solid var(--kt-line-2); }
.kt-table tbody tr:last-child th, .kt-table tbody tr:last-child td{ border-bottom:0; }
/* 差分行（この表の主眼になる行）*/
.kt-table tr.is-diff th, .kt-table tr.is-diff td{ background:var(--kt-panel); }
.kt-table tr.is-diff th{ font-weight:600; border-left:2px solid var(--kt-accent); }
/* 値の強調セル */
.kt-table .is-mark{ background:var(--kt-tint); color:var(--kt-link); font-weight:600; }
.kt-table .is-na  { color:var(--kt-muted); }
@media(max-width:834px){
  .kt-table table{ min-width:520px; font-size:12px; }
  .kt-table thead th,.kt-table tbody th,.kt-table tbody td{ padding:8px 10px; }
}

/* --- 施行日タイムライン --------------------------------------------------- */
.kt-tl{ display:grid; grid-template-columns:118px 18px 1fr; align-items:start; margin:0; }
.kt-tl__date{ font:500 13px/1.5 var(--kt-mono); color:var(--kt-muted); padding-bottom:26px; }
.kt-tl__rail{ display:flex; flex-direction:column; align-items:center; height:100%; }
.kt-tl__dot { width:9px; height:9px; background:var(--kt-line-3); margin-top:5px; }
.kt-tl__bar { flex:1; width:1px; background:var(--kt-line); }
.kt-tl__body{ padding:0 0 26px 18px; display:flex; flex-direction:column; gap:4px; }
.kt-tl__title{ font-size:15px; font-weight:600; color:#56645C; }
.kt-tl__desc { font-size:13px; line-height:1.85; color:var(--kt-muted); }
/* 直近・重要 */
.kt-tl__date--key { font-weight:600; color:var(--kt-deep); }
.kt-tl__dot--key  { width:11px; height:11px; background:var(--kt-accent); margin-top:4px; }
.kt-tl__dot--future{ width:11px; height:11px; border:2px solid var(--kt-accent); background:#fff; margin-top:4px; }
.kt-tl__title--key{ font-size:16px; color:var(--kt-ink); }
.kt-tl__desc--key { color:var(--kt-text); }
.kt-tl__flag{
  font:500 10px/1 var(--kt-mono); background:var(--kt-tint);
  border:1px solid var(--kt-tint-bd); color:var(--kt-link);
  padding:4px 8px; margin-left:10px;
}
@media(max-width:834px){
  .kt-tl{ grid-template-columns:88px 16px 1fr; }
  .kt-tl__date{ font-size:12px; }
}

/* --- 判定フロー（素のJS）-------------------------------------------------- */
.kt-flow{ border:1px solid var(--kt-line); background:var(--kt-paper); margin:0; }
.kt-flow__head{
  background:var(--kt-panel); border-bottom:1px solid var(--kt-line);
  padding:9px 15px; display:flex; justify-content:space-between; align-items:center;
}
.kt-flow__head span{ font:500 11px/1 var(--kt-mono); color:var(--kt-link); letter-spacing:.08em; }
.kt-flow__reset{
  font-size:11px; color:#56645C; background:#fff;
  border:1px solid var(--kt-line); padding:5px 10px; cursor:pointer;
}
.kt-flow__body{ padding:15px 17px; display:flex; flex-direction:column; gap:11px; }
.kt-flow__q{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.kt-flow__q + .kt-flow__q{ border-top:1px solid var(--kt-line-2); padding-top:11px; }
.kt-flow__no{ font:500 11px/1 var(--kt-mono); color:var(--kt-muted); width:22px; flex:0 0 22px; }
.kt-flow__text{ font-size:14px; color:var(--kt-ink); flex:1; min-width:280px; line-height:1.7; }
.kt-flow__btns{ display:flex; gap:8px; }
.kt-flow__btn{ font-size:13px; padding:9px 18px; cursor:pointer; min-height:44px; }
.kt-flow__btn--y{ background:var(--kt-deep); color:#fff; border:1px solid var(--kt-deep); }
.kt-flow__btn--n{ background:#fff; color:var(--kt-deep); border:1px solid var(--kt-line-3); }
.kt-flow__ans{
  font:500 12px/1 var(--kt-mono); color:var(--kt-link);
  background:var(--kt-tint); border:1px solid var(--kt-tint-bd); padding:7px 11px;
}
.kt-flow__result{ border-top:1px solid var(--kt-deep); padding-top:13px; display:none; flex-direction:column; gap:9px; }
.kt-flow__result.is-on{ display:flex; }
.kt-flow__result h4{ margin:0; font-size:15px; font-weight:600; color:var(--kt-deep); line-height:1.65; }
.kt-flow__result p { margin:0; font-size:14px; line-height:1.95; color:var(--kt-ink); text-wrap:pretty; }
.kt-flow [hidden]{ display:none !important; }

/* --- 計算機 / シミュレータ ------------------------------------------------- */
.kt-calc{ border:1px solid var(--kt-line); display:grid; grid-template-columns:minmax(0,1fr) 292px; margin:0; }
.kt-calc__in { padding:17px; display:flex; flex-direction:column; gap:12px; border-right:1px solid var(--kt-line); background:#fff; }
.kt-calc__row{ display:flex; align-items:center; gap:12px; }
.kt-calc__row > span{ font-size:13px; color:var(--kt-text); width:196px; flex:0 0 196px; }
.kt-calc__in input,.kt-calc__in select{
  flex:1; padding:11px; border:1px solid var(--kt-line-3);
  background:#fff; color:var(--kt-ink); font-size:14px; min-height:44px;
}
.kt-calc__in input{ font:500 14px/1 var(--kt-mono); text-align:right; }
.kt-calc__note{
  margin:0; font-size:12px; line-height:1.9; color:#56645C;
  border-top:1px solid var(--kt-line-2); padding-top:11px; text-wrap:pretty;
}
.kt-calc__out{ padding:17px; background:var(--kt-deep); display:flex; flex-direction:column; gap:11px; }
.kt-calc__line{ display:flex; justify-content:space-between; align-items:baseline; }
.kt-calc__line span { font-size:12px; color:#9DB6A8; }
.kt-calc__line strong{ font:600 16px/1 var(--kt-mono); color:#fff; }
.kt-calc__total{ border-top:1px solid var(--kt-mid); padding-top:11px; }
.kt-calc__total strong{ font-size:20px; color:#8FC7A8; }
.kt-calc__src{ margin-top:auto; display:flex; flex-direction:column; gap:5px; padding-top:12px; }
.kt-calc__src a{ font-size:11px; color:#C3D4C9 !important; }
.kt-calc__src small{ font:500 10px/1 var(--kt-mono); color:#7F9C8C; }
@media(max-width:834px){
  .kt-calc{ grid-template-columns:1fr; }
  .kt-calc__in{ border-right:0; border-bottom:1px solid var(--kt-line); }
  .kt-calc__row{ flex-wrap:wrap; }
  .kt-calc__row > span{ width:100%; flex:0 0 100%; }
}

/* --- チェックリスト（印刷・スクショ前提）---------------------------------- */
.kt-check{ border:1px solid var(--kt-line); display:grid; grid-template-columns:1fr 1fr; background:#fff; margin:0; }
.kt-check label{
  display:flex; gap:10px; align-items:flex-start; padding:11px 15px;
  border-bottom:1px solid var(--kt-line-2); font-size:13px; line-height:1.75; color:var(--kt-ink);
  cursor:pointer; min-height:44px; box-sizing:border-box;
}
.kt-check label:nth-child(odd){ border-right:1px solid var(--kt-line-2); }
.kt-check input{ margin-top:3px; accent-color:var(--kt-link); width:16px; height:16px; }
@media(max-width:834px){
  .kt-check{ grid-template-columns:1fr; }
  .kt-check label:nth-child(odd){ border-right:0; }
}
@media print{
  .kt-check{ break-inside:avoid; }
  .kt-cta,.kt-cta-micro{ display:none; }
}

/* --- タグ列 --------------------------------------------------------------- */
.kt-tags{ display:grid; grid-template-columns:60px 1fr; gap:10px 14px; align-items:center;
          border:1px solid var(--kt-line); padding:15px 17px; background:#fff; margin:0; }
.kt-tags__label{ font:500 10px/1 var(--kt-mono); letter-spacing:.14em; color:var(--kt-muted); }
.kt-tags__row{ display:flex; flex-wrap:wrap; gap:6px; }
.kt-tag{ display:inline-block; font-size:12px; padding:5px 10px; text-decoration:none; }
.kt-tag--topic{ border:1px solid var(--kt-line-3); color:var(--kt-deep) !important; background:#fff; }
.kt-tag--year { font:500 12px/1.4 var(--kt-mono); background:var(--kt-panel); border:1px solid #C0CBC4; color:var(--kt-text) !important; }
.kt-tag--src  { background:var(--kt-tint); border:1px solid var(--kt-tint-bd); color:var(--kt-deep) !important; }
.kt-tag--type { background:var(--kt-deep); color:#fff !important; }
.kt-tag:hover{ text-decoration:underline; }

/* --- 免責ブロック（記事末に常設）------------------------------------------ */
.kt-note{ border:1px solid var(--kt-line); background:var(--kt-panel); padding:15px 17px; margin:0; }
.kt-note__label{ font:500 11px/1 var(--kt-mono); color:#56645C; letter-spacing:.1em; display:block; margin-bottom:9px; }
.kt-note p{ margin:0; font-size:12px; line-height:2; color:#56645C; text-wrap:pretty; }

/* --- bizkeiri 送客カード（主KPI・姉妹サイト明示を内蔵）-------------------- */
.kt-cta{ border:1px solid var(--kt-mid); margin:0; }
.kt-cta__head{
  background:var(--kt-mid); padding:9px 15px;
  display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
}
.kt-cta__head b{ font:500 11px/1 var(--kt-mono); color:#fff; letter-spacing:.1em; }
.kt-cta__head small{ font:500 10px/1 var(--kt-mono); color:#B6CCBF; }
.kt-cta__body{ padding:17px; display:flex; gap:18px; align-items:center; background:#fff; }
.kt-cta__body div{ flex:1; display:flex; flex-direction:column; gap:6px; }
.kt-cta__body strong{ font-size:16px; font-weight:600; color:var(--kt-ink); }
.kt-cta__body span  { font-size:13px; line-height:1.9; color:var(--kt-text); }
.kt-cta__btn{
  flex:0 0 auto; font-size:14px; font-weight:600;
  background:var(--kt-deep); color:#fff !important;
  padding:12px 24px; text-decoration:none; min-height:45px; line-height:21px; box-sizing:border-box;
}
@media(max-width:834px){
  .kt-cta__body{ flex-direction:column; align-items:stretch; }
  .kt-cta__btn{ text-align:center; }
}
/* H2直下マイクロテキスト版 */
.kt-cta-micro{
  background:var(--kt-panel); border:1px solid var(--kt-line);
  padding:14px 17px; display:flex; gap:14px; align-items:flex-start; margin:0;
}
.kt-cta-micro__label{ font:500 10px/1.7 var(--kt-mono); letter-spacing:.1em; color:var(--kt-link); flex:0 0 auto; padding-top:2px; }
.kt-cta-micro p{ margin:0; font-size:13px; line-height:1.9; color:var(--kt-text); }
/* 目次上版 */
.kt-cta-toc{ border-left:2px solid var(--kt-tint-bd); padding:2px 0 2px 16px; margin:0; }
.kt-cta-toc p{ margin:0; font-size:14px; line-height:2; color:#56645C; }
.kt-cta-toc small{ display:block; font:500 10px/1.8 var(--kt-mono); color:var(--kt-line-3); }

/* --- 本文内コンポーネントの共通余白 ---------------------------------------- */
.articleBody .kt-capsule,
.articleBody .kt-table,
.articleBody .kt-flow,
.articleBody .kt-calc,
.articleBody .kt-check,
.articleBody .kt-tl,
.articleBody .kt-tags,
.articleBody .kt-note,
.articleBody .kt-cta,
.articleBody .kt-cta-micro,
.articleBody .kt-cta-toc{ margin-block:22px; }

/* --- パンくず ------------------------------------------------------------- */
.breadcrumbs{ font:500 12px/1.6 var(--kt-mono); color:#56645C; }

/* --- 一覧行（カテゴリ・アーカイブ）: サムネイルに頼らない ------------------- */
.kt-list{ background:#fff; border:1px solid var(--kt-line); }
.kt-list table{ width:100%; border-collapse:collapse; font-size:13px; margin:0; }
.kt-list thead tr{ background:transparent; border-bottom:1px solid var(--kt-line); }
.kt-list thead th{ text-align:left; padding:8px 14px; color:var(--kt-deep); font-weight:600; font-size:11px; letter-spacing:.06em; background:transparent; border:0; }
.kt-list tbody th{ background:transparent; border:0; font-weight:500; text-align:left; }
.kt-list th, .kt-list td{ border-top:0; border-left:0; border-right:0; }
.kt-list tbody tr{ border-bottom:1px solid var(--kt-line-2); }
.kt-list tbody tr:last-child{ border-bottom:0; }
.kt-list td{ padding:10px 14px; vertical-align:top; border-bottom:1px solid var(--kt-line-2); background:transparent; }
.kt-list tbody th{ padding:10px 14px; border-bottom:1px solid var(--kt-line-2); }
.kt-list__date{ font:500 12px/1.5 var(--kt-mono); font-weight:500 !important; letter-spacing:normal; color:#56645C !important; white-space:nowrap; }
.kt-list__cat { font-size:12px; color:var(--kt-link); }
.kt-list__title a{ color:var(--kt-ink) !important; font-size:14px; font-weight:600; line-height:1.55; text-decoration:none; }
.kt-list__title a:hover{ text-decoration:underline; }
.kt-list__src { font:500 11px/1.6 var(--kt-mono); color:#56645C; }
@media(max-width:834px){
  .kt-list thead{ display:none; }
  .kt-list tbody tr{ display:flex; flex-direction:column; gap:3px; padding:11px 13px; }
  .kt-list td{ padding:0; }
}

/* --- 計算機: 出力が表（4方式×2列）の記事は入力部のみ1カラムで使う ----------- */
.kt-calc--stack{ grid-template-columns:1fr; }
.kt-calc--stack .kt-calc__in{ border-right:0; }

/* --- サイドバーのリンクリスト ------------------------------------------------ */
.kt-side{ list-style:none; margin:0; padding:0; }
.kt-side li{ border-bottom:1px solid var(--kt-line-2); }
.kt-side li:last-child{ border-bottom:0; }
.kt-side a{ display:block; padding:9px 2px; font-size:13px; line-height:1.6; color:var(--kt-ink) !important; text-decoration:none; }
.kt-side a:hover{ color:var(--kt-link) !important; text-decoration:underline; }
