:root {
	--pbl-container-wide: 1520px;
	--pbl-container-standard: 1360px;
	--pbl-container-content: 1180px;
	--pbl-container-article: 760px;
	--pbl-gutter-desktop: 48px;
	--pbl-gutter-tablet: 28px;
	--pbl-gutter-mobile: 20px;
	--pbl-header-height: 76px;
}

body {
	overflow-x: clip;
}

/*
 * True full-bleed bands.
 *
 * GeneratePress and the editor may keep the entry wrapper constrained even
 * when the page shell is wide. These top-level visual bands deliberately
 * break out of that wrapper to the viewport edges. Only the background band
 * expands; each band's inner container remains constrained below.
 */
.home .entry-content > .pbl-hero,
.home .entry-content > .pbl-trust-strip,
.home .entry-content > .pbl-section,
body.page:not(.home) .entry-content > .pbl-section,
body.page .entry-content > .alignfull {
	left: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	max-width: none;
	position: relative;
	right: 50%;
	width: 100vw;
}

.pbl-container,
.pbl-section > .wp-block-group__inner-container,
.pbl-hero > .wp-block-group__inner-container {
	margin-inline: auto;
	max-width: none;
	padding-inline: 0;
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-standard));
}

.pbl-container--wide {
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-wide));
}

.pbl-container--standard {
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-standard));
}

.site,
.site.grid-container,
.site-content,
.content-area,
.site-main {
	margin: 0;
	max-width: none;
	padding-inline: 0;
	width: 100%;
}

.site-content {
	padding-block: clamp(1.5rem, 4vw, 3rem);
}

.home .site-content {
	padding-block: 0;
}

.home .entry-content > .pbl-section,
.home .entry-content > .pbl-hero,
.home .entry-content > .pbl-trust-strip {
	max-width: none;
}

.home .entry-content > .pbl-section:nth-of-type(4n + 1) {
	background: var(--pbl-bg-soft);
}

.home .entry-content > .pbl-section:nth-of-type(4n + 3) {
	background: var(--pbl-bg-warm);
}

.home .pbl-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.home .pbl-guide-card-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inside-article {
	margin-inline: auto;
	max-width: var(--pbl-container-content);
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-content));
}

.home .inside-article {
	max-width: none;
	width: 100%;
}

/*
 * Theme-wide page system for current and future WordPress pages.
 * Ordinary content stays readable; top-level .pbl-section bands span
 * the page while their direct content remains on the content grid.
 */
body.page:not(.home) .inside-article {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	max-width: none;
	padding: 0;
	width: 100%;
}

body.page:not(.home) .entry-content > :not(.pbl-section):not(.alignfull) {
	margin-inline: auto;
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-content));
}

body.page:not(.home) .entry-content > .pbl-section,
body.page:not(.home) .entry-content > .alignfull {
	max-width: none;
}

body.page:not(.home) .entry-content > .pbl-section > * {
	margin-inline: auto;
	width: min(calc(100% - (var(--pbl-gutter-desktop) * 2)), var(--pbl-container-content));
}

body.page:not(.home) .entry-content > .pbl-section:nth-of-type(even) {
	background: var(--pbl-bg-soft);
}

.single-post .inside-article {
	max-width: calc(var(--pbl-container-article) + 6rem);
}

.single-post .entry-content > * {
	max-width: var(--pbl-container-article);
}

@media (max-width: 1024px) {
	.pbl-container,
	.pbl-container--wide,
	.pbl-container--standard,
	.pbl-section > .wp-block-group__inner-container,
	.pbl-hero > .wp-block-group__inner-container,
	.inside-article,
	body.page:not(.home) .entry-content > :not(.pbl-section):not(.alignfull),
	body.page:not(.home) .entry-content > .pbl-section > * {
		width: calc(100% - (var(--pbl-gutter-tablet) * 2));
	}

	.home .pbl-guide-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.pbl-container,
	.pbl-container--wide,
	.pbl-container--standard,
	.pbl-section > .wp-block-group__inner-container,
	.pbl-hero > .wp-block-group__inner-container,
	.inside-article,
	body.page:not(.home) .entry-content > :not(.pbl-section):not(.alignfull),
	body.page:not(.home) .entry-content > .pbl-section > * {
		width: calc(100% - (var(--pbl-gutter-mobile) * 2));
	}

	.home .pbl-guide-card-grid {
		grid-template-columns: 1fr;
	}
}
