/* Gemeinsame Inhaltsnavigation — sticky rail, mobile select, scroll offset */
:root{
  --header-h:72px;
  --toc-gap:16px;
  --toc-top:calc(var(--header-h) + var(--toc-gap));
}

main:has([data-page-toc-rail]),
main:has([data-page-toc-bar]){
  overflow:visible;
}

.page-toc-target{
  scroll-margin-top:var(--toc-top);
}

.page-toc-bar{
  border-bottom:1px solid var(--line,rgba(17,17,17,.16));
  background:rgba(250,249,246,.96);
  position:sticky;top:var(--header-h);z-index:20;
}
.page-toc-bar-inner{padding:10px var(--pad-x,clamp(28px,4vw,64px))}
.page-toc-select{
  width:100%;max-width:22rem;min-height:44px;font:inherit;font-size:.78rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  border:1px solid var(--line,rgba(17,17,17,.16));background:#fff;padding:0 12px;color:inherit;
}

.page-toc-rail{display:none}

@media(min-width:1080px){
  .page-toc-bar{display:none!important}
  .page-toc-rail{
    display:block;
    position:sticky;
    top:var(--toc-top);
    align-self:start;
    z-index:2;
    border-right:1px solid var(--line,rgba(17,17,17,.16));
    padding:clamp(48px,6vw,88px) clamp(18px,2vw,28px) clamp(40px,5vw,72px) var(--pad-x,clamp(28px,4vw,64px));
    background:var(--paper,#faf9f6);
    max-height:calc(100vh - var(--toc-top));
    overflow-x:hidden;
    overflow-y:auto;
  }
}

.page-toc-kicker{
  margin:0 0 14px;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
}
.page-toc-list,
.page-toc-extras{
  list-style:none;margin:0;padding:0;display:grid;gap:2px 0;
}
.page-toc-list a,
.page-toc-extras a{
  display:grid;grid-template-columns:minmax(0,1fr);gap:10px;
  align-items:baseline;min-height:32px;padding:4px 0;
  font-size:.78rem;line-height:1.35;color:var(--muted,#5e5b54);text-decoration:none;
}
.page-toc-list a.page-toc-link--num{
  grid-template-columns:2.2ch minmax(0,1fr);
}
.page-toc-num{font-weight:700;letter-spacing:.04em}
.page-toc-label{overflow-wrap:break-word}
.page-toc-list a.is-active,
.page-toc-list a:hover,
.page-toc-extras a.is-active,
.page-toc-extras a:hover,
.page-toc-up:hover{
  color:var(--ink,#111);
}
.page-toc-list a.is-active .page-toc-label,
.page-toc-extras a.is-active .page-toc-label{
  text-decoration:underline;text-underline-offset:5px;font-weight:700;
}
.page-toc-list a:focus-visible,
.page-toc-extras a:focus-visible,
.page-toc-up:focus-visible,
.page-toc-more-link:focus-visible{
  outline:2px solid var(--ink,#111);outline-offset:3px;
}

.page-toc-extras{
  margin-top:16px;padding-top:16px;border-top:1px solid var(--line,rgba(17,17,17,.16));
}
.page-toc-extras a{
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}

.page-toc-up-wrap{margin:18px 0 0}
.page-toc-up{
  display:inline-flex;align-items:center;min-height:32px;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:var(--muted,#5e5b54);text-decoration:none;
}

.page-toc-more{
  margin-top:clamp(36px,5vw,56px);padding-top:24px;
  border-top:1px solid var(--line,rgba(17,17,17,.16));
}
.page-toc-more-link{
  display:inline-flex;align-items:center;min-height:40px;
  font-size:.82rem;font-weight:700;letter-spacing:-.01em;text-decoration:none;color:inherit;
}
.page-toc-more-link:hover{text-decoration:underline;text-underline-offset:4px}
.page-toc-more-path{margin:4px 0 0;font-size:.72rem;color:var(--muted,#5e5b54);letter-spacing:.04em}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
