 :root{--ink:#202b28;--green:#21483d;--paper:#f5f1e7;--line:#d9d2c3;--accent:#496951}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.85 'Noto Sans JP',sans-serif}a{color:#255548;text-underline-offset:3px}.head,footer{padding:18px max(22px,calc((100% - 1120px)/2));background:#fcfaf5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;color:var(--ink);display:grid}.brand small,.kicker{font-size:.75rem;letter-spacing:.12em;color:var(--accent)}.brand b{font:600 1.2rem 'Noto Serif JP',serif}.head nav:not([hidden]),footer nav{display:flex;gap:18px;flex-wrap:wrap}.head nav a,footer nav a{font-size:.87rem}.menu{display:none}.skip{position:absolute;left:-10000px}.skip:focus{left:1rem;top:1rem;background:white}.home,.article{max-width:1120px;margin:auto;padding:0 22px}.mast{padding:54px 0 30px}.mast h1,h1,h2{font-family:'Noto Serif JP',serif;line-height:1.5}.mast h1{font-size:clamp(2rem,4vw,3.3rem);max-width:820px}.mast p{max-width:780px}.hero{margin:22px 0 30px}.hero img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:3px}.hero figcaption,.note{font-size:.84rem;color:#59645e}.flow{display:grid;grid-template-columns:repeat(4,1fr);padding:0;list-style:none;gap:10px}.flow li,.card,.action{background:#fcfaf5;border:1px solid var(--line);padding:18px}.flow b{display:block;color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.card{text-decoration:none;color:inherit}.card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.card h3{font:600 1.2rem 'Noto Serif JP',serif;line-height:1.6}.newslist{border-top:1px solid var(--line);padding-top:28px;margin-top:44px}.article{padding-bottom:60px}.crumb{max-width:1120px;margin:22px auto;padding:0 22px;font-size:.85rem}.article h1{font-size:clamp(1.8rem,4vw,2.8rem)}.lead{font-size:1.1rem;color:#47564f}.article-grid{display:grid;grid-template-columns:minmax(0,760px) 260px;gap:48px}.prose h2{font-size:1.5rem;margin-top:2.5em;border-bottom:1px solid var(--line);padding-bottom:.5em}.prose section{scroll-margin-top:20px}.prose li{margin:.45em 0}.article-grid aside{position:sticky;top:18px;align-self:start;background:#fcfaf5;border:1px solid var(--line);padding:18px;font-size:.9rem}.table-scroll{overflow-x:auto;margin:18px 0}table{border-collapse:collapse;width:100%;min-width:620px;background:#fcfaf5}th,td{border:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{background:#ece7d9}.action{border-left:4px solid var(--accent)}details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-weight:700}footer{margin-top:50px;display:grid;grid-template-columns:1fr 1fr;border:0;border-top:1px solid var(--line)}footer small{grid-column:1/-1;color:#65716b}@media(max-width:760px){.head{flex-wrap:wrap}.menu{display:block;background:var(--green);color:white;border:0;padding:10px 14px}.head nav:not([hidden]){order:3;width:100%;display:grid;grid-template-columns:1fr 1fr}.flow{grid-template-columns:1fr 1fr}.article-grid{display:block}.article-grid aside{position:static;margin:28px 0}.cards{grid-template-columns:1fr}.mast{padding-top:32px}footer{grid-template-columns:1fr}}@media(max-width:420px){body{font-size:15px}.home,.article{padding:0 16px}.crumb{padding:0 16px}.flow{grid-template-columns:1fr 1fr}.flow li,.card,.action{padding:13px}}

/* LATEST-COMMENTARY:START */
.latest-commentary {
  padding: 3rem 0;
}
/* .container を持たないサイトでも端に張り付かないための保険。
   :where() は詳細度0なので、サイト側の .container 定義が常に優先される。 */
:where(.latest-commentary .container) {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1rem;
}
.latest-commentary h2 {
  margin-bottom: 1.25rem;
}
.latest-commentary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.latest-commentary-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line, #e5e5e5);
}
.latest-commentary-list time {
  flex: 0 0 auto;
  color: #666;
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}
.latest-commentary-list a {
  flex: 1 1 16rem;
  min-width: 0;
  color: var(--ink, #222);
  text-decoration: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.latest-commentary-list a:hover {
  color: var(--accent, #0b5);
  text-decoration: underline;
}
.latest-commentary-more {
  margin-top: 1.25rem;
}
.latest-commentary-more a {
  color: var(--accent, #0b5);
  text-decoration: none;
  font-weight: 600;
}
.latest-commentary-more a:hover {
  text-decoration: underline;
}
@media (max-width: 600px) {
  .latest-commentary-list li {
    flex-direction: column;
    gap: 0.2rem;
  }
  /* 縦積み時に flex-basis(16rem) が高さに効かないよう auto に戻す */
  .latest-commentary-list a,
  .latest-commentary-list time {
    flex: 0 0 auto;
  }
}
/* LATEST-COMMENTARY:END */
/* POLICY-SITES-A8:START */
.a8-disclosure{padding:.7rem 1rem;border:1px solid #c4b38c;background:#fff9eb;font-size:.9rem;color:#423a28}
.a8-ad{margin:1.5rem 0;padding:1.2rem;border:1px solid #c4b38c;border-radius:6px;background:#fff9eb;color:#423a28;min-width:0}
.a8-ad p{margin:.5rem 0}.a8-ad .a8-banner{display:block;width:fit-content;max-width:100%}
.a8-ad img{display:inline-block;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:0}
.a8-ad img[width="300"]{width:300px;height:auto}.a8-ad img[width="1"]{width:1px;height:1px;min-width:0;max-width:1px}
/* POLICY-SITES-A8:END */
/* IMG-ASPECT-GUARD:START */
img{max-width:100%;height:auto}
.hero img,.card img{display:block;width:100%!important;height:auto!important;aspect-ratio:16/9!important;object-fit:cover}
/* IMG-ASPECT-GUARD:END */

/* HEADING-WRAP:START 見出し最終行孤立文字対策 (AGENTS.md NoGo) */
h1,h2,h3,h4,.hero-title,.page-title,.card-title{text-wrap:balance;word-break:auto-phrase;line-break:strict;overflow-wrap:break-word}
/* HEADING-WRAP:END */
