/* ForgePress Base Layout
 * Container, content area, grid layout for sidebar + content, and
 * responsive breakpoints. Mobile-first. */

:root {
	--fp-container: 1200px;
	--fp-content: 768px;
	--fp-sidebar: 320px;
	--fp-section-padding: 64px;
	--fp-element-gap: 24px;
	--fp-transition-fast: 150ms ease;
	--fp-transition-base: 250ms ease;
	--fp-transition-slow: 400ms ease;
}

.fp-header,
.fp-main,
.fp-footer {
	margin-inline: auto;
	max-width: var(--fp-container);
	padding-inline: clamp(1rem, 4vw, 2rem);
	width: 100%;
}

.fp-main {
	display: block;
	min-height: 50vh;
	padding-block: var(--fp-section-padding);
}

/* Content + sidebar grid. */
.fp-content-area {
	width: 100%;
}

.fp-sidebar {
	width: 100%;
}

@media (min-width: 880px) {
	.fp-main:has(.fp-sidebar) {
		display: grid;
		gap: var(--fp-element-gap);
	}

	.fp-layout-right .fp-main:has(.fp-sidebar) {
		grid-template-columns: 1fr var(--fp-sidebar);
	}

	.fp-layout-left .fp-main:has(.fp-sidebar) {
		grid-template-columns: var(--fp-sidebar) 1fr;
	}

	.fp-layout-left .fp-sidebar {
		order: -1;
	}

	.fp-layout-none .fp-main,
	.fp-main:not(:has(.fp-sidebar)) {
		display: block;
	}
}

/* Archive grid. */
.fp-archive-columns-2 .wp-block-post-template {
	grid-template-columns: repeat(2, 1fr);
}
.fp-archive-columns-3 .wp-block-post-template {
	grid-template-columns: repeat(3, 1fr);
}
.fp-archive-columns-4 .wp-block-post-template {
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 879px) {
	.wp-block-post-template {
		grid-template-columns: 1fr !important;
	}
}

/* Full-width template. */
.fp-template-full-width .fp-content-area,
.fp-template-landing .fp-content-area {
	max-width: 100%;
}

.fp-template-blank .fp-main {
	padding-block: 0;
	max-width: 100%;
}

/* Alignment utility for block editor. */
.alignwide {
	max-width: var(--fp-container);
	margin-inline: auto;
}

.alignfull {
	max-width: 100%;
	width: 100%;
	margin-inline: 0;
}
