@layer layout {

	.page-header {
		display: block;
	}

	.content-wrapper {
		margin: 0 auto;
		max-width: var(--main-width);
		width: 100%;
	}

	.content-wrapper .layout-grid {
		display: flex;
		width: 100%;
		gap: var(--space-md);
	}

	.content-wrapper .layout-grid > * {
		min-width: 0;
	}

	.content-wrapper.sidebar-none .layout-grid {
		flex-direction: column;
	}

	.content-wrapper.sidebar-left .layout-grid,
	.content-wrapper.sidebar-right .layout-grid,
	.content-wrapper.sidebar-both .layout-grid {
		display: flex;
		flex-direction: row;
	}

	.content-wrapper.sidebar-left .layout-grid > .sidebar,
	.content-wrapper.sidebar-right .layout-grid > .sidebar {
		flex: 0 1 30%;
		max-width: 30%;
		min-width: 0;
	}

	.content-wrapper.sidebar-left .layout-grid > .site-main,
	.content-wrapper.sidebar-right .layout-grid > .site-main {
		flex: 1 1 70%;
		min-width: 0;
	}

	.content-wrapper.sidebar-both .layout-grid > .sidebar {
		flex: 0 1 20%;
		max-width: 20%;
		min-width: 0;
	}

	.content-wrapper.sidebar-both .layout-grid > .site-main {
		flex: 1 1 60%;
		min-width: 0;
	}

	.site-main {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		gap: var(--space-xs);
		flex-direction: column;
	}

	.row {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-md);
	}

	.row.column-1 {
		grid-template-columns: 1fr;
	}

	.row.column-2 {
		grid-template-columns: repeat(2, 1fr);
	}

	.row.column-3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.row.column-4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.stack {
		display: flex;
		flex-direction: column;
		gap: var(--space-sm);
	}

	.stack-xs {
		gap: var(--space-xxs);
	}

	.stack-sm {
		gap: var(--space-xs);
	}

	.stack-md {
		gap: var(--space-sm);
	}

	.stack-lg {
		gap: var(--space-md);
	}

	.stack-xl {
		gap: var(--space-lg);
	}

	.cluster {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}

	.cluster-xxs {
		gap: var(--space-xxs);
	}

	.cluster-xs {
		gap: var(--space-xs);
	}

	.cluster-sm {
		gap: var(--space-sm);
	}

	.cluster-md {
		gap: var(--space-md);
	}

	.cluster-lg {
		gap: var(--space-lg);
	}

	.cluster-xl {
		gap: var(--space-xl);
	}

	.cluster-2xl {
		gap: var(--space-2xl);
	}

	.block {
		--block-padding: var(--space-md);
		--block-radius: var(--radius-card);
		--block-border-width: var(--border-hairline);

		padding: var(--block-padding);
		border-width: var(--block-border-width);
		border-style: solid;
		border-radius: var(--block-radius);
	}

	.block-flush {
		--block-padding: 0;
		--block-border-width: var(--border-hairline);
		--block-radius: var(--radius-none);
	}

	.block-card {
		--block-padding: var(--space-lg);
		--block-radius: var(--radius-card);
		--block-border-width: var(--border-hairline);
	}

	.block-section {
		--block-padding: var(--space-xl);
		--block-radius: var(--radius-none);
		--block-border-width: var(--border-thick);
	}

	.block-strong {
		--block-padding: var(--space-sm) var(--space-lg);
		--block-border-width: var(--border-thick);
	}

	.block-soft {
		--block-padding: var(--space-sm);
		--block-border-width: var(--border-hairline);
		--block-radius: var(--radius-sm);
	}

	.action {
		--action-padding-x: var(--space-md);
		--action-padding-y: var(--space-sm);
		--action-radius: var(--radius-control);
		--action-font-size: var(--text-body-size);
		--action-font-weight: var(--fw-medium);
		--action-gap: var(--space-xs);

		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--action-gap);

		padding: var(--action-padding-y) var(--action-padding-x);

		font-size: var(--action-font-size);
		font-weight: var(--action-font-weight);
		line-height: 1;
		font-family: inherit;

		border: none;
		border-radius: var(--action-radius);
		background: none;
		color: inherit;

		text-decoration: none;
		cursor: pointer;
		white-space: nowrap;
	}

	.action-sm {
		--action-padding-x: var(--space-sm);
		--action-padding-y: var(--space-xs);
		--action-font-size: var(--text-small-size);
	}

	.action-lg {
		--action-padding-x: var(--space-lg);
		--action-padding-y: var(--space-md);
		--action-font-size: var(--text-lead-size);
	}

	.action-pill {
		--action-radius: var(--radius-pill);
	}

	.action-square {
		--action-radius: var(--radius-xs);
	}
	.action-nav {
		--action-padding-x: var(--space-sm);
		--action-padding-y: var(--space-xs);
		--action-font-size: var(--text-body-size);
		--action-font-weight: var(--fw-medium);
	}
	.action-nav-sub {
		--action-padding-x: var(--space-sm);
		--action-padding-y: var(--space-xs);
		--action-font-size: var(--text-small-size);
		--action-font-weight: var(--fw-regular);
	}

	.text-body {
		font-size: var(--text-body-size);
		font-weight: var(--text-body-weight);
		line-height: var(--text-body-lh);
	}

	.text-lead {
		font-size: var(--text-lead-size);
		font-weight: var(--text-lead-weight);
		line-height: var(--text-lead-lh);
	}

	.text-small {
		font-size: var(--text-small-size);
		font-weight: var(--text-small-weight);
		line-height: var(--text-small-lh);
	}

	.text-caption {
		font-size: var(--text-caption-size);
		font-weight: var(--text-caption-weight);
		line-height: var(--text-caption-lh);
	}
	.site-banner {
		position: relative;
		width: 100%;
		min-height: clamp(400px, 60vh, 900px);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.site-banner-overlay {
		position: absolute;
		inset: 0;
		background: rgba(0, 0, 0, 0.35);
		z-index: 1;
	}

	.site-banner > *:not(.site-banner-overlay) {
		position: relative;
		z-index: 2;
	}
	.alignwide {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}

	.alignfull {
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}

	@media (max-width: 768px) {

		.content-wrapper.sidebar-left .layout-grid,
		.content-wrapper.sidebar-right .layout-grid,
		.content-wrapper.sidebar-both .layout-grid {
			flex-direction: column;
		}

		.content-wrapper.sidebar-left .layout-grid > .site-main,
		.content-wrapper.sidebar-right .layout-grid > .site-main,
		.content-wrapper.sidebar-both .layout-grid > .site-main,
		.content-wrapper.sidebar-left .layout-grid > .sidebar,
		.content-wrapper.sidebar-right .layout-grid > .sidebar,
		.content-wrapper.sidebar-both .layout-grid > .sidebar {
			flex: 0 0 100%;
			max-width: 100%;
		}

		.row,
		.row.column-1,
		.row.column-2,
		.row.column-3,
		.row.column-4 {
			grid-template-columns: 1fr;
		}
	}
}
