/* 記事・著者ページ専用（column-*.html / staff-*.html だけが読み込む） */
.article-shell{max-width:760px;margin-inline:auto}
.article-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--muted);margin-top:12px}
.article-meta a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.article-body{font-size:16px;line-height:1.95;color:var(--ink)}
.article-body>*+*{margin-top:1.1em}
.article-body h2{font-size:24px;line-height:1.5;margin-top:56px;padding-bottom:10px;border-bottom:2px solid var(--line)}
.article-body h3{font-size:18px;line-height:1.6;margin-top:32px}
.article-body ul,.article-body ol{padding-left:1.4em}
.article-body li+li{margin-top:.4em}
.article-body a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.article-body strong{font-weight:700}
.article-answer{background:var(--soft);border-left:4px solid var(--brand);border-radius:0 var(--radius-card) var(--radius-card) 0;padding:20px 24px}
.article-answer p{margin:0}
.article-toc{border:1px solid var(--line);border-radius:var(--radius-card);padding:18px 24px}
.article-toc b{display:block;font-size:14px;margin-bottom:6px}
.article-toc ol{margin:0;font-size:15px}
.article-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.article-table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px;line-height:1.7}
.article-table th,.article-table td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.article-table thead th{background:var(--soft);font-weight:700;white-space:nowrap}
.article-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.article-note{font-size:13px;line-height:1.8;color:var(--muted)}
.article-timeline{list-style:none;padding:0!important;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.article-timeline li{margin:0!important;background:var(--soft);border-radius:var(--radius-control);padding:12px;text-align:center;font-size:14px;line-height:1.6}
.article-timeline b{display:block;font-size:18px;color:var(--brand)}
.article-voice{border:1px solid var(--line);border-radius:var(--radius-card);padding:20px 24px}
.article-voice-head{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:8px}
.author-box{display:grid;gap:8px;border:1px solid var(--line);border-radius:var(--radius-card);padding:24px;margin-top:56px;background:#fff}
.author-box .author-label{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--brand)}
.author-box .author-name{font-size:18px;font-weight:700}
.author-box .author-name small{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}
.author-box p{font-size:14px;line-height:1.85;margin:0}
.author-box a{font-size:14px;color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.staff-career{list-style:none;padding:0!important;border-left:2px solid var(--line)}
.staff-career li{position:relative;padding:0 0 18px 20px;margin:0!important}
.staff-career li::before{content:"";position:absolute;left:-7px;top:.55em;width:12px;height:12px;border-radius:50%;background:var(--brand)}
.staff-career time{display:block;font-size:13px;font-weight:700;color:var(--muted)}
@media(max-width:599px){
  .article-body{font-size:15px}
  .article-body h2{font-size:20px;margin-top:44px}
  .article-body h3{font-size:17px}
  .article-answer,.article-voice,.author-box{padding:16px 18px}
  .article-timeline{grid-template-columns:repeat(2,1fr)}
}
/* 写真・図 */
.article-figure{margin:28px 0 0}
.article-figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-card)}
.article-figure figcaption{font-size:12px;color:var(--muted);margin-top:6px}
.article-figure-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.article-figure-pair .article-figure{margin-top:0}
.cost-chart{margin:24px 0 0;border:1px solid var(--line);border-radius:var(--radius-card);padding:20px 24px;background:#fff}
.cost-chart-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--muted);margin-bottom:8px}
.cost-chart-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.cost-chart-legend .lg-food::before{background:#d9cfc4}
.cost-chart-legend .lg-total::before{background:var(--brand)}
.cost-row{margin-top:14px}
.cost-label{font-size:14px;font-weight:700;margin:0 0 4px}
.cost-bar{position:relative;height:26px;margin-top:4px;background:transparent}
.cost-bar::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:0 4px 4px 0}
.cost-bar.food::before{background:#d9cfc4}
.cost-bar.total::before{background:var(--brand)}
.cost-bar span{position:relative;display:block;line-height:26px;padding-left:8px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.cost-bar.total span{color:#fff}
.cost-chart figcaption{font-size:12px;color:var(--muted);margin-top:12px}
@media(max-width:599px){
  .article-figure-pair{grid-template-columns:1fr}
  .cost-chart{padding:16px}
  .cost-bar span{font-size:12px}
}
