/* ========================================================================== 
   Overdrive — publisher-style article rhythm
   Version 2.0 (2026-08-15)

   The article body now follows the same broad editorial principle seen across
   high-volume gaming publishers: prose stays continuous, section headings are
   clearly separated without becoming isolated "cards", and special modules
   interrupt the read only when they need to.

   Implementation detail: this layer uses ONE-DIRECTION spacing. Editorial
   elements own their top gap; they do not stack top + bottom margins. That
   removes margin-collapsing surprises and makes every element pair predictable.
   Advertising geometry is intentionally excluded from this contract.
   ========================================================================== */

body.single-post.go-verge .go-article__content {
	--go-prose-gap: 18px;
	--go-heading-2-gap: 34px;
	--go-heading-3-gap: 28px;
	--go-heading-4-gap: 24px;
	--go-heading-follow: 10px;
	--go-module-gap: 26px;
	--go-related-gap: 24px;
	--go-caption-gap: 8px;
	display: flow-root;
}

/* --------------------------------------------------------------------------
   1. Kill inherited double-spacing on EDITORIAL children only.
   Ad slots are deliberately not listed here.
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > :where(
	p,
	h2, h3, h4, h5, h6,
	ul, ol,
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-embed,
	.wp-block-cover,
	.wp-block-media-text,
	.wp-block-columns,
	.wp-block-group,
	blockquote,
	.wp-block-quote,
	.wp-block-pullquote,
	.go-editorial-quote,
	pre,
	.wp-block-code,
	.wp-block-table,
	.go-table-scroll,
	table,
	.go-inline-related,
	.go-context-block--related,
	.go-inline-cta,
	.go-faq,
	.schema-faq-section,
	.rank-math-question,
	.wp-block-details,
	details.go-faq-item,
	.go-poll,
	.go-quiz,
	.go-gb-interactive,
	hr,
	.wp-block-separator,
	.wp-block-spacer
) {
	margin-block: 0;
}

/* Empty editor paragraphs must never become fake vertical space. */
body.single-post.go-verge .go-article__content > p:empty,
body.single-post.go-verge .go-article__content > p:has(> br:only-child) {
	display: none;
}

/* --------------------------------------------------------------------------
   2. Continuous prose
   18px is enough to identify a new paragraph while keeping the article moving.
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > p + p {
	margin-block-start: var(--go-prose-gap);
}

/* Same rhythm for a simple paragraph/list transition. */
body.single-post.go-verge .go-article__content > p + :where(ul, ol),
body.single-post.go-verge .go-article__content > :where(ul, ol) + p {
	margin-block-start: var(--go-prose-gap);
}

body.single-post.go-verge .go-article__content > :where(ul, ol) + :where(ul, ol) {
	margin-block-start: 14px;
}

/* --------------------------------------------------------------------------
   3. Section headings
   One clear section break, then a tight re-entry into copy — the important
   relationship for news/guides is "space BEFORE heading, little space AFTER".
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > :where(h2, h3, h4, h5, h6) {
	font-family: var(--font-sans);
	color: var(--text);
	text-wrap: balance;
}

body.single-post.go-verge .go-article__content > h2 {
	margin-block-start: var(--go-heading-2-gap);
	line-height: 1.16;
}

body.single-post.go-verge .go-article__content > h3 {
	margin-block-start: var(--go-heading-3-gap);
	line-height: 1.2;
}

body.single-post.go-verge .go-article__content > h4 {
	margin-block-start: var(--go-heading-4-gap);
	line-height: 1.24;
}

body.single-post.go-verge .go-article__content > :where(h5, h6) {
	margin-block-start: 22px;
	line-height: 1.28;
}

/* Heading → prose/list/media. A heading should introduce its answer immediately. */
body.single-post.go-verge .go-article__content > :where(h2, h3, h4, h5, h6) + :where(p, ul, ol) {
	margin-block-start: var(--go-heading-follow);
}

body.single-post.go-verge .go-article__content > :where(h2, h3, h4) + :where(
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-embed,
	.wp-block-table,
	.go-table-scroll,
	table
) {
	margin-block-start: 16px;
}

