@charset "utf-8";
/* ============================================================
   企業経財（KIGYŌ KEIZAI）共通スタイル
   ここを直せば全記事に反映されます。
   ============================================================ */

:root{
  --navy:#11223d; --navy2:#1b355c; --ink:#1c2530;
  --accent:#8f2a2a; --sub:#6b7580; --line:#e4e7ec; --soft:#f7f8fa;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:#fff;line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased;
  /* 日本語の改行を文節単位にし、行末に1文字だけ取り残されるのを防ぐ */
  word-break:auto-phrase;line-break:strict}
a{color:inherit;text-decoration:none}
.serif{font-family:"Noto Serif JP",serif}
img{max-width:100%;height:auto}

/* ---------- masthead ---------- */
.masthead{background:var(--navy);color:#fff}
.mh-top{max-width:1080px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:baseline;gap:14px}
.brand .logo{font-family:"Noto Serif JP",serif;font-weight:900;font-size:28px;letter-spacing:.16em;line-height:1}
.brand .en{font-size:9.5px;letter-spacing:.42em;color:#9db0c9;border-left:1px solid #3a4d6b;padding-left:14px}
.tagline{font-size:12px;color:#b9c6d8;letter-spacing:.04em}
@media(max-width:640px){.tagline,.brand .en{display:none}.brand .logo{font-size:24px}}

/* ---------- category nav ---------- */
.catnav{border-bottom:2px solid var(--navy)}
.catnav-in{max-width:1080px;margin:0 auto;padding:0 12px;display:flex;flex-wrap:wrap}
.catnav a{padding:13px 18px;font-size:14px;font-weight:500;color:var(--ink);position:relative}
.catnav a:hover{color:var(--accent)}
.catnav a.on{color:var(--accent);font-weight:700}
.catnav a.on:after{content:"";position:absolute;left:18px;right:18px;bottom:-2px;height:2px;background:var(--accent)}
@media(max-width:640px){.catnav-in{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.catnav a{padding:12px 14px;font-size:13.5px}}

/* ---------- 一覧レイアウト ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.grid{display:grid;grid-template-columns:1fr 300px;gap:44px;margin:36px 0}
@media(max-width:860px){.grid{grid-template-columns:1fr;gap:34px}}

.hero{display:block;border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:26px}
.hero .ph{width:100%;aspect-ratio:16/6.4;border-radius:4px;background:linear-gradient(120deg,#13284a,#2c4a76);display:grid;place-items:center;position:relative}
.hero .ph span{font-family:"Noto Serif JP",serif;color:#d3dfee;font-size:14px;letter-spacing:.24em;border:1px solid #55719b;padding:8px 22px;border-radius:2px}
.hero .ph:after{content:"KIGYŌ KEIZAI";position:absolute;right:16px;bottom:12px;font-size:9px;letter-spacing:.36em;color:#5d7597}
.tag{display:inline-block;font-size:11.5px;font-weight:700;color:#fff;background:var(--accent);padding:3px 10px;border-radius:2px;letter-spacing:.04em}
.hero h2{font-size:clamp(22px,3vw,30px);line-height:1.5;margin:14px 0 8px;font-weight:900;color:var(--navy);font-family:"Noto Serif JP",serif}
.hero:hover h2{color:var(--accent)}
.hero .ex{font-size:14.5px;color:#48535f}
.hero .mt{font-size:12px;color:var(--sub);margin-top:10px}

.sec-h{font-family:"Noto Serif JP",serif;font-size:18px;font-weight:700;color:var(--navy);border-left:4px solid var(--accent);padding-left:12px;margin:6px 0 4px}
.item{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.item .ph{aspect-ratio:3/2;background:var(--soft);border:1px solid var(--line);border-radius:3px;display:grid;place-items:center;color:#b3bcc7;font-size:11px;letter-spacing:.08em}
.item h3{font-size:16.5px;font-weight:700;line-height:1.55;margin:6px 0 6px;color:#1b2733}
.item:hover h3{color:var(--accent)}
.item .ex{font-size:13px;color:#5b6672;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .mt{font-size:11.5px;color:var(--sub);margin-top:7px}
.ctag{display:inline-block;font-size:11px;font-weight:700;color:var(--accent);margin-right:8px}
@media(max-width:520px){.item{grid-template-columns:100px 1fr;gap:12px}}

.empty{padding:40px 0;color:var(--sub);font-size:14px}
.pager{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0}
.pager a,.pager span{padding:8px 14px;border:1px solid var(--line);border-radius:3px;font-size:13.5px;color:#2b4a74}
.pager .on{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager a:hover{border-color:var(--navy);color:var(--navy)}

/* ---------- サイドバー ---------- */
.side .box{border:1px solid var(--line);border-radius:4px;margin-bottom:24px}
.side .bh{background:var(--navy);color:#fff;font-size:13.5px;font-weight:700;padding:10px 16px;letter-spacing:.04em}
.side .bc{padding:6px 16px}
.side .cat{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.side .cat:last-child{border-bottom:none}
.side .cat:hover{color:var(--accent)}
.side .cat .n{color:var(--sub);font-size:12px}
.side .rk{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}
.side .rk:last-child{border-bottom:none}
.side .rk .num{font-family:"Noto Serif JP",serif;font-weight:700;color:var(--accent);font-size:18px;line-height:1.3;flex:0 0 auto}
.side .rk p{font-size:13px;line-height:1.55;color:#2a343f}
.side .rk:hover p{color:var(--accent)}
.about{background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:18px}
.about .h{font-size:13.5px;font-weight:700;color:var(--navy);margin-bottom:8px}
.about p{font-size:12.5px;color:#5b6672;line-height:1.85}

/* ---------- 相談ストリップ ---------- */
.consult{background:var(--navy);color:#fff;border-radius:5px;padding:26px 28px;margin:10px 0 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.consult .h{font-family:"Noto Serif JP",serif;font-size:19px;font-weight:700}
.consult .s{font-size:12.5px;color:#b9c6d8;margin-top:6px;line-height:1.7}
.consult a{background:#fff;color:var(--navy);font-weight:700;font-size:14px;padding:12px 24px;border-radius:4px;white-space:nowrap}

/* ---------- 記事ページ ---------- */
.container{max-width:760px;margin:0 auto;padding:0 24px}
.crumb{font-size:12px;color:var(--sub);margin-top:22px}
.crumb a:hover{color:var(--accent)}
.cat-badge{display:inline-block;margin-top:20px;font-size:11.5px;font-weight:700;color:#fff;background:var(--accent);padding:3px 11px;border-radius:2px;letter-spacing:.04em}
h1{font-size:clamp(23px,3.4vw,32px);color:var(--navy);line-height:1.55;margin:14px 0 16px;font-weight:900;font-family:"Noto Serif JP",serif}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--sub);padding-bottom:22px;border-bottom:1px solid var(--line)}
.byline .who{display:flex;align-items:center;gap:8px;font-weight:700;color:#3a4652}
.av{width:28px;height:28px;border-radius:3px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700;font-family:"Noto Serif JP",serif}

.toc{background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:20px 24px;margin:28px 0}
.toc .lbl{font-weight:700;font-size:14px;color:var(--navy);margin-bottom:10px;font-family:"Noto Serif JP",serif}
.toc ol{margin:0;padding-left:1.3em}
.toc li{margin:7px 0;font-size:14.5px}
.toc a{color:#2b4a74;border-bottom:1px solid transparent}
.toc a:hover{border-bottom-color:#2b4a74}

.body p{margin:16px 0;font-size:16px;color:#2c353f;line-height:1.95}
.body h2{font-family:"Noto Serif JP",serif;font-size:22px;color:var(--navy);font-weight:700;margin:44px 0 16px;padding-bottom:11px;border-bottom:2px solid var(--navy);line-height:1.5;scroll-margin-top:16px}
.body h3{font-size:17px;color:var(--navy);font-weight:700;margin:26px 0 8px}
.body ul{margin:14px 0 14px 1.2em}
.body li{font-size:15.5px;color:#2c353f;margin:6px 0;line-height:1.9}

.step{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:18px 0;border-bottom:1px dashed var(--line)}
.step .n{width:34px;height:34px;border-radius:3px;background:var(--navy);color:#fff;font-family:"Noto Serif JP",serif;font-weight:700;display:grid;place-items:center;font-size:15px}
.step h3{margin:2px 0 4px}
.step p{margin:4px 0;font-size:15px;color:#404b56}
.step ul{margin:8px 0 4px 1.2em}
.step li{font-size:14.5px;color:#404b56;margin:4px 0}

.callout{background:#faf3f2;border-left:3px solid var(--accent);padding:14px 18px;margin:22px 0;font-size:15px;color:#5a3a3a;line-height:1.9}

/* 図表 */
.figbox{border:1px solid var(--line);border-radius:4px;overflow:hidden;margin:24px 0}
.figbox .cap{background:var(--soft);border-bottom:1px solid var(--line);padding:10px 16px;font-size:13px;font-weight:700;color:var(--navy)}
.figscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.figbox table{width:100%;border-collapse:collapse}
.figbox.wide table{min-width:460px}
.figbox th,.figbox td{padding:11px 15px;font-size:14.5px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.figbox thead th{background:#f1f3f6;color:var(--navy);font-size:13.5px}
.figbox td.num{text-align:right;font-variant-numeric:tabular-nums}
.figbox tr:last-child td{border-bottom:none}
.figbox tr.total td{background:#faf3f2;font-weight:700}
.figbox .minus{color:var(--accent);font-weight:700}
/* 左が見出し・右が中身の2列表。中身は折り返し、スマホでは縦に積む */
.figbox.stack td{white-space:normal;vertical-align:top;line-height:1.85}
.figbox.stack td:first-child{white-space:nowrap;width:1%;background:var(--soft);color:var(--navy);font-weight:700}
@media(max-width:640px){
 .figbox.stack tr{display:block;border-bottom:1px solid var(--line)}
 .figbox.stack tr:last-child{border-bottom:none}
 .figbox.stack td{display:block;width:auto;border-bottom:none;padding:0 15px 11px}
 .figbox.stack td:first-child{width:auto;background:transparent;font-size:13px;padding:11px 15px 2px}
}
.figbox .note{font-size:12px;color:var(--sub);padding:10px 16px;border-top:1px solid var(--line);background:var(--soft);line-height:1.7;white-space:normal}

/* 編集後記（手記） */
.memo{margin:38px 0 0;padding:22px 26px;background:#fbfaf7;border:1px solid #ebe7e0;border-radius:4px}
.memo .lbl{font-family:"Noto Serif JP",serif;font-weight:700;font-size:13px;color:var(--navy);letter-spacing:.14em;display:inline-block;padding-bottom:7px;margin-bottom:12px;border-bottom:1px solid #ddd6ca}
.memo p{font-size:14.5px;line-height:2.05;color:#4a5259;margin:0}
.memo .sig{text-align:right;font-size:12px;color:var(--sub);margin-top:14px;font-family:"Noto Serif JP",serif;letter-spacing:.06em}

/* 運営者ボックス */
.oper-box{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:4px;padding:20px 22px;margin:40px 0 12px;background:var(--soft)}
.oper-box .pic{width:52px;height:52px;border-radius:4px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;font-family:"Noto Serif JP",serif;flex:0 0 auto;letter-spacing:.06em;font-size:13px;text-align:center;line-height:1.3}
.oper-box .nm{font-weight:700;color:var(--navy)}
.oper-box .rl{font-size:12px;color:var(--sub);margin:2px 0 6px}
.oper-box p{font-size:12.5px;color:#5b6672;margin:0;line-height:1.85}

/* CTA */
.cta{border:1px solid var(--navy);border-radius:5px;padding:24px;margin:28px 0;text-align:center;background:var(--navy);color:#fff}
.cta .h{font-weight:700;font-size:18px;font-family:"Noto Serif JP",serif;line-height:1.6}
.cta .s{font-size:13px;color:#b9c6d8;margin:8px 0 0;line-height:1.75}
.cta a{display:inline-block;margin-top:14px;background:#fff;color:var(--navy);font-weight:700;font-size:clamp(12.5px,3.5vw,14.5px);padding:12px 26px;border-radius:4px;white-space:nowrap}

/* 関連記事 */
.rel{margin:34px 0}
.rel .lbl{font-weight:700;color:var(--navy);font-size:15px;border-left:4px solid var(--accent);padding-left:10px;margin-bottom:12px;font-family:"Noto Serif JP",serif}
.rel a{display:block;padding:11px 2px;border-bottom:1px solid var(--line);font-size:14.5px;color:#2b4a74}
.rel a:hover{color:var(--accent)}
.disc{font-size:11.5px;color:var(--sub);border-top:1px solid var(--line);padding-top:16px;margin-top:26px;line-height:1.8}

/* ---------- footer ---------- */
footer{background:#0d1b30;color:#93a3b8;font-size:12px;padding:34px 24px;margin-top:40px}
.foot-in{max-width:1080px;margin:0 auto}
.foot-nav{display:flex;gap:20px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #23324a}
.foot-nav a{color:#b7c4d5}
.foot-nav a:hover{color:#fff}
.oper{line-height:1.9}
.oper b{color:#cdd8e6;font-weight:700}
.fdisc{color:#6f7f94;font-size:11px;margin-top:14px;line-height:1.8}

/* テスト公開中バナー */
.testbar{background:#8f2a2a;color:#fff;font-size:12px;text-align:center;padding:7px 12px;letter-spacing:.03em}

/* ---------- 行末に1文字だけ残るのを防ぐ（見出し・本文とも） ---------- */
h1,h2,h3,h4,.crumb,.cta .h,.cta .s,.figbox .cap,.oper-box .nm,.oper-box .rl,.rel a,.card .ttl{
  text-wrap:balance}
p,li,td,th,.callout,.figbox .note,.disc,.memo,.excerpt{
  text-wrap:pretty}


/* ============================================================
   背景と面の設計（2026-08 追加）
   ・背景に写真を1枚敷き、画面に固定する（スクロールしても動かない）
   ・記事エリアだけを白い面として浮かせ、影で奥行きを出す
   ・写真は /img/bg.jpg（スマホは軽い /img/bg_sp.jpg に自動で切り替え）

   ◆ 写真を差し替えたいとき … 下の url(...) のファイル名だけ変える
   ◆ 写真を暗く／明るくしたいとき … body::after の rgba の最後の数字
      （大きくすると暗く落ち着き、小さくすると写真がはっきり出ます）
   ============================================================ */

html{ background:#2b2620 }
body{ background:transparent }

/* 写真の層（画面に固定） */
body::before{
  content:"";
  position:fixed; inset:0; z-index:-2;
  background:url("/img/bg.jpg") center center / cover no-repeat;
}
/* 写真の上に薄い膜。白い記事エリアを引き立てるためのもの */
body::after{
  content:"";
  position:fixed; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(44,38,30,.14), rgba(38,34,28,.20));
}
@media(max-width:820px){
  body::before{ background-image:url("/img/bg_sp.jpg"); background-attachment:scroll }
}

/* マストヘッドとカテゴリナビ */
.masthead{ background:linear-gradient(180deg,#152a49,#11223d) }
.catnav{ background:#fff; box-shadow:0 1px 3px rgba(20,16,10,.10) }

/* 一覧ページ：本文側を白い面にする */
.grid > main{
  background:#fff;
  border-radius:6px;
  padding:30px 32px 34px;
  box-shadow:0 6px 18px rgba(40,30,20,.20), 0 24px 60px rgba(40,30,20,.22);
}

/* 記事ページ：本文を白い面にする（文字の幅は今までと同じ） */
.container{
  max-width:812px;
  padding:6px 50px 46px;
  margin:28px auto 44px;
  background:#fff;
  border-radius:6px;
  box-shadow:0 6px 18px rgba(40,30,20,.20), 0 24px 60px rgba(40,30,20,.22);
}

/* サイドバーの箱も浮かせる */
.side .box, .about{
  background:#fff;
  box-shadow:0 6px 16px rgba(40,30,20,.18);
}
.about{ background:#fdfcfa }

/* 記事どうしの間を、線だけでなく余白でも分ける */
.item{ padding:22px 0 }
.item .ph{ border-color:#e6e2db }

/* 相談ストリップに奥行き */
.consult{ box-shadow:0 14px 34px rgba(40,30,20,.26) }

/* フッターは写真の上に重なるので、下だけ締める */
footer{ position:relative; z-index:1 }

/* 狭い画面では白い面を画面いっぱいに使う */
@media(max-width:860px){
  .grid > main{ padding:24px 20px 28px }
}
@media(max-width:640px){
  .grid > main{ border-radius:0; margin-left:-24px; margin-right:-24px }
  .container{ border-radius:0; padding:6px 22px 36px; margin:16px auto 30px }
}
