*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body.sflow-theme {
	margin: 0;
	max-width: none;
	background: var(--sflow-light);
	color: var(--sflow-body);
	font-family: var(--sflow-font-body);
	font-size: var(--sflow-text-body);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

body.sflow-theme#error-page {
	width: 100%;
	max-width: none;
	padding: 0;
}

body.sflow-theme .sflow-site,
body.sflow-theme .sflow-main,
body.sflow-theme .sflow-hero {
	width: 100%;
	max-width: none;
}

body.sflow-theme.is-nav-open {
	overflow: hidden;
}

.sflow-theme h1,
.sflow-theme h2,
.sflow-theme h3,
.sflow-theme h4 {
	margin: 0 0 var(--sflow-space-2);
	color: var(--sflow-heading);
	font-family: var(--sflow-font-heading);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.sflow-theme h1 { font-size: var(--sflow-text-h1); }
.sflow-theme h2 { font-size: var(--sflow-text-h2); }
.sflow-theme h3 { font-size: var(--sflow-text-h3); }

.sflow-theme p {
	margin: 0 0 var(--sflow-space-2);
	text-wrap: pretty;
}

.sflow-theme a {
	color: inherit;
	text-decoration: none;
}

.sflow-theme img {
	display: block;
	max-width: 100%;
	height: auto;
}

.sflow-theme button,
.sflow-theme input,
.sflow-theme textarea,
.sflow-theme select {
	font: inherit;
}

.sflow-theme button {
	cursor: pointer;
}

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

.sflow-main {
	min-height: 40vh;
}

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

.sflow-page-content {
	padding-block: var(--sflow-section-space);
}

.sflow-prose {
	max-width: 52rem;
}

.sflow-prose > * + * {
	margin-top: var(--sflow-space-3);
}

.sflow-rich-text > *:last-child,
.sflow-prose > *:last-child {
	margin-bottom: 0;
}

:focus-visible {
	outline: 3px solid var(--sflow-primary-hover);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
