/* =================================================================== POST BODY section css =================================================================== */
.post-body {
    padding-bottom: var(--sectionGap);

    & .post-body__figure {
        position: relative;
        z-index: 1;
        margin-top: calc(var(--sp60) * -1);
        margin-bottom: var(--sp60);
        border-radius: var(--r-md);
        box-shadow: var(--shadow-sm);
        overflow: hidden;
        aspect-ratio: 16 / 7;
        background: var(--surface-1);

        & img { width: 100%; height: 100%; object-fit: cover; }
    }

    & .post-body__layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 360px;
        align-items: start;
        gap: var(--sp80);
    }

    & .post-body__article { min-width: 0; }

    /* article-scoped refinements on top of global .prose */
    & .post-body__prose {
        max-width: none;

        & > p:first-child { font-size: var(--f20); color: var(--ink); }
        & h2 {
            padding-top: var(--sp30);
            border-top: 1px solid var(--line);
        }
        & > ul { gap: var(--sp20); padding-left: 0; }
        & > ul > li {
            padding: var(--sp25) var(--sp30);
            background: var(--surface-1);
            border-left: 3px solid var(--primary);
            border-radius: 0 var(--r-md) var(--r-md) 0;
        }
        & > ul > li::before { display: none; }
        & > ul > li > h3 { margin-top: 0; font-size: var(--f20); }
        & > ul > li > * + * { margin-top: var(--sp12); }
        & ul ul { gap: var(--sp8); }
        & ul ul li { font-size: var(--f16); }
    }

    & .post-body__note {
        display: flex; align-items: center;
        gap: var(--sp20);
        margin-top: var(--sp50);
        padding: var(--sp25);
        background: var(--blue-50);
        border-radius: var(--r-md);

        & .icon-box { flex: 0 0 auto; background: var(--white); }
        & p { font-size: var(--f15); color: var(--ink); }
    }

    & .post-body__pager {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--g30);
        margin-top: var(--sp40);
        padding-top: var(--sp40);
        border-top: 1px solid var(--line);
    }

    & .post-body__pager-link {
        display: flex; flex-direction: column;
        gap: var(--sp8);
        padding: var(--sp25);
        border: 1px solid var(--line);
        border-radius: var(--r-md);
        transition: var(--transition);

        &:hover { border-color: var(--primary); box-shadow: var(--shadow-sm); }
        &:hover .post-body__pager-title { color: var(--primary); }
    }

    & .post-body__pager-link--next { align-items: flex-end; text-align: right; }

    & .post-body__pager-dir {
        display: flex; align-items: center;
        gap: var(--sp8);
        font-size: var(--f13);
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: var(--primary);
    }

    & .post-body__pager-title {
        font-size: var(--f16);
        font-weight: 600;
        line-height: 1.4;
        color: var(--ink);
        transition: var(--transition);
    }

    & .post-body__aside {
        position: sticky; top: 150px;
        display: grid;
        gap: var(--sp25);
    }

    & .post-body__card {
        display: flex; flex-direction: column; align-items: flex-start;
        gap: var(--sp12);
        padding: var(--sp30);
        background: var(--white);
        border: 1px solid var(--line);
        border-radius: var(--r-md);
    }

    & .post-body__card-title { font-size: var(--f20); letter-spacing: -.01em; }

    & .post-body__card-text { font-size: var(--f15); }

    & .post-body__card--findings {
        position: relative;
        padding-top: var(--sp30);
        background: var(--surface-1);
        border-color: var(--line);
        box-shadow: inset 0 3px 0 var(--primary);
        overflow: hidden;
    }

    & .post-body__book {
        width: 110px;
        margin-bottom: var(--sp10);
        filter: drop-shadow(0 16px 20px rgba(16, 24, 40, .18));
        transform: rotate(-6deg);
    }

    & .post-body__card--live { background: var(--blue-50); border-color: var(--blue-100); }

    & .post-body__live-pill {
        display: flex; align-items: center;
        gap: var(--sp8);
        font-size: var(--f13);
        font-weight: 600;
        color: var(--primary);
    }

    & .post-body__live-dot {
        width: 8px; height: 8px;
        background: var(--accent);
        border-radius: var(--r-full);
    }

    & .post-body__live-meta {
        display: grid;
        gap: var(--sp8);
        width: 100%;
        margin-bottom: var(--sp4);

        & div { display: flex; justify-content: space-between; gap: var(--sp10); }
        & dt { font-size: var(--f13); color: var(--muted); }
        & dd { font-size: var(--f14); font-weight: 600; color: var(--ink); }
    }

    & .post-body__card--news {
        & .form { width: 100%; gap: var(--sp10); }
        & .form__input { min-height: 48px; }
    }
}

/* =================================================================== RESPONSIVE =================================================================== */
@media (max-width: 1199.98px) {
    .post-body {
        & .post-body__layout { grid-template-columns: minmax(0, 1fr) 300px; gap: var(--sp50); }
    }
}

@media (max-width: 991.98px) {
    .post-body {
        & .post-body__layout { grid-template-columns: 1fr; }
        & .post-body__aside { position: static; grid-template-columns: 1fr 1fr; }
        & .post-body__card--findings { grid-row: span 2; }
        & .post-body__figure { aspect-ratio: 16 / 9; }
    }
}

@media (max-width: 767.98px) {
    .post-body {
        & .post-body__figure { margin-top: calc(var(--sp40) * -1); margin-bottom: var(--sp40); border-radius: var(--r-md); }
        & .post-body__prose > p:first-child { font-size: var(--f18); }
        & .post-body__prose > ul > li { padding: var(--sp20); }
        & .post-body__pager { grid-template-columns: 1fr; }
        & .post-body__pager-link--next { align-items: flex-start; text-align: left; }
        & .post-body__aside { grid-template-columns: 1fr; }
        & .post-body__card--findings { grid-row: auto; }
        & .post-body__note { flex-direction: column; align-items: flex-start; }
    }
}
