/*
Theme Name: Kaisha Hitori Media
Theme URI: http://localhost:8090/
Author: 会社を一人で立ち上げる時の全てのことメディア 編集部
Description: 会社設立を検討している人向けの情報メディア用テーマ。ネオキャリア「みんなの採用部」型の2カラム構成。
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: kaisha-hitori
*/

/* ============================================================
   0. 基本トークン
   ============================================================ */
:root{
  --kh-navy:#0b4f8a;
  --kh-navy-d:#083a66;
  --kh-blue:#1a73c9;
  --kh-blue-l:#e8f2fb;
  --kh-orange:#ff7a00;
  --kh-orange-l:#fff3e6;
  --kh-green:#00976a;
  --kh-green-l:#e6f6f1;
  --kh-red:#d93a3a;
  --kh-red-l:#fdeded;
  --kh-yellow:#f5b800;
  --kh-yellow-l:#fffaea;
  --kh-ink:#22303c;
  --kh-ink-l:#5b6b7a;
  --kh-line:#dfe6ec;
  --kh-bg:#f4f7fa;
  --kh-radius:8px;
  --kh-shadow:0 2px 10px rgba(11,79,138,.08);
  --kh-shadow-h:0 6px 22px rgba(11,79,138,.16);
  --kh-font:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic","Meiryo","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;scroll-padding-top:78px;}

body{
  margin:0;
  font-family:var(--kh-font);
  font-size:16px;
  line-height:1.9;
  color:var(--kh-ink);
  background:var(--kh-bg);
  -webkit-font-smoothing:antialiased;
  word-break:break-word;
}

img{max-width:100%;height:auto;vertical-align:bottom;}
a{color:var(--kh-blue);text-decoration:none;transition:.18s;}
a:hover{color:var(--kh-navy);text-decoration:underline;}

/* ============================================================
   1. ヘッダー
   ============================================================ */
