/* =====================================================
   PROSE — Typography for .post-content and .content-entry
   Covers all standard HTML tags + WordPress block editor
   classes. Single source of truth for both post and page.
   ===================================================== */

.post-content,
.content-entry {

    /* ── Flow & base ── */
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text-primary);

    /* ── Headings ── */
    h2, h3, h4, h5, h6 {
        font-weight: var(--fw-semibold);
        line-height: 1.3;
        color: var(--color-text-primary);
        margin-top: 2.5rem;
        margin-bottom: 0.75rem;
    }

    h2 { font-size: 1.625rem; }
    h3 { font-size: 1.375rem; }
    h4 { font-size: 1.125rem; }
    h5 { font-size: 1rem; }
    h6 { font-size: 0.9375rem; color: var(--color-text-muted); }

    /* ── Paragraph ── */
    p {
        margin-top: 0;
        margin-bottom: 1.25rem;
    }

    /* ── Links ── */
    a {
        color: var(--color-accent);
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    a:hover {
        text-decoration: none;
    }

    a:visited {
        color: var(--color-text-muted);
    }

    /* ── Lists ── */
    ul:not([class]),
    ol:not([class]) {
        padding-left: 1.5rem;
        margin-bottom: 1.25rem;
    }

    ul:not([class]) { list-style-type: disc; }
    ol:not([class]) { list-style-type: decimal; }

    li:not([class]) {
        margin-bottom: 0.4rem;
        line-height: 1.7;
    }

    li:not([class]) > ul:not([class]),
    li:not([class]) > ol:not([class]) {
        margin-top: 0.4rem;
        margin-bottom: 0;
    }

    /* ── Blockquote ── */
    blockquote {
        margin: 2rem 0;
        padding: 1rem 1.5rem;
        border-left: 4px solid var(--color-accent);
        background-color: var(--color-bg-secondary);
        border-radius: 0 0.5rem 0.5rem 0;
        color: var(--color-text-secondary);
        font-style: italic;
    }

    blockquote p:last-child {
        margin-bottom: 0;
    }

    blockquote cite {
        display: block;
        margin-top: 0.75rem;
        font-size: 0.875rem;
        font-style: normal;
        color: var(--color-text-muted);
    }

    /* ── Code ── */
    code {
        font-family: ui-monospace, "Cascadia Code", "Fira Code", monospace;
        font-size: 0.875em;
        padding: 0.15em 0.4em;
        background-color: var(--color-bg-secondary);
        border: 1px solid var(--color-border-default);
        border-radius: 0.25rem;
        color: var(--color-text-primary);
    }

    pre {
        margin: 1.75rem 0;
        padding: 1.25rem 1.5rem;
        background-color: var(--color-bg-secondary);
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        overflow-x: auto;
        line-height: 1.6;
    }

    pre code {
        padding: 0;
        background: none;
        border: none;
        font-size: 0.875rem;
    }

    /* ── HR / Separator ── */
    hr {
        border: none;
        border-top: 1px solid var(--color-border-default);
        margin: 2.5rem 0;
    }

    /* ── Images ── */
    img {
        max-width: 100%;
        height: auto;
        border-radius: 0.5rem;
    }

    /* ── Figures ── */
    figure {
        margin: 2rem 0;
    }

    figcaption {
        margin-top: 0.5rem;
        font-size: 0.875rem;
        color: var(--color-text-muted);
        text-align: center;
    }

    /* ── Tables ── */
    table {
        width: 100%;
        border-collapse: collapse;
        margin: 1.75rem 0;
        font-size: 0.9375rem;
    }

    th {
        text-align: left;
        font-weight: var(--fw-semibold);
        padding: 0.625rem 0.875rem;
        background-color: var(--color-bg-secondary);
        border-bottom: 2px solid var(--color-border-default);
        color: var(--color-text-secondary);
    }

    td {
        padding: 0.625rem 0.875rem;
        border-bottom: 1px solid var(--color-border-default);
        vertical-align: top;
    }

    tr:last-child td {
        border-bottom: none;
    }

    /* ── Inline emphasis ── */
    strong, b { font-weight: var(--fw-semibold); }
    em, i     { font-style: italic; }

    mark {
        background-color: color-mix(in srgb, var(--color-accent) 20%, transparent);
        color: var(--color-text-primary);
        padding: 0.05em 0.25em;
        border-radius: 0.2em;
    }

    abbr[title] {
        text-decoration: underline dotted;
        cursor: help;
    }

    /* ── Details / Summary ── */
    details {
        margin: 1.25rem 0;
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        padding: 0.75rem 1rem;
    }

    summary {
        font-weight: var(--fw-semibold);
        cursor: pointer;
        color: var(--color-text-primary);
    }

    details[open] summary {
        margin-bottom: 0.75rem;
    }

    /* ── Definition lists ── */
    dl { margin-bottom: 1.25rem; }

    dt {
        font-weight: var(--fw-semibold);
        color: var(--color-text-primary);
        margin-top: 0.75rem;
    }

    dd {
        margin-left: 1.5rem;
        color: var(--color-text-secondary);
    }

    /* ── Keyboard / subscript / superscript ── */
    kbd {
        font-family: ui-monospace, monospace;
        font-size: 0.8125em;
        padding: 0.1em 0.4em;
        border: 1px solid var(--color-border-default);
        border-radius: 0.25rem;
        background-color: var(--color-bg-secondary);
    }

    sub, sup { font-size: 0.75em; }

    /* ─────────────────────────────────────────────────────
       WORDPRESS BLOCK EDITOR — GUTENBERG
       ───────────────────────────────────────────────────── */

    /* Alignment helpers */
    .alignleft  { float: left;  margin: 0.5rem 1.5rem 1rem 0; }
    .alignright { float: right; margin: 0.5rem 0 1rem 1.5rem; }
    .aligncenter, .alignfull, .alignwide {
        display: block;
        margin-inline: auto;
        text-align: center;
    }

    /* WP caption (classic editor) */
    .wp-caption {
        max-width: 100%;
        margin: 2rem auto;
    }

    .wp-caption img { display: block; margin: 0 auto; }

    .wp-caption-text {
        font-size: 0.875rem;
        color: var(--color-text-muted);
        text-align: center;
        margin-top: 0.5rem;
    }

    /* Block: Quote */
    .wp-block-quote {
        margin: 2rem 0;
        padding: 1rem 1.5rem;
        border-left: 4px solid var(--color-accent);
        background-color: var(--color-bg-secondary);
        border-radius: 0 0.5rem 0.5rem 0;
        font-style: italic;
        color: var(--color-text-secondary);
    }

    .wp-block-quote p { margin-bottom: 0.5rem; }

    .wp-block-quote cite {
        display: block;
        font-size: 0.875rem;
        font-style: normal;
        color: var(--color-text-muted);
        margin-top: 0.5rem;
    }

    /* Block: Pullquote */
    .wp-block-pullquote {
        margin: 2rem 0;
        padding: 1.5rem;
        border-top: 4px solid var(--color-accent);
        border-bottom: 4px solid var(--color-accent);
        text-align: center;
        font-size: 1.25rem;
        font-style: italic;
        color: var(--color-text-secondary);
    }

    /* Block: Code */
    .wp-block-code {
        margin: 1.75rem 0;
        padding: 1.25rem 1.5rem;
        background-color: var(--color-bg-secondary);
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        overflow-x: auto;
        font-size: 0.875rem;
        font-family: ui-monospace, "Cascadia Code", "Fira Code", monospace;
        line-height: 1.6;
    }

    /* Block: Image */
    .wp-block-image {
        margin: 2rem 0;
    }

    .wp-block-image img {
        display: block;
        max-width: 100%;
        height: auto;
        border-radius: 0.5rem;
    }

    .wp-block-image figcaption {
        font-size: 0.875rem;
        color: var(--color-text-muted);
        text-align: center;
        margin-top: 0.5rem;
    }

    /* Block: Table */
    .wp-block-table {
        margin: 1.75rem 0;
        overflow-x: auto;
    }

    .wp-block-table table {
        margin: 0;
    }

    /* Block: Separator */
    .wp-block-separator {
        border: none;
        border-top: 1px solid var(--color-border-default);
        margin: 2.5rem auto;
        max-width: 4rem;
    }

    .wp-block-separator.is-style-wide {
        max-width: 100%;
    }

    /* Block: CoBlocks Dynamic Separator (dots only) */
    .wp-block-coblocks-dynamic-separator {
        border: none;
        text-align: center;
        margin: 2.5rem auto;
    }

    .wp-block-coblocks-dynamic-separator hr {
        display: none;
    }

    /* Block: Buttons */
    .wp-block-button__link {
        display: inline-block;
        padding: 0.5rem 1.25rem;
        border-radius: 0.375rem;
        font-weight: var(--fw-semibold);
        text-decoration: none;
        background-color: var(--color-accent);
        color: var(--color-on-accent);
        transition: opacity 0.15s ease;
    }

    .wp-block-button__link:hover {
        opacity: 0.85;
        text-decoration: none;
        color: var(--color-on-accent);
    }

    /* Block: Notice / callout colors */
    .has-background {
        padding: 1rem 1.25rem;
        border-radius: 0.5rem;
    }

    /* Block: Lists (Gutenberg) */
    .wp-block-list {
        padding-left: 1.5rem;
        margin-bottom: 1.25rem;
    }

    /* Block: File */
    .wp-block-file {
        display: flex;
        align-items: center;
        gap: 1rem;
        padding: 1rem 1.25rem;
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        margin: 1.75rem 0;
    }

    .wp-block-file a {
        font-weight: var(--fw-semibold);
    }

    /* Block: Verse */
    .wp-block-verse {
        font-family: var(--font-family-base);
        white-space: pre-wrap;
        padding: 1rem 1.5rem;
        border-left: 4px solid var(--color-border-default);
        color: var(--color-text-secondary);
        margin: 1.75rem 0;
    }

    /* Block: Embed */
    .wp-block-embed {
        margin: 2rem 0;
    }

    .wp-block-embed__wrapper iframe {
        width: 100%;
        border-radius: 0.5rem;
    }

    /* Block: Gallery */
    .wp-block-gallery {
        margin: 2rem 0;
        gap: 0.5rem;
    }

    .wp-block-gallery .wp-block-image {
        margin: 0;
    }

    /* Block: Columns */
    .wp-block-columns {
        display: flex;
        gap: 2rem;
        margin: 2rem 0;
    }

    .wp-block-column {
        flex: 1;
        min-width: 0;
    }

    /* Block: Group */
    .wp-block-group {
        margin: 2rem 0;
    }

    .wp-block-group.has-background {
        padding: 1.5rem;
    }

    /* Block: Cover */
    .wp-block-cover {
        margin: 2rem 0;
        border-radius: 0.5rem;
        overflow: hidden;
        min-height: 250px;
    }

    /* Block: Media & Text */
    .wp-block-media-text {
        display: grid;
        grid-template-columns: 50% 1fr;
        gap: 2rem;
        margin: 2rem 0;
        align-items: center;
    }

    .wp-block-media-text.has-media-on-the-right {
        grid-template-columns: 1fr 50%;
    }

    .wp-block-media-text__media img {
        width: 100%;
        height: auto;
        border-radius: 0.5rem;
    }

    /* Block: Spacer */
    .wp-block-spacer {
        clear: both;
    }

    /* Block: Audio / Video */
    .wp-block-audio,
    .wp-block-video {
        margin: 2rem 0;
    }

    .wp-block-audio audio,
    .wp-block-video video {
        width: 100%;
        border-radius: 0.5rem;
    }

    /* Block: Preformatted */
    .wp-block-preformatted {
        font-family: ui-monospace, "Cascadia Code", "Fira Code", monospace;
        font-size: 0.875rem;
        line-height: 1.6;
        padding: 1.25rem 1.5rem;
        background-color: var(--color-bg-secondary);
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        overflow-x: auto;
        white-space: pre-wrap;
        margin: 1.75rem 0;
    }

    /* Block: Details (WP 6.3+) */
    .wp-block-details {
        margin: 1.25rem 0;
        border: 1px solid var(--color-border-default);
        border-radius: 0.5rem;
        padding: 0.75rem 1rem;
    }

    .wp-block-details summary {
        font-weight: var(--fw-semibold);
        cursor: pointer;
        color: var(--color-text-primary);
    }

    /* Block: Footnotes (WP 6.3+) */
    .wp-block-footnotes {
        font-size: 0.875rem;
        color: var(--color-text-muted);
        border-top: 1px solid var(--color-border-default);
        padding-top: 1.5rem;
        margin-top: 3rem;
    }

    .wp-block-footnotes li {
        margin-bottom: 0.5rem;
    }

    /* ── WordPress core: wp_link_pages ── */
    .page-links {
        margin: 2rem 0;
        font-weight: var(--fw-semibold);
    }

    .page-links .page-numbers {
        display: inline-block;
        padding: 0.25rem 0.625rem;
        margin: 0 0.125rem;
        border: 1px solid var(--color-border-default);
        border-radius: 0.25rem;
        text-decoration: none;
    }

    .page-links .page-numbers.current {
        background-color: var(--color-accent);
        color: var(--color-on-accent);
        border-color: var(--color-accent);
    }

    /* ── WordPress core: captions ── */
    .gallery-caption,
    .blocks-gallery-caption {
        font-size: 0.875rem;
        color: var(--color-text-muted);
        text-align: center;
        margin-top: 0.5rem;
    }

    /* ── WordPress core: sticky post ── */
    .sticky .entry-title::before {
        content: "";
    }

    /* ── First element spacing ── */
    > *:first-child { margin-top: 0; }
    > *:last-child  { margin-bottom: 0; }

    /* ── Mobile adjustments ── */
    @media (max-width: 575.98px) {
        font-size: 1rem;

        h2 { font-size: 1.375rem; }
        h3 { font-size: 1.125rem; }
        h4 { font-size: 1rem; }

        .alignleft,
        .alignright {
            float: none;
            margin: 1rem 0;
        }

        pre, .wp-block-code {
            font-size: 0.8125rem;
        }

        .wp-block-columns {
            flex-direction: column;
        }

        .wp-block-media-text,
        .wp-block-media-text.has-media-on-the-right {
            grid-template-columns: 1fr;
        }
    }
}
