/* Table of contents ("In this content"): sticky beside the article on wide screens, a collapsible box above it elsewhere. */
.olfx-toc-layout { --olfx-toc-accent: var(--wp--preset--color--accent, #2650b8); --olfx-toc-line: var(--wp--preset--color--line, #e2e5e9); --olfx-toc-muted: var(--wp--preset--color--muted, #5d646d); --olfx-toc-ink: var(--wp--preset--color--contrast, #1f2328); }
.inzenzo-article .olfx-toc-layout { max-width: none; }
.olfx-toc-main :is(h2, h3, h4) { scroll-margin-top: 6rem; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.olfx-toc__list { list-style: none; margin: 0; padding: 0; }
.olfx-toc__item { margin: 0; }
.olfx-toc__item a { display: block; text-decoration: none; color: var(--olfx-toc-muted); line-height: 1.35; transition: color .15s ease, border-color .15s ease; }
.olfx-toc__item a:hover { color: var(--olfx-toc-ink); }
.olfx-toc__item a:focus-visible { outline: 2px solid var(--olfx-toc-accent); outline-offset: 2px; border-radius: 6px; }
.olfx-toc__item.is-l3 a { padding-inline-start: 1.7rem !important; font-size: .88rem; }
.olfx-toc__item.is-l4 a { padding-inline-start: 2.4rem !important; font-size: .85rem; }

/* Narrow screens: a bar fixed at the bottom of the screen, above the tab bar. It shows the section being read and opens a list upward. */
.olfx-toc--side { display: none; }
.olfx-toc--bar { position: fixed; z-index: 85; left: .75rem; right: .75rem; bottom: calc(.75rem + env(safe-area-inset-bottom, 0px)); max-width: 40rem; margin-inline: auto; pointer-events: none; opacity: 0; transform: translateY(1rem); transition: opacity .2s ease, transform .2s ease; }
.olfx-toc--bar.is-visible { pointer-events: auto; opacity: 1; transform: none; }
@media (max-width: 899px) { body.olfx-has-tabbar .olfx-toc--bar { bottom: calc(68px + .75rem + env(safe-area-inset-bottom, 0px)); } }
.olfx-toc__bar { position: relative; display: flex; align-items: center; gap: .75rem; width: 100%; min-height: 52px; padding: .45rem 1rem; box-sizing: border-box; border: 1px solid var(--olfx-toc-line); border-radius: 16px; overflow: hidden; background: var(--wp--preset--color--base, #fff); color: var(--olfx-toc-ink); font: inherit; text-align: start; cursor: pointer; box-shadow: 0 6px 22px rgba(0, 0, 0, .14); -webkit-tap-highlight-color: transparent; }
.olfx-toc__bar:focus-visible { outline: 3px solid var(--olfx-toc-accent); outline-offset: 2px; }
.olfx-toc__bar-icon { flex: 0 0 auto; color: var(--olfx-toc-accent); }
.olfx-toc__bar-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.olfx-toc__bar-label { font-size: .72rem; font-weight: 600; letter-spacing: .02em; color: var(--olfx-toc-muted); }
.olfx-toc__bar-current { font-size: .95rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.olfx-toc__bar-current:empty { display: none; }
.olfx-toc__bar-chev { flex: 0 0 auto; color: var(--olfx-toc-muted); transition: transform .2s ease; }
.olfx-toc__bar[aria-expanded="true"] .olfx-toc__bar-chev { transform: rotate(180deg); }
.olfx-toc__bar-progress { position: absolute; left: 0; bottom: 0; height: 3px; width: calc(var(--olfx-toc-progress, 0) * 100%); background: var(--olfx-toc-accent); border-radius: 0 3px 3px 0; transition: width .1s linear; }
.olfx-toc__panel { position: absolute; left: 0; right: 0; bottom: calc(100% + .5rem); max-height: min(60vh, 26rem); overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1.1rem .75rem; box-sizing: border-box; border: 1px solid var(--olfx-toc-line); border-radius: 16px; background: var(--wp--preset--color--base, #fff); box-shadow: 0 10px 34px rgba(0, 0, 0, .2); }
.olfx-toc__panel[hidden] { display: none; }
.olfx-toc__panel .olfx-toc__title { margin: 0 0 .35rem; font-size: .8rem; font-weight: 600; letter-spacing: .02em; color: var(--olfx-toc-muted); }
.olfx-toc__panel .olfx-toc__item a { padding: .6rem 0; font-size: .98rem; border-top: 1px solid var(--olfx-toc-line); }
.olfx-toc__panel .olfx-toc__item:first-child a { border-top: 0; }
.olfx-toc__panel .olfx-toc__item.is-l3 a, .olfx-toc__panel .olfx-toc__item.is-l4 a { font-size: .92rem; }
.olfx-toc__panel .olfx-toc__item a.is-active { color: var(--olfx-toc-accent); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .olfx-toc--bar, .olfx-toc__bar-chev, .olfx-toc__bar-progress { transition: none; } }

/* Wide screens: the article keeps its centred column, the list sits in the free space beside it and follows the reader. */
@media (min-width: 1280px) {
	.olfx-toc-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 50rem) minmax(0, 1fr); align-items: start; }
	.olfx-toc--bar { display: none; }
	.olfx-toc-main { grid-column: 2; grid-row: 1; }
	.olfx-toc--side { display: block; grid-row: 1; position: sticky; top: 6.25rem; align-self: start; max-height: calc(100vh - 8rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
	.olfx-toc-layout--right .olfx-toc--side { grid-column: 3; padding-inline-start: 2.25rem; }
	.olfx-toc-layout--left .olfx-toc--side { grid-column: 1; padding-inline-end: 2.25rem; }
	.olfx-toc__title { margin: 0 0 .75rem; font-size: .8rem; font-weight: 600; letter-spacing: .02em; color: var(--olfx-toc-muted); }
	.olfx-toc--side .olfx-toc__list { border-inline-start: 2px solid var(--olfx-toc-line); }
	.olfx-toc--side .olfx-toc__item a { position: relative; padding: .35rem .25rem .35rem 1rem; font-size: .92rem; }
	.olfx-toc--side .olfx-toc__item a::before { content: ""; position: absolute; inset-block: .2rem; inset-inline-start: -2px; width: 2px; background: transparent; border-radius: 2px; transition: background-color .2s ease; }
	.olfx-toc--side .olfx-toc__item a.is-active { color: var(--olfx-toc-ink); font-weight: 600; }
	.olfx-toc--side .olfx-toc__item a.is-active::before { background: var(--olfx-toc-accent); }
	.olfx-toc-layout--left .olfx-toc--side .olfx-toc__list { border-inline-start: 0; border-inline-end: 2px solid var(--olfx-toc-line); }
	.olfx-toc-layout--left .olfx-toc--side .olfx-toc__item a { padding: .35rem 1rem .35rem .25rem; text-align: end; }
	.olfx-toc-layout--left .olfx-toc--side .olfx-toc__item a::before { inset-inline-start: auto; inset-inline-end: -2px; }
	.olfx-toc-layout--left .olfx-toc__title { text-align: end; }
	.olfx-toc-layout--left .olfx-toc__item.is-l3 a, .olfx-toc-layout--left .olfx-toc__item.is-l4 a { padding-inline-start: .25rem !important; padding-inline-end: 1.7rem; }
}
@media print { .olfx-toc { display: none !important; } }
