/**
 * Fundação estrutural — containers, seções, grids e alinhamentos.
 *
 * Breakpoints (mobile-first, min-width):
 * — 480px: mobile pequeno (theme.json viewport.mobile);
 * — 782px: tablet WordPress (theme.json viewport.tablet);
 * — 1024px: desktop inicial;
 * — 1280px: desktop amplo.
 *
 * Não aplica cores de marca, sombras globais ou raios indiscriminados.
 */

.container,
.container--wide {
	width: 100%;
	max-width: var(--container-wide);
	margin-inline: auto;
	padding-inline: var(--container-gutter);
}

.container--content {
	width: 100%;
	max-width: var(--container-content);
	margin-inline: auto;
	padding-inline: var(--container-gutter);
}

.container--full {
	width: var(--container-full);
	max-width: 100%;
	padding-inline: var(--container-gutter);
}

.section {
	padding-block: var(--space-section);
}

.section--compact {
	padding-block: var(--space-section-compact);
}

.section--flush {
	padding-block: 0;
}

.section__header {
	margin-block: 0 var(--space-lg);
}

.section__content {
	margin-block: 0;
}

.stack {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.stack > * {
	margin-block: 0;
}

.stack > * + * {
	margin-block-start: var(--space-md);
}

.stack--sm > * + * {
	margin-block-start: var(--space-sm);
}

.stack--lg > * + * {
	margin-block-start: var(--space-xl);
}

.cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
}

.cluster--between {
	justify-content: space-between;
}

.grid,
.grid--2,
.grid--3,
.grid--4 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-grid);
}

@media (min-width: 782px) {
	.grid--2,
	.grid--3,
	.grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.grid--4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.auto-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: var(--space-grid);
}

.entry-content {
	overflow-wrap: break-word;
}

.entry-content > * {
	max-width: var(--container-content);
	margin-inline: auto;
}

.entry-content > .alignwide {
	width: 100%;
	max-width: min(var(--container-wide), 100%);
}

.entry-content > .alignfull {
	box-sizing: border-box;
	width: calc(100% + (2 * var(--container-gutter)));
	max-width: calc(100% + (2 * var(--container-gutter)));
	margin-inline: calc(-1 * var(--container-gutter));
	padding-inline: var(--container-gutter);
}

@media (min-width: 1280px) {
	.entry-content > .alignfull {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
	}
}

.entry-content img,
.entry-content video,
.entry-content iframe,
.entry-content embed,
.entry-content .wp-block-embed {
	max-width: 100%;
	height: auto;
}

.table-scroll {
	max-width: 100%;
	overflow-x: auto;
}

.entry-content > .table-scroll,
.entry-content > .wp-block-table {
	max-width: min(var(--container-wide), 100%);
}

.table-scroll table,
.entry-content .wp-block-table table,
.entry-content > table {
	width: max-content;
	min-width: 100%;
	border-collapse: collapse;
}

.table-scroll th,
.table-scroll td,
.entry-content table th,
.entry-content table td {
	padding: var(--space-sm) var(--space-md);
	border: var(--border-width) solid var(--color-border-strong);
	text-align: start;
	vertical-align: top;
}

.table-scroll th,
.entry-content table th {
	background-color: var(--color-surface-muted);
	font-weight: 600;
}
