/* Opt-in layout primitives; no homepage composition is defined here. */
.dsf-site {
	display: flex;
	flex-direction: column;
	min-block-size: 100vh;
	min-block-size: 100svh;
}

.site-main {
	flex: 1;
	min-inline-size: 0;
}

/* Gutter sits outside the 1440px content area; padding stays available on mobile. */
.dsf-container {
	inline-size: min(calc(100% - var(--dsf-gutter) * 2), var(--dsf-width-wide));
	margin-inline: auto;
}

.dsf-section { padding-block: var(--dsf-section-space); }

.dsf-stack > * + * { margin-block-start: var(--dsf-stack-space, var(--dsf-space-5)); }

.dsf-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--dsf-space-3);
}

.dsf-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: var(--dsf-space-5);
}

.dsf-grid > * { min-inline-size: 0; }

.dsf-prose { overflow-wrap: anywhere; }

.dsf-prose > * {
	max-inline-size: min(100%, var(--dsf-width-content));
	margin-inline: auto;
}

.dsf-prose > :where(p, ul, ol, dl, blockquote) { max-inline-size: min(100%, var(--dsf-measure)); }
.dsf-prose > * + * { margin-block-start: var(--dsf-space-5); }
.dsf-prose > :where(h2, h3, h4, h5, h6):not(:first-child) { margin-block-start: var(--dsf-space-7); }
.dsf-prose > .alignwide { max-inline-size: 100%; }
.dsf-prose > .alignfull { max-inline-size: 100%; }
.dsf-prose :where(ul, ol) { padding-inline-start: var(--dsf-space-5); }
.dsf-prose li + li { margin-block-start: var(--dsf-space-2); }
.dsf-prose :where(pre, .wp-block-table) { overflow-x: auto; }
.dsf-prose pre { white-space: pre; }
.dsf-prose blockquote { padding: var(--dsf-space-5); background: var(--dsf-color-tint); }
.dsf-prose table { inline-size: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.dsf-prose :where(th, td) { padding: var(--dsf-space-3); text-align: start; border-block-end: 1px solid var(--dsf-color-border); }

.dsf-entry-list { margin-block-start: var(--dsf-space-7); --dsf-stack-space: var(--dsf-space-7); }
.dsf-entry { --dsf-stack-space: var(--dsf-space-5); }
.dsf-search { max-inline-size: 36rem; --dsf-stack-space: var(--dsf-space-2); }
.dsf-search input { flex: 1 1 12rem; min-inline-size: 0; }

.alignleft { float: inline-start; margin-inline-end: var(--dsf-space-5); margin-block-end: var(--dsf-space-5); }
.alignright { float: inline-end; margin-inline-start: var(--dsf-space-5); margin-block-end: var(--dsf-space-5); }
.aligncenter { margin-inline: auto; }
.dsf-prose::after { content: ""; display: table; clear: both; }

@media (max-width: 40rem) {
	.dsf-prose :where(.alignleft, .alignright) { float: none; margin-inline: auto; }
}
