/* Explicit article opt-in only. The existing homepage rails own width and gutters;
   contents + article live inside them, without another inset frame. */
.f27-toc-layout { color:var(--f27-ink,#292c2b); font-family:"DM Sans",sans-serif; min-width:0; position:relative; }
.f27-toc { display:none; padding:28px var(--f27-inner,1.05rem); margin:0; }
.f27-toc nav { border-block:1px solid var(--f27-line,#deded7); padding-block:20px; }
.f27-toc__label { margin:0 0 12px!important; font-size:12px!important; line-height:1.5!important; font-weight:500; letter-spacing:.07em; text-transform:uppercase; color:var(--f27-muted,#636966); }
.f27-toc__list { display:flex; flex-wrap:wrap; gap:0 24px; margin:0; padding:0; list-style:none; }
.f27-toc__list li { margin:0; padding:0; }
.f27-toc__link { display:flex; align-items:center; min-height:44px; padding:8px 0; color:inherit; font-size:13px; line-height:1.5; text-decoration:none; }
.f27-toc__link:hover { text-decoration:none; }
.f27-toc__link[aria-current="location"] { color:var(--f27-accent-text,#084834); text-decoration:none; }
.f27-toc__link:focus-visible { outline:2px solid var(--f27-focus,#438260); outline-offset:4px; border-radius:2px; }
.f27-toc-article { min-width:0; }
.f27-toc__row { display:flex; align-items:stretch; }
.f27-toc__row > a { flex:1; min-width:0; }
.f27-toc__expand { flex:0 0 32px; align-self:start; min-height:44px; display:grid; place-items:center; padding:6px; border:0; background:transparent; color:inherit; cursor:pointer; }
.f27-toc__expand svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; }
.f27-toc__expand[aria-expanded="true"] svg { transform:rotate(180deg); }
.f27-toc__expand:focus-visible { outline:2px solid var(--f27-focus,#438260); outline-offset:-2px; }
.f27-toc__children { list-style:none; padding:0 0 8px 12px; margin:0; }
.f27-toc__children[hidden] { display:none; }
.f27-toc__children .f27-toc__link { font-size:12px; }
[data-toc-current-group] > .f27-toc__row { color:var(--f27-accent-text,#084834); }
.f27-toc-article :is(section,article)[id] { scroll-margin-top:calc(var(--f27-nav-height,4.5rem) + 24px); }
/* A nested article separator must not overshoot into the sidebar or outer gutter. */
.f27-toc-layout .f27-toc-article > section::after { left:0; width:100%; transform:none; }
@media (min-width:960px) {
 .f27-toc-layout { display:grid; grid-template-columns:clamp(180px,17.2vw,220px) minmax(0,1fr); align-items:start; }
 .f27-toc { display:block; position:sticky; top:calc(var(--f27-nav-height,4.5rem) + 24px); width:100%; max-height:calc(100dvh - var(--f27-nav-height,4.5rem) - 48px); overflow:auto; overscroll-behavior:contain; padding-block:40px; }
 .f27-toc-article { border-left:1px solid var(--f27-line,#deded7); }
 .f27-toc__list { display:block; }
 .f27-toc__link { border-left:1px solid var(--f27-line,#deded7); padding:10px 12px; }
 .f27-toc__link[aria-current="location"] { border-left:2px solid currentColor; padding-left:11px; }
}
@media (prefers-reduced-motion:reduce) { .f27-toc-layout { scroll-behavior:auto; } }

/* Close the complete contents/article region across its viewport-sized frame. */
.f27-toc-layout::after { content:""; position:absolute; left:50%; bottom:0; width:100cqw; height:1px; transform:translateX(-50%); background:var(--f27-line,#deded7); pointer-events:none; z-index:1; }
