/* ==========================================================================
   ふじみの会計事務所 ─ 読みもの（/blog/）共通スタイル
   ・LPと同じトークン・書体・部品を使う。ただし記事は本文が主役なので、
     読みやすさ（行長・行間・見出しの間）を最優先に組む
   ・LPは各HTMLに<style>を埋め込んでいるが、記事は本数が増えるため
     ここに切り出してキャッシュを効かせる
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}

:root{
  color-scheme: light only;

  --b900:#151515;
  --b800:#000000;

  --n000:#FFFFFF;
  --n050:#F4F4F2;
  --n100:#E6E6E2;
  --n300:#D4D4CE;
  --n400:#8A8A84;
  --n600:#5A5A5A;
  --n800:#333333;
  --n900:#151515;

  --green:#037332;
  --red:#C4001A;
  --red-bg:#FDF1F2;
  --amber:#8A6100;
  --amber-bg:#FFF6E0;

  /* 記事のアクセント。LPの5色のどれとも競合しない、資料の色 */
  --ink:#1F3A5F;
  --ink-bg:#EEF2F7;

  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --s6:32px; --s7:48px; --s8:64px; --s9:96px;

  --pad:clamp(20px,5vw,48px);
  --sec:clamp(48px,7vw,88px);
  --mono:"Roboto Mono",monospace;
}

html{
  -webkit-text-size-adjust:100%;scroll-behavior:smooth;
  background-color:#FFFFFF;color:#1A1A1C;
  overflow-x:clip;
}
body{
  margin:0;background-color:#FFFFFF;color:var(--n900);
  overflow-x:clip;max-width:100vw;
  font-family:"Noto Sans JP",sans-serif;
  font-size:16px;line-height:1.9;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
:focus-visible{outline:3px solid var(--b900);outline-offset:2px;border-radius:2px;}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--b900);color:#fff;padding:12px 20px;border-radius:0 0 var(--s1) 0;font-weight:700;}
.skip:focus{left:0;}
p{margin:0 0 1.5em;}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.45;letter-spacing:.01em;overflow-wrap:anywhere;min-width:0;text-wrap:balance;}
p,li{text-wrap:pretty;}

.w{max-width:1200px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.w--n{max-width:760px;}

/* ── ヘッダ（LPと同じ形） ─────────────────────── */
.hd{border-bottom:1px solid var(--n100);position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);}
.hd__in{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-top:var(--s3);padding-bottom:var(--s3);}
.hd__n{font-weight:700;font-size:16px;text-decoration:none;line-height:1.3;}
.hd__n span{display:block;font-size:11px;font-weight:400;color:var(--n600);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);
  font-weight:700;font-size:16px;padding:var(--s4) var(--s6);min-height:48px;letter-spacing:.02em;border-radius:var(--s2);
  text-decoration:none;border:2px solid transparent;
  transition:background-color .4s cubic-bezier(.32,.72,0,1), transform .4s cubic-bezier(.32,.72,0,1);
}
.btn:active{transform:translateY(1px) scale(.99);}
.btn--l{background:var(--green);color:#fff;box-shadow:4px 4px 0 var(--n900);}
.btn--l:hover{background:#02622A;}
.btn--l:active{box-shadow:2px 2px 0 var(--n900);}
/* .btn は inline-flex。display:block だけでは .sub が横に並んでしまうので、
   折り返して下の行に落とす（実際に崩れていた） */
.btn--l{flex-wrap:wrap;row-gap:0;}
.btn--l .sub{display:block;flex:0 0 100%;text-align:center;font-size:11.5px;font-weight:500;opacity:.9;margin-top:2px;}
.btn--o{border-color:var(--n900);color:var(--n900);background:#fff;}
.btn--o:hover{background:var(--n050);}
.btn--s{padding:var(--s3) var(--s5);min-height:44px;font-size:14px;line-height:1;white-space:nowrap;}

/* ── ヘッダのナビ ─────────────────────────── */
.hd__nav{display:none;gap:var(--s5);margin-left:auto;margin-right:var(--s5);}
@media(min-width:820px){.hd__nav{display:flex;}}
.hd__nav a{font-size:13.5px;font-weight:700;text-decoration:none;color:var(--n900);
  padding:var(--s2) 0;border-bottom:2px solid transparent;white-space:nowrap;}
.hd__nav a:hover,.hd__nav a[aria-current]{border-bottom-color:var(--n900);}
.hd__sub{display:flex;gap:var(--s4);overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:0 0 var(--s1);margin:0 0 0 -2px;list-style:none;scrollbar-width:none;}
.hd__sub::-webkit-scrollbar{display:none;}
@media(min-width:820px){.hd__sub{display:none;}}
.hd__sub a{font-size:12.5px;font-weight:700;text-decoration:none;color:var(--n600);white-space:nowrap;padding:2px 2px 4px;}
.hd__sub a[aria-current]{color:var(--n900);border-bottom:2px solid var(--n900);}

/* ── パンくず ───────────────────────────── */
.bc{border-bottom:1px solid var(--n100);font-size:12px;}
.bc ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:0;padding:var(--s3) 0;}
.bc li{display:flex;align-items:center;gap:var(--s2);color:var(--n600);}
.bc li+li::before{content:"\203A";color:var(--n400);}
.bc a{color:var(--n600);text-decoration:none;padding:var(--s1) 0;}
.bc a:hover{text-decoration:underline;text-underline-offset:3px;}
.bc [aria-current]{color:var(--n900);font-weight:700;}

/* ── テーマ別ページへのナビ（トピッククラスタのハブ） ────── */
.cls{margin:0 0 var(--s7);border-top:1px solid var(--n300);border-bottom:1px solid var(--n300);padding:var(--s4) 0;}
.cls ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);}
.cls a{font-size:13.5px;font-weight:700;text-decoration:none;color:var(--n900);
  border-bottom:2px solid transparent;padding-bottom:2px;}
