/* Single posts only: keep the editorial system out of other page layouts. */
.site-header--no-hero + .site-navigation + .site-main.ccl-article-page {
    padding: calc(62px + clamp(2rem, 5vw, 4.5rem)) 0 calc(var(--ccl-space-section) + 5rem);
    overflow: clip visible;
}
.ccl-article__header { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.ccl-article__breadcrumbs { margin-bottom: clamp(2rem, 4vw, 3.5rem); font-size: var(--ccl-text-small); color: var(--ccl-color-muted); }
.ccl-article__breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4rem .75rem; margin: 0; padding: 0; list-style: none; }
.ccl-article__breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.ccl-article__breadcrumbs li + li::before { content: "/"; margin-right: .75rem; color: var(--ccl-color-border-strong); }
.ccl-article__breadcrumbs a { color: inherit; text-underline-offset: .2em; }
.ccl-article__heading { max-width: 1000px; padding: clamp(1rem, 2vw, 1.5rem) 0 0 clamp(1rem, 2vw, 1.5rem); border-top: 1px solid var(--ccl-color-border-strong); border-left: 1px solid var(--ccl-color-border-strong); }
.ccl-article__heading h1 { max-width: 960px; margin: 0; font-size: clamp(2.1rem, 4.2vw, 3.5rem); line-height: 1.1; letter-spacing: -.035em; overflow-wrap: anywhere; text-wrap: balance; }
.ccl-article__intro { max-width: 760px; margin: 1.4rem 0 0; color: var(--ccl-color-muted); font-size: var(--ccl-text-lead); line-height: 1.6; }
.ccl-article__meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin-top: 1.5rem; font-size: var(--ccl-text-small); color: var(--ccl-color-muted); }
.ccl-article__featured { margin: 0 0 clamp(2rem, 4vw, 3rem); }
.ccl-article__featured img { display: block; width: auto; max-width: 100%; height: auto; max-height: 80vh; object-fit: contain; margin-inline: auto; }
.ccl-article__featured figcaption { max-width: 760px; margin: .8rem auto 0; font-size: var(--ccl-text-small); line-height: 1.6; color: var(--ccl-color-muted); }
.ccl-article__layout { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; align-items: start; }
.ccl-article__reading, .ccl-article__sidebar { min-width: 0; }
.ccl-article__sidebar { margin-bottom: 2rem; }
.ccl-article__toc { padding: .25rem 1rem; border: 1px solid var(--ccl-color-border); background: var(--ccl-color-surface-warm); font-size: .875rem; }
.ccl-article__toc summary { padding: 1rem 0; color: var(--ccl-color-ink); font-weight: 600; cursor: pointer; }
.ccl-article__toc nav { padding-bottom: 1.25rem; }
.ccl-article__toc ol { display: grid; gap: .75rem; padding: 0; margin: 0; list-style: none; }
.ccl-article__toc a { display: block; color: var(--ccl-color-muted); line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
.ccl-article__toc a:hover, .ccl-article__toc a:focus-visible { color: var(--ccl-color-brand-blue); text-decoration: underline; text-underline-offset: .2em; }

/* Reading rhythm: explicit margins also accommodate classic-editor HTML. */
.ccl-article__content { display: flow-root; color: var(--ccl-color-ink); font-family: var(--ccl-font-primary); font-size: clamp(1rem, .95rem + .2vw, 1.125rem); line-height: 1.8; overflow-wrap: anywhere; }
.ccl-article__content > :first-child { margin-top: 0; }
.ccl-article__content > :last-child { margin-bottom: 0; }
.ccl-article__content p { max-width: none; margin-block: 0 1.35em; line-height: inherit; }
.ccl-article__content :is(h1, h2, h3, h4, h5, h6) { clear: both; margin: 2em 0 .75em; font-family: var(--ccl-font-primary); color: var(--ccl-color-ink); line-height: 1.25; letter-spacing: -.02em; scroll-margin-top: 7rem; text-wrap: pretty; }
.ccl-article__content :is(h1, h2) { font-size: clamp(1.65rem, 2.4vw, 2.125rem); font-weight: 600; }
.ccl-article__content h2 { position: relative; margin-block: clamp(2rem, 4vw, 3rem) .8em; padding-top: .55em; font-size: clamp(1.75rem, 2.5vw, 2.25rem); line-height: 1.2; letter-spacing: -.025em; }
.ccl-article__content h2:not(:empty)::before { content: ""; position: absolute; top: 0; left: 0; width: 2rem; height: 1px; background: var(--ccl-color-brand-blue); }
.ccl-article__content h3 { font-size: clamp(1.3rem, 1.8vw, 1.625rem); font-weight: 600; }
.ccl-article__content h4 { font-size: clamp(1.125rem, 1.4vw, 1.3rem); font-weight: 600; }
.ccl-article__content :is(h5, h6) { font-size: 1em; font-weight: 600; }
.ccl-article__content :is(h2, h3, h4) + :is(h3, h4, h5) { margin-top: 1.25em; }
.ccl-article__content strong { font-weight: 600; }
.ccl-article__content a { color: var(--ccl-color-brand-blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.ccl-article__content a:hover { text-decoration-thickness: 2px; }
.ccl-article-page :is(a, summary, button, [tabindex="0"]):focus-visible { outline: 2px solid var(--ccl-color-brand-blue); outline-offset: 4px; }
.ccl-article__content :is(ul, ol) { margin: 0 0 1.5em; padding-inline-start: 1.5em; }
.ccl-article__content li { margin-block: .4em; padding-inline-start: .2em; }
.ccl-article__content li::marker { color: var(--ccl-color-brand-blue); }
.ccl-article__content li :is(ul, ol) { margin-block: .5em; }
.ccl-article__content li > p { margin-bottom: .5em; }
.ccl-article__content :is(blockquote, .wp-block-pullquote) { margin: 2rem 0; padding: 1.25rem clamp(1rem, 3vw, 2rem); border: 0; border-left: 3px solid var(--ccl-color-brand-blue); background: var(--ccl-color-surface-warm); font-size: inherit; text-align: start; }
.ccl-article__content .wp-block-pullquote blockquote { margin: 0; padding: 0; border: 0; background: none; }
.ccl-article__content blockquote p { font-size: inherit; }
.ccl-article__content blockquote :last-child { margin-bottom: 0; }
.ccl-article__content cite { font-size: .875em; color: var(--ccl-color-muted); }
.ccl-article__content :is(.has-background, .wp-block-group.has-background) { padding: clamp(1rem, 3vw, 1.75rem); }
.ccl-article__content hr { margin-block: 2.5rem; border: 0; border-top: 1px solid var(--ccl-color-border); }
.ccl-article__content pre { max-width: 100%; overflow: auto; padding: 1rem; background: var(--ccl-color-canvas); font-size: .875em; }

/* Intrinsic image sizes are intentional: never enlarge a small legacy thumbnail. */
.ccl-article__content :is(figure, .wp-caption, .gallery) { max-width: 100%; margin-block: 2rem; }
.ccl-article__content figure { margin-inline: 0; }
.ccl-article__content .wp-caption { max-width: 100% !important; }
.ccl-article__content img { max-width: 100% !important; height: auto !important; object-fit: contain; vertical-align: middle; }
.ccl-article__content :is(.aligncenter, img.alignnone) { display: block; margin: 2rem auto; }
.ccl-article__content .alignleft { float: left; margin: .4rem 1.75rem 1rem 0; }
.ccl-article__content .alignright { float: right; margin: .4rem 0 1rem 1.75rem; }
.ccl-article__content :is(figcaption, .wp-caption-text, .gallery-caption) { margin: .75rem 0 0; color: var(--ccl-color-muted); font-size: .8125rem; line-height: 1.6; text-align: start; }
.ccl-article__content .wp-block-image img { display: block; }
.ccl-article__content .wp-block-image.aligncenter img { margin-inline: auto; }
.ccl-article__content .gallery { display: grid; grid-template-columns: repeat(var(--ccl-gallery-columns, 3), minmax(0, 1fr)); gap: 1rem; clear: both; }
.ccl-article__content .gallery-columns-1 { --ccl-gallery-columns: 1; }
.ccl-article__content .gallery-columns-2 { --ccl-gallery-columns: 2; }
.ccl-article__content :is(.gallery-columns-4, .gallery-columns-5, .gallery-columns-6, .gallery-columns-7, .gallery-columns-8, .gallery-columns-9) { --ccl-gallery-columns: 4; }
.ccl-article__content .gallery-item { width: auto; min-width: 0; margin: 0; }
.ccl-article__content .gallery-icon img { border: 0; }
.ccl-article__content .wp-block-gallery { gap: 1rem; }
/* Do not inherit the gallery block's default fixed-height cover crop for plans. */
.ccl-article__content .wp-block-gallery.has-nested-images figure.wp-block-image img { height: auto !important; object-fit: contain; flex: none; }
.ccl-article__content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: static; max-height: none; padding: .75rem 0 0; background: none; color: var(--ccl-color-muted); font-size: .8125rem; }

/* The non-JS fallback scrolls the table; JS adds a named, focusable region. */
.ccl-article__content :is(.wp-block-table, .ccl-article__table-scroll) { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.ccl-article__content table { display: block; width: 100%; max-width: 100%; margin-block: 2rem; overflow-x: auto; border-collapse: collapse; border: 0; font-size: .875rem; line-height: 1.6; font-variant-numeric: tabular-nums; }
.ccl-article__table-scroll { margin-block: 2rem; border: 1px solid var(--ccl-color-border); }
.ccl-article__table-scroll table { display: table; min-width: 100%; max-width: none; margin: 0; overflow: visible; table-layout: auto; }
.ccl-article__content .wp-block-table:has(.ccl-article__table-scroll) { overflow: visible; }
.ccl-article__content .wp-block-table .ccl-article__table-scroll { margin-block: 0; }
.ccl-article__content :is(th, td) { min-width: 9rem; padding: .95rem 1.1rem; border: 0; border-bottom: 1px solid var(--ccl-color-border); border-right: 1px solid var(--ccl-color-border); vertical-align: top; overflow-wrap: anywhere; }
.ccl-article__content th { background: var(--ccl-color-brand-blue); color: white; font-weight: 600; }
.ccl-article__content th:not([align]):not(.has-text-align-right):not(.has-text-align-center) { text-align: start; }
/* Count data rows only: a header-only row in tbody must not shift the stripes. */
.ccl-article__content :is(table, tbody) > tr:nth-child(odd of :has(> td)) > td { background: var(--ccl-color-surface); }
.ccl-article__content :is(table, tbody) > tr:nth-child(even of :has(> td)) > td { background: var(--ccl-color-canvas); }
.ccl-article__content tr > :last-child { border-right: 0; }
.ccl-article__content tbody:last-child tr:last-child > * { border-bottom: 0; }
.ccl-article__content tfoot { background: var(--ccl-color-surface-warm); font-weight: 600; }
.ccl-article__content :is(th, td) > :last-child { margin-bottom: 0; }
.ccl-article__content table caption { padding: .9rem 1.1rem; font-size: .875rem; line-height: 1.5; font-weight: 600; text-align: start; color: var(--ccl-color-ink); }
.ccl-article__content th a { color: inherit; }
.ccl-article__content .ccl-article__table-hint { margin: -1.25rem 0 2rem; color: var(--ccl-color-muted); font-size: .8125rem; line-height: 1.5; }
.ccl-article__content .wp-block-table .ccl-article__table-hint { margin: .5rem 0 0; }
.ccl-article__table-hint[hidden] { display: none; }
.ccl-article__content :is(.has-text-align-right, [align="right"]) { text-align: right; }
.ccl-article__content :is(.has-text-align-center, [align="center"]) { text-align: center; }

.ccl-article__content :is(iframe, video, embed, object) { display: block; max-width: 100%; margin-inline: auto; }
.ccl-article__content video { height: auto; }
.ccl-article__content iframe.ccl-article__video { width: 100%; height: auto; aspect-ratio: var(--ccl-embed-ratio, 16 / 9); }
.ccl-article__content .wp-block-embed__wrapper { max-width: 100%; }
.ccl-article__pagination { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.ccl-article-related { margin-top: var(--ccl-space-section); padding-top: 2rem; border-top: 1px solid var(--ccl-color-border); }
.ccl-article-related__heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 2rem; }
.ccl-article-related__heading h2 { margin: 0; font-size: var(--ccl-text-h2); }

@media (min-width: 1100px) {
    .ccl-article__layout { grid-template-columns: minmax(0, 820px); }
    .ccl-article__layout--with-toc { grid-template-columns: 260px minmax(0, 820px); justify-content: start; gap: clamp(2rem, 5vw, 5rem); }
    .ccl-article__sidebar { position: sticky; top: 6rem; margin: 0; max-height: calc(100dvh - 7rem); overflow-y: auto; scrollbar-width: thin; }
    .ccl-article__toc { border-top: 2px solid var(--ccl-color-brand-blue); }
    .ccl-article__layout:not(.ccl-article__layout--with-toc) .ccl-article__content > :is(.alignwide, .alignfull) { width: min(960px, calc(100vw - 4rem)); max-width: none; margin-inline: calc((820px - min(960px, 100vw - 4rem)) / 2); }
}
@media (max-width: 600px) {
    .ccl-article__featured img { max-height: 60vh; }
    .ccl-article__heading { padding-left: 1rem; }
    .ccl-article__content { line-height: 1.75; }
    .ccl-article__content :is(.alignleft, .alignright) { float: none; display: block; margin: 1.75rem auto; }
    .ccl-article__content .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ccl-article__content .gallery-columns-1 { grid-template-columns: 1fr; }
    .ccl-article__content :is(th, td) { padding: .8rem .9rem; }
}
