@layer layout {
	.wrap {
		width: min(100% - 2 * var(--gutter), var(--wrap));
		margin-inline: auto;
	}
	/* Text lung: coloană îngustă, dar aliniată la stânga cu restul paginii (nu centrată). */
	.wrap--ingust > * {
		max-width: var(--wrap-ingust);
	}

	.site-main {
		display: block;
	}

	/* Secțiunile paginilor */
	.bloc {
		padding-block: var(--space-2xl);
		position: relative;
	}
	.bloc + .bloc.fundal--alb:not(.bloc--hero) {
		padding-top: var(--space-xl);
	}
	.bloc--hero {
		padding: 0;
	}
	.fundal--alb { background: var(--bg); }
	.fundal--deschis { background: var(--bg-alt); }
	.fundal--verde { background: var(--mint-50); }
	.fundal--inchis {
		background: var(--bg-dark);
		color: color-mix(in oklab, var(--white) 88%, transparent);
	}
	.fundal--inchis :is(h1, h2, h3, h4) { color: var(--white); }
	.fundal--inchis a { color: var(--mint-300); }
	.fundal--inchis a:hover { color: var(--white); }
	.fundal--inchis .eyebrow { color: var(--mint-500); }
	.fundal--inchis .section-lead { color: color-mix(in oklab, var(--white) 78%, transparent); }

	.grid {
		display: grid;
		gap: var(--space-m);
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	}
	@media (min-width: 48rem) {
		.grid--2 { grid-template-columns: repeat(2, 1fr); }
		.grid--3 { grid-template-columns: repeat(3, 1fr); }
		.grid--4 { grid-template-columns: repeat(2, 1fr); }
	}
	@media (min-width: 64rem) {
		.grid--4 { grid-template-columns: repeat(4, 1fr); }
	}

	.cluster {
		display: flex;
		flex-wrap: wrap;
		gap: var(--space-xs) var(--space-s);
		align-items: center;
	}
	.cluster--center { justify-content: center; }

	/* Text + poză */
	.split {
		display: grid;
		gap: var(--space-l);
		align-items: center;
	}
	@media (min-width: 64rem) {
		.split {
			grid-template-columns: 1.1fr 1fr;
			gap: var(--space-2xl);
		}
		.split--invers .split__text { order: 2; }
		.split--invers .split__media { order: 1; }
	}

	/* Pagini individuale (proiect) */
	.single-grid {
		display: grid;
		gap: var(--space-l);
	}
	@media (min-width: 64rem) {
		.single-grid {
			grid-template-columns: minmax(0, 1fr) 20rem;
			gap: var(--space-2xl);
			align-items: start;
		}
		.single-aside {
			position: sticky;
			top: calc(var(--header-h) + var(--space-m));
		}
	}

	.contact-grid {
		display: grid;
		gap: var(--space-l);
	}
	@media (min-width: 64rem) {
		.contact-grid {
			grid-template-columns: minmax(0, 24rem) 1fr;
			gap: var(--space-xl);
		}
	}
}