/* Heading directly after heading: keep hierarchy visible without a canyon. */
body.single-post.go-verge .go-article__content > :where(h2, h3, h4, h5, h6) + :where(h2, h3, h4, h5, h6) {
	margin-block-start: 22px;
}

/* --------------------------------------------------------------------------
   4. Lists
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > :where(ul, ol) {
	padding-inline-start: 1.35em;
}

body.single-post.go-verge .go-article__content > :where(ul, ol) > li {
	margin-block: 0 8px;
}

body.single-post.go-verge .go-article__content > :where(ul, ol) > li:last-child {
	margin-block-end: 0;
}

body.single-post.go-verge .go-article__content :where(li > ul, li > ol) {
	margin-block: 8px 4px;
}

/* A list ending before a new section uses the heading's section gap only. */
body.single-post.go-verge .go-article__content > :where(ul, ol) + :where(h2, h3, h4) {
	margin-block-start: var(--go-heading-2-gap);
}
body.single-post.go-verge .go-article__content > :where(ul, ol) + h3 { margin-block-start: var(--go-heading-3-gap); }
body.single-post.go-verge .go-article__content > :where(ul, ol) + h4 { margin-block-start: var(--go-heading-4-gap); }

/* --------------------------------------------------------------------------
   5. Images, video, embeds and structural Gutenberg blocks
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > p + :where(
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-embed,
	.wp-block-cover,
	.wp-block-media-text,
	.wp-block-columns,
	.wp-block-group
),
body.single-post.go-verge .go-article__content > :where(ul, ol) + :where(
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-embed,
	.wp-block-cover,
	.wp-block-media-text,
	.wp-block-columns,
	.wp-block-group
) {
	margin-block-start: var(--go-module-gap);
}

body.single-post.go-verge .go-article__content > :where(
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-embed,
	.wp-block-cover,
	.wp-block-media-text,
	.wp-block-columns,
	.wp-block-group
) + p {
	margin-block-start: 22px;
}

body.single-post.go-verge .go-article__content > :where(
	figure,
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-video,
	.wp-block-audio,
	.wp-block-embed,
	.wp-block-cover,
	.wp-block-media-text,
	.wp-block-columns,
	.wp-block-group
) + :where(h2, h3, h4) {
	margin-block-start: var(--go-heading-2-gap);
}

body.single-post.go-verge .go-article__content > :where(figure, .wp-block-image) figcaption,
body.single-post.go-verge .go-article__content > figure > figcaption {
	margin-block: var(--go-caption-gap) 0;
	line-height: 1.45;
}

/* Ordinary copy inside Gutenberg layout containers keeps the same compact flow. */
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > p {
	margin-block: 0;
}
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > p + p {
	margin-block-start: var(--go-prose-gap);
}
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > :where(h2, h3, h4) {
	margin-block-end: 0;
}
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > h2 {
	margin-block-start: var(--go-heading-2-gap);
}
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > h3 {
	margin-block-start: var(--go-heading-3-gap);
}
body.single-post.go-verge .go-article__content :where(.wp-block-group, .wp-block-column, .wp-block-media-text__content) > :where(h2, h3, h4) + p {
	margin-block-start: var(--go-heading-follow);
}

/* --------------------------------------------------------------------------
   6. Quotes, code, tables and separators
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > p + :where(
	blockquote,
	.wp-block-quote,
	.wp-block-pullquote,
	.go-editorial-quote,
	pre,
	.wp-block-code,
	.wp-block-table,
	.go-table-scroll,
	table
),
body.single-post.go-verge .go-article__content > :where(
	blockquote,
	.wp-block-quote,
	.wp-block-pullquote,
	.go-editorial-quote,
	pre,
	.wp-block-code,
	.wp-block-table,
	.go-table-scroll,
	table
) + p {
	margin-block-start: var(--go-module-gap);
}

body.single-post.go-verge .go-article__content > :where(
	blockquote,
	.wp-block-quote,
	.wp-block-pullquote,
	.go-editorial-quote,
	pre,
	.wp-block-code,
	.wp-block-table,
	.go-table-scroll,
	table
) + :where(h2, h3, h4) {
	margin-block-start: var(--go-heading-2-gap);
}

body.single-post.go-verge .go-article__content :where(blockquote, .wp-block-quote, .wp-block-pullquote, .go-editorial-quote) p {
	margin-block: 0;
}
body.single-post.go-verge .go-article__content :where(blockquote, .wp-block-quote, .wp-block-pullquote, .go-editorial-quote) p + p {
	margin-block-start: 12px;
}

body.single-post.go-verge .go-article__content > :where(.wp-block-separator, hr) {
	margin-block-start: 30px;
}
body.single-post.go-verge .go-article__content > :where(.wp-block-separator, hr) + *:not(.go-ad-slot) {
	margin-block-start: 30px;
}

body.single-post.go-verge .go-article__content > .wp-block-spacer {
	max-height: 40px;
}

/* --------------------------------------------------------------------------
   7. Related / Leia também and other editorial interruptions
   -------------------------------------------------------------------------- */
