/* 読みやすさ調整のみ（レイアウト・背景色は変更しない）。build_publication.pyが全ページに読み込ませる */
/* サイト共通の読みやすさ改善：本文を大きくし、薄い文字のコントラストを確保 */
html{font-size:18px;-webkit-text-size-adjust:100%}
body{font-size:18px;line-height:1.85;color:#172a24}
main p,main li,main td,main th,main label{font-size:18px;line-height:1.85;color:#20352c}
main .lead,main .intro{font-size:20px;color:#29463a}
main .small,main small,main .tag,main .meta{font-size:15px;color:#344f41}
main h1{font-weight:800;line-height:1.4}
main h2,main h3{font-weight:800;color:#172a24}
main a{color:#185d40;text-decoration-thickness:1.5px}
header a,footer a{font-size:16px}
button,.button,input,select,textarea{font-size:18px}
@media(max-width:650px){
  html,body{font-size:17px}
  main p,main li,main td,main th,main label{font-size:17px}
  main .lead,main .intro{font-size:19px}
  main .small,main small,main .tag,main .meta{font-size:15px}
}

/* トップページの小さなカード文字も読みやすく */
main .card p,main .article p,main .notice,main .detail{font-size:17px;color:#294238;line-height:1.8}
main .card h3,main .article h3{font-size:22px}
main .tag,main .kicker{font-size:15px;color:#205c40}
main .hero p,main .hero h1,main .about p,main .about h2{color:#fff}
main .hero .eyebrow{color:#173b32}
main .illus-note{font-size:17px;color:#fff}
main .mini-tags span{font-size:15px}
main .navlinks a{font-size:16px}
header .logo span{font-size:13px}
footer,footer small{color:#eef5f0}
@media(max-width:650px){main .card p,main .article p,main .notice,main .detail{font-size:17px}}

/* 検索ボタンの改行と幅の崩れを防止（既存の配色は維持） */
.searchbox{width:100%;min-width:0}
.searchbox input{flex:1 1 auto;min-width:0;width:auto}
.searchbox button{flex:0 0 auto;white-space:nowrap;min-width:72px}
.searchbox button{writing-mode:horizontal-tb;word-break:keep-all}
.section-head>div{min-width:0}
.section h2,.article h3,.card h3{overflow-wrap:anywhere}
@media(max-width:800px){.searchbox{max-width:100%}}

/* 日本語の改行を整える（既存の色・大きさ・配置は変更しない）
   見出し・説明文・ラベルなど短い文は、文節の途中で折り返さない（Chrome・Edge 119以降で有効。他のブラウザは従来どおり） */
body :is(h1,h2,h3,h4,.lead,.tag,.kicker,.eyebrow,.illus-title,.illus-note,label,legend,th,summary,.notice strong,.card strong){word-break:auto-phrase;text-wrap:pretty}
/* 本文は従来どおり詰めて組み、最終行が1〜2文字だけになるのを防ぐ */
body :is(p,li,dd,.note,.detail){line-break:strict;text-wrap:pretty}
/* ナビゲーションとフッターの短いリンクは途中で折り返さない */
body :is(nav a,.navlinks a,.footerlinks a,footer a:not([href^="http"])){white-space:nowrap}
/* 1行に収めたい語句（HTML側で class="nobr" を付けた部分）は途中で折り返さない */
.nobr{white-space:nowrap}

/* 幅320px前後の小さいスマホで、フッターの長いリンク（公式サイト名）がはみ出さないようにする */
@media (max-width:360px){body footer nav a[href]{white-space:normal}}
/* リンク・ボタンの押しやすさ（見た目の配置は変えずに、押せる範囲だけを上下に広げる）
   行をまたいで隣のリンクと押せる範囲が重ならないよう、横並び・単独で置かれたリンクに限定する */
body :is(header a:not(.logo),footer nav a,nav a,.navlinks a,.footerlinks a,.card > a:not(.button):not(.btn),.article > a:not(.button):not(.btn),.article button){padding-block:10px;margin-block:-10px}
body :is(main h3 > a,main h3 + p + a,main p > a:only-child:not(.button):not(.btn)){padding-block:6px}

/* 関連記事（記事・ガイドの末尾にビルドで自動挿入） */
.related{margin:40px 0 0;padding:22px 24px;background:#fff;border:1px solid #dce5db;border-radius:16px}
.related h2{margin:0 0 12px;font-size:21px}
.related ul{list-style:none;margin:0;padding:0}
.related li{padding:10px 0;border-top:1px solid #e3ebe1}
.related li:first-child{border-top:0}
.related li a{font-weight:700;padding-block:6px}
.related .tag{display:block;font-size:14px;color:#344f41;margin-top:2px}
.related p{margin:14px 0 0}

/* 広告を含むページの上部表記（ステルスマーケティング対策） */
.pr-note{display:inline-block;margin:4px 0 8px;padding:6px 12px;border:1px solid #c9d8cc;border-radius:8px;background:#fff;font-size:15px;color:#344f41}