.kh-topbar{
  background:linear-gradient(90deg,var(--kh-navy) 0%,var(--kh-navy-d) 100%);
  color:#fff;font-size:12px;letter-spacing:.04em;
}
.kh-topbar .kh-inner{display:flex;justify-content:space-between;align-items:center;height:32px;}
.kh-topbar a{color:#cfe4f7;}
.kh-topbar a:hover{color:#fff;}

.kh-header{
  background:#fff;
  border-bottom:1px solid var(--kh-line);
  position:sticky;top:0;z-index:900;
  box-shadow:0 1px 6px rgba(0,0,0,.05);
}
.kh-header .kh-inner{display:flex;align-items:center;gap:24px;min-height:70px;}

.kh-logo{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none;}
.kh-logo:hover{text-decoration:none;}
.kh-logo-mark{
  width:40px;height:40px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,var(--kh-navy),var(--kh-blue));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:18px;letter-spacing:-.04em;
}
.kh-logo-txt{line-height:1.25;}
.kh-logo-txt strong{display:block;font-size:16px;color:var(--kh-navy);font-weight:800;letter-spacing:-.01em;}
.kh-logo-txt span{display:block;font-size:10.5px;color:var(--kh-ink-l);letter-spacing:.02em;}

.kh-gnav{margin-left:auto;display:flex;align-items:center;gap:4px;}
.kh-gnav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;}
.kh-gnav a{
  display:block;padding:9px 13px;font-size:13.5px;font-weight:600;
  color:var(--kh-ink);border-radius:6px;
}
.kh-gnav a:hover{background:var(--kh-blue-l);color:var(--kh-navy);text-decoration:none;}
.kh-gnav .kh-btn-cta{
  background:var(--kh-orange);color:#fff !important;padding:10px 18px;
  border-radius:999px;font-weight:700;box-shadow:0 2px 8px rgba(255,122,0,.3);
}
.kh-gnav .kh-btn-cta:hover{background:#e86e00;transform:translateY(-1px);}

.kh-inner{max-width:1180px;margin:0 auto;padding:0 20px;}

.kh-navtoggle{display:none;background:none;border:0;font-size:24px;color:var(--kh-navy);cursor:pointer;margin-left:auto;}

/* 検索キーワード帯 */
.kh-hotwords{background:#fff;border-bottom:1px solid var(--kh-line);}
.kh-hotwords .kh-inner{display:flex;align-items:center;gap:8px;padding-top:9px;padding-bottom:9px;overflow-x:auto;}
.kh-hotwords b{font-size:11.5px;color:var(--kh-ink-l);flex-shrink:0;font-weight:700;}
.kh-hotwords a{
  flex-shrink:0;font-size:11.5px;padding:3px 11px;border:1px solid var(--kh-line);
  border-radius:999px;color:var(--kh-ink-l);background:#fbfdff;
}
.kh-hotwords a:hover{border-color:var(--kh-blue);color:var(--kh-blue);background:var(--kh-blue-l);text-decoration:none;}

/* ============================================================
   2. パンくず
   ============================================================ */
.kh-breadcrumb{background:#fff;border-bottom:1px solid var(--kh-line);font-size:11.5px;color:var(--kh-ink-l);}
.kh-breadcrumb .kh-inner{padding-top:9px;padding-bottom:9px;white-space:nowrap;overflow-x:auto;}
.kh-breadcrumb a{color:var(--kh-ink-l);}
.kh-breadcrumb a:hover{color:var(--kh-blue);}
.kh-breadcrumb span.sep{margin:0 7px;color:#b9c5d0;}

/* ============================================================
   3. レイアウト
   ============================================================ */
.kh-wrap{max-width:1180px;margin:0 auto;padding:26px 20px 60px;display:flex;gap:34px;align-items:flex-start;}
.kh-main{flex:1;min-width:0;}
.kh-side{width:312px;flex-shrink:0;position:sticky;top:86px;}

.kh-card{background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);box-shadow:var(--kh-shadow);}

/* ============================================================
   4. 記事ヘッダー
   ============================================================ */
.kh-article{background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);padding:34px 40px 46px;box-shadow:var(--kh-shadow);}
.kh-article-head{border-bottom:2px solid var(--kh-blue-l);padding-bottom:20px;margin-bottom:26px;}
.kh-cat-badge{
  display:inline-block;background:var(--kh-navy);color:#fff;font-size:11.5px;font-weight:700;
  padding:4px 13px;border-radius:3px;margin-bottom:13px;letter-spacing:.03em;
}
.kh-cat-badge:hover{background:var(--kh-blue);color:#fff;text-decoration:none;}
.kh-title{font-size:29px;line-height:1.48;font-weight:800;margin:0 0 15px;color:var(--kh-ink);letter-spacing:-.01em;}
.kh-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--kh-ink-l);align-items:center;}
.kh-meta time::before{content:"\1F553";margin-right:4px;}
.kh-meta .kh-readtime::before{content:"\1F4D6";margin-right:4px;}

.kh-eyecatch{margin:0 0 26px;border-radius:var(--kh-radius);overflow:hidden;border:1px solid var(--kh-line);}
.kh-eyecatch img{width:100%;display:block;}

/* リード文 */
.kh-lead{
  background:linear-gradient(180deg,#fbfdff,#f2f8fd);
  border:1px solid #cfe3f5;border-left:5px solid var(--kh-blue);
  padding:20px 24px;border-radius:0 var(--kh-radius) var(--kh-radius) 0;
  font-size:15px;line-height:1.95;margin:0 0 30px;color:#33424f;
}

/* ============================================================
   5. 目次
   ============================================================ */
.kh-toc{
  background:#fbfdff;border:2px solid var(--kh-blue-l);border-radius:var(--kh-radius);
  padding:0 0 6px;margin:0 0 38px;
}
.kh-toc-head{
  background:var(--kh-blue-l);padding:12px 20px;font-weight:800;color:var(--kh-navy);
  font-size:16px;display:flex;align-items:center;gap:9px;border-bottom:1px solid #cfe3f5;
}
.kh-toc-head::before{content:"\2630";font-size:15px;}
.kh-toc ol{margin:14px 0 8px;padding:0 22px 0 44px;counter-reset:tocnum;list-style:none;}
.kh-toc > ol > li{counter-increment:tocnum;position:relative;margin-bottom:10px;font-size:14.5px;font-weight:700;line-height:1.6;}
.kh-toc > ol > li::before{
  content:counter(tocnum);position:absolute;left:-30px;top:1px;
  width:21px;height:21px;background:var(--kh-navy);color:#fff;border-radius:50%;
  font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:700;
}
.kh-toc ol ol{padding-left:16px;margin:7px 0 4px;list-style:none;counter-reset:subnum;}
.kh-toc ol ol li{counter-increment:subnum;font-size:13px;font-weight:400;margin-bottom:5px;position:relative;padding-left:15px;}
.kh-toc ol ol li::before{content:"\2514";position:absolute;left:0;color:#a9bccd;}
.kh-toc a{color:var(--kh-ink);}
.kh-toc a:hover{color:var(--kh-blue);}

/* ============================================================
   6. 本文タイポグラフィ（記事内で上書きされる前提の土台）
   ============================================================ */
.kh-body{font-size:16px;line-height:1.95;}
.kh-body p{margin:0 0 1.5em;}

.kh-body h2{
  font-size:23px;font-weight:800;line-height:1.5;
  background:var(--kh-navy);color:#fff;padding:14px 20px;border-radius:5px;
  margin:52px 0 24px;letter-spacing:-.01em;
}
.kh-body h3{
  font-size:19.5px;font-weight:800;line-height:1.55;
  border-left:6px solid var(--kh-blue);padding:3px 0 3px 14px;
  margin:38px 0 18px;color:var(--kh-navy-d);
}
.kh-body h4{
  font-size:17px;font-weight:700;margin:28px 0 13px;color:var(--kh-ink);
  padding-bottom:7px;border-bottom:2px dotted #c3d5e4;
}
.kh-body h5{font-size:15.5px;font-weight:700;margin:22px 0 10px;color:var(--kh-navy);}

.kh-body ul,.kh-body ol{margin:0 0 1.6em;padding-left:1.6em;}
.kh-body li{margin-bottom:.6em;}

.kh-body table{width:100%;border-collapse:collapse;margin:0 0 1.8em;font-size:14.5px;background:#fff;}
.kh-body th,.kh-body td{border:1px solid var(--kh-line);padding:11px 13px;vertical-align:middle;}
.kh-body thead th{background:var(--kh-navy);color:#fff;font-weight:700;text-align:center;}
.kh-body tbody th{background:#f3f8fc;font-weight:700;text-align:left;width:30%;}
.kh-body tbody tr:nth-child(even) td{background:#fafcfe;}

.kh-body blockquote{
  background:#f7f9fb;border-left:4px solid #b9c9d6;margin:0 0 1.7em;
  padding:16px 22px;font-size:14.5px;color:#4a5966;border-radius:0 5px 5px 0;
}
.kh-body blockquote cite{display:block;margin-top:9px;font-size:12px;color:#8b9aa7;font-style:normal;}

.kh-body figure{margin:0 0 1.8em;}
.kh-body figcaption{font-size:12px;color:var(--kh-ink-l);text-align:center;margin-top:8px;}
.kh-body img{border-radius:6px;}

.kh-body hr{border:0;border-top:1px dashed #c9d6e0;margin:40px 0;}

.kh-body a{font-weight:600;text-decoration:underline;text-underline-offset:2px;}

/* ============================================================
   7. タグ・著者・関連
   ============================================================ */
.kh-tags{margin:44px 0 0;padding-top:26px;border-top:1px solid var(--kh-line);}
.kh-tags-label{font-size:12px;font-weight:700;color:var(--kh-ink-l);margin-bottom:11px;}
.kh-tags a{
  display:inline-block;font-size:12px;padding:5px 13px;margin:0 6px 8px 0;
  background:#f2f6fa;border:1px solid var(--kh-line);border-radius:999px;color:var(--kh-ink-l);
  font-weight:500;text-decoration:none;
}
.kh-tags a::before{content:"#";margin-right:3px;color:#a9bccd;}
.kh-tags a:hover{background:var(--kh-blue-l);border-color:var(--kh-blue);color:var(--kh-navy);}

.kh-author{
  display:flex;gap:18px;align-items:flex-start;margin-top:34px;padding:22px;
  background:#f8fbfd;border:1px solid var(--kh-line);border-radius:var(--kh-radius);
}
.kh-author-ico{
  width:58px;height:58px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--kh-navy),var(--kh-blue));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;
}
.kh-author h4{margin:0 0 6px;font-size:15px;color:var(--kh-navy);}
.kh-author p{margin:0;font-size:12.5px;line-height:1.8;color:var(--kh-ink-l);}

/* 検索されているサイト一覧（記事末尾） */
.kh-alsosearch{margin-top:46px;border:2px solid var(--kh-line);border-radius:var(--kh-radius);overflow:hidden;}
.kh-alsosearch-head{
  background:linear-gradient(90deg,var(--kh-navy),var(--kh-blue));color:#fff;
  padding:15px 22px;font-size:16.5px;font-weight:800;line-height:1.5;
}
.kh-alsosearch-head small{display:block;font-size:11.5px;font-weight:400;opacity:.85;margin-top:3px;}
.kh-alsosearch-body{padding:20px 22px;background:#fff;}
.kh-alsosearch ol{margin:0;padding-left:0;list-style:none;counter-reset:sitenum;}
.kh-alsosearch li{
  counter-increment:sitenum;position:relative;padding:11px 0 11px 38px;
  border-bottom:1px dotted #d7e2ea;font-size:14px;line-height:1.7;
}
.kh-alsosearch li:last-child{border-bottom:0;}
.kh-alsosearch li::before{
  content:counter(sitenum);position:absolute;left:0;top:12px;
  width:25px;height:25px;background:var(--kh-blue-l);color:var(--kh-navy);
  border-radius:4px;font-size:12px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.kh-alsosearch li a{font-weight:700;}
.kh-alsosearch li .kh-site-desc{display:block;font-size:12px;color:var(--kh-ink-l);font-weight:400;margin-top:2px;}

/* 関連記事 */
.kh-related{margin-top:44px;}
.kh-sec-title{
  font-size:19px;font-weight:800;color:var(--kh-navy);margin:0 0 18px;
  padding-left:13px;border-left:5px solid var(--kh-orange);line-height:1.5;
}
.kh-related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;}
.kh-related-card{
  background:#fff;border:1px solid var(--kh-line);border-radius:6px;overflow:hidden;
  transition:.18s;display:block;text-decoration:none;
}
.kh-related-card:hover{box-shadow:var(--kh-shadow-h);transform:translateY(-2px);text-decoration:none;}
.kh-related-card img{width:100%;height:118px;object-fit:cover;display:block;}
.kh-related-card .kh-rc-body{padding:11px 13px 14px;}
.kh-related-card .kh-rc-cat{font-size:10.5px;color:var(--kh-blue);font-weight:700;display:block;margin-bottom:5px;}
.kh-related-card h4{margin:0;font-size:13.5px;line-height:1.6;color:var(--kh-ink);font-weight:700;}

/* ============================================================
   8. サイドバー
   ============================================================ */
.kh-widget{background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);margin-bottom:22px;overflow:hidden;box-shadow:var(--kh-shadow);}
.kh-widget-head{
  background:#f3f8fc;border-bottom:1px solid var(--kh-line);
  padding:12px 17px;font-size:14.5px;font-weight:800;color:var(--kh-navy);
  display:flex;align-items:center;gap:7px;
}
.kh-widget-body{padding:15px 17px;}
.kh-widget ul{list-style:none;margin:0;padding:0;}
.kh-widget li{border-bottom:1px dotted #e0e8ee;}
.kh-widget li:last-child{border-bottom:0;}
.kh-widget li a{display:block;padding:9px 0 9px 15px;font-size:13px;position:relative;color:var(--kh-ink);line-height:1.6;}
.kh-widget li a::before{content:"\25B6";position:absolute;left:0;top:10px;font-size:8px;color:var(--kh-blue);}
.kh-widget li a:hover{color:var(--kh-blue);text-decoration:none;}
.kh-widget .count{color:#a9bccd;font-size:11px;margin-left:4px;}

.kh-side-cta{
  background:linear-gradient(150deg,var(--kh-navy),var(--kh-blue));color:#fff;
  border-radius:var(--kh-radius);padding:24px 20px;text-align:center;margin-bottom:22px;
  box-shadow:var(--kh-shadow);
}
.kh-side-cta h4{margin:0 0 9px;font-size:16.5px;font-weight:800;line-height:1.55;}
.kh-side-cta p{margin:0 0 16px;font-size:12.5px;line-height:1.75;opacity:.92;}
.kh-side-cta a{
  display:block;background:var(--kh-orange);color:#fff;font-weight:800;font-size:14.5px;
  padding:13px;border-radius:999px;box-shadow:0 3px 10px rgba(0,0,0,.2);
}
.kh-side-cta a:hover{background:#e86e00;text-decoration:none;transform:translateY(-1px);}

.kh-tagcloud a{
  display:inline-block;font-size:11.5px;padding:4px 11px;margin:0 5px 7px 0;
  background:#f2f6fa;border:1px solid var(--kh-line);border-radius:999px;color:var(--kh-ink-l);
}
.kh-tagcloud a:hover{background:var(--kh-blue-l);border-color:var(--kh-blue);color:var(--kh-navy);text-decoration:none;}

.kh-rank li{counter-increment:rk;position:relative;padding-left:0;}
.kh-rank{counter-reset:rk;}
.kh-rank li a{padding-left:34px;}
.kh-rank li a::before{
  content:counter(rk);position:absolute;left:0;top:9px;
  width:22px;height:22px;border-radius:4px;background:var(--kh-navy);color:#fff;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.kh-rank li:nth-child(1) a::before{background:#c9a227;}
.kh-rank li:nth-child(2) a::before{background:#93a3ad;}
.kh-rank li:nth-child(3) a::before{background:#a9703c;}

/* ============================================================
   9. アーカイブ / 一覧
   ============================================================ */
.kh-archive-head{
  background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);
  padding:26px 30px;margin-bottom:24px;box-shadow:var(--kh-shadow);
}
.kh-archive-head h1{margin:0 0 9px;font-size:25px;font-weight:800;color:var(--kh-navy);line-height:1.5;}
.kh-archive-head p{margin:0;font-size:13.5px;color:var(--kh-ink-l);line-height:1.85;}
.kh-archive-head .kh-kw{
  display:inline-block;background:var(--kh-yellow-l);border:1px solid #f0dca0;
  color:#8a6d00;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:3px;margin-bottom:11px;
}

.kh-list{display:flex;flex-direction:column;gap:16px;}
.kh-list-item{
  background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);
  display:flex;gap:18px;padding:16px;transition:.18s;box-shadow:var(--kh-shadow);
}
.kh-list-item:hover{box-shadow:var(--kh-shadow-h);transform:translateY(-2px);}
.kh-list-thumb{width:190px;flex-shrink:0;border-radius:5px;overflow:hidden;}
.kh-list-thumb img{width:100%;height:120px;object-fit:cover;display:block;}
.kh-list-body{flex:1;min-width:0;}
.kh-list-body .kh-lb-cat{
  display:inline-block;font-size:10.5px;font-weight:700;color:#fff;background:var(--kh-blue);
  padding:2px 9px;border-radius:3px;margin-bottom:8px;
}
.kh-list-body h2{margin:0 0 8px;font-size:17px;line-height:1.6;font-weight:700;}
.kh-list-body h2 a{color:var(--kh-ink);text-decoration:none;}
.kh-list-body h2 a:hover{color:var(--kh-blue);}
.kh-list-body .kh-ex{font-size:12.5px;color:var(--kh-ink-l);line-height:1.8;margin:0 0 8px;}
.kh-list-body .kh-lb-meta{font-size:11px;color:#9aabb8;}

.kh-pagination{display:flex;justify-content:center;gap:6px;margin-top:34px;flex-wrap:wrap;}
.kh-pagination .page-numbers{
  display:block;padding:9px 15px;background:#fff;border:1px solid var(--kh-line);
  border-radius:5px;font-size:13.5px;color:var(--kh-ink);font-weight:600;
}
.kh-pagination .page-numbers.current{background:var(--kh-navy);color:#fff;border-color:var(--kh-navy);}
.kh-pagination a.page-numbers:hover{background:var(--kh-blue-l);border-color:var(--kh-blue);text-decoration:none;}

/* ============================================================
   10. トップページ
   ============================================================ */
.kh-hero{
  background:linear-gradient(120deg,var(--kh-navy-d) 0%,var(--kh-navy) 45%,var(--kh-blue) 100%);
  color:#fff;padding:52px 0 46px;position:relative;overflow:hidden;
}
.kh-hero::after{
  content:"";position:absolute;right:-70px;top:-70px;width:330px;height:330px;
  background:rgba(255,255,255,.06);border-radius:50%;
}
.kh-hero h1{margin:0 0 14px;font-size:33px;font-weight:800;line-height:1.5;letter-spacing:-.01em;position:relative;}
.kh-hero p{margin:0 0 22px;font-size:15px;line-height:1.9;opacity:.93;max-width:720px;position:relative;}
.kh-hero-stats{display:flex;gap:14px;flex-wrap:wrap;position:relative;}
.kh-hero-stat{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);border-radius:7px;padding:11px 20px;backdrop-filter:blur(3px);}
.kh-hero-stat b{display:block;font-size:23px;font-weight:800;line-height:1.2;}
.kh-hero-stat span{font-size:11.5px;opacity:.88;}

.kh-catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px;}
.kh-catcard{
  background:#fff;border:1px solid var(--kh-line);border-radius:9px;padding:15px 17px;
  display:flex;gap:13px;align-items:flex-start;text-decoration:none;transition:.18s;
  box-shadow:var(--kh-shadow);height:100%;
}
.kh-catcard:hover{border-color:var(--kh-blue);box-shadow:var(--kh-shadow-h);transform:translateY(-2px);text-decoration:none;}
.kh-catcard-ic{
  flex:0 0 40px;height:40px;border-radius:10px;background:var(--kh-blue-l);color:var(--kh-navy);
  display:flex;align-items:center;justify-content:center;transition:.18s;
}
.kh-catcard:hover .kh-catcard-ic{background:var(--kh-navy);color:#fff;}
.kh-catcard-body{flex:1;min-width:0;display:block;}
.kh-catcard strong{display:block;font-size:14.5px;color:var(--kh-navy);font-weight:700;margin-bottom:5px;line-height:1.5;}
.kh-catcard-note{display:block;font-size:12px;color:var(--kh-ink-l);line-height:1.7;margin-bottom:6px;}
.kh-catcard-count{
  display:inline-block;font-size:10.5px;font-weight:700;color:var(--kh-ink-l);
  background:#f2f6fa;border:1px solid var(--kh-line);border-radius:999px;padding:2px 9px;
}
.kh-svgicon{display:block;}

/* キーワード一覧ページ */
.kh-kwgroup{margin:0 0 34px;}
.kh-kwgroup h3{
  font-size:17px;font-weight:800;color:var(--kh-navy);margin:0 0 14px;
  padding:9px 15px;background:var(--kh-blue-l);border-radius:6px;display:flex;align-items:center;gap:9px;
}
.kh-kwgroup h3 .kh-svgicon{flex-shrink:0;}

/* ============================================================
   11. フッター
   ============================================================ */
.kh-footer{background:var(--kh-navy-d);color:#c5d6e5;padding:44px 0 0;font-size:13px;}
.kh-footer .kh-inner{padding-bottom:30px;}
.kh-footer-cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;}
.kh-footer h5{color:#fff;font-size:13.5px;font-weight:700;margin:0 0 13px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.15);}
.kh-footer ul{list-style:none;margin:0;padding:0;}
.kh-footer li{margin-bottom:8px;}
.kh-footer a{color:#c5d6e5;font-size:12.5px;}
.kh-footer a:hover{color:#fff;}
.kh-footer-about p{font-size:12px;line-height:1.9;margin:0 0 12px;color:#a8bdd0;}
.kh-footer-bottom{background:rgba(0,0,0,.22);padding:14px 0;font-size:11.5px;color:#8fa8bd;text-align:center;}

/* ============================================================
   12. レスポンシブ
   ============================================================ */
@media (max-width:1000px){
  .kh-wrap{flex-direction:column;gap:26px;}
  .kh-side{width:100%;position:static;}
  .kh-footer-cols{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  body{font-size:15.5px;}
  .kh-gnav{display:none;}
  .kh-navtoggle{display:block;}
  .kh-gnav.open{display:block;position:absolute;top:70px;left:0;right:0;background:#fff;border-bottom:1px solid var(--kh-line);padding:12px 20px;box-shadow:0 6px 18px rgba(0,0,0,.1);}
  .kh-gnav.open ul{flex-direction:column;gap:0;}
  .kh-article{padding:22px 18px 32px;}
  .kh-title{font-size:22px;}
  .kh-body h2{font-size:19px;padding:12px 15px;margin:40px 0 20px;}
  .kh-body h3{font-size:17px;}
  .kh-hero h1{font-size:24px;}
  .kh-list-item{flex-direction:column;}
  .kh-list-thumb{width:100%;}
  .kh-list-thumb img{height:170px;}
  .kh-footer-cols{grid-template-columns:1fr;}
  .kh-body table{display:block;overflow-x:auto;white-space:nowrap;}
}

/* ============================================================
   12.4 全ページ固定CTA
   ============================================================ */
.kh-fixcta{
  position:fixed;left:0;right:0;bottom:0;z-index:1200;
  background:linear-gradient(100deg,#083a66 0%,#0b4f8a 55%,#1a73c9 100%);
  box-shadow:0 -4px 22px rgba(0,0,0,.22);
  padding:11px 0 8px;
  transform:translateY(0);transition:transform .28s ease;
}
.kh-fixcta.is-hidden{transform:translateY(115%);}
.kh-fixcta-inner{
  max-width:1180px;margin:0 auto;padding:0 20px;
  display:flex;align-items:center;gap:18px;
}
.kh-fixcta-lead{flex:1;min-width:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.kh-fixcta-badge{
  flex-shrink:0;background:#ffd166;color:#5a4300;
  font-size:12px;font-weight:800;padding:5px 13px;border-radius:999px;
  letter-spacing:.02em;white-space:nowrap;
}
.kh-fixcta-txt{color:#fff;font-size:15px;font-weight:700;line-height:1.5;}
.kh-fixcta-btn{
  flex-shrink:0;display:inline-flex;align-items:center;gap:9px;
  background:var(--kh-orange);color:#fff !important;
  font-size:15.5px;font-weight:800;padding:13px 30px;border-radius:999px;
  text-decoration:none !important;box-shadow:0 4px 14px rgba(0,0,0,.28);
  transition:.18s;white-space:nowrap;
}
.kh-fixcta-btn:hover{background:#e86e00;transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.34);}
.kh-fixcta-arrow{font-size:16px;line-height:1;}
.kh-fixcta-close{
  flex-shrink:0;background:transparent;border:1px solid rgba(255,255,255,.4);
  color:rgba(255,255,255,.85);width:30px;height:30px;border-radius:50%;
  font-size:16px;line-height:1;cursor:pointer;transition:.18s;
}
.kh-fixcta-close:hover{background:rgba(255,255,255,.16);color:#fff;}
.kh-fixcta-note{
  max-width:1180px;margin:7px auto 0;padding:0 20px;
  font-size:10.5px;color:rgba(255,255,255,.62);line-height:1.5;
}
/* 固定バーが本文の末尾を隠さないように余白を確保 */
body{padding-bottom:104px;}

@media (max-width:900px){
  .kh-fixcta{padding:9px 0 7px;}
  .kh-fixcta-inner{gap:10px;flex-wrap:wrap;}
  .kh-fixcta-lead{flex:1 1 100%;gap:8px;}
  .kh-fixcta-txt{font-size:13px;}
  .kh-fixcta-badge{font-size:11px;padding:4px 10px;}
  .kh-fixcta-btn{flex:1;justify-content:center;font-size:14.5px;padding:11px 18px;}
  .kh-fixcta-note{font-size:9.5px;margin-top:6px;}
  body{padding-bottom:134px;}
}

/* ============================================================
   12.5 セクション見出しイラスト / 出典リンク
   ============================================================ */
.kh-secfig{margin:0 0 26px;border-radius:10px;overflow:hidden;border:1px solid var(--kh-line);line-height:0;}
.kh-secfig img{width:100%;height:auto;display:block;}

.kh-cite{
  margin:6px 0 40px;padding:12px 16px;
  background:#f7f9fb;border:1px solid #e3eaf0;border-left:4px solid #a9bccd;
  border-radius:0 7px 7px 0;font-size:12.5px;line-height:1.8;color:var(--kh-ink-l);
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.kh-cite::before{
  content:"参考・出典";flex-shrink:0;
  background:#8fa3b5;color:#fff;font-size:10px;font-weight:700;
  padding:3px 9px;border-radius:3px;letter-spacing:.04em;
}
.kh-cite a{color:var(--kh-blue);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.kh-cite a:hover{color:var(--kh-navy);}
.kh-cite a::after{
  content:"\2197";font-size:11px;margin-left:4px;color:#9aabb8;text-decoration:none;display:inline-block;
}

/* ============================================================
   13. 記事内で共通利用する装飾ユーティリティ（テーマ提供分）
   ※ 各記事は追加で <style> と inline style を持つ
   ============================================================ */
.kh-u-mb0{margin-bottom:0 !important;}
.kh-u-center{text-align:center;}
.kh-marker{background:linear-gradient(transparent 62%,#ffe9a8 62%);font-weight:700;}
.kh-marker-b{background:linear-gradient(transparent 62%,#c9e5ff 62%);font-weight:700;}
.kh-bold-red{color:var(--kh-red);font-weight:700;}
.kh-bold-navy{color:var(--kh-navy);font-weight:700;}

/* ============================================================
   14. 対象読者ブロック / 締めのブロック
   ============================================================ */
.kh-target{
  background:linear-gradient(180deg,#fbfdff,#f1f7fc);
  border:1px solid #cfe3f5;border-left:6px solid var(--kh-blue);
  border-radius:0 10px 10px 0;padding:18px 24px;margin:0 0 34px;
}
.kh-target-h{
  font-size:14.5px;font-weight:800;color:var(--kh-navy);margin-bottom:9px;
  display:flex;align-items:flex-start;gap:8px;line-height:1.6;
}
.kh-target-h::before{content:"\1F464";flex-shrink:0;}
.kh-target p{margin:0;font-size:14.5px;line-height:1.95;color:#3c4b59;}

.kh-closing{
  background:#0b4f8a;color:#fff;border-radius:12px;
  padding:22px 26px;margin:38px 0 34px;
}
.kh-closing-h{
  font-size:16px;font-weight:800;margin-bottom:10px;line-height:1.55;
  display:flex;align-items:flex-start;gap:8px;
}
.kh-closing-h::before{content:"\2713";flex-shrink:0;color:#ffd166;font-weight:800;}
.kh-closing p{margin:0;font-size:14.6px;line-height:1.98;opacity:.96;}
.kh-closing b{color:#ffd166;}

/* ============================================================
   15. カテゴリー内のタグ絞り込み
   ============================================================ */
.kh-tagfilter{
  background:#fff;border:1px solid var(--kh-line);border-radius:var(--kh-radius);
  margin:0 0 24px;overflow:hidden;box-shadow:var(--kh-shadow);
}
.kh-tagfilter-h{
  background:#f3f8fc;border-bottom:1px solid var(--kh-line);
  padding:12px 18px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
}
.kh-tagfilter-h span{font-size:14.5px;font-weight:800;color:var(--kh-navy);}
.kh-tagfilter-h small{font-size:11.5px;color:var(--kh-ink-l);}
.kh-tagfilter-b{padding:15px 18px;display:flex;flex-wrap:wrap;gap:8px;}
.kh-tagchip{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;
  background:#f4f7fa;border:1px solid var(--kh-line);color:var(--kh-ink);
  text-decoration:none;transition:.16s;line-height:1.5;
}
.kh-tagchip::before{content:"#";color:#a9bccd;font-weight:700;}
.kh-tagchip:hover{background:var(--kh-blue-l);border-color:var(--kh-blue);color:var(--kh-navy);text-decoration:none;transform:translateY(-1px);}
.kh-tagchip .n{
  font-size:10.5px;font-weight:700;color:#8b9aa7;background:#fff;
  border:1px solid var(--kh-line);border-radius:999px;padding:1px 7px;
}
.kh-tagchip.is-on{background:var(--kh-navy);border-color:var(--kh-navy);color:#fff;}
.kh-tagchip.is-on::before{color:rgba(255,255,255,.6);}
.kh-tagchip.is-on .n{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.3);color:#fff;}
@media(max-width:768px){.kh-tagfilter-b{padding:13px 14px;gap:7px;}.kh-tagchip{font-size:12px;padding:5px 12px;}}

/* ============================================================
   16. トップページの統計セクション
   ============================================================ */
.kh-stats{
  background:#fff;border:1px solid var(--kh-line);border-radius:12px;
  padding:34px 38px 30px;margin:44px 0 0;box-shadow:var(--kh-shadow);
}
.kh-stats-head h2{
  font-size:24px;font-weight:800;color:var(--kh-navy);line-height:1.5;margin:0 0 12px;
  padding-left:14px;border-left:6px solid var(--kh-orange);
}
.kh-stats-head p{font-size:14.5px;line-height:1.95;color:#4c5b69;margin:0 0 22px;}
.kh-stats-h3{
  font-size:18px;font-weight:800;color:var(--kh-navy);margin:34px 0 14px;
  padding-bottom:9px;border-bottom:2px solid var(--kh-blue-l);
}
.kh-stats-p{font-size:14.5px;line-height:1.95;color:#41505d;margin:0 0 16px;}

.kh-statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:14px;margin:0 0 6px;}
.kh-statcard{
  border:1px solid var(--kh-line);border-radius:10px;padding:18px 20px;background:#fbfdff;
  display:flex;flex-direction:column;
}
.kh-statcard--hero{background:linear-gradient(150deg,var(--kh-navy),var(--kh-blue));border:0;color:#fff;}
.kh-statcard-l{font-size:12px;font-weight:700;color:var(--kh-ink-l);letter-spacing:.03em;margin-bottom:6px;}
.kh-statcard--hero .kh-statcard-l{color:rgba(255,255,255,.82);}
.kh-statcard-v{font-size:36px;font-weight:800;color:var(--kh-navy);line-height:1.1;letter-spacing:-.03em;}
.kh-statcard-v span{font-size:16px;margin-left:3px;font-weight:700;}
.kh-statcard--hero .kh-statcard-v{color:#ffd166;font-size:42px;}
.kh-statcard-d{font-size:12.8px;line-height:1.8;color:#55636f;margin-top:9px;flex:1;}
.kh-statcard--hero .kh-statcard-d{color:rgba(255,255,255,.94);}
.kh-statcard-s{font-size:10.5px;line-height:1.7;color:#9aabb8;margin-top:11px;padding-top:9px;border-top:1px dotted #dbe4ec;}
.kh-statcard--hero .kh-statcard-s{color:rgba(255,255,255,.72);border-top-color:rgba(255,255,255,.25);}
.kh-statcard-s a{color:inherit;text-decoration:underline;}
.kh-statcard-s a:hover{color:var(--kh-blue);}
.kh-statcard--hero .kh-statcard-s a:hover{color:#fff;}

.kh-stattable-wrap{overflow-x:auto;}
.kh-stattable{width:100%;border-collapse:collapse;font-size:14px;min-width:520px;}
.kh-stattable th{background:var(--kh-navy);color:#fff;padding:11px 14px;text-align:left;font-weight:700;}
.kh-stattable td{border:1px solid var(--kh-line);padding:12px 14px;}
.kh-stattable tr.kh-hi td{background:var(--kh-green-l);}
.kh-up{color:var(--kh-green);font-weight:700;}
.kh-dn{color:var(--kh-ink-l);}

.kh-stat-src{font-size:11px;color:#9aabb8;margin:9px 0 0;line-height:1.8;}
.kh-stat-src a{color:#8fa3b5;text-decoration:underline;}
.kh-stat-src a:hover{color:var(--kh-blue);}

.kh-stat-note{
  background:#f6f9fc;border:1px solid #dde7ef;border-left:5px solid var(--kh-blue);
  border-radius:0 8px 8px 0;padding:15px 19px;margin:16px 0 0;
  font-size:13.6px;line-height:1.92;color:#3f4e5c;
}
.kh-stat-note--first{margin:0 0 26px;}
.kh-stat-note--warn{background:#fffaea;border-color:#f0dca0;border-left-color:var(--kh-yellow);color:#6a5200;}

.kh-bars{display:flex;flex-direction:column;gap:10px;margin:0 0 4px;}
.kh-bar{display:grid;grid-template-columns:110px 1fr 58px;align-items:center;gap:12px;}
.kh-bar-l{font-size:13.5px;font-weight:700;color:var(--kh-ink);}
.kh-bar-t{display:block;height:22px;background:#eef3f8;border-radius:4px;overflow:hidden;}
.kh-bar-t i{display:block;height:100%;background:linear-gradient(90deg,var(--kh-navy),var(--kh-blue));border-radius:4px;}
.kh-bar-v{font-size:13.5px;font-weight:800;color:var(--kh-navy);text-align:right;}

.kh-survival{display:flex;gap:12px;align-items:flex-end;margin:0 0 4px;}
.kh-sv{flex:1;text-align:center;}
.kh-sv-y{font-size:12px;color:var(--kh-ink-l);font-weight:700;margin-bottom:5px;}
.kh-sv-p{font-size:19px;font-weight:800;color:var(--kh-navy);line-height:1.2;margin-bottom:7px;}
.kh-sv-p span{font-size:12px;}
.kh-sv-b{height:130px;background:#eef3f8;border-radius:5px;display:flex;align-items:flex-end;overflow:hidden;}
.kh-sv-b i{display:block;width:100%;background:linear-gradient(180deg,#4a90d0,var(--kh-navy));border-radius:5px 5px 0 0;}
.kh-sv--on .kh-sv-p{color:var(--kh-orange);}
.kh-sv--on .kh-sv-b i{background:linear-gradient(180deg,#ffa04d,var(--kh-orange));}

.kh-stats-close{
  background:linear-gradient(150deg,var(--kh-navy-d),var(--kh-navy));color:#fff;
  border-radius:12px;padding:24px 28px;margin:34px 0 0;
}
.kh-stats-close-h{font-size:17px;font-weight:800;margin-bottom:13px;color:#ffd166;}
.kh-stats-close ul{margin:0 0 14px;padding-left:1.3em;font-size:14.3px;line-height:2;}
.kh-stats-close li{margin-bottom:.3em;}
.kh-stats-close b{color:#ffd166;}
.kh-stats-close p{margin:0;font-size:14.5px;line-height:1.95;opacity:.95;}
.kh-stat-updated{font-size:11px;color:#9aabb8;line-height:1.8;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--kh-line);}

@media(max-width:768px){
  .kh-stats{padding:22px 18px 20px;}
  .kh-stats-head h2{font-size:19px;}
  .kh-statcard-v{font-size:30px;}
  .kh-statcard--hero .kh-statcard-v{font-size:34px;}
  .kh-bar{grid-template-columns:84px 1fr 48px;gap:8px;}
  .kh-bar-l{font-size:12px;}
  .kh-survival{gap:6px;}
  .kh-sv-p{font-size:14px;}
  .kh-sv-b{height:96px;}
  .kh-stats-close{padding:20px 18px;}
}

/* ============================================================
   17. 「役に立った」ボタン
   ============================================================ */
.kh-helpful{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  background:linear-gradient(150deg,#fbfdff,#eef5fb);
  border:1px solid #cfe3f5;border-radius:12px;
  padding:22px 26px;margin:38px 0 0;
}
.kh-helpful-l{flex:1;min-width:230px;}
.kh-helpful-t{font-size:16px;font-weight:800;color:var(--kh-navy);line-height:1.6;margin-bottom:6px;}
.kh-helpful-s{font-size:12.5px;line-height:1.85;color:var(--kh-ink-l);}
.kh-helpful-r{flex-shrink:0;}
.kh-helpful-btn{
  position:relative;display:inline-flex;align-items:center;gap:11px;
  background:#fff;border:2px solid var(--kh-navy);color:var(--kh-navy);
  border-radius:999px;padding:13px 26px;cursor:pointer;
  font-size:15.5px;font-weight:800;font-family:inherit;
  transition:.16s;box-shadow:0 2px 8px rgba(11,79,138,.12);
}
.kh-helpful-btn:hover{background:var(--kh-navy);color:#fff;transform:translateY(-2px);box-shadow:0 6px 18px rgba(11,79,138,.24);}
.kh-helpful-btn:active{transform:translateY(0);}
.kh-helpful-btn.is-on{background:var(--kh-navy);color:#fff;}
.kh-helpful-ic{display:flex;}
.kh-helpful-n{
  font-size:14.5px;font-weight:800;background:var(--kh-blue-l);color:var(--kh-navy);
  border-radius:999px;padding:3px 13px;min-width:56px;text-align:center;
  font-variant-numeric:tabular-nums;transition:.16s;
}
.kh-helpful-btn:hover .kh-helpful-n,
.kh-helpful-btn.is-on .kh-helpful-n{background:rgba(255,255,255,.2);color:#fff;}
@keyframes khPop{0%{transform:scale(1);}40%{transform:scale(1.09);}100%{transform:scale(1);}}
.kh-helpful-btn.is-pop{animation:khPop .3s ease;}
@keyframes khFly{0%{opacity:1;transform:translate(-50%,0) scale(1);}100%{opacity:0;transform:translate(-50%,-38px) scale(1.35);}}
.kh-helpful-fly{
  position:absolute;left:50%;top:-4px;pointer-events:none;
  font-size:16px;font-weight:800;color:var(--kh-orange);
  animation:khFly .7s ease-out forwards;
}
@media(max-width:768px){
  .kh-helpful{padding:18px;gap:14px;}
  .kh-helpful-r{width:100%;}
  .kh-helpful-btn{width:100%;justify-content:center;}
}

/* ============================================================
   18. カテゴリー関連のSNS
   ============================================================ */
.kh-social{
  background:#fff;border:1px solid var(--kh-line);border-radius:12px;
  padding:24px 26px;margin:24px 0 0;box-shadow:var(--kh-shadow);
}
.kh-social-head h2{
  font-size:19px;font-weight:800;color:var(--kh-navy);line-height:1.5;margin:0 0 9px;
  padding-left:12px;border-left:5px solid var(--kh-orange);
}
.kh-social-head p{font-size:13.5px;line-height:1.9;color:#55636f;margin:0 0 18px;}
.kh-social-embeds{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:16px;margin:0 0 20px;align-items:start;
}
.kh-embed--yt{position:relative;padding-top:56.25%;border-radius:9px;overflow:hidden;background:#000;}
.kh-embed--yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.kh-embed--x blockquote,.kh-embed--ig blockquote,.kh-embed--tt blockquote{margin:0 !important;}
.kh-social-search{border-top:1px solid var(--kh-line);padding-top:18px;}
.kh-social-search-t{font-size:13.5px;font-weight:800;color:var(--kh-navy);margin-bottom:11px;}
.kh-social-btns{display:flex;flex-wrap:wrap;gap:10px;}
.kh-sbtn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:700;
  text-decoration:none;border:1.5px solid;transition:.16s;background:#fff;
}
.kh-sbtn:hover{transform:translateY(-2px);text-decoration:none;color:#fff;}
.kh-sbtn--yt{color:#c4302b;border-color:#c4302b;}
.kh-sbtn--yt:hover{background:#c4302b;}
.kh-sbtn--x{color:#111;border-color:#111;}
.kh-sbtn--x:hover{background:#111;}
.kh-sbtn--ig{color:#c13584;border-color:#c13584;}
.kh-sbtn--ig:hover{background:#c13584;}
.kh-sbtn--tt{color:#111;border-color:#111;}
.kh-sbtn--tt:hover{background:#111;}
.kh-social-note{font-size:11px;line-height:1.8;color:#9aabb8;margin:14px 0 0;}
@media(max-width:768px){
  .kh-social{padding:18px 16px;}
  .kh-social-head h2{font-size:16.5px;}
  .kh-sbtn{flex:1;justify-content:center;font-size:12.5px;padding:9px 12px;}
}

/* ============================================================
   13. スマートフォン最適化（追補）
   ------------------------------------------------------------
   縦積みになったとき .kh-wrap の align-items:flex-start が効いて
   .kh-main が max-content 幅になり、横スクロールが発生していた。
   その修正と、記事本文のブロック要素の折り返しをまとめて行う。
   ============================================================ */

/* 画像・埋め込みは常に親幅を超えない */
img, svg, iframe, video, canvas { max-width: 100%; }
img { height: auto; }

/* 長いURL・英数字の連続で行が伸びるのを防ぐ */
.kh-body a, .kh-lead a, .kh-cite a, .kh-recos a { word-break: break-word; overflow-wrap: anywhere; }

@media (max-width:1000px){
  /* ★ 縦積み時は横いっぱいに広げる（横スクロールの原因だった） */
  .kh-wrap{ align-items:stretch; }
  .kh-main, .kh-side{ width:100%; max-width:100%; min-width:0; }
  .kh-main > *, .kh-side > *{ max-width:100%; }
}

@media (max-width:768px){
  .kh-wrap{ padding:18px 14px 48px; gap:22px; }
  .kh-article{ padding:20px 15px 30px; border-radius:10px; }

  /* 見出し・メタ */
  .kh-title{ font-size:20.5px; line-height:1.5; }
  .kh-meta{ flex-wrap:wrap; gap:6px 12px; font-size:11.5px; }
  .kh-archive-head h1{ font-size:20px; line-height:1.5; }
  .kh-sec-title{ font-size:17px; }
  .kh-lead{ font-size:14.5px; padding:16px 15px; }

  /* 目次 */
  .kh-toc{ padding:16px 14px; }
  .kh-toc a{ font-size:13.5px; }

  /* 本文の共通ブロック（記事ごとの名前空間つきCSSを上書きする） */
  .kh-body .cards,
  .kh-body .kh-recos-grid{ grid-template-columns:1fr !important; }
  .kh-body .nums{ grid-template-columns:repeat(2,1fr) !important; gap:9px !important; }
  .kh-body .nums .n, .kh-body .nums b{ font-size:20px !important; }
  .kh-body .box, .kh-body .boxw, .kh-body .boxd, .kh-body .boxo,
  .kh-body .sum, .kh-body .steps, .kh-body .faq, .kh-body .pull,
  .kh-body blockquote{ padding:14px 14px !important; }
  .kh-body .pull{ font-size:15px !important; }
  .kh-body .steps li{ padding-left:38px !important; }
  .kh-body dl, .kh-body .dl{ margin-left:0 !important; }

  /* 表：折り返しを許したうえで、はみ出す分だけ横スクロール */
  .kh-body .kh-tblwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 0 1.7em; }
  .kh-body table{ display:table !important; white-space:normal !important; min-width:520px; font-size:12.5px !important; }
  .kh-body table th, .kh-body table td{ padding:8px 9px !important; line-height:1.65 !important; }

  /* セクション見出しのイラスト */
  .kh-illust img, .kh-body figure img{ width:100%; height:auto; }
  .kh-illust figcaption{ font-size:11.5px; }

  /* 出典リンク */
  .kh-cite{ font-size:12px; padding:9px 11px; }

  /* 一覧・関連記事・カテゴリーカード */
  .kh-related-grid{ grid-template-columns:1fr 1fr; gap:11px; }
  .kh-related-card h4{ font-size:13px; }
  .kh-catgrid{ grid-template-columns:1fr; }
  .kh-statgrid{ grid-template-columns:1fr; }

  /* SNS埋め込み */
  .kh-social-embeds{ grid-template-columns:1fr !important; }
  .kh-social-btns{ flex-wrap:wrap; gap:8px; }
  .kh-sbtn{ flex:1 1 calc(50% - 4px); justify-content:center; font-size:12.5px; padding:9px 8px; }

  /* おすすめサイト */
  .kh-reco-item{ padding:12px 13px; }
  .kh-reco-item .t{ font-size:13.5px; }

  /* 著者ボックス */
  .kh-author{ flex-direction:column; gap:12px; }
  .kh-author-ico{ width:44px; height:44px; }

  /* 役に立ったボタン */
  .kh-helpful{ padding:18px 14px; }
  .kh-helpful-btn{ width:100%; justify-content:center; }
}

@media (max-width:480px){
  body{ font-size:15px; }
  .kh-wrap{ padding:14px 11px 44px; }
  .kh-article{ padding:17px 12px 26px; }
  .kh-title{ font-size:19px; }
  .kh-body h2{ font-size:17.5px !important; padding:11px 12px !important; margin:32px 0 16px !important; }
  .kh-body h3{ font-size:16px !important; }
  .kh-body .nums{ grid-template-columns:1fr !important; }
  .kh-related-grid{ grid-template-columns:1fr; }
  .kh-sbtn{ flex:1 1 100%; }
  .kh-body table{ min-width:440px; font-size:12px !important; }
}

/* 表のスクロールラッパー（PC・スマホ共通） */
.kh-tblwrap{ max-width:100%; }
@media (min-width:769px){ .kh-tblwrap{ overflow-x:auto; } }

/* パンくず・キーワード帯：スマホでは横スクロールさせず、現在地は省略表示にする */
.kh-breadcrumb .cur{ display:inline; }
@media (max-width:768px){
  .kh-breadcrumb .kh-inner{ padding-left:14px; padding-right:14px; }
  .kh-breadcrumb .cur{
    display:inline-block; vertical-align:bottom;
    max-width:46vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  /* 横スクロールする帯は、まだ右に続くことが分かるように端をぼかす */
  .kh-hotwords .kh-inner{
    padding-left:14px; padding-right:14px;
    -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent 100%);
            mask-image:linear-gradient(90deg,#000 88%,transparent 100%);
  }
  .kh-hotwords b{ font-size:11.5px; }
  .kh-hotwords a{ font-size:11.5px; padding:4px 10px; }
}

/* ロゴ：狭い画面では折り返して収める（flex-shrink:0 で溢れていた） */
@media (max-width:768px){
  .kh-logo{ flex-shrink:1; min-width:0; gap:8px; }
  .kh-logo-mark{ flex-shrink:0; }
  .kh-logo-txt{ min-width:0; }
  .kh-logo-txt strong{ font-size:14px; line-height:1.32; white-space:normal; }
  .kh-logo-txt span{ font-size:9px; letter-spacing:.01em; }
  .kh-header .kh-inner{ gap:10px; }
}
@media (max-width:420px){
  .kh-logo-txt strong{ font-size:12.5px; }
  .kh-logo-txt span{ display:none; }
  .kh-logo-mark{ width:34px; height:34px; font-size:12px; }
}

/* ============================================================
   14. 一覧の見た目を1件ずつ変える
   ------------------------------------------------------------
   同じ形のブロックが並び続けると機械的に見えるため、
   1行・2行、画像が左・右・上、画像なしを混ぜて出す。
   クラスは kh_variant() が付ける。
   ============================================================ */

/* ---- 検索キーワードのカード ---- */
.kh-catcard.kh-cv-b{
  grid-column:span 2;
  flex-direction:row-reverse;
  align-items:center;
  padding:18px 20px;
  background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);
}
.kh-catcard.kh-cv-b .kh-catcard-ic{ flex:0 0 48px;height:48px;border-radius:12px; }
.kh-catcard.kh-cv-b strong{ font-size:16px; }
.kh-catcard.kh-cv-b .kh-catcard-note{ font-size:12.5px; }

.kh-catcard.kh-cv-c{
  flex-direction:column;
  gap:9px;
  padding:18px 17px 15px;
}
.kh-catcard.kh-cv-c .kh-catcard-ic{ flex:0 0 40px;border-radius:50%; }
.kh-catcard.kh-cv-c .kh-catcard-note{ margin-bottom:8px; }

.kh-catcard.kh-cv-d{
  flex-direction:row-reverse;
  border-left:3px solid var(--kh-blue-l);
}
.kh-catcard.kh-cv-d:hover{ border-left-color:var(--kh-orange); }
.kh-catcard.kh-cv-d .kh-catcard-ic{ background:transparent;border:1px solid var(--kh-line); }
.kh-catcard.kh-cv-d:hover .kh-catcard-ic{ background:var(--kh-navy);border-color:var(--kh-navy); }

/* ---- 記事一覧 ---- */
.kh-list-item.kh-lv-b{ flex-direction:row-reverse; }

.kh-list-item.kh-lv-c{ flex-direction:column; gap:0; }
.kh-list-item.kh-lv-c .kh-list-thumb{ width:100%; }
.kh-list-item.kh-lv-c .kh-list-thumb img{ width:100%;height:220px;object-fit:cover; }
.kh-list-item.kh-lv-c .kh-list-body{ padding:18px 20px 20px; }
.kh-list-item.kh-lv-c h2{ font-size:19px; }

.kh-list-item.kh-lv-d{
  border-left:4px solid var(--kh-orange);
  background:linear-gradient(180deg,#fff 0%,#fcfaf6 100%);
}
.kh-list-item.kh-lv-d .kh-list-body{ padding:20px 22px; }
.kh-list-item.kh-lv-d h2{ font-size:19px; }
.kh-list-item.kh-lv-d .kh-ex{ font-size:13.5px; }

@media (max-width:768px){
  /* 横並びの変種は、スマホでは全部縦積みに戻す */
  .kh-catcard.kh-cv-b{ grid-column:span 1;flex-direction:row;padding:15px 17px; }
  .kh-catcard.kh-cv-b .kh-catcard-ic{ flex:0 0 40px;height:40px; }
  .kh-catcard.kh-cv-b strong{ font-size:14.5px; }
  .kh-catcard.kh-cv-d{ flex-direction:row; }
  .kh-list-item.kh-lv-b,
  .kh-list-item.kh-lv-c{ flex-direction:column; }
  .kh-list-item.kh-lv-c .kh-list-thumb img{ height:170px; }
  .kh-list-item.kh-lv-c .kh-list-body,
  .kh-list-item.kh-lv-d .kh-list-body{ padding:15px 16px 18px; }
  .kh-list-item.kh-lv-c h2,
  .kh-list-item.kh-lv-d h2{ font-size:16.5px; }
}

/* ---- おすすめサイト一覧：全部同じ形にしない ---- */
.kh-sitelist{ display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
.kh-sitelist li.kh-sv-c{ grid-column:span 2; }
.kh-sitelist li.kh-sv-b{ padding-top:6px;padding-bottom:6px; }
.kh-sitelist li.kh-sv-c{
  background:#f8fbfe;border-left:3px solid var(--kh-blue-l);
  padding-left:14px;border-radius:0 6px 6px 0;
}
@media (max-width:768px){
  .kh-sitelist{ grid-template-columns:1fr; }
  .kh-sitelist li.kh-sv-c{ grid-column:span 1; }
}
.kh-sitelist li.kh-sv-b .kh-site-desc{ display:none; }

/* カードの高さは中身なりにする（行の高さにそろえると空白が目立つ） */
.kh-catgrid{ align-items:start; }
.kh-catcard{ height:auto; }
