/* Article-only presentation; header, footer, category and homepage stay independent. */
.single-view { --fb-article-shell: 1080px; padding-block: var(--fb-space-7) 0; }
.single-view > .site-shell { width: min(calc(100% - 2 * var(--fb-gutter)), var(--fb-article-shell)); }
.single-article { max-width: none; }
.single-article .article__header { max-width: 1000px; margin: 0 auto var(--fb-space-6); }
.article__category { color: var(--fb-accent-text); font: 600 .75rem/1.4 var(--fb-sans); letter-spacing: .07em; text-transform: uppercase; }
.single-article .article__header h1 { margin: var(--fb-space-4) 0 var(--fb-space-5); font: 400 clamp(2rem, 3.6vw, 3.25rem)/1.08 var(--fb-serif); letter-spacing: -.015em; overflow-wrap: anywhere; text-wrap: balance; }
.article__deck { max-width: 72ch; margin: 0 0 var(--fb-space-5); color: var(--fb-muted); font: 400 clamp(1.125rem, 1.5vw, 1.25rem)/1.6 var(--fb-sans); }
.article__meta, .single-related .editorial-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: var(--fb-space-4) 0 0; color: var(--fb-muted); font: 400 var(--fb-meta-size)/1.5 var(--fb-sans); text-transform: uppercase; letter-spacing: .035em; }
.article__meta > span, .single-related .editorial-meta > span { min-width: 0; overflow-wrap: anywhere; }
.single-view .meta-separator { flex: 0 0 3px; width: 3px; height: 3px; margin-inline: 2px; background: var(--fb-accent); border-radius: 50%; }
.article-share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: var(--fb-space-5); font: 400 .8125rem/1.5 var(--fb-sans); }
.article-share > span:first-child { color: var(--fb-muted); }
.article-share a, .article-share button { padding: 4px 0; border: 0; border-bottom: 2px solid var(--fb-accent); border-radius: 0; background: transparent; color: var(--fb-accent-text); font: inherit; cursor: pointer; }
.article-share__url { width: min(100%, 420px); max-width: 100%; border: 1px solid var(--fb-line); padding: 8px; background: var(--fb-white); color: var(--fb-ink); font: inherit; }
.article-share noscript { flex-basis: 100%; min-width: 0; max-width: 100%; }
.article-share__status { color: var(--fb-muted); }
.article-share [hidden] { display: none; }
.single-article .article__hero { margin: 0 0 var(--fb-space-7); aspect-ratio: 16 / 9; background: var(--fb-soft); }
.single-article .article__hero img { width: 100%; height: 100%; object-fit: contain; }
.article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--fb-space-8); width: min(100%, 1044px); margin-inline: auto; align-items: start; }
.article__layout--no-toc { grid-template-columns: minmax(0, 720px); justify-content: center; }
.article__main { min-width: 0; grid-column: 1; grid-row: 1; }
.article-toc { position: sticky; top: var(--fb-sticky-top); grid-column: 2; grid-row: 1; min-width: 0; max-height: calc(100dvh - var(--fb-sticky-top) - 24px); overflow-y: auto; }
.admin-bar .article-toc { top: calc(var(--fb-sticky-top) + 32px); max-height: calc(100dvh - var(--fb-sticky-top) - 56px); }
.article-toc h2 { margin: 0 0 var(--fb-space-4); padding-bottom: var(--fb-space-3); border-bottom: 1px solid var(--fb-line); font: 400 1.25rem/1.2 var(--fb-serif); }
.article-toc ol { display: grid; gap: var(--fb-space-3); margin: 0; padding: 0; list-style: none; }
.article-toc a { display: block; padding-left: var(--fb-space-3); border-left: 2px solid var(--fb-line); color: var(--fb-muted); font: 400 .875rem/1.5 var(--fb-sans); overflow-wrap: anywhere; }
.article-toc a:hover, .article-toc a:focus-visible { border-color: var(--fb-accent); color: var(--fb-accent-text); text-decoration: underline; text-decoration-color: var(--fb-accent); text-underline-offset: 3px; }
.article-toc a.is-active { border-color: var(--fb-accent); color: var(--fb-accent-text); }
.single-article .article__content { color: var(--fb-ink); font: 400 1.125rem/1.75 var(--fb-sans); overflow-wrap: anywhere; }
.article__content > :first-child { margin-top: 0; }
.article__content p { font-weight: 400; margin-block: 0 20px; }
.article__content strong, .article__content b { font-weight: 700; }
.article__content h2, .article__content h3, .article__content h4 { scroll-margin-top: calc(var(--fb-sticky-top) + 24px); font-family: var(--fb-serif); font-weight: 400; line-height: 1.2; }
.admin-bar .article__content [id] { scroll-margin-top: calc(var(--fb-sticky-top) + 56px); }
.article__content h2 { margin: 48px 0 20px; font-size: clamp(1.625rem, 2.3vw, 2rem); }
.article__content h2:target { text-decoration: underline; text-decoration-color: var(--fb-accent); text-underline-offset: 6px; }
.article__content h3 { margin: 1.6em 0 .6em; font-size: clamp(1.375rem, 1.8vw, 1.625rem); }
.article__content h4 { margin: 1.4em 0 .6em; font-size: 1.25rem; }
.article__content a, .article-author__bio a { color: var(--fb-accent-text); text-decoration: underline; text-decoration-color: var(--fb-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.article__content a:hover, .article-author__bio a:hover { text-decoration-color: var(--fb-accent-text); }
.article__content ul, .article__content ol { margin: 0 0 1.4em; padding-left: 1.6em; }
.article__content li { margin-block: .4em; padding-left: .2em; }
.article__content ol > li::marker { color: var(--fb-accent-text); font-weight: 700; }
.article__content blockquote { margin: 1.5em 0; padding: var(--fb-space-4) var(--fb-space-5); border-left: 3px solid var(--fb-accent); background: var(--fb-soft); font-size: 1.1875rem; }
.article__content blockquote p:last-child { margin-bottom: 0; }
.article__content .wp-block-group.is-style-note, .article__content .wp-block-group.is-style-tip,
.article__content .wp-block-group.is-style-warning, .article__content .wp-block-group.is-style-important { padding: var(--fb-space-5); border-left: 3px solid var(--fb-accent-text); background: var(--fb-soft); margin-block: 1.5em; }
.article__content .article-table-scroll { min-width: 0; max-width: 100%; overflow-x: auto; margin-block: 1.5em; }
.article__content table { display: table; width: 100%; border-collapse: collapse; border: 1px solid var(--fb-line); margin: 0; font-size: .9375rem; line-height: 1.5; }
.article__content th, .article__content td { min-width: 10ch; padding: 12px 16px; border: 1px solid var(--fb-line); text-align: start; vertical-align: top; }
.article__content th { background: var(--fb-soft); font-weight: 600; border-bottom: 2px solid var(--fb-accent); }
.article__content .wp-block-table { max-width: 100%; margin-block: 1.5em; }
.article__content .wp-block-table .article-table-scroll { margin: 0; }
.article__content .wp-block-table table { display: table; width: 100%; min-width: 560px; margin: 0; }
.article__content pre { max-width: 100%; padding: var(--fb-space-5); overflow-x: auto; background: var(--fb-soft); border: 1px solid var(--fb-line); font-size: .875rem; line-height: 1.6; }
.article__content code { font-size: .9em; }
.article__content img { max-width: 100%; height: auto; }
.article__content figure { max-width: 100%; margin: 1.6em 0; }
.article__content figcaption { margin-top: var(--fb-space-2); color: var(--fb-muted); font: 400 .8125rem/1.5 var(--fb-sans); }
.article__content .alignwide, .article__content .alignfull { width: 100%; max-width: 100%; margin-inline: 0; }
.article__content iframe, .article__content video { max-width: 100%; }
.article__content hr { margin-block: var(--fb-space-7); border: 0; border-top: 1px solid var(--fb-line); }
.article-author { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--fb-space-5); margin-top: var(--fb-space-7); padding-block: var(--fb-space-5); border-block: 1px solid var(--fb-line); align-items: start; }
.article-author--no-avatar { grid-template-columns: minmax(0, 1fr); }
.article-author__avatar img { width: 64px; height: 64px; border-radius: 50%; }
.article-author--publication:not(.article-author--no-avatar) { grid-template-columns: 128px minmax(0, 1fr); }
.article-author--publication .article-author__avatar img { width: 128px; height: auto; border-radius: 0; object-fit: contain; }
.article-author__link { display: inline-block; margin-top: var(--fb-space-3); color: var(--fb-accent-text); font: 400 .875rem/1.5 var(--fb-sans); text-decoration: underline; text-decoration-color: var(--fb-accent); text-underline-offset: 3px; }
.article-author__link:hover { text-decoration-color: currentColor; }
.article-author h2 { margin: 0 0 var(--fb-space-2); font: 400 1.25rem/1.2 var(--fb-serif); }
.article-author__bio { color: var(--fb-muted); font: 400 .9375rem/1.6 var(--fb-sans); overflow-wrap: anywhere; }
.article-author__bio p { margin: 0 0 .75em; }
.article-author__bio p:last-child { margin-bottom: 0; }
.single-related { margin-top: var(--fb-space-8); padding-top: var(--fb-space-6); border-top: 1px solid var(--fb-line); }
.single-related > h2 { margin: 0 0 var(--fb-space-6); font: 400 var(--fb-type-section)/1.12 var(--fb-serif); }
.single-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fb-space-6); }
.single-related .editorial-standard { min-width: 0; display: flex; flex-direction: column; }
.single-related .editorial-standard__image { display: block; flex-shrink: 0; aspect-ratio: 3 / 2; margin-bottom: var(--fb-space-4); overflow: hidden; background: var(--fb-soft); }
.single-related .editorial-standard .editorial-meta { margin-top: auto; padding-top: var(--fb-space-4); }
.single-related .editorial-standard__image img { width: 100%; height: 100%; object-fit: cover; }
.single-related .editorial-category { color: var(--fb-accent-text); font: 600 var(--fb-label-size)/1.4 var(--fb-sans); letter-spacing: .05em; text-transform: uppercase; }
.single-related .editorial-title { margin: 8px 0 0; font: 400 var(--fb-type-standard)/1.16 var(--fb-serif); overflow-wrap: anywhere; }
.single-post-navigation { margin-top: var(--fb-space-7); }
.single-post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fb-space-6); border-block: 1px solid var(--fb-line); padding-block: var(--fb-space-5); }
.single-post-navigation .nav-next { grid-column: 2; text-align: right; }
.single-post-navigation a { display: block; }
.post-navigation__label { display: block; color: var(--fb-accent-text); font: 600 .6875rem/1.5 var(--fb-sans); text-transform: uppercase; letter-spacing: .07em; }
.post-navigation__title { display: inline-block; margin-top: var(--fb-space-2); font: 400 1.125rem/1.25 var(--fb-serif); overflow-wrap: anywhere; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.single-post-navigation a:hover .post-navigation__title, .single-post-navigation a:focus-visible .post-navigation__title { text-decoration-color: var(--fb-accent); }
@media (max-width: 1100px) {
  .article__layout { grid-template-columns: minmax(0, 720px); justify-content: center; gap: var(--fb-space-6); }
  .article-toc, .admin-bar .article-toc { position: static; grid-column: 1; grid-row: 1; max-height: 320px; overflow-y: auto; padding-block: var(--fb-space-4); border-block: 1px solid var(--fb-line); }
  .article-toc + .article__main { grid-row: 2; }
}
@media (max-width: 760px) {
  .single-view { padding-top: var(--fb-space-6); }
  .single-article .article__content { font-size: 1.0625rem; }
  .single-related__grid { grid-template-columns: minmax(0, 1fr); }
  .single-post-navigation .nav-links { grid-template-columns: minmax(0, 1fr); }
  .single-post-navigation .nav-next { grid-column: 1; text-align: left; }
  .article-author--publication:not(.article-author--no-avatar) { grid-template-columns: minmax(0, 1fr); }
}
