/* Core posts only. The glossary deliberately keeps its shared base stylesheet. */
[data-fw-single="post"] {
    --fw-article-anchor-offset: 9rem;
    --fw-single-rose: #8d4854;
}

[data-fw-single="post"] a {
    text-decoration: underline;
    text-underline-offset: 0.2em;
    text-decoration-thickness: 1px;
}

[data-fw-single="post"] a:hover { text-decoration-thickness: 2px; }
[data-fw-single="post"] .fw-single-eyebrow a { color: inherit; }
[data-fw-single="post"] h1 { overflow-wrap: anywhere; }

.fw-article-byline {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-top: 1.75rem;
    font-size: 0.875rem;
    color: var(--fw-single-muted);
}

.fw-article-byline a { color: var(--fw-single-plum); font-weight: 600; }
[data-fw-single="post"] .fw-single-article__meta { margin-top: 1.1rem !important; }
.fw-article-avatar { border-radius: 50%; flex-shrink: 0; object-fit: cover; }
.fw-article-byline .fw-article-avatar { width: 48px; height: 48px; }

[data-fw-single="post"] .fw-single-article__layout { padding-block: clamp(2rem, 5vw, 4rem); }
.fw-article-reading-column { min-width: 0; }
[data-fw-single="post"] .fw-single-article__content { max-width: 70ch; overflow-wrap: anywhere; }
[data-fw-single="post"] .fw-single-article__content :is(h2, h3, h4, [id]) { scroll-margin-top: var(--fw-article-anchor-offset); }
[data-fw-single="post"] .fw-single-article__content :is(p, ul, ol, blockquote, figure, pre, .wp-block-embed) + * { margin-top: 1.5rem; }
[data-fw-single="post"] .fw-single-article__content li + li { margin-top: 0.5rem; }
[data-fw-single="post"] .fw-single-article__content :is(iframe, video, svg) { max-width: 100%; }
[data-fw-single="post"] .fw-single-article__content :is(pre, .wp-block-code) { max-width: 100%; overflow-x: auto; }
[data-fw-single="post"] .fw-single-article__content :is(figcaption, .wp-caption-text) { margin-top: 0.75rem; color: var(--fw-single-muted); font-size: 0.85rem; line-height: 1.6; }
[data-fw-single="post"] .fw-single-article__content .wp-caption { max-width: 100%; }

.fw-article-toc {
    align-self: start;
    min-width: 0;
    border: 1px solid var(--fw-single-border);
    border-radius: 1rem;
    background: var(--fw-single-card);
    padding: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.55;
}

.fw-article-toc summary { display: flex; justify-content: space-between; gap: 1rem; color: var(--fw-single-plum); font-weight: 650; cursor: pointer; padding-block: 0.25rem; list-style: none; }
.fw-article-toc summary::-webkit-details-marker { display: none; }
.fw-article-toc summary::after { content: "+"; }
.fw-article-toc details[open] > summary::after { content: "−"; }
.fw-article-toc ol { list-style: none; padding: 0; margin: 0.75rem 0 0; }
.fw-article-toc li { margin: 0; }
.fw-article-toc li > ol { margin: 0 0 0.35rem 0.7rem; padding-left: 0.65rem; border-left: 1px solid var(--fw-single-border); }
.fw-article-toc a { display: block; padding: 0.45rem 0.5rem; border-radius: 0.3rem; overflow-wrap: anywhere; color: var(--fw-single-muted); }
.fw-article-toc a[aria-current="location"] { background: var(--fw-single-surface); color: var(--fw-single-plum); font-weight: 700; text-decoration-thickness: 2px; }

.fw-article-table-scroll {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid var(--fw-single-border);
    border-radius: 0.5rem;
    background: var(--fw-single-card);
    margin-block: 1.5rem;
}

[data-fw-single="post"] .fw-article-table-scroll table { display: table; width: 100%; margin: 0; overflow: visible; font-size: 0.9375rem; }
[data-fw-single="post"] .fw-article-table-scroll :is(th, td) { min-width: 8rem; vertical-align: top; }
[data-fw-single="post"] .fw-article-table-scroll th { color: var(--fw-single-plum); background: var(--fw-single-surface); font-size: inherit; text-transform: none; letter-spacing: normal; }
.fw-article-table-scroll caption { padding: 1rem; font-weight: 600; text-align: left; color: var(--fw-single-foreground); }

.fw-article-author { display: flex; gap: 1.25rem; align-items: flex-start; padding: clamp(1.25rem, 3vw, 2rem); margin-top: 3rem; background: var(--fw-single-card); border: 1px solid var(--fw-single-border); border-radius: 1rem; }
.fw-article-author > div { min-width: 0; }
.fw-article-author .fw-article-avatar { width: 64px; height: 64px; }
.fw-article-author h2 { margin-top: 0.45rem; font-size: 1.7rem; overflow-wrap: anywhere; }
.fw-article-author a { color: var(--fw-single-plum); }
.fw-article-author__bio { margin-top: 1rem !important; font-size: 0.9375rem; line-height: 1.75; white-space: pre-line; }
.fw-article-author__link { display: inline-block; margin-top: 1rem; font-size: 0.875rem; }
.fw-article-back { display: inline-block; margin-top: 1.75rem; color: var(--fw-single-plum); font-size: 0.875rem; }

@media (min-width: 64rem) {
    [data-fw-single="post"] .fw-article-layout--toc { grid-template-columns: minmax(0, 1fr) 18rem; grid-template-areas: "body toc"; }
    .fw-article-layout--toc .fw-article-reading-column { grid-area: body; }
    .fw-article-toc { grid-area: toc; position: sticky; top: var(--fw-article-anchor-offset); max-height: calc(100dvh - var(--fw-article-anchor-offset) - 1.5rem); overflow-y: auto; }
    [data-fw-single="post"] .fw-article-layout--plain { display: block; max-width: 58rem; }
}

@media (max-width: 63.99rem) {
    [data-fw-single="post"] .fw-single-article__hero-media { width: 100%; max-width: 37.5rem; margin-inline: auto; }
    [data-fw-single="post"] .fw-single-article__hero-media img { aspect-ratio: 16 / 10; }
}

@media (max-width: 39.99rem) {
    .fw-article-author { gap: 0.9rem; }
    .fw-article-author .fw-article-avatar { width: 48px; height: 48px; }
    [data-fw-single="post"] .fw-single-article__hero-media img { aspect-ratio: 4 / 3; }
}
