/* Reset all counters at the shared root so nested Gutenberg groups share them.
 * Plugin titles, TOC descendants, footnotes and related posts never participate.
 * Generated content stays outside textContent/selection/heading anchor input.
 */
body.numbered-headings .article-layout--post .article-body {
 counter-reset: sc-h2 0 sc-h3 0 sc-h4 0;
}
body.numbered-headings .article-layout--post .article-body :is(h2, h3, h4):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *) {
 position: relative;
 padding-inline-start: var(--sc-heading-number-width);
}
body.numbered-headings .article-layout--post .article-body :is(h2, h3, h4):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *)::before {
 position: absolute;
 inset-inline-start: 0;
 white-space: nowrap;
 user-select: none;
}
body.numbered-headings .article-layout--post .article-body h2:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *) {
 --sc-heading-number-width: 2.3em;
 counter-increment: sc-h2;
 counter-set: sc-h3 0 sc-h4 0;
}
body.numbered-headings .article-layout--post .article-body h2:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *)::before {
 content: counter(sc-h2) ". ";
 /* Empty alternative text keeps decorative numbers out of supporting AT. */
 content: counter(sc-h2) ". " / "";
}
body.numbered-headings .article-layout--post .article-body h3:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *) {
 --sc-heading-number-width: 3.2em;
 counter-increment: sc-h3;
 counter-set: sc-h4 0;
}
body.numbered-headings .article-layout--post .article-body h3:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *)::before {
 content: counter(sc-h2) "." counter(sc-h3) " ";
 /* Empty alternative text keeps decorative numbers out of supporting AT. */
 content: counter(sc-h2) "." counter(sc-h3) " " / "";
}
body.numbered-headings .article-layout--post .article-body h4:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *) {
 --sc-heading-number-width: 4.2em;
 counter-increment: sc-h4;
}
body.numbered-headings .article-layout--post .article-body h4:not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts)):not(:is(#ez-toc-container, .ez-toc-container, [class^="ez-toc-"], [class*=" ez-toc-"], .easy-footnote-title, #jp-relatedposts) *)::before {
 content: counter(sc-h2) "." counter(sc-h3) "." counter(sc-h4) " ";
 /* Empty alternative text keeps decorative numbers out of supporting AT. */
 content: counter(sc-h2) "." counter(sc-h3) "." counter(sc-h4) " " / "";
}
