:root{--ink:#171311;--paper:#fbf7f0;--white:#fffdfa;--cognac:#9b512b;--gold:#c69b62;--muted:#6d625b;--line:#ded4c8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",sans-serif;line-height:1.9;overflow-x:hidden}img{max-width:100%;height:auto}a{color:inherit}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,253,250,.97);border-bottom:1px solid var(--line)}.header-top{max-width:1200px;min-height:68px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;letter-spacing:.08em}.brand span{color:var(--cognac)}.global-nav{border-top:1px solid var(--line)}.global-nav ul{display:flex;justify-content:center;list-style:none;margin:0;padding:0 16px}.global-nav a{display:block;padding:10px 13px;text-decoration:none;font-size:13px}.global-nav a:hover,.global-nav a:focus{background:#f3e8dc;color:var(--cognac)}.menu-toggle{display:none;background:none;border:1px solid var(--line);width:42px;height:38px;padding:8px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:5px}.hero{height:430px;position:relative;display:grid;place-items:center;overflow:hidden;background:#211814}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,13,10,.86),rgba(20,13,10,.42))}.hero-copy{position:relative;z-index:1;width:min(1100px,90%);color:#fff}.hero-copy p{font-family:serif;letter-spacing:.22em;color:#e4bd86}.hero-copy h1{max-width:880px;margin:.25em 0;font-family:serif;font-size:clamp(30px,5vw,58px);line-height:1.35;letter-spacing:.04em}.hero-copy span{font-size:16px}.content-layout{max-width:1180px;margin:0 auto;padding:64px 24px 80px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:54px}.main-content{min-width:0}.main-content .lead{font-size:18px;border-left:4px solid var(--cognac);padding:10px 0 10px 24px;margin:0 0 44px}.main-content section{margin:0 0 46px}.main-content h2{font-family:serif;font-size:27px;line-height:1.5;border-bottom:1px solid var(--line);padding-bottom:10px}.main-content p{font-size:16px}.action-box{background:#eee3d5;padding:24px 30px}.action-box h2{margin-top:0}.sidebar>section,.side-nav{background:var(--white);border-top:3px solid var(--cognac);padding:20px;margin-bottom:26px}.sidebar h2{font-size:17px;margin:0 0 12px}.sidebar ul{margin:0;padding-left:20px}.sidebar a{overflow-wrap:anywhere}.advertisement span{font-size:10px;letter-spacing:.18em;color:var(--muted)}.advertisement>a,.read-more{display:inline-block;color:var(--cognac);font-weight:bold}.article-card{background:var(--white);border-left:3px solid var(--gold);padding:22px 26px;margin:0 0 22px}.article-card h2{border:0;margin:.2em 0;font-size:22px}.article-card h2 a{text-decoration:none}.article-card time,.article-card span,.article-meta{color:var(--muted);font-size:13px}.site-footer{background:#1d1815;color:#eee5dc;padding:45px 24px 20px}.footer-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.footer-grid h2{color:#d5ad79;font-size:15px}.footer-grid a{display:block;margin:6px 0;color:#eee5dc}.copyright{max-width:1100px;margin:35px auto 0;border-top:1px solid #4b4039;padding-top:18px;font-size:12px}.blog-article section p{max-width:46em}
@media(max-width:760px){.header-top{min-height:60px;padding:0 16px}.brand strong{font-size:12px}.menu-toggle{display:block}.global-nav{display:none}.global-nav.is-open{display:block}.global-nav ul{display:block;padding:5px 16px}.global-nav a{padding:9px}.hero{height:390px}.hero-copy{width:88%}.hero-copy h1{font-size:30px}.hero-copy span{font-size:14px}.content-layout{display:block;padding:38px 18px 55px}.main-content .lead{font-size:16px;padding-left:16px}.main-content h2{font-size:23px}.main-content p{font-size:15px}.sidebar{margin-top:44px}.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.footer-grid h2{font-size:13px}.footer-grid a{font-size:12px;overflow-wrap:anywhere}.action-box{padding:20px}}

/* OVERHAUL 2026-09 */
.main-content h3{font-size:19px;line-height:1.5;margin:26px 0 10px;padding-left:12px;border-left:3px solid var(--gold)}
.toc{background:var(--white);border:1px solid var(--line);padding:18px 24px;margin:0 0 40px}
.toc h2{font-size:16px;border:0;margin:0 0 8px;padding:0}
.toc ol{margin:0;padding-left:1.4em;font-size:14px}
.toc a{text-decoration:none}
.toc a:hover{color:var(--cognac);text-decoration:underline}
.footer-links{max-width:1100px;margin:30px auto 0;display:flex;flex-wrap:wrap;gap:1rem;font-size:13px}
.footer-links a{color:#eee5dc}
@media(max-width:760px){.main-content h3{font-size:17px}.footer-links{gap:.6rem 1rem;font-size:12px}}
/* 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: var(--muted, #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 */
