@import url('');:root{--paper:#f6f3ea;--ink:#20334a;--teal:#286b70;--brass:#9b763c;--line:#d7d1c3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.8 system-ui,-apple-system,"Noto Sans JP",sans-serif}h1,h2,h3{font-family:"Yu Mincho",serif;line-height:1.45}h1{font-size:clamp(2rem,5vw,3.5rem);margin:.35em 0}h2{font-size:1.65rem;border-bottom:1px solid var(--brass);padding-bottom:.35em}a{color:#175d64;text-underline-offset:.2em}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1rem max(calc((100vw - 1160px)/2),5vw);border-bottom:1px solid var(--line);background:#fbf9f3}.brand{font:700 1.25rem/1.3 "Yu Mincho",serif;text-decoration:none;color:var(--ink)}.brand small{display:block;font:12px system-ui;color:#596879}.site-header nav{display:flex;gap:1.2rem}.site-header nav a{font-size:.94rem}.menu-button{display:none}main{max-width:1160px;margin:auto;padding:2rem 24px 5rem}footer{border-top:1px solid var(--line);padding:2rem max(calc((100vw - 1160px)/2),5vw);font-size:.9rem}.hero{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;padding:2rem 0 3rem}.hero figure,figure{margin:1rem 0}.hero img,.article figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:8px}.hero figcaption,figcaption{font-size:.82rem;color:#65717a}.button{display:inline-block;background:var(--teal);color:white;padding:.7rem 1rem;border-radius:4px;text-decoration:none}.notice,.eyebrow{font-size:.88rem;color:#52616b}.cluster-grid,.grid,.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.cluster-grid a,.card,.blog-card{border:1px solid var(--line);border-radius:8px;padding:1rem;background:#fbf9f3;text-decoration:none;color:var(--ink)}.cluster-grid a{display:flex;gap:1rem}.cluster-grid b{color:var(--brass)}.card,.blog-card{display:block}.card h2{font-size:1.2rem;border:0;margin:.3rem 0}.card span{color:var(--teal);font-size:.8rem}.card p{margin:.3rem 0}.article{max-width:780px;margin:auto}.article h1{font-size:clamp(2rem,4vw,3rem)}.lede{font-size:1.14rem;color:#3e5263}.article section{margin:2.6rem 0}.toc{background:#eeeadf;border-left:4px solid var(--brass);padding:1rem 1.4rem;margin:1.8rem 0}.toc ol{margin:.5rem 0}.table-scroll{overflow-x:auto;margin:1rem 0;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:520px;background:#fbf9f3}th,td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:#eae5d8}.sources,.date-note{font-size:.92rem;background:#eeeadf;padding:1rem}.pills{display:flex;gap:.5rem;flex-wrap:wrap}.pill{padding:.5rem .8rem;border:1px solid var(--teal);border-radius:2rem}.crumb{font-size:.85rem;color:#62717b}.news-source-ref{padding:.8rem;background:#eeeadf}.article .sources li{margin:.3rem 0}section{scroll-margin-top:1rem}@media(max-width:760px){body{font-size:16px}.site-header{padding:1rem 16px;position:relative}.menu-button{display:block;border:1px solid var(--teal);background:transparent;color:var(--ink);padding:.5rem .7rem}.site-header nav[hidden]{display:none}.site-header nav:not([hidden]){display:flex;position:absolute;z-index:5;top:100%;left:0;right:0;background:#fbf9f3;padding:1rem;flex-direction:column;border-bottom:1px solid var(--line)}main{padding:1.2rem 16px 3rem}.hero{grid-template-columns:1fr;padding-top:.5rem}.cluster-grid,.grid,.blog-grid{grid-template-columns:1fr}.hero figure{order:-1}.article{width:100%}footer{padding:1.5rem 16px}.table-scroll{max-width:calc(100vw - 32px)}}

/* 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: #0b5;
  text-decoration: underline;
}
.latest-commentary-more {
  margin-top: 1.25rem;
}
.latest-commentary-more a {
  color: #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 */

.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.blog-card{min-width:0}.blog-card>a{display:block;color:inherit;text-decoration:none}.blog-card img{display:block;max-width:100%;width:100%;height:auto;border-radius:5px}.blog-card h3{font-size:1.2rem}@media(max-width:760px){.blog-grid{grid-template-columns:1fr}}
/* 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 */

/* 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 */
