/*==============================================================
	PAGES D'INFORMATION — mentions légales, CGU, politique de
	confidentialité, plan du site.

	Même vocabulaire que l'accueil (« Nos formations ») : section
	sur fond teinté, en-tête eyebrow / titre / chapeau, cartes
	blanches arrondies. L'en-tête de section (.section-head…) vient
	de app-common.css, les titres à pastille reprennent ceux des
	pages formation.
==============================================================*/
.legal-page {
	background-color: var(--brand-tint);
	padding: clamp(3rem, 4.5vw, 5rem) 0;
}

.legal-page .section-head {
	max-width: none;
}

.legal-page .section-lead + .section-lead {
	margin-top: .9rem;
}

.legal-updated {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 1.4rem 0 0;
	padding: .4rem .95rem;
	font-size: .85rem;
	font-weight: 500;
	color: var(--brand-ink);
	background-color: var(--white-color);
	border-radius: 999px;
}


/*--------------------------------------------------------------
	CARTES
--------------------------------------------------------------*/
.legal-grid {
	display: grid;
	gap: 1.25rem;
}

@media (min-width: 992px) {
	.legal-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Une carte de contenu long occupe toute la largeur de la grille. */
	.legal-grid--2 .legal-card--wide {
		grid-column: 1 / -1;
	}
}

.legal-card {
	background-color: var(--white-color);
	border: 1px solid var(--brand-tint);
	border-radius: 18px;
	padding: clamp(1.4rem, 2.6vw, 2rem);
	box-shadow: 0 10px 30px rgba(184, 50, 157, .06);
}

.legal-card-title {
	display: flex;
	align-items: center;
	gap: .9rem;
	margin-bottom: 1.1rem;
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--second-color);
}

.legal-card-ico {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--fourth-color);
	color: var(--third-color);
	font-size: 1.25rem;
}

.legal-card p,
.legal-card li {
	font-weight: 300;
	line-height: 1.65;
	color: var(--prose);
}

.legal-card > :last-child {
	margin-bottom: 0;
}

.legal-card a {
	color: var(--brand-ink);
	text-underline-offset: 3px;
}

.legal-card a:hover,
.legal-card a:focus {
	color: var(--brand);
}

.legal-card code {
	padding: .1rem .4rem;
	font-size: .9em;
	color: var(--brand-ink);
	background-color: var(--brand-tint);
	border-radius: 6px;
}


/*--------------------------------------------------------------
	FICHE D'IDENTITÉ (éditeur, hébergeur…) : libellé / valeur
--------------------------------------------------------------*/
.legal-facts {
	display: grid;
	grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
	gap: .55rem 1.25rem;
	margin: 0;
}

.legal-facts dt {
	font-size: .78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--muted);
	padding-top: .2rem;
}

.legal-facts dd {
	margin: 0;
	font-weight: 400;
	color: var(--second-color);
	overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
	.legal-facts {
		grid-template-columns: 1fr;
		gap: .1rem;
	}

	.legal-facts dd + dt {
		margin-top: .7rem;
	}
}


/*--------------------------------------------------------------
	PLAN DU SITE
--------------------------------------------------------------*/
.sitemap-title a {
	color: var(--second-color);
	text-decoration: none;
}

.sitemap-title a:hover,
.sitemap-title a:focus {
	color: var(--brand-ink);
}

.sitemap-links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: .5rem;
}

.sitemap-links a {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .7rem .95rem;
	border: 1px solid var(--rule);
	border-radius: 12px;
	font-weight: 400;
	color: var(--second-color);
	text-decoration: none;
	transition: border-color .25s ease, color .25s ease, transform .25s ease;
}

.sitemap-links a i {
	color: var(--brand-ink);
	transition: transform .25s ease;
}

.sitemap-links a:hover,
.sitemap-links a:focus-visible {
	border-color: var(--brand);
	color: var(--brand-ink);
}

.sitemap-links a:hover i,
.sitemap-links a:focus-visible i {
	transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
	.sitemap-links a,
	.sitemap-links a i {
		transition: none;
	}
}

/* Page plus courte que la fenêtre : le fond teinté descend jusqu'au pied de page. */
.main-container:has(> .legal-page) {
	background-color: var(--brand-tint);
}