.cls a:hover{border-bottom-color:var(--n900);}
.cls a[aria-current]{border-bottom-color:var(--n900);color:var(--n600);}

/* ── 記事のヘッダ ─────────────────────────── */
.ah{padding:var(--s8) 0 var(--s6);border-bottom:4px solid var(--n900);}
.ah__k{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--n600);margin:0 0 var(--s4);}
.ah h1{font-size:clamp(26px,5vw,42px);line-height:1.36;}
.ah__lead{margin:var(--s6) 0 0;font-size:17.5px;color:var(--n800);line-height:2.05;}
.ah__meta{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);margin-top:var(--s6);font-size:12.5px;color:var(--n600);}
.ah__meta time{font-family:var(--mono);}

/* 著者。YMYLでは誰が書いたかが最も重い情報なので、記事の頭に置く */
.byline{display:flex;gap:var(--s4);align-items:flex-start;margin-top:var(--s6);
  border-top:1px solid var(--n100);border-bottom:1px solid var(--n100);padding:var(--s5) 0;}
.byline img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;background:var(--n050);}
.byline__b{min-width:0;}
.byline__n{font-weight:700;font-size:15px;margin:0;}
.byline__n small{display:block;font-weight:400;font-size:12px;color:var(--n600);margin-top:2px;}
.byline__d{font-size:12.5px;color:var(--n600);margin:var(--s2) 0 0;line-height:1.8;}

/* ── 本文 ───────────────────────────────── */
.body{padding:var(--s7) 0 var(--sec);}
.body h2{
  font-size:clamp(21px,3.2vw,28px);margin:var(--s9) 0 var(--s5);
  padding-top:var(--s5);border-top:2px solid var(--n900);
}
.body h2:first-child{margin-top:0;}
.body h3{font-size:clamp(17px,2.4vw,21px);margin:var(--s7) 0 var(--s4);}
.body p{font-size:16.5px;line-height:2.1;color:var(--n800);}
.body strong,.body b{color:var(--n900);}
/* 本文リンクだけを青にする。.btn と関連カードまで巻き込むと、
   緑のLINEボタンに濃紺の文字が乗って 1.92:1 になり読めなくなる。 */
.body a:not(.btn):not(.rel__c){color:var(--ink);text-underline-offset:3px;}
.body ul,.body ol{padding-left:1.4em;margin:0 0 1.5em;}
.body li{font-size:16.5px;line-height:2.05;color:var(--n800);margin-bottom:var(--s2);}
.body .mk{background:linear-gradient(transparent 62%,#FFE9A8 62%);font-weight:700;color:var(--n900);}

/* 表。横に長い表はここだけスクロールさせ、ページ本体は横に動かさない */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:0 0 var(--s6);}
.tw table{min-width:520px;width:100%;border-collapse:collapse;font-size:14.5px;}
.tw th,.tw td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--n100);text-align:left;vertical-align:top;}
.tw thead th{border-bottom:3px solid var(--n900);font-size:14px;}
.tw tbody th{font-weight:500;color:var(--n600);font-size:13.5px;}
.tw .hi{background:var(--ink-bg);}
.tw .hi strong{color:var(--b900);}