/* Older visual layers gave primary/secondary related blocks 34–64px margins.
   Reset them explicitly (without :where) so this final rhythm layer wins the
   cascade even against those more-specific historical selectors. */
body.single-post.go-verge .go-article__content > .go-inline-related,
body.single-post.go-verge .go-article__content > .go-context-block--related {
	margin-block: 0;
}

body.single-post.go-verge .go-article__content > .go-inline-related--secondary {
	padding-top: 14px;
}
body.single-post.go-verge .go-article__content > p + :where(.go-inline-related, .go-context-block--related),
body.single-post.go-verge .go-article__content > :where(ul, ol) + :where(.go-inline-related, .go-context-block--related) {
	margin-block-start: var(--go-related-gap);
}

body.single-post.go-verge .go-article__content > :where(.go-inline-related, .go-context-block--related) + p {
	margin-block-start: var(--go-related-gap);
}

body.single-post.go-verge .go-article__content > :where(.go-inline-related, .go-context-block--related) + h2 {
	margin-block-start: var(--go-heading-2-gap);
}
body.single-post.go-verge .go-article__content > :where(.go-inline-related, .go-context-block--related) + h3 {
	margin-block-start: var(--go-heading-3-gap);
}

body.single-post.go-verge .go-article__content .go-inline-related__title,
body.single-post.go-verge .go-article__content .go-context-block--related .go-context-block__title {
	margin: 0 0 10px;
	line-height: 1.25;
}

body.single-post.go-verge .go-article__content .go-inline-related__items,
body.single-post.go-verge .go-article__content .go-context-block--related .go-context-links {
	margin: 0;
}

body.single-post.go-verge .go-article__content > p + :where(
	.go-inline-cta,
	.go-faq,
	.schema-faq-section,
	.rank-math-question,
	.wp-block-details,
	details.go-faq-item,
	.go-poll,
	.go-quiz,
	.go-gb-interactive
) {
	margin-block-start: var(--go-module-gap);
}

body.single-post.go-verge .go-article__content > :where(
	.go-inline-cta,
	.go-faq,
	.schema-faq-section,
	.rank-math-question,
	.wp-block-details,
	details.go-faq-item,
	.go-poll,
	.go-quiz,
	.go-gb-interactive
) + p {
	margin-block-start: var(--go-module-gap);
}

body.single-post.go-verge .go-article__content > details:not(.go-faq-item):not(.go-toc) {
	margin-block: 0;
}
body.single-post.go-verge .go-article__content > p + details:not(.go-faq-item):not(.go-toc),
body.single-post.go-verge .go-article__content > details:not(.go-faq-item):not(.go-toc) + p {
	margin-block-start: var(--go-module-gap);
}

/* --------------------------------------------------------------------------
   8. End of article
   -------------------------------------------------------------------------- */
body.single-post.go-verge .go-article__content > :last-child:not(.go-ad-slot) {
	margin-block-end: 0;
}

/* --------------------------------------------------------------------------
   9. Mobile — slightly tighter, never cramped
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	body.single-post.go-verge .go-article__content {
		--go-prose-gap: 16px;
		--go-heading-2-gap: 30px;
		--go-heading-3-gap: 25px;
		--go-heading-4-gap: 22px;
		--go-heading-follow: 9px;
		--go-module-gap: 22px;
		--go-related-gap: 20px;
	}

	body.single-post.go-verge .go-article__content > .wp-block-spacer {
		max-height: 32px;
	}
}
