/* SPEC §2: erase core layout defaults before the unchanged mock rules restore them.
 * Low specificity lets the later source classes own each component's spacing. */
:where(.lw4-page) .is-layout-flow > *,
:where(.lw4-page) .is-layout-constrained > *,
:where(.lw4-page) .wp-block-group,
:where(.lw4-page) .wp-block-columns,
:where(.lw4-page) .wp-block-column,
:where(.lw4-page) .wp-block-image,
:where(.lw4-page) .wp-block-heading,
:where(.lw4-page) .wp-block-list,
:where(.lw4-page) .wp-block-quote,
:where(.lw4-page) .wp-block-post-template,
:where(.lw4-page) .wp-block-post-title,
:where(.lw4-page) .wp-block-post-excerpt,
:where(.lw4-page) .wp-block-buttons,
:where(.lw4-page) .wp-block-button {
	margin: 0;
	padding: 0;
}
/* SPEC §2: core constrained children have important inline margins. */
:where(.lw4-page) .is-layout-constrained > :not(.alignleft):not(.alignright):not(.alignfull) {
	max-width: none;
	margin-inline: 0 !important;
}
:where(.lw4-page) .is-layout-constrained > .wrap {
	margin-inline: auto !important;
}
:where(.lw4-page) .wp-block-columns {
	gap: 0;
}
:where(.lw4-page) .wp-block-column,
:where(.lw4-page) .wp-block-post-template > li {
	min-width: 0;
}
:where(.lw4-page) .wp-block-post-template,
:where(.lw4-page) .wp-block-query {
	list-style: none;
}
:where(.lw4-page) .wp-block-heading,
:where(.lw4-page) .wp-block-post-title {
	font-family: inherit;
	font-weight: 500;
	word-break: keep-all;
	text-wrap: wrap;
}
:where(.lw4-page) .wp-block-post-excerpt__excerpt {
	margin: 0;
}
:where(.lw4-page) figure {
	margin: 0;
}
:where(.lw4-page) .hero-visual figure,
:where(.lw4-page) .card-media figure,
:where(.lw4-page) .card-media figure a {
	display: block;
	height: 100%;
}
/* SPEC §2: core button wrappers carry no style; the anchor's .btn is the owner. */
body.lw4-page .wp-block-button .wp-block-button__link.btn {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	font: inherit;
	color: inherit;
	touch-action: manipulation;
}
:where(.lw4-page) .wp-block-buttons {
	gap: 0;
}
:where(.lw4-page) .wp-block-table {
	margin: 0;
}
/* SPEC §2: retain explicit table scrolling instead of clipping the document. */
:where(.lw4-page) .table-wrap {
	min-width: 0;
}

/* SPEC §2/§7: ad controls reset independently; legacy content buttons stay usable
 * until the D phase assigns their source .btn alias. */
.lw4-ad .wp-block-button .wp-block-button__link {
	all: unset;
	box-sizing: border-box;
	font: inherit;
	cursor: pointer;
	touch-action: manipulation;
}

/* SPEC §2.1 + B2-FIX1 #3: the native figure occupies the source cover's crop. */
:where(.lw4-page) .article-cover figure {
	margin: 0;
	height: 100%;
}
