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

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

.viva-section {
	position: relative;
	padding-block: clamp(4rem, 11vw, 6.5rem);
}

.viva-section--charcoal { background: var(--viva-color-charcoal); }
.viva-section--surface { background: var(--viva-color-surface-1); }
.viva-section--olive { background: var(--viva-color-olive-dark); }

.viva-grid {
	display: grid;
	grid-template-columns: repeat(var(--viva-grid-columns, 1), minmax(0, 1fr));
	gap: var(--viva-grid-gap, 1rem);
}

.viva-stack > * {
	margin-block: 0;
}

.viva-stack > * + * {
	margin-block-start: var(--viva-stack-space, 1rem);
}

.viva-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--viva-cluster-gap, 0.75rem);
}

.viva-split {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: clamp(2rem, 7vw, 5rem);
}

.viva-section-heading {
	max-width: 760px;
	margin-bottom: clamp(2rem, 7vw, 4rem);
}

.viva-section-heading--center {
	margin-inline: auto;
	text-align: center;
}

.viva-gold-rule {
	display: block;
	width: 64px;
	height: 1px;
	margin-top: 1rem;
	background: linear-gradient(90deg, transparent, var(--viva-color-gold), transparent);
}
