@charset "utf-8";
/* ==========================================================================
   kakuduke.info テーマ（官公庁風・緑基調）
   - 深緑の帯 ＋ 台帳的な表組み ＋ ゴシック見出し
   - ekeisin.net（明朝＋ネイビー×オレンジ）とは別系統
   ========================================================================== */

:root{
  --g-900:#13401a;   /* 最濃：ナビ・表見出し */
  --g-800:#17501f;
  --g-700:#1b5e20;   /* 基調 */
  --g-600:#2e7d32;   /* リンク・アクセント */
  --g-500:#3a8f3f;
  --g-100:#e2ece2;   /* 淡緑：交互行・面 */
  --g-050:#eef4ee;   /* 最淡：背景面 */
  --g-tint:#f4f8f4;  /* ごく淡い背景 */

  --ink:#1b261b;
  --muted:#5b6b5b;
  --line:#c5d4c5;
  --line-strong:#9fb4a0;
  --paper:#ffffff;

  --link:#1b5e20;
  --link-hover:#2e7d32;

  --ok:#1b5e20;      /* 公開 */
  --ng:#9a3b3b;      /* 非公開 */
  --none:#6b6b6b;    /* なし */
  --unknown:#8a8a8a; /* 不明 */

  --maxw:1080px;
  --radius:3px;
  --font: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--g-tint);
  line-height:1.7;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
}
a{ color:var(--link); text-decoration:none; }
a:hover{ color:var(--link-hover); text-decoration:underline; }
img{ max-width:100%; height:auto; vertical-align:bottom; }

