/* ns-tokens — sistema di design condiviso da tutte le sezioni custom.
 * Regole "Minimalism & Swiss Style": griglia 12 colonne, raggio 0,
 * nessuna ombra, un solo accento, spaziatura su base 2rem.
 * Ogni sezione custom porta la classe .ns-scope per ereditare questi valori. */

.ns-scope {
	--ns-bg: #F4F3EF;
	--ns-bg-alt: #EBE9E3;
	--ns-ink: #111111;
	--ns-ink-soft: #55554F;
	--ns-line: #D6D4CB;
	--ns-hair: #E4E2DA;
	--ns-card: #FFFFFF;
	--ns-accent: #D3341F;
	--ns-accent-soft: #F6D9D3;

	--ns-s1: 0.5rem;
	--ns-s2: 1rem;
	--ns-s3: 2rem;
	--ns-s4: 3rem;
	--ns-s5: 4.5rem;

	--ns-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
	--ns-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

	box-sizing: border-box;
	font-family: var(--ns-sans);
	color: var(--ns-ink);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	margin: 0 calc(50% - 50vw);
	padding: clamp(var(--ns-s4), 6vw, var(--ns-s5)) clamp(var(--ns-s2), 5vw, var(--ns-s4));
	background: var(--ns-bg);
}

.ns-scope *, .ns-scope *::before, .ns-scope *::after { box-sizing: border-box; }
.ns-scope p { margin: 0; }
.ns-scope > p:empty { display: none; }

/* contenitore a 12 colonne */
.ns-wrap {
	max-width: 1320px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: var(--ns-s3);
	row-gap: var(--ns-s3);
	align-items: start;
}

/* etichetta di sezione */
.ns-label {
	grid-column: 1 / -1;
	font-family: var(--ns-mono);
	font-size: 0.72rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--ns-ink-soft);
	padding-bottom: var(--ns-s1);
	border-bottom: 1px solid var(--ns-ink);
}

/* titolo di sezione */
.ns-h2 {
	font-size: clamp(1.6rem, 1rem + 2.2vw, 2.7rem);
	line-height: 1.06;
	letter-spacing: -0.03em;
	font-weight: 600;
	margin: 0;
	text-wrap: balance;
}

.ns-body { font-size: 1.05rem; line-height: 1.65; max-width: 62ch; }
.ns-accent { color: var(--ns-accent); }

.ns-btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ns-s4);
	background: var(--ns-ink);
	color: var(--ns-bg);
	text-decoration: none;
	font-size: 1rem;
	padding: 1.05rem 1.4rem;
	border-radius: 0;
	transition: background-color 0.22s ease;
}
.ns-btn:hover, .ns-btn:focus { background: var(--ns-accent); color: #fff; }
.ns-btn:focus-visible { outline: 3px solid var(--ns-accent); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
	.ns-scope *, .ns-scope *::before, .ns-scope *::after {
		transition: none !important;
		animation: none !important;
	}
}

/* ---------- segni grafici delle sezioni ---------- */
.ns-icon {
	display: block;
	width: 2.6rem; height: 2.6rem;
	margin-bottom: var(--ns-s1);
	flex: none;
}
.ns-scope strong { font-weight: 650; color: var(--ns-ink); }

/* elenchi: nessun marcatore. Salient impone list-style:disc su "ul li",
   quindi va spento sulle voci, non sull'elenco. */
.ns-scope ul, .ns-scope ul li { list-style: none !important; }
.ns-scope ul { margin: 0; padding: 0; }
