/* Article-only layout: the same full-width dark shell as Blog. */
body.single-post,
body.single-post #page,
body.single-post #content,
body.single-post #content > .ast-container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #0b0b0f !important;
}
body.single-post .site-header { margin-bottom: 0 !important; border-bottom: 0 !important; }
/* Astra's transparent header is absolute; keep it above the reading layout. */
body.single-post #masthead { position: relative !important; }
/* Astra adds .ast-article-single through post_class(), with a more specific background. */
body.single-post .cs-article { margin: 0; padding: 0; border: 0; background: transparent !important; box-shadow: none; }
.cs-article-page { overflow-wrap: anywhere; }
.cs-article-hero {
    padding: 34px 0 0;
    background: radial-gradient(ellipse at 85% 0%, rgba(194,49,36,.23), transparent 45%),
        linear-gradient(118deg, #111217, #0b0b0f 65%, #211213);
}
.cs-article-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: #7e8692; font-size: 13px; }
.cs-article-breadcrumb a { padding: 8px 0; color: #aab1bb; text-decoration: none; }
.cs-article-breadcrumb a:hover { color: #ed9182; }
.cs-article-heading { width: min(100%, 960px); margin: 0 auto; padding: 55px 0 48px; }
.cs-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; color: #9ba2ae; font-size: 13px; }
.cs-article-meta time { font-variant-numeric: tabular-nums; }
.cs-article-category { display: inline-flex; padding: 6px 16px; border: 1px solid rgba(226,100,78,.3); border-radius: 99px; background: rgba(189,49,36,.12); color: #ed9182; text-decoration: none; }
.cs-article-category:hover { border-color: #e2644e; color: #fff; background: #bd3124; }
body.single-post .cs-article-heading h1 { margin: 23px 0 0; color: #f8f9fb; font-size: clamp(32px,4.2vw,56px); font-weight: 700; line-height: 1.35; letter-spacing: -.025em; text-wrap: pretty; }
.cs-article-summary { max-width: 860px; margin: 22px 0 0; color: #b3b9c3; font-size: 18px; line-height: 1.85; }
.cs-article-accent { width: 56px; height: 3px; margin-top: 32px; border-radius: 3px; background: linear-gradient(90deg,#bd3124,#ed9182); }
.cs-article-cover { width: min(1120px,calc(100% - 80px)); margin: 16px auto 0; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; overflow: hidden; background: #121319; }
.cs-article-cover img { display: block; width: 100%; height: auto; max-height: 600px; margin: 0; object-fit: contain; }
.cs-article-reading { width: min(860px,calc(100% - 80px)); margin: 0 auto; padding: 48px 0 88px; }
body.single-post .cs-article-content { display: flow-root; color: #cdd1d9; font-size: 17px; line-height: 1.95; overflow-wrap: anywhere; }
.cs-article-content > :first-child { margin-top: 0; }
.cs-article-content > :last-child { margin-bottom: 0; }
.cs-article-content p { margin: 0 0 1.4em; }
body.single-post .cs-article-content :is(h1,h2,h3,h4,h5,h6) { margin: 1.7em 0 .75em; color: #f5f6f8; font-weight: 650; line-height: 1.45; letter-spacing: -.015em; }
body.single-post .cs-article-content h1 { font-size: 34px; }
body.single-post .cs-article-content h2 { font-size: 28px; }
body.single-post .cs-article-content h3 { font-size: 23px; }
body.single-post .cs-article-content h4 { font-size: 20px; }
body.single-post .cs-article-content :is(h5,h6) { font-size: 18px; }
.cs-article-content :is(strong,b) { color: inherit; font-weight: 700; }
.cs-article-content a { color: #ed9182; text-decoration: underline; text-underline-offset: 4px; }
.cs-article-content a:hover { color: #ffb7a9; }
.cs-article-content :is(ul,ol) { margin: 0 0 1.4em; padding-left: 1.6em; }
.cs-article-content ul { list-style: disc; }
.cs-article-content ol { list-style: decimal; }
.cs-article-content li { margin: .45em 0; }
.cs-article-content li > :is(ul,ol) { margin-bottom: 0; }
.cs-article-content blockquote { margin: 30px 0; padding: 22px 26px; border: 0; border-left: 3px solid #c74332; border-radius: 0 12px 12px 0; color: #cdd1d9; background: linear-gradient(100deg,rgba(189,49,36,.12),rgba(255,255,255,.025)); font-style: normal; font-size: inherit; }
.cs-article-content blockquote > :last-child { margin-bottom: 0; }
.cs-article-content blockquote cite { color: #9ba2ae; font-size: 14px; }
.cs-article-content :is(img,video,iframe,svg) { max-width: 100%; }
.cs-article-content :is(img,video) { height: auto; border-radius: 10px; }
.cs-article-content figure { max-width: 100%; margin: 30px 0; }
.cs-article-content figure img { display: block; margin: 0 auto; }
.cs-article-content :is(figcaption,.wp-caption-text) { margin: 10px 0 0; color: #929aa5; font-size: 13px; line-height: 1.7; text-align: center; }
.cs-article-content :is(.alignwide,.alignfull) { width: 100%; max-width: 100%; margin-right: 0; margin-left: 0; }
.cs-article-content :is(table,.wp-block-table) { max-width: 100%; overflow-x: auto; }
.cs-article-content table { display: block; width: 100%; margin: 28px 0; border: 1px solid #34363f; border-collapse: collapse; background: #121319; font-size: 15px; }
.cs-article-content :is(th,td) { padding: 13px 18px; border: 1px solid #34363f; color: #cdd1d9; vertical-align: top; }
.cs-article-content th { color: #f5f6f8; background: #1c1e26; font-weight: 600; text-align: left; }
.cs-article-content tbody tr:nth-child(even) { background: rgba(255,255,255,.025); }
.cs-article-content pre { max-width: 100%; margin: 28px 0; padding: 22px; overflow-x: auto; border: 1px solid #30323b; border-radius: 12px; background: #14161d; color: #dce0e8; font-size: 14px; line-height: 1.8; white-space: pre; }
.cs-article-content code { padding: .15em .4em; border-radius: 4px; background: #22232d; color: #f0ada0; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: .88em; }
.cs-article-content pre code { padding: 0; background: none; color: inherit; font-size: inherit; }
.cs-article-content hr { height: 1px; margin: 36px 0; border: 0; background: #30323b; }
.cs-article-content .post-password-form input[type=password] { max-width: 100%; border: 1px solid #484a54; border-radius: 6px; background: #16161c; color: #fff; }
.cs-article-content .post-password-form input[type=submit] { border-radius: 6px; background: #bd3124; color: #fff; }
.cs-article-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 36px; }
.cs-article-tags span { padding: 6px 13px; border: 1px solid rgba(255,255,255,.12); border-radius: 99px; color: #aab1bb; background: rgba(255,255,255,.025); font-size: 12px; }
.cs-article-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 45px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); }
.cs-article-back { display: inline-flex; align-items: center; gap: 12px; padding: 12px 20px; border: 1px solid rgba(255,255,255,.19); border-radius: 99px; color: #e7e9ed; text-decoration: none; font-size: 14px; transition: background .2s,border-color .2s; }
.cs-article-back:hover { border-color: #bd3124; background: #bd3124; color: #fff; }
.cs-article-zone-link { padding: 10px 0; color: #ed9182; text-decoration: none; font-size: 14px; }
.cs-article-zone-link:hover { color: #ffb7a9; }
.cs-article-adjacent { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 32px; }
.cs-article-adjacent a { position: relative; display: flex; flex-direction: column; padding: 25px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: linear-gradient(145deg,#15171d,#101116); text-decoration: none; transition: border-color .25s,background .25s; }
.cs-article-adjacent a:only-child { grid-column: 1/-1; }
.cs-article-adjacent a:hover { border-color: rgba(226,100,78,.6); background: #1a181d; }
.cs-article-adjacent a > span { color: #e17b6c; font-size: 12px; }
body.single-post .cs-article-adjacent h2 { margin: 12px 0 16px; color: #f5f6f8; font-size: 20px; line-height: 1.5; }
.cs-article-adjacent time { margin-top: auto; color: #929aa5; font-size: 12px; }
.cs-article-pages { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.cs-article-pages .post-page-numbers { padding: 0 12px; border: 1px solid #34363f; border-radius: 6px; }
.cs-article-pages .current { background: #bd3124; color: #fff; }
.cs-article :is(a,button,input):focus-visible { outline: 2px solid #ed9182; outline-offset: 4px; }
@media (max-width: 780px) {
    .cs-article-hero { padding-top: 22px; }
    .cs-article-heading { padding: 32px 0; }
    .cs-article-meta { gap: 14px; font-size: 12px; }
    .cs-article-summary { margin-top: 18px; font-size: 16px; }
    .cs-article-cover { width: calc(100% - 36px); margin-top: 8px; border-radius: 12px; }
    .cs-article-cover img { max-height: 420px; }
    .cs-article-reading { width: calc(100% - 36px); padding: 32px 0 56px; }
    body.single-post .cs-article-content { font-size: 16px; line-height: 1.9; }
    body.single-post .cs-article-content h2 { font-size: 24px; }
    body.single-post .cs-article-content h3 { font-size: 21px; }
    .cs-article-content blockquote { padding: 18px 20px; }
    .cs-article-content :is(.alignleft,.alignright) { float: none; margin: 24px auto; }
    .cs-article-end { margin-top: 32px; }
    .cs-article-adjacent { grid-template-columns: minmax(0,1fr); gap: 12px; margin-top: 24px; }
    .cs-article-adjacent a { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .cs-article a { transition: none; }
}
