:root{--accent:#a82725;--ink:#211b18;--paper:#f7f0e6;--surface:#fffaf2;--muted:#65716f;--line:#d8d5cd;--header-height:82px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Noto Sans JP",sans-serif;line-height:1.82}h1,h2,h3,h4{text-wrap:balance;word-break:auto-phrase;line-break:strict;overflow-wrap:break-word}a{color:var(--accent);text-underline-offset:.18em}img{max-width:100%;height:auto}.container{width:min(1160px,calc(100% - 40px));margin-inline:auto}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:1rem;top:1rem;z-index:1000;background:#fff;padding:.7rem}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;flex-direction:column;color:var(--ink);text-decoration:none;min-width:170px}.brand-kicker{font:700 .64rem/1.4 ui-monospace,monospace;letter-spacing:.12em;color:var(--accent)}.brand strong{font-size:1rem}.brand-name-lead,.brand-name-suffix{white-space:nowrap}.title-tail-nowrap{white-space:nowrap}.nav-menu{display:flex;list-style:none;gap:.35rem;margin:0;padding:0;flex-wrap:wrap;justify-content:flex-end}.nav-link{display:block;padding:.55rem .75rem;text-decoration:none;font-size:.86rem;white-space:nowrap}.nav-link:hover,.mobile-nav-link:hover{background:var(--paper)}.mobile-menu-toggle{display:none;border:1px solid var(--line);border-radius:4px;background:#fff;padding:.6rem;cursor:pointer}.mobile-menu-toggle span{display:block;width:23px;height:2px;background:var(--ink);margin:5px}.mobile-nav[hidden]{display:none}.hero{position:relative;min-height:460px;overflow:hidden;background:#202522;color:white;display:flex;align-items:center}.hero-media,.hero-scrim{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover}.hero-scrim{background:linear-gradient(90deg,rgba(12,18,19,.83),rgba(12,18,19,.4) 58%,rgba(12,18,19,.14))}.hero-copy{position:relative;z-index:1;padding-block:4rem}.hero-copy h1{max-width:900px;margin:.4rem 0 1rem;font-weight:700;line-height:1.24;text-wrap:balance;text-shadow:0 3px 10px rgba(0,0,0,.95),0 1px 2px #000}.hero-title-lead,.hero-title-suffix{white-space:nowrap}.article-body h1{text-wrap:balance}.hero-copy p:not(.eyebrow){max-width:760px;text-shadow:0 2px 7px #000;font-size:1.05rem}.eyebrow,.sidebar-kicker{font:700 .75rem ui-monospace,monospace;letter-spacing:.13em;color:#f2d8a0;text-transform:uppercase}.image-credit{position:absolute;right:1rem;bottom:.7rem;z-index:2;font-size:.7rem;color:white;text-shadow:0 1px 5px #000}.overview{padding:4.5rem 0 3rem}.overview-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:3rem;align-items:start}.overview h2,.section-heading h2{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.35;margin:.1rem 0;text-wrap:balance}.overview p{margin:.35rem 0 1rem}.section-label{font:700 .72rem ui-monospace,monospace;letter-spacing:.12em;color:var(--accent)}.latest-commentary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2.2rem 0;background:rgba(255,255,255,.48)}.latest-commentary h2{font-size:1.3rem;margin:0 0 .8rem}.latest-commentary-list{list-style:none;margin:0;padding:0}.latest-commentary-list li{padding:.65rem 0;border-top:1px solid var(--line);display:flex;gap:1rem}.latest-commentary-list time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.reports{padding:4rem 0}.section-heading{margin-bottom:2rem}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.report-card{background:var(--surface);border:1px solid var(--line);padding:1.3rem;border-radius:10px;min-width:0}.report-card h3{font-size:1.05rem;line-height:1.5}.report-card a{text-decoration:none}.report-card p{color:#505b59}.card-number{font:700 .75rem ui-monospace,monospace;color:var(--accent)}.breadcrumb{padding:1.25rem 0;display:flex;gap:.6rem;font-size:.84rem;color:var(--muted)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:2.4rem;align-items:start;padding:1.5rem 0 5rem}.article-body{min-width:0;background:var(--surface);padding:clamp(1.2rem,3vw,3rem);border:1px solid var(--line)}.article-body section{margin:0 0 2.4rem}.article-body h2{font-size:1.65rem;line-height:1.5;margin:0 0 1rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}.article-body h3{font-size:1.15rem}.article-body p{margin:0 0 1rem}.article-lead{font-size:1.1rem;font-weight:600}.article-meta,.table-note,.ai-note{color:var(--muted);font-size:.82rem}.sidebar{position:sticky;top:calc(var(--header-height) + 1rem);display:grid;gap:1rem;max-height:calc(100vh - var(--header-height) - 2rem);overflow:auto}.sidebar-panel{padding:1.1rem;border:1px solid var(--line);background:var(--surface)}.sidebar-ad:not(:has(a,iframe,ins,img,script)){display:none}.sidebar-panel h2{font-size:1rem;margin:.2rem 0 .75rem}.toc-list,.sidebar-panel ul{margin:0;padding-left:1.2rem}.toc-list li,.sidebar-panel li{margin:.4rem 0}.toc-list a{font-size:.87rem;text-decoration:none}.ad-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0}.ad-slot{min-height:50px;overflow:hidden}.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:.88rem;min-width:560px}th,td{padding:.7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{background:var(--paper)}details{border-bottom:1px solid var(--line);padding:.75rem 0}summary{font-weight:700;cursor:pointer}.source-list li{margin:.75rem 0}.site-footer{background:#202b2b;color:#f5f6f2;padding:3rem 0}.footer-inner{display:grid;grid-template-columns:1fr auto;gap:1rem 2rem}.footer-local,.footer-links{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;align-items:center}.site-footer a{color:#f1d9a7}.footer-related,.footer-inner small{grid-column:1/-1}.footer-inner small{border-top:1px solid #56615e;padding-top:1rem}.blog-list{padding:3rem 0 5rem}.blog-card{border-bottom:1px solid var(--line);padding:1.3rem 0}.blog-card time{font-size:.8rem;color:var(--muted)}.blog-card h2{font-size:1.15rem;margin:.35rem 0}.empty-note{padding:2rem;border:1px solid var(--line);background:var(--surface)}.theme-foodways .hero{min-height:520px}.theme-foodways .hero-copy{max-width:760px;margin-right:auto}.theme-foodways .hero h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(2.5rem,6vw,5.4rem);letter-spacing:.02em}.theme-foodways .report-card{border-top:5px solid var(--accent);border-radius:0;background:var(--surface)}.theme-foodways .report-card::before{content:attr(data-number);font-family:Georgia,serif;font-size:2.4rem;color:var(--accent)}.theme-foodways .section-heading{display:flex;align-items:baseline;gap:1.4rem;border-bottom:1px solid #b98c4b}.theme-foodways .article-body h2{font-family:Georgia,"Yu Mincho",serif}.theme-foodways .sidebar-panel{border-top:3px double var(--accent);background:#fffaf2}
@media(max-width:900px){.desktop-nav{display:none}.mobile-menu-toggle{display:block}.mobile-nav{padding:.5rem 20px 1rem;background:#fff;border-top:1px solid var(--line)}.mobile-nav-link{display:block;padding:.8rem 1rem;text-decoration:none;border-bottom:1px solid var(--line);color:var(--ink)}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-urban-ledger .report-card{grid-column:span 6}.article-layout{grid-template-columns:minmax(0,1fr) 230px;gap:1rem}.sidebar{position:static;max-height:none}}
@media(max-width:768px){.article-body{padding-left:16px;padding-right:16px}}
@media(max-width:767px){.container{width:calc(100% - 32px)}.theme-care-retail .hero h1{font-size:1.8rem}.theme-foodways .section-heading{display:block}.hero{min-height:410px}.hero-copy{padding-block:3rem}.hero-copy h1{font-size:2.3rem}.overview-grid{grid-template-columns:1fr;gap:1rem}.article-layout{grid-template-columns:1fr;padding-top:.5rem}.sidebar{grid-template-columns:1fr;order:2}.article-body{padding:1rem}.theme-urban-ledger .report-card{grid-column:span 12;transform:none}.theme-care-retail .report-grid{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.footer-related,.footer-inner small{grid-column:auto}.footer-links{display:grid;grid-template-columns:1fr 1fr}.latest-commentary-list li{display:grid;gap:.2rem}}
@media(max-width:420px){.hero-copy h1{font-size:2rem}.report-grid{grid-template-columns:1fr}.nav-menu{gap:0}.footer-links{grid-template-columns:1fr}}
/* 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: 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 */