/* ---------- ヘッダー ---------- */
.kk-topbar{ background:var(--g-900); color:#dfeede; font-size:12.5px; }
.kk-topbar .wrap{ max-width:var(--maxw); margin:0 auto; padding:5px 16px; display:flex; justify-content:flex-end; gap:18px; }
.kk-topbar a{ color:#dfeede; }
.kk-topbar a:hover{ color:#fff; }

.kk-head{ background:var(--paper); border-bottom:3px solid var(--g-700); }
.kk-head .wrap{ max-width:var(--maxw); margin:0 auto; padding:12px 16px; display:flex; align-items:center; gap:16px; }
.kk-logo{ display:flex; align-items:center; gap:12px; min-width:0; }
.kk-logo .mark{
  flex:none; width:44px; height:44px; border-radius:var(--radius);
  background:var(--g-700); color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:22px; letter-spacing:.02em;
}
.kk-logo .t{ min-width:0; }
.kk-logo .t b{ display:block; font-size:18px; font-weight:700; color:var(--g-900); line-height:1.4; letter-spacing:.04em; }
.kk-logo .t small{ display:block; font-size:11px; color:var(--muted); letter-spacing:.1em; font-weight:500; }
.kk-head .tagline{ margin-left:auto; font-size:12.5px; color:var(--muted); line-height:1.6; text-align:right; max-width:430px; }

/* ---------- グローバルナビ ---------- */
.kk-nav{ background:var(--g-700); }
.kk-nav .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 8px; display:flex; flex-wrap:wrap; }
.kk-nav a{
  color:#fff; font-weight:500; font-size:15px; text-decoration:none;
  padding:13px 18px; display:flex; align-items:center; line-height:1.3;
  letter-spacing:.02em;
  border-left:1px solid rgba(255,255,255,.12);
}
.kk-nav a:last-child{ border-right:1px solid rgba(255,255,255,.12); }
.kk-nav a:hover{ background:var(--g-800); text-decoration:none; }
.kk-nav a[aria-current="page"]{ background:var(--g-900); font-weight:700; }

/* ---------- レイアウト ---------- */
.kk-shell{ max-width:var(--maxw); margin:0 auto; padding:14px 16px 36px; display:flex; gap:22px; align-items:flex-start; }
.kk-main{ flex:1 1 auto; min-width:0; }
.kk-side{ flex:0 0 236px; }

.kk-pankuzu{ font-size:12px; color:var(--muted); margin:2px 0 12px; }
.kk-pankuzu a{ color:var(--g-600); }

/* 見出し */
.kk-title{
  position:relative; margin:0 0 14px; padding:10px 14px 10px 16px;
  background:var(--g-050); border:1px solid var(--line); border-left:6px solid var(--g-700);
  border-radius:var(--radius);
}
.kk-title h2{ margin:0; font-size:22px; font-weight:700; color:var(--g-900); line-height:1.45; letter-spacing:.04em; }
.kk-title .en{ display:block; font-size:11px; font-weight:500; color:var(--g-600); letter-spacing:.14em; margin-top:2px; }

.kk-lead{ font-size:14px; line-height:1.85; margin:0 0 16px; }
.kk-lead strong{ color:var(--g-800); }

h3.kk-h3{
  margin:22px 0 10px; padding:8px 13px; font-size:16px; font-weight:700; color:#fff;
  background:var(--g-700); border-radius:var(--radius); letter-spacing:.06em;
}
h4.kk-h4{
  margin:18px 0 8px; padding-left:11px; font-size:15px; font-weight:700; color:var(--g-900);
  border-left:4px solid var(--g-500); letter-spacing:.04em;
}

/* ページ内目次 */
.kk-mokuji{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:10px 14px; margin:0 0 16px; }
.kk-mokuji h3{ margin:0 0 6px; font-size:13.5px; font-weight:700; color:var(--g-800); }
.kk-mokuji ul{ margin:0; padding-left:18px; }
.kk-mokuji li{ font-size:13.5px; margin:2px 0; }

/* ---------- 表組み（台帳） ---------- */
.kk-table{ width:100%; border-collapse:collapse; margin:6px 0 14px; background:var(--paper); font-size:13.5px; }
.kk-table caption{ text-align:left; font-size:12px; color:var(--muted); padding:0 0 5px; }
.kk-table th, .kk-table td{ border:1px solid var(--line); padding:7px 9px; vertical-align:middle; line-height:1.6; }
.kk-table thead th, .kk-table th.head{
  background:var(--g-700); color:#fff; font-weight:700; text-align:center; white-space:nowrap;
}
.kk-table th.rowhead{ background:var(--g-100); color:var(--g-900); font-weight:700; text-align:left; white-space:nowrap; width:30%; }
.kk-table tbody tr:nth-child(even) td{ background:var(--g-050); }
.kk-table td.c{ text-align:center; }
.kk-table td.r{ text-align:right; }
.kk-table td.code{ text-align:center; font-variant-numeric:tabular-nums; font-weight:700; color:var(--g-800); white-space:nowrap; }
.kk-table td.date{ text-align:center; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kk-table .name{ font-weight:700; }
/* 横スクロール枠（広い表） */
.kk-tablewrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* 公表状況ピル */
.kk-pill{ display:inline-block; min-width:3.4em; text-align:center; font-size:12px; font-weight:700; padding:1px 8px; border-radius:999px; border:1px solid; }
.kk-pill.ok{ color:var(--ok); border-color:var(--ok); background:#eef5ee; }
.kk-pill.ng{ color:var(--ng); border-color:var(--ng); background:#f7eded; }
.kk-pill.none{ color:var(--none); border-color:#cfcfcf; background:#f2f2f2; }
.kk-pill.unknown{ color:var(--unknown); border-color:#dadada; background:#f5f5f5; }

/* 注記・空表示 */
.kk-note{ font-size:12.5px; color:var(--muted); margin:6px 0; }
.kk-empty{ background:var(--g-050); border:1px dashed var(--line-strong); border-radius:var(--radius); padding:14px; text-align:center; color:var(--muted); font-size:13.5px; }

/* もっと見る等のリンク行 */
.kk-more{ text-align:right; margin:4px 0 0; font-size:13px; font-weight:700; }

/* 汎用パネル */
.kk-panel{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; margin:0 0 16px; }
.kk-panel.tint{ background:var(--g-050); }

/* トピックス */
.kk-topics{ background:var(--paper); border:1px solid var(--line); border-left:5px solid var(--g-500); border-radius:var(--radius); padding:12px 14px; margin:0 0 16px; }
.kk-topics .tg{ display:inline-block; background:var(--g-700); color:#fff; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; margin-right:8px; }

/* ボタン */
.kk-btn{ display:inline-block; background:var(--g-700); color:#fff; font-weight:700; font-size:14px; padding:9px 18px; border-radius:var(--radius); border:0; cursor:pointer; }
.kk-btn:hover{ background:var(--g-800); color:#fff; text-decoration:none; }
.kk-btn.ghost{ background:#fff; color:var(--g-700); border:1px solid var(--g-700); }
.kk-btn.ghost:hover{ background:var(--g-050); color:var(--g-800); }

/* セレクト等フォーム */
.kk-field{ font-size:14px; padding:7px 10px; border:1px solid var(--line-strong); border-radius:var(--radius); background:#fff; font-family:inherit; }
.kk-field:focus{ outline:none; border-color:var(--g-600); box-shadow:0 0 0 3px rgba(46,125,50,.15); }

/* ---------- サイド ---------- */
.kk-side .sbtns{ display:grid; gap:8px; margin:0 0 14px; }
.kk-side .sbtn{ display:block; background:var(--g-600); color:#fff; font-weight:500; font-size:15px; text-align:center; padding:13px 10px; border-radius:var(--radius); line-height:1.5; letter-spacing:.02em; }
.kk-side .sbtn:hover{ background:var(--g-700); color:#fff; text-decoration:none; }
.kk-side .sbtn.ekeisin{ background:#0b3d91; }     /* e経審バナーのみ ekeisin.net 系の紺 */
.kk-side .sbtn.ekeisin:hover{ background:#0a3478; }
.kk-side .sbtn.explain{ background:#d9730d; }     /* 説明サイト（ekeisin.net）：ブランドのオレンジ系 */
.kk-side .sbtn.explain:hover{ background:#bf6309; }

.kk-side h3.sh{ margin:0 0 0; padding:8px 13px; font-size:14px; font-weight:700; color:#fff; background:var(--g-800); border-radius:var(--radius) var(--radius) 0 0; letter-spacing:.04em; }
.kk-side .smenu{ border:1px solid var(--line); border-top:0; border-radius:0 0 var(--radius) var(--radius); background:var(--paper); margin:0 0 14px; padding:4px 0; }
.kk-side .smenu a{ display:block; padding:9px 13px; font-size:14.5px; font-weight:500; color:var(--ink); border-bottom:1px dotted var(--line); line-height:1.4; text-align:center; }
.kk-side .smenu a:last-child{ border-bottom:0; }
.kk-side .smenu a:hover{ background:var(--g-050); color:var(--g-700); text-decoration:none; }

.kk-side .snews{ border:1px solid var(--line); border-radius:0 0 var(--radius) var(--radius); background:var(--paper); padding:10px 12px; font-size:12.5px; line-height:1.7; }

/* ---------- フッター ---------- */
.kk-foot{ background:var(--g-900); color:#cfe0cf; font-size:12.5px; margin-top:10px; }
.kk-foot .wrap{ max-width:var(--maxw); margin:0 auto; padding:18px 16px; }
.kk-foot .fnav{ display:flex; flex-wrap:wrap; gap:6px 18px; margin:0 0 10px; }
.kk-foot .fnav a{ color:#dfeede; font-weight:700; }
.kk-foot .fnav a:hover{ color:#fff; }
.kk-foot .addr{ color:#a9c4a9; line-height:1.7; }
.kk-foot .copy{ margin-top:8px; color:#88a888; font-size:11.5px; }

/* 新着（更新内容）セルは折り返し可 */
.kk-table td.remark{ font-size:12.5px; line-height:1.6; min-width:14em; }

/* ---------- 検索画面 ---------- */
.kk-prefform{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--g-050); border:1px solid var(--line); border-radius:var(--radius); padding:10px 14px; margin:0 0 12px; }
.kk-prefform label{ font-weight:700; color:var(--g-900); font-size:14px; }

/* 明細表：縦書きの分類見出しセル */
.kk-detail th.vcat{
  width:2.4em; background:var(--g-800); color:#fff; font-weight:700; text-align:center;
  writing-mode:vertical-rl; text-orientation:upright; letter-spacing:.1em; white-space:nowrap;
}
.kk-detail th.rowhead{ width:9em; }
.kk-detail td a{ word-break:break-all; }

/* 工種別ブロック */
.kk-gyosyu{ border:1px solid var(--line); border-radius:var(--radius); margin:0 0 12px; overflow:hidden; }
.kk-gyosyu-h{
  background:var(--g-700); color:#fff; font-weight:700; padding:8px 12px; font-size:14px;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.kk-gyosyu-h .g-name{ min-width:0; }
.kk-gyosyu-h .code{ color:#cfe6d0; }
.kk-gyosyu .kk-table{ margin:0; }
.kk-gyosyu .kk-table th, .kk-gyosyu .kk-table td{ border-color:var(--line); }

/* 経審対応工種ボタン（JS有効時のみ表示） */
.kk-ksbtn{
  flex:none; font-family:inherit; font-size:12.5px; font-weight:700; cursor:pointer;
  background:#fff; color:var(--g-800); border:1px solid #fff; border-radius:999px; padding:3px 13px;
  display:none;
}
.kk-ksbtn:hover{ background:var(--g-050); }
html.kk-js .kk-ksbtn{ display:inline-block; }

/* JSオフ時のインライン表示（JS有効時は隠す） */
.kk-ksinline{ border-top:1px dashed var(--line); padding:8px 12px; background:var(--g-tint); }
.kk-ksinline-h{ font-weight:700; color:var(--g-800); font-size:13px; margin-bottom:4px; }
.kk-kslist{ margin:0; padding-left:18px; font-size:13.5px; line-height:1.7; }
.kk-kslist .code{ color:var(--g-800); }
html.kk-js .kk-ksinline{ display:none; }

/* モーダル */
.kk-modal{ display:none; position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:18px; }
.kk-modal.is-open{ display:flex; }
.kk-modal-dim{ position:absolute; inset:0; background:rgba(15,40,20,.55); }
.kk-modal-box{ position:relative; background:#fff; border-radius:6px; max-width:560px; width:100%; max-height:84vh; display:flex; flex-direction:column; box-shadow:0 12px 40px rgba(0,0,0,.3); overflow:hidden; }
.kk-modal-head{ background:var(--g-700); color:#fff; padding:10px 14px; display:flex; align-items:center; justify-content:space-between; font-weight:700; }
.kk-modal-head small{ font-weight:500; color:#cfe6d0; font-size:12px; }
.kk-modal-x{ flex:none; background:transparent; border:0; color:#fff; font-size:22px; line-height:1; cursor:pointer; padding:0 4px; }
.kk-modal-body{ padding:14px; overflow:auto; }

/* 検索結果：見出し */
.kk-result-head{ background:var(--g-050); border:1px solid var(--line); border-left:5px solid var(--g-700); border-radius:var(--radius); padding:9px 13px; margin:0 0 12px; font-size:15px; }
.kk-result-head .code{ color:var(--g-800); }

/* タブ */
.kk-tabs{ display:none; flex-wrap:wrap; gap:4px; border-bottom:2px solid var(--g-700); margin:0 0 14px; }
.kk-tab{ font-family:inherit; font-size:14.5px; font-weight:500; color:var(--g-800); background:var(--g-050); border:1px solid var(--line); border-bottom:0; border-radius:var(--radius) var(--radius) 0 0; padding:9px 16px; cursor:pointer; }
.kk-tab:hover{ background:var(--g-100); }
.kk-tab.is-active{ background:var(--g-700); color:#fff; border-color:var(--g-700); font-weight:700; }
/* JS有効時のみタブ動作。無効時は全パネルを縦表示 */
html.kk-js .kk-tabs{ display:flex; }
html.kk-js .kk-panel-tab{ display:none; }
html.kk-js .kk-panel-tab.is-active{ display:block; }

/* 解説ページ本文 */
.kk-list{ margin:6px 0 10px; padding-left:1.3em; }
.kk-list li{ margin:3px 0; line-height:1.8; }
.kk-list.dash{ list-style:none; padding-left:.2em; }
.kk-list.dash li{ position:relative; padding-left:1.1em; }
.kk-list.dash li::before{ content:"・"; position:absolute; left:0; color:var(--g-600); font-weight:700; }
.kk-cta{ background:var(--g-050); border:1px solid var(--line); border-left:5px solid var(--g-600); border-radius:var(--radius); padding:12px 16px; margin:16px 0 0; }
.kk-cta a.kk-btn{ margin-top:6px; }

/* お問い合わせフォーム */
.req-mark{ color:#c0392b; font-weight:700; }
.kk-formerr{ background:#f7eded; border:1px solid #d9a3a3; border-left:5px solid var(--ng); border-radius:var(--radius); padding:10px 14px; margin:0 0 14px; color:#8a2b2b; font-size:13.5px; }
.kk-formerr ul{ margin:6px 0 0; padding-left:1.3em; }
.kk-formtable th.rowhead{ width:32%; vertical-align:top; }
.kk-field.w-full{ width:100%; }
.kk-field.w-half{ width:60%; max-width:280px; }
textarea.kk-field{ line-height:1.7; resize:vertical; }
.kk-form-actions{ display:flex; gap:10px; justify-content:center; margin:16px 0 8px; flex-wrap:wrap; }
.kk-form-actions form{ margin:0; }

/* 新着情報一覧 */
.kk-newslist{ border-top:1px solid var(--line); margin:0 0 6px; }
.kk-newsitem{ display:flex; gap:14px; padding:13px 4px; border-bottom:1px solid var(--line); }
.kk-newsdate{ flex:none; width:7.5em; color:var(--g-700); font-weight:700; font-size:14px; }
.kk-newsbody{ min-width:0; }
.kk-newstext{ margin:0; line-height:1.8; }
.kk-newsbody .kk-list{ margin:6px 0 4px; }
.kk-newslink{ margin:6px 0 0; font-size:13.5px; }
@media (max-width:600px){
  .kk-newsitem{ flex-direction:column; gap:4px; }
  .kk-newsdate{ width:auto; }
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 860px){
  .kk-shell{ flex-direction:column; }
  .kk-side{ flex-basis:auto; width:100%; }
  .kk-head .tagline{ display:none; }
  .kk-nav .wrap{ overflow-x:auto; flex-wrap:nowrap; }
  .kk-nav a{ white-space:nowrap; }
}
