/* ==========================================================================
   投稿（活動報告・サンプル）本文の基本書式
   ========================================================================== */
.p-postCard {
    background: #fff;
    border-radius: var(--border-radius-m);
    padding: 48px;
    box-shadow: var(--elevation-1);
}
.p-postThumb {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius-m);
    margin-bottom: 32px;
    display: block;
}
.p-postBody {
    color: var(--color-mono-primary);
    font-size: 1rem;
    line-height: 1.95;
    letter-spacing: 0.02em;
}
.p-postBody > *:first-child { margin-top: 0; }
.p-postBody > *:last-child { margin-bottom: 0; }
.p-postBody p { margin: 0 0 1.5em; }
.p-postBody h2 {
    font-size: 1.6rem; font-weight: 700; color: var(--color-mono-primary);
    margin: 2em 0 0.8em; padding-left: 14px; line-height: 1.4;
    border-left: 5px solid var(--color-brand-accent);
}
.p-postBody h3 {
    font-size: 1.3rem; font-weight: 700; color: var(--color-brand-accent);
    margin: 1.8em 0 0.7em; line-height: 1.4;
}
.p-postBody h4 {
    font-size: 1.1rem; font-weight: 700; color: var(--color-mono-primary);
    margin: 1.5em 0 0.6em;
}
.p-postBody a { color: var(--color-brand-accent); text-decoration: underline; text-underline-offset: 3px; }
.p-postBody a:hover { opacity: 0.75; }
.p-postBody strong { font-weight: 700; color: var(--color-mono-primary); }
.p-postBody em { font-style: italic; }
.p-postBody ul, .p-postBody ol { margin: 0 0 1.5em; padding-left: 1.6em; }
.p-postBody ul { list-style: disc; }
.p-postBody ol { list-style: decimal; }
.p-postBody li { margin-bottom: 0.5em; line-height: 1.85; }
.p-postBody blockquote {
    margin: 1.5em 0; padding: 16px 24px;
    background: var(--color-brand-tertiary);
    border-left: 4px solid var(--color-brand-accent);
    border-radius: 0 var(--border-radius-s) var(--border-radius-s) 0;
    color: var(--color-mono-primary);
}
.p-postBody blockquote p:last-child { margin-bottom: 0; }
.p-postBody img { max-width: 100%; height: auto; border-radius: var(--border-radius-s); margin: 1em 0; }
.p-postBody figure { margin: 1.5em 0; }
.p-postBody figcaption { font-size: 0.85rem; color: var(--color-mono-secondary); text-align: center; margin-top: 8px; }
.p-postBody hr { border: none; border-top: 1px solid var(--color-mono-tertiary); margin: 2.5em 0; }
.p-postBody table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 0.95rem; }
.p-postBody th, .p-postBody td { border: 1px solid var(--color-mono-tertiary); padding: 10px 14px; text-align: left; }
.p-postBody th { background: var(--color-brand-tertiary); font-weight: 700; color: var(--color-brand-accent); }
.p-postBody code { background: var(--color-mono-quaternary); padding: 2px 6px; border-radius: 4px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.9em; }
.p-postBody pre { background: #2d2d2d; color: #f8f8f2; padding: 16px 20px; border-radius: var(--border-radius-s); overflow-x: auto; margin: 1.5em 0; }
.p-postBody pre code { background: none; color: inherit; padding: 0; }
@media (max-width: 768px) {
    .p-postCard { padding: 24px 20px; }
    .p-postBody h2 { font-size: 1.35rem; }
    .p-postBody h3 { font-size: 1.15rem; }
}
