/*
 * layout.css — constrained / wide / full alignment logic.
 *
 * theme.json keeps useRootPaddingAwareAlignments on; the page shell applies
 * root padding, and alignment classes opt content out to the wide or full
 * measure. This mirrors the block-theme cascade for a classic PHP theme.
 */

:root {
	--earthworks-gutter: var(--wp--preset--spacing--40);
}

/* --- Page shell --- */

.site-header,
.site-main,
.site-footer {
	padding-inline: var(--earthworks-gutter);
}

/* --- Editorial flow: default constrained measure --- */

.site-main > *,
.entry-content > *,
.page-content > * {
	max-width: var(--earthworks-measure);
	margin-inline: auto;
}

/* Wide and full opt-outs, matching core alignment semantics. */

.site-main > .alignwide,
.entry-content > .alignwide {
	max-width: var(--wp--style--global--wide-size, 72rem);
}

.site-main > .alignfull,
.entry-content > .alignfull {
	max-width: none;
	margin-inline: calc(-1 * var(--earthworks-gutter));
}

.entry-content > .alignleft {
	float: left;
	margin-inline: 0 var(--wp--preset--spacing--40);
}

.entry-content > .alignright {
	float: right;
	margin-inline: var(--wp--preset--spacing--40) 0;
}

/* --- Header layout --- */

.site-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--50);
}

.site-title {
	margin: 0;
	font-size: var(--wp--preset--font-size--xl);
}

.site-title a {
	text-decoration: none;
	color: inherit;
}

.site-description {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
}

/* --- Navigation --- */

.site-navigation .menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
}

.site-navigation a {
	text-decoration: none;
	color: inherit;
}

.site-navigation a:hover {
	text-decoration: underline;
}

.nav-toggle {
	display: none;
}

@media (max-width: 40rem) {
	.nav-toggle {
		display: inline-block;
	}

	.site-navigation .menu {
		display: none;
		flex-direction: column;
		width: 100%;
	}

	.site-navigation[data-open="true"] .menu {
		display: flex;
	}
}

/* --- Post list --- */

.post-list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
	margin-block: var(--wp--preset--spacing--60);
}

.page-header {
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

.entry {
	margin-block: var(--wp--preset--spacing--60);
}

.entry-meta {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--muted);
}

.entry-featured-image {
	margin-block: var(--wp--preset--spacing--50);
}

/* --- Footer --- */

.site-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--70);
	padding-block: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--wp--preset--color--rule);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--muted);
}

.footer-navigation .menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-navigation a {
	color: inherit;
	text-decoration: none;
}

/* --- Pagination --- */

.pagination {
	margin-block: var(--wp--preset--spacing--60);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--sm);
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
}