/* 図版。SVGをインラインで置くので外部リクエストは増えない */
/* 幅を詰めると文字が実効6pxまで落ちて読めなくなる。
   表と同じく、図の中だけを横に流して原寸を保つ。 */
.fig{margin:0 0 var(--s6);border:1px solid var(--n300);padding:var(--s5) var(--s4) var(--s4);background:var(--n000);}
.fig__s{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
.fig svg{width:100%;min-width:560px;height:auto;display:block;}
.fig__n{font-size:11.5px;color:var(--n600);margin:var(--s2) 0 0;}
@media(min-width:640px){.fig__n{display:none;}}
.fig figcaption{font-size:12.5px;color:var(--n600);line-height:1.8;margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--n100);}
.fig .fg-bg{fill:var(--n050);}
.fig .fg-hi{fill:var(--ink-bg);}
.fig .fg-line{stroke:var(--n300);}
.fig .fg-axis{stroke:var(--n900);}
.fig .fg-t{fill:var(--n900);font-family:"Noto Sans JP",sans-serif;}
.fig .fg-s{fill:var(--n600);font-family:"Noto Sans JP",sans-serif;}
.fig .fg-n{fill:var(--n900);font-family:"Roboto Mono",monospace;font-weight:700;}
.fig .fg-up{fill:var(--green);}
.fig .fg-dn{fill:var(--red);}
.fig .fg-ink{fill:var(--ink);}

/* 注意・訂正の枠 */
.note{border:2px solid var(--n900);background:var(--n050);padding:var(--s5);margin:0 0 var(--s6);}
.note--w{border-color:var(--red);background:var(--red-bg);}
.note--s{border-color:var(--ink);background:var(--ink-bg);}
.note__t{font-weight:700;font-size:16px;margin:0 0 var(--s3);}
.note--w .note__t{color:var(--red);}
.note--s .note__t{color:var(--ink);}
.note p{margin:0 0 var(--s3);font-size:15px;line-height:1.95;}
.note p:last-child{margin-bottom:0;}

/* 一次資料の引用。どこから持ってきたかが一目で分かるようにする */
.src{border-left:5px solid var(--ink);background:var(--ink-bg);padding:var(--s5);margin:0 0 var(--s6);}
.src__t{font-size:12px;font-weight:700;color:var(--ink);letter-spacing:.04em;margin:0 0 var(--s3);}
.src blockquote{margin:0;font-size:15.5px;line-height:2.05;color:var(--n900);}
.src__c{font-size:12px;color:var(--n600);margin:var(--s3) 0 0;}

/* 目次 */
.toc{border:1px solid var(--n300);padding:var(--s5);margin:0 0 var(--s7);}
.toc__t{font-size:13px;font-weight:700;letter-spacing:.06em;margin:0 0 var(--s3);}
.toc ol{margin:0;padding-left:1.3em;}
.toc li{font-size:14.5px;line-height:1.95;margin-bottom:var(--s1);color:var(--n800);}
.toc a{color:var(--n800);text-decoration:none;border-bottom:1px solid var(--n300);}
.toc a:hover{border-bottom-color:var(--n900);}

/* 出典一覧 */
.refs{margin-top:var(--s8);border-top:2px solid var(--n900);padding-top:var(--s5);}
.refs h2{font-size:16px;margin:0 0 var(--s4);border:0;padding:0;}
.refs ol{padding-left:1.3em;margin:0;}
/* 出典には裸のURLを載せる（どこを見たか分かるように）。
   日本語と違って途中で折り返さないので、明示的に折る。 */
.refs li{font-size:13.5px;line-height:1.9;color:var(--n600);margin-bottom:var(--s3);overflow-wrap:anywhere;}
.refs a{color:var(--ink);overflow-wrap:anywhere;word-break:break-all;}

.disc{margin-top:var(--s6);font-size:12px;color:var(--n600);line-height:1.85;
  border:1px solid var(--n100);background:var(--n050);padding:var(--s4);}

/* ── 記事末のご案内 ──────────────────────── */
.cta{margin-top:var(--s8);border:2px solid var(--n900);padding:var(--s6);background:#fff;box-shadow:6px 6px 0 var(--n900);}
.cta__t{font-size:clamp(19px,2.8vw,24px);margin:0 0 var(--s3);}
.cta p{font-size:15px;color:var(--n800);margin:0 0 var(--s5);line-height:1.95;}
.cta__b{display:flex;flex-wrap:wrap;gap:var(--s3);}

/* ── 関連記事・関連ページ ────────────────── */
.rel{margin-top:var(--s8);}
.rel h2{font-size:15px;letter-spacing:.04em;margin:0 0 var(--s4);border:0;padding:0;}
.rel__g{display:grid;gap:var(--s3);}
@media(min-width:700px){.rel__g{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);}}
.rel__c{display:block;border:1px solid var(--n300);padding:var(--s4);text-decoration:none;transition:border-color .3s,transform .3s;}
.rel__c:hover{border-color:var(--n900);transform:translateY(-2px);}
.rel__k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--n600);margin:0 0 var(--s2);}
.rel__n{font-size:15px;font-weight:700;line-height:1.6;margin:0;}
.rel__d{font-size:12.5px;color:var(--n600);margin:var(--s2) 0 0;line-height:1.75;}

