/* AOSE 投稿共通 v1.0 — SWELL標準本文の整形。再利用部品はcomponents.cssへ。 */
.single-post {
 --aose-post-wide: var(--aose-width-wide,1200px);
 --aose-post-header:960px;
 --aose-post-text: var(--aose-width-content,800px);
 --aose-post-narrow:var(--aose-width-narrow,680px);
 --aose-post-border: var(--aose-color-line,rgba(40,38,34,.12));
 --aose-post-section-gap: var(--aose-space-8,64px);
}
/* 投稿のみ1カラム。固定ページ・アーカイブには適用しない。 */
.single-post #content { display:block; }
.single-post #sidebar { display:none; }
.single-post #main_content,.single-post .l-mainContent { width:100%;max-width:100%;min-width:0; }
.single-post :is(.c-postTitle,.p-articleMetas,.p-articleThumb,.post_content,.p-articleFoot,.p-relatedPosts) {
 width:100%;max-width:var(--aose-post-wide);margin-inline:auto;box-sizing:border-box;min-width:0;
}
.single-post :is(.c-postTitle,.p-articleMetas,.p-articleThumb) { max-width:var(--aose-post-header); }
.single-post .l-mainContent__inner > .post_content { max-width:var(--aose-post-wide);padding-inline:0; }
.single-post .p-articleFoot { max-width:var(--aose-post-text); }
.single-post .post_content > :is(.wp-block-image,.wp-block-gallery,.alignwide,.alignfull) { width:100%;max-width:var(--aose-post-wide);margin-inline:auto;left:auto;right:auto; }
.single-post .post_content > :is(.wp-block-group,.wp-block-columns) { max-width:var(--aose-post-text);margin-inline:auto; }
.single-post .post_content > :is(.alignwide,.alignfull) { max-width:var(--aose-post-wide); }
.single-post .post_content > .aose-prose--narrow { width:100%;max-width:var(--aose-post-narrow);margin-inline:auto; }
.single-post .c-postTitle { margin-bottom:var(--aose-space-3,24px); }
.single-post .c-postTitle__ttl {
 margin:0;color:var(--aose-color-text,#282622);font-family:var(--aose-font-heading,serif);
 font-size:clamp(1.8rem,1.25rem + 1.7vw,2.6rem);font-weight:500;line-height:1.5;letter-spacing:.035em;overflow-wrap:anywhere;
}
.single-post .p-articleMetas { display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:var(--aose-space-3,24px); }
.single-post :is(.p-articleMetas,.c-postTimes) { color:var(--aose-color-text-muted,#625f59);font-family:var(--aose-font-ui,sans-serif);font-size:.82rem;line-height:1.7; }
.single-post .p-articleThumb { margin-bottom:var(--aose-space-5,40px); }
.single-post .p-articleThumb img { display:block;width:100%;height:auto;border-radius:var(--aose-radius-sm,6px); }
.single-post .post_content { color:var(--aose-color-text,#282622);font-family:var(--aose-font-body,sans-serif);font-size:1rem;line-height:1.95;letter-spacing:.025em;overflow-wrap:anywhere; }
.single-post .post_content > :is(p,ul,ol,blockquote,h1,h2,h3,h4,table,.wp-block-table) { max-width:var(--aose-post-text);margin-inline:auto;box-sizing:border-box; }
.single-post .post_content > p { margin-top:0;margin-bottom:1.75em; }
/* 標準本文見出しだけを装飾。AOSE共通部品内部の見出しを上書きしない。 */
.single-post .post_content > :is(h2,h3,h4) { color:var(--aose-color-text,#282622);background:none;box-shadow:none; }
.single-post .post_content > h2 {
 position:relative;margin-top:var(--aose-post-section-gap);margin-bottom:var(--aose-space-3,24px);
 padding:.1em 0 .65em 1em;border:0;border-bottom:1px solid var(--aose-post-border);
 font-family:var(--aose-font-heading,serif);font-size:clamp(1.4rem,1.1rem + .8vw,1.9rem);font-weight:500;line-height:1.6;letter-spacing:.035em;
}
.single-post .post_content > h2::before { content:"";position:absolute;inset:.15em auto .7em 0;width:3px;border:0;background:var(--aose-color-brown,#69543a); }
.single-post .post_content > h2::after { content:none; }
.single-post .post_content > h3 { margin-top:40px;margin-bottom:20px;padding:0 0 .5em;border:0;border-bottom:1px solid var(--aose-post-border);font-family:var(--aose-font-heading,serif);font-size:clamp(1.2rem,1.05rem + .45vw,1.45rem);font-weight:500;line-height:1.65; }
.single-post .post_content > :is(h3,h4)::before,.single-post .post_content > :is(h3,h4)::after { content:none; }
.single-post .post_content > h4 { margin-top:32px;margin-bottom:16px;padding:0;border:0;font-size:1.05rem;font-weight:700;line-height:1.7; }
.single-post .post_content > :is(h2,h3,h4):first-child { margin-top:0; }
.single-post .post_content a { text-underline-offset:.2em;text-decoration-thickness:1px; }
.single-post .post_content > :is(ul,ol) { margin-block:24px 32px;padding-left:1.6em; }
.single-post .post_content > :is(ul,ol) li { margin-block:.4em;line-height:1.85; }
.single-post .post_content > blockquote { margin-block:32px;padding:24px;border:0;border-left:3px solid var(--aose-color-koji-beige,#ded3be);background:var(--aose-color-background-soft,#f8f6f0); }
.single-post .post_content > blockquote > :last-child { margin-bottom:0; }
.single-post .post_content :is(img,video,iframe) { max-width:100%; }
.single-post .post_content img { height:auto; }
.single-post .post_content > .wp-block-image { margin-block:40px; }
.single-post .post_content .wp-block-image img { border-radius:var(--aose-radius-sm,6px); }
.single-post .post_content :is(figcaption,.wp-caption-text) { color:var(--aose-color-text-muted,#625f59);font-size:.8rem;line-height:1.65;margin-top:10px; }
.single-post .post_content > .wp-block-table { margin-block:32px;overflow-x:auto; }
.single-post .post_content :is(table,.wp-block-table table) { width:100%;border-collapse:collapse;font-size:.94rem; }
.single-post .post_content :is(th,td) { padding:.8rem 1rem;border:1px solid var(--aose-post-border);vertical-align:top;overflow-wrap:anywhere; }
.single-post .post_content th { background:var(--aose-color-background-soft,#f8f6f0);text-align:left; }
.single-post .p-articleFoot { margin-top:var(--aose-space-8,64px);padding-top:24px;border-top:1px solid var(--aose-post-border); }
.single-post .p-articleFoot .c-categoryList { display:flex;flex-wrap:wrap;gap:8px; }
.single-post .p-relatedPosts { margin-top:48px; }
@media(max-width:767px) {
 .single-post { --aose-post-section-gap:40px; }
 .single-post #content { padding-inline:18px; }
 .single-post .c-postTitle__ttl { font-size:clamp(1.5rem,1.1rem + 2vw,1.9rem);line-height:1.55; }
 .single-post .p-articleMetas { gap:8px 12px;margin-bottom:20px; }
 .single-post .p-articleThumb { margin-bottom:32px; }
 .single-post .post_content { font-size:1rem;line-height:1.9; }
 .single-post .post_content > h2 { font-size:1.4rem;margin-bottom:20px; }
 .single-post .post_content > h3 { font-size:1.2rem;margin-top:32px; }
 .single-post .post_content > blockquote { padding:18px; }
 .single-post .post_content :is(th,td) { padding:.65rem .75rem; }
 .single-post .p-articleFoot { margin-top:40px; }
}
