/* ──────────────────────────────────────────────────────────────────────
   Layout : containers, sections, grilles
   ────────────────────────────────────────────────────────────────────── */

.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--s-6);
}

@media (min-width: 768px) {
	.container { padding-inline: var(--s-8); }
}

.container--narrow { max-width: var(--container-narrow); }
.container--prose { max-width: var(--container-prose); }

/* Sections : rythme d'espacement généreux, 64-80 mobile / 96-128 desktop */
.section {
	padding-block: var(--s-16);
}
@media (min-width: 768px) {
	.section { padding-block: var(--s-24); }
}
@media (min-width: 1280px) {
	.section--lg { padding-block: var(--s-32); }
}

.section--surface { background: var(--bg-surface); }
.section--bordered-top { border-top: 1px solid var(--border-subtle); }

/* Stack : flux vertical avec gap cohérent */
.stack > * + * { margin-top: var(--s-4); }
.stack-6 > * + * { margin-top: var(--s-6); }
.stack-8 > * + * { margin-top: var(--s-8); }
.stack-12 > * + * { margin-top: var(--s-12); }

/* Grilles */
.grid {
	display: grid;
	gap: var(--s-6);
}
@media (min-width: 768px) {
	.grid { gap: var(--s-8); }
}

.grid--2 { grid-template-columns: 1fr; }
@media (min-width: 768px) {
	.grid--2 { grid-template-columns: 1fr 1fr; }
}

.grid--3 { grid-template-columns: 1fr; }
@media (min-width: 768px)  { .grid--3 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .grid--3 { grid-template-columns: repeat(3, 1fr); } }

/* Eyebrow : petit label au-dessus d'un titre */
.eyebrow {
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: 500;
	color: var(--text-secondary);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-bottom: var(--s-4);
}

/* Section-header : eyebrow + titre + intro centrée ou alignée gauche */
.section-header {
	max-width: var(--container-narrow);
	margin-bottom: var(--s-12);
}
.section-header--center {
	margin-inline: auto;
	text-align: center;
}
.section-header--center p { margin-inline: auto; }

/* Header de page minimal pour les pages légales */
.page-header {
	padding-block: var(--s-16) var(--s-8);
	border-bottom: 1px solid var(--border-subtle);
}
.page-header__updated {
	color: var(--text-tertiary);
	font-size: var(--fs-small);
	font-style: italic;
}

/* Prose : pour les pages légales et longs textes */
.prose {
	max-width: var(--container-prose);
	margin-inline: auto;
}
.prose h2 { margin-top: var(--s-12); }
.prose h3 { margin-top: var(--s-8); }
.prose h2:first-child,
.prose h3:first-child { margin-top: 0; }
.prose ul, .prose ol { margin-bottom: var(--s-6); }
.prose p { margin-bottom: var(--s-4); }
