.bpt-site {
	min-height: 100vh;
}

.bpt-container {
	width: min(calc(100% - (var(--bpt-gutter) * 2)), var(--bpt-container-default));
	margin-inline: auto;
}

.bpt-container--narrow {
	width: min(calc(100% - (var(--bpt-gutter) * 2)), var(--bpt-container-narrow));
}

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

.bpt-container--full {
	width: 100%;
	max-width: none;
}

.bpt-section {
	position: relative;
	background: var(--section-bg);
	color: var(--section-fg);
}

.bpt-section > .bpt-container {
	position: relative;
	z-index: 2;
}

.bpt-section[data-background-image] {
	isolation: isolate;
	overflow: hidden;
}

.bpt-section__background {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bpt-section[data-background-image]::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgb(0 0 0 / var(--section-overlay, 0.45));
	pointer-events: none;
}

.bpt-section[data-pt="none"] { padding-top: 0; }
.bpt-section[data-pt="2xs"] { padding-top: var(--bpt-space-2xs); }
.bpt-section[data-pt="xs"] { padding-top: var(--bpt-space-xs); }
.bpt-section[data-pt="sm"] { padding-top: var(--bpt-space-sm); }
.bpt-section[data-pt="md"] { padding-top: var(--bpt-space-md); }
.bpt-section[data-pt="lg"] { padding-top: var(--bpt-space-lg); }
.bpt-section[data-pt="xl"] { padding-top: var(--bpt-space-xl); }
.bpt-section[data-pt="2xl"] { padding-top: var(--bpt-space-2xl); }
.bpt-section[data-pt="3xl"] { padding-top: var(--bpt-space-3xl); }
.bpt-section[data-pt="4xl"] { padding-top: var(--bpt-space-4xl); }

.bpt-section[data-pb="none"] { padding-bottom: 0; }
.bpt-section[data-pb="2xs"] { padding-bottom: var(--bpt-space-2xs); }
.bpt-section[data-pb="xs"] { padding-bottom: var(--bpt-space-xs); }
.bpt-section[data-pb="sm"] { padding-bottom: var(--bpt-space-sm); }
.bpt-section[data-pb="md"] { padding-bottom: var(--bpt-space-md); }
.bpt-section[data-pb="lg"] { padding-bottom: var(--bpt-space-lg); }
.bpt-section[data-pb="xl"] { padding-bottom: var(--bpt-space-xl); }
.bpt-section[data-pb="2xl"] { padding-bottom: var(--bpt-space-2xl); }
.bpt-section[data-pb="3xl"] { padding-bottom: var(--bpt-space-3xl); }
.bpt-section[data-pb="4xl"] { padding-bottom: var(--bpt-space-4xl); }

.bpt-grid {
	display: grid;
	gap: var(--bpt-space-lg);
}

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

.bpt-stack > * + * {
	margin-top: var(--bpt-space-md);
}

.bpt-stack--lg > * + * {
	margin-top: var(--bpt-space-lg);
}

.bpt-section-intro {
	max-width: var(--section-intro-width, var(--bpt-container-narrow));
}

.bpt-section-intro > :last-child {
	margin-bottom: 0;
}

.bpt-section-intro--center {
	margin-inline: auto;
	text-align: center;
}

.bpt-section-intro--width-default {
	--section-intro-width: var(--bpt-container-default);
}

.bpt-section-intro--width-wide {
	--section-intro-width: var(--bpt-container-wide);
}

.bpt-section-ctas {
	margin-top: var(--bpt-space-lg);
}

.bpt-rich-text > * + * {
	margin-top: var(--bpt-space-md);
}

.js .bpt-section[data-reveal] {
	opacity: 0;
	transform: translateY(var(--bpt-space-md));
	transition:
		opacity var(--bpt-duration-slow) var(--bpt-ease-decelerate),
		transform var(--bpt-duration-slow) var(--bpt-ease-decelerate);
}

.js .bpt-section[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.js .bpt-section[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

@media (max-width: 767.98px) {
	.bpt-section[data-hide-mobile="true"] {
		display: none;
	}
}

@media (min-width: 768px) {
	.bpt-section[data-hide-desktop="true"] {
		display: none;
	}

	.bpt-grid[data-cols="2"],
	.bpt-grid[data-cols="3"],
	.bpt-grid[data-cols="4"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.bpt-grid[data-cols="3"] {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.bpt-grid[data-cols="4"] {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
