/* Shared editorial prose. Legacy .post-box remains a compatibility scope. */
.cs-content-prose {
    --cs-prose-font-size: clamp(15px, 1.4vw, 16px);
    display: grid;
    gap: var(--cs-space-5);
    min-width: 0;
}

.cs-content-prose > * {
    margin-block: 0;
}

:is(.post-box, .cs-content-prose) :is(p, ul, ol) {
    font-size: var(--cs-prose-font-size, clamp(0.85rem, 2vw, 1rem));
    line-height: 1.8;
    color: var(--dark-text);
}

:is(.post-box, .cs-content-prose) em {
    font-style: italic;
}

:is(.post-box, .cs-content-prose) :is(ul, ol) {
    display: grid;
    gap: 12px;
}

:is(.post-box, .cs-content-prose) ul li {
    list-style-type: square;
    margin-left: 30px;
    padding-left: 12px;
}

:is(.post-box, .cs-content-prose) ol li {
    list-style-type: decimal;
    margin-left: 30px;
    position: relative;
    list-style-position: outside;
    padding-left: 12px;
}

:is(.post-box, .cs-content-prose) :is(strong, b) {
    font-weight: bold;
}

:is(.post-box, .cs-content-prose) :is(h2, h3, h4, h5, h6) {
    line-height: var(--header-line-height);
    color: var(--dark-text);
}

:is(.post-box, .cs-content-prose) h2 {
    font-size: clamp(18px, 3vw, 24px);
    font-weight: bold;
}

:is(.post-box, .cs-content-prose) h3 {
    font-size: clamp(16px, 2.5vw, 20px);
    font-weight: bold;
}

:is(.post-box, .cs-content-prose) h4 {
    font-size: clamp(14px, 2vw, 16px);
    font-weight: 700;
}

:is(.post-box, .cs-content-prose) a:not(:where(.cs-ui-button)),
:is(.post-box, .cs-content-prose) a:not(:where(.cs-ui-button)):visited {
    font-weight: 700;
    color: var(--brand);
    text-decoration: none;
}

:is(.post-box, .cs-content-prose) a:not(:where(.cs-ui-button)):hover {
    text-decoration: underline;
}

.cs-content-prose :is(h2, h3, h4, h5, h6) {
    overflow-wrap: anywhere;
}

.cs-content-prose h2:focus-visible,
.cs-content-prose a:focus-visible {
    border-radius: var(--cs-radius-small);
    outline: var(--cs-focus-width) solid var(--cs-color-focus);
    outline-offset: var(--cs-focus-offset);
}
