/* Article layout, reading content, index and contextual contact actions. */
/* Internal article: editorial reading column and section index. */
.sws-post { padding:40px 0 80px }
.sws-post__breadcrumb { margin-bottom:40px; font-size:13px; color:var(--color-muted) }
.sws-post__breadcrumb ol { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px }
.sws-post__breadcrumb li+li::before { content:'/'; margin-right:16px; color:var(--color-muted) }
.sws-post__breadcrumb a { text-decoration:underline; text-underline-offset:4px }
.sws-post__header { max-width:880px; padding-bottom:40px; margin-bottom:48px; border-bottom:1px solid var(--color-line) }
.sws-post__category { color:var(--color-primary-dark); font-size:14px; font-weight:600; margin-bottom:20px }
.sws-post h1 { font-size:clamp(32px,4.2vw,56px); letter-spacing:-.035em; line-height:1.12; text-wrap:balance; margin-bottom:24px }
.sws-post__lead { max-width:76ch; font-size:18px; line-height:1.75 }
.sws-post__lead h2 { font-size:32px; line-height:1.25; letter-spacing:-.025em; text-wrap:balance; margin-bottom:24px }
.sws-post__lead p { color:var(--color-text) }
.sws-post__lead p+p { margin-top:24px }
.sws-post__byline { font-size:13px; margin-top:24px }
.sws-post__layout { display:flex; align-items:flex-start; gap:64px; max-width:1192px }
.sws-post__body { flex:1; min-width:0; font-size:17px; line-height:1.8 }
.sws-post__body>p,.sws-post__body>ul { max-width:76ch }
.sws-post__body p { color:var(--color-text); margin:0 0 24px }
.sws-post__body h2 { font-size:32px; line-height:1.25; letter-spacing:-.025em; text-wrap:balance; margin:56px 0 24px }
.sws-post__body h2:first-child { margin-top:0 }
.sws-post__body h3 { font-size:24px; line-height:1.3; text-wrap:balance; margin:40px 0 20px }
.sws-post__body ul { list-style:disc; padding-left:24px; margin-bottom:24px }
.sws-post__body li { padding-left:4px; margin-bottom:12px }
.sws-post__body li::marker { color:var(--color-primary-dark) }
.sws-post__body a { color:var(--color-primary-dark); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere }
.sws-post__body a:hover { text-decoration-thickness:2px }
.sws-post__body strong { font-weight:600 }
.sws-post code { font-family:'DejaVu Sans Mono',Consolas,monospace; font-size:.88em; overflow-wrap:anywhere }
.sws-post p code,.sws-post li code,.sws-post td code { padding:2px 4px; background:#eaf2f3; border-radius:var(--radius-sm) }
.sws-post pre { max-width:100%; overflow-x:auto; margin:24px 0 32px; padding:24px; border-radius:var(--radius-md); background:#17272c; color:#edf7f8; line-height:1.7; tab-size:4; overscroll-behavior-x:contain }
.sws-post pre code { display:block; overflow-wrap:normal; white-space:pre; font-size:14px }
.sws-post pre:focus-visible,.sws-post__table:focus-visible { outline:3px solid var(--color-primary-dark); outline-offset:4px }
.sws-post__table { max-width:100%; overflow-x:auto; margin:24px 0 32px; border:1px solid var(--color-line); border-radius:var(--radius-md); overscroll-behavior-x:contain }
.sws-post table { width:100%; min-width:560px; border-collapse:collapse; font-size:14px; line-height:1.65 }
.sws-post th,.sws-post td { text-align:left; vertical-align:top; padding:16px; border-bottom:1px solid var(--color-line) }
.sws-post th { background:#eaf2f3; color:var(--color-text); font-weight:600 }
.sws-post tbody tr:last-child td { border-bottom:0 }
.sws-post td:first-child { width:34% }
.sws-post__figure { margin:32px 0 48px }
.sws-post__figure img { width:100%; height:auto; border-radius:var(--radius-md); background:#000 }
.sws-post__figure figcaption { margin-top:16px; font-size:13px; line-height:1.7; color:var(--color-muted) }
.sws-post__figure figcaption a { display:inline-block; margin-top:12px }
.sws-post__sidebar { order:2; flex:0 0 248px; position:sticky; top:32px; min-width:0 }
.sws-post__toc { border-top:2px solid var(--color-primary-dark); padding-top:20px }
.sws-post__toc summary { cursor:pointer; font-size:14px; font-weight:600; margin-bottom:20px; min-height:32px }
.sws-post__toc summary:focus-visible { outline:3px solid var(--color-primary-dark); outline-offset:4px }
.sws-post__toc ol { list-style:decimal; padding-left:20px; font-size:14px; line-height:1.5 }
.sws-post__toc li { padding-left:4px; margin-bottom:16px }
.sws-post__toc a { display:inline-block; color:var(--color-muted); padding:4px 0; text-decoration:underline; text-underline-offset:4px }
.sws-post__toc a:hover { color:var(--color-primary-dark) }
.sws-post__return { margin-top:48px; padding-top:24px; border-top:1px solid var(--color-line) }
@media(max-width:1199px) {
    .sws-post__layout { gap:40px }
    .sws-post__sidebar { flex-basis:208px }
}
@media(max-width:991px) {
    .sws-post { padding:32px 0 64px }
    .sws-post__breadcrumb { margin-bottom:32px }
    .sws-post__header { margin-bottom:32px; padding-bottom:32px }
    .sws-post__layout { flex-direction:column; gap:32px }
    .sws-post__sidebar { order:0; position:static; flex-basis:auto; width:100% }
    .sws-post__body { width:100% }
    .sws-post__toc ol { display:flex; flex-wrap:wrap; gap:8px 32px; list-style:none; padding:0 }
    .sws-post__toc li { padding:0; margin:0 }
    .sws-post__toc summary { margin-bottom:12px }
}
@media(max-width:767px) {
    .sws-post { padding:24px 0 48px }
    .sws-post__breadcrumb { font-size:12px; margin-bottom:24px }
    .sws-post__breadcrumb ol { gap:8px 12px }
    .sws-post__breadcrumb li+li::before { margin-right:12px }
    .sws-post h1 { font-size:32px; margin-bottom:20px }
    .sws-post__category { margin-bottom:16px }
    .sws-post__lead { font-size:16px; line-height:1.75 }
    .sws-post__lead h2 { font-size:28px }
    .sws-post__body { font-size:16px; line-height:1.75 }
    .sws-post__body h2 { font-size:28px; margin-top:40px; margin-bottom:20px }
    .sws-post__body h3 { font-size:22px; margin-top:32px; margin-bottom:16px }
    .sws-post__body p,.sws-post__body ul { margin-bottom:20px }
    .sws-post pre { padding:16px; margin:20px 0 24px }
    .sws-post pre code { font-size:13px }
    .sws-post__figure { margin:24px 0 32px }
    .sws-post__toc ol { gap:4px 24px }
    .sws-post__toc a { min-height:36px; display:inline-flex; align-items:center }
}
.sws-post__figure--books img { display:block; max-width:520px; height:auto; margin-inline:auto; background:transparent }
.sws-post__figure--books figcaption { max-width:520px; margin-inline:auto }
.sws-post__figure--instagram img { background:#f5f5f3 }

/* Article conversion: one primary contact action and a secondary service route. */
.sws-post__cta { margin-top:40px; padding:24px 0; border-top:2px solid var(--color-primary-dark) }
.sws-post__cta .sws-post__cta-title { margin:0 0 20px; font-size:22px; line-height:1.35 }
.sws-post__cta .actions { gap:12px 24px }
.sws-post__cta a.button { color:var(--color-text); text-decoration:none }
.sws-post__cta a.text-link { text-decoration:underline }
.sws-post__body .sws-post__contact-note { padding:16px 20px; border-left:2px solid var(--color-primary-dark); background:var(--color-surface); font-size:14px }
@media(max-width:767px) {
    .sws-post__cta { margin-top:32px }
    .sws-post__cta .sws-post__cta-title { font-size:20px }
}
