/* Flow container ---------------------------------------------------------- */

.entry__content > *,
.fwf-constrained > * {
	max-width: var(--wp--style--global--content-size, 820px);
	margin-inline: auto;
}

.entry__content > .alignwide,
.fwf-constrained > .alignwide {
	max-width: var(--wp--style--global--wide-size, 1280px);
}

.entry__content > .alignfull,
.fwf-constrained > .alignfull {
	max-width: none;
	margin-inline: 0;
}

.entry__content,
.fwf-constrained {
	padding-inline: var(--wp--preset--spacing--20);
}

.entry__content > .alignfull,
.fwf-constrained > .alignfull {
	margin-inline: calc(-1 * var(--wp--preset--spacing--20));
	width: calc(100% + (2 * var(--wp--preset--spacing--20)));
}

.entry__content > .alignfull,
.fwf-constrained > .alignfull {
	padding-inline: var(--wp--preset--spacing--20);
}

.entry__content > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.entry__content > .alignfull + *,
.entry__content > * + .alignfull,
.entry__content > .fwf-section + *,
.entry__content > * + .fwf-section {
	margin-block-start: 0;
}

/* Left/right floats ------------------------------------------------------- */
.alignleft {
	float: left;
	margin-inline-end: var(--wp--preset--spacing--30);
	margin-block-end: var(--wp--preset--spacing--20);
}

.alignright {
	float: right;
	margin-inline-start: var(--wp--preset--spacing--30);
	margin-block-end: var(--wp--preset--spacing--20);
}

.aligncenter {
	margin-inline: auto;
}

/* Page scaffolding -------------------------------------------------------- */

/*
 * `.wp-site-blocks` is core's wrapper round every template: header part,
 * <main>, footer part. Core spaces its children with the global block gap,
 * which would open a band of page background between the header and the hero
 * and above the footer. The shell is laid out here instead.
 *
 * (0,1,0) beats core's `:where(.wp-site-blocks) > *`, which :where() holds at
 * zero, whatever order the two are printed in.
 */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > * {
	margin-block: 0;
}

.site__main {
	flex: 1 0 auto;
}

/*
 * The same for the groups that make up a template's frame — the article, the
 * page band, the card grid. Default-layout groups get core's flow spacing
 * between children, which the classic templates never had; section rhythm
 * comes from `.fwf-section` padding, not from margins between wrappers.
 *
 * `:where()` keeps each at (0,1,0), so a component rule that sets its own
 * margin on one of these children still wins on source order.
 */
.site__main > :where(*),
.site__main > .entry > :where(*),
.fwf-page-band__inner > :where(*),
.error-404 > :where(*),
.no-results > :where(*),
.post-grid > :where(*),
.post-card > :where(*),
.post-card__body > :where(*),
.entry__footer > :where(*),
.site-header :where(.is-layout-flow) > :where(*),
.site-footer :where(.is-layout-flow) > :where(*) {
	margin-block-start: 0;
}

.fwf-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--20);
}

.fwf-section {
	padding-block: var(--wp--preset--spacing--50);
}