/* ── 一覧ページ ─────────────────────────── */
.idx{padding:var(--s8) 0 var(--sec);}
.idx__h{margin-bottom:var(--s8);}
.idx__h h1{font-size:clamp(28px,5vw,44px);}
.idx__h p{margin:var(--s5) 0 0;font-size:16.5px;color:var(--n800);max-width:38em;line-height:2.05;}
.posts{list-style:none;padding:0;margin:0;border-top:4px solid var(--n900);}
.posts li{border-bottom:1px solid var(--n100);}
.posts a{display:block;padding:var(--s6) 0;text-decoration:none;transition:padding-left .3s;}
.posts a:hover{padding-left:var(--s3);}
.post__m{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:11.5px;color:var(--n600);margin-bottom:var(--s3);}
.post__m time{font-family:var(--mono);}
.post__tag{background:var(--n900);color:#fff;padding:2px var(--s2);font-weight:700;letter-spacing:.04em;}
.post__t{font-size:clamp(19px,2.8vw,25px);line-height:1.5;margin:0;}
.post__d{font-size:14.5px;color:var(--n800);margin:var(--s3) 0 0;line-height:1.95;max-width:44em;}

/* ── フッター ───────────────────────────── */
.ftnav{border-top:1px solid var(--n100);padding:var(--s6) 0 var(--s5);}
.ftnav__g{display:grid;gap:var(--s5);}
@media(min-width:700px){.ftnav__g{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);}}
.ftnav h2{font-size:12px;letter-spacing:.08em;color:var(--n600);margin-bottom:var(--s3);font-weight:700;}
.ftnav ul{list-style:none;padding:0;margin:0;}
.ftnav li{margin-bottom:var(--s2);}
.ftnav a{font-size:13.5px;color:var(--n900);text-decoration:none;border-bottom:1px solid transparent;}
.ftnav a:hover{border-bottom-color:var(--n900);}
.ftnav a[aria-current]{color:var(--n600);font-weight:700;}
.ft{border-top:1px solid var(--n100);color:var(--n600);font-size:12px;padding:var(--s6) 0;}
.ft__in{display:flex;flex-wrap:wrap;gap:var(--s3);justify-content:space-between;}
.ft a{margin-right:var(--s4);}

/* ── ダークモード強制への対策（LPと同じ方針） ─────────── */
@media (prefers-color-scheme: dark){
  html,body{background-color:#FFFFFF !important;color:#151515 !important;}
  .hd,.ft,.ftnav,.bc,.ah,.body,.idx,.cta,.rel__c,.posts li{background-color:#FFFFFF !important;}
  .hd__nav a{color:#151515 !important;}
  .hd__sub a{color:#5A5A5A !important;}
  .hd__sub a[aria-current]{color:#151515 !important;}
  .cls a{color:#151515 !important;}
  .cls a[aria-current]{color:#5A5A5A !important;}
  .note,.toc,.disc{background-color:#F4F4F2 !important;}
  .note--w{background-color:#FDF1F2 !important;}
  .note--s,.src,.tw .hi{background-color:#EEF2F7 !important;}
  h1,h2,h3,h4,.post__t,.rel__n,.byline__n{color:#151515 !important;}
  p,li,.body p,.body li{color:#333333 !important;}
  .ah__meta,.byline__d,.post__m,.refs li,.disc,.rel__d,.rel__k,.ft{color:#5A5A5A !important;}
  .post__tag{background-color:#151515 !important;color:#fff !important;}
  .btn--l{background-color:#037332 !important;color:#fff !important;}
  .btn--o{background-color:#FFFFFF !important;color:#151515 !important;}
  /* ここも .btn を除く。除かないと !important で緑のボタンに濃紺の文字が乗る */
  .body a:not(.btn):not(.rel__c),.refs a,.src__t{color:#1F3A5F !important;}
  .btn--l{color:#fff !important;}
  .btn--o,.rel__c,.rel__n{color:#151515 !important;}
  .note--w .note__t{color:#C4001A !important;}
}
