/* 本文用CSSの余白・リスト指定から独立させる。色だけ共通tokenで上書き可能。 */
[data-article-root] .article-toc { --article-toc-accent: #315ee7; font-size: 14px; line-height: 1.7; }
[data-article-root] .article-toc--desktop { align-self: start; padding-top: 24px; position: sticky; top: 110px; }
[data-article-root] .article-toc--desktop > p { font-weight: 600; margin: 0 0 16px; padding-left: 20px; }
[data-article-root] .article-toc--desktop ol { border-left: 1px solid #ddd; list-style: none; margin: 0; padding: 0; }
[data-article-root] .article-toc--desktop li { margin: 0; }
[data-article-root] .article-toc a { color: #777; display: block; text-decoration: none; transition: color .3s, border-color .3s; }
[data-article-root] .article-toc--desktop a { border-left: 2px solid transparent; margin-left: -1px; padding: 10px 18px; }
[data-article-root] .article-toc a:is(:hover, :focus-visible, [aria-current="location"]) { color: var(--article-toc-accent); }
[data-article-root] .article-toc--desktop a[aria-current="location"] { border-left-color: var(--article-toc-accent); }
[data-article-root] .article-toc a:focus-visible, [data-article-root] .article-toc summary:focus-visible { outline: 3px solid #315ee755; outline-offset: 4px; }
[data-article-root] .article-toc--mobile { display: none; }
@media (max-width: 800px) {
  [data-article-root] .article-toc--desktop { display: none; }
  [data-article-root] .article-toc--mobile { background: #f7f7f7; border-radius: 6px; display: block; margin-bottom: 36px; padding: 16px 20px; }
  [data-article-root] .article-toc--mobile summary { cursor: pointer; font-size: 15px; font-weight: 600; }
  [data-article-root] .article-toc--mobile ol { font-size: 14px; line-height: 1.7; margin: 16px 0 0; padding-left: 1.4em; }
  [data-article-root] .article-toc--mobile li { margin: 0; }
  [data-article-root] .article-toc--mobile a { color: #555; padding-block: 4px; }
  [data-article-root] .article-toc--mobile a:is(:hover, :focus-visible, [aria-current="location"]) { color: var(--article-toc-accent); }
}
@media (max-width: 639px) {
  [data-article-root] .article-toc--mobile { padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-article-root] .article-toc a { transition: none; }
}
