/* -----------------------------------------------------------------------------
 * Layout: containers, 12-column grid, section rhythm.
 * Ultrawide keeps a maximum content width instead of stretching.
 * -------------------------------------------------------------------------- */

.uz-container {
	width: 100%;
	max-width: var(--uz-content-max);
	margin-inline: auto;
	padding-inline: var(--uz-gutter);
}

.uz-container--editorial { max-width: var(--uz-editorial-max); }
.uz-container--wide { max-width: 1600px; }

.uz-section { padding-block: var(--uz-section); }
.uz-section--tight { padding-block: calc(var(--uz-section) / 2); }

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

/* Site shell: footer stays at the bottom on short pages. */
.uz-site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}
.uz-site__main { flex: 1 0 auto; }

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