/* Bloc cnd/site-footer — pied de page commun (univers Réseau). Tokens uniquement ; dimensions de la
   maquette en paramètres de composant (cf. docs/tokens.md §4). Texte gris en --ink-3 (4,5:1 sur
   --ground), jamais --ink-4 (gris non textuel). */
.cnd.cnd-site-footer {
	--cnd-footer-logo: 150px;
	--cnd-footer-brand-max: 340px;
	/* Logo Qualiopi : 23 mm de large au minimum selon la charte d'usage, soit 87 px. v0.36.0 (audit Qualiopi) :
	   100 px de haut (182 px de large), pour que « processus certifié » (≈ 12 px) ne soit pas plus petit que la
	   mention de la catégorie (12 px) ; à 48 px, la mention en 14 px faisait plus du double. */
	--cnd-footer-qualiopi: 100px;
	--cnd-footer-social: 38px;
	/* Dégagement sous la dernière ligne pour les boutons flottants tiers en bas à gauche (bouton
	   CookieYes : 45 px, à 15 px du bas → zone de 60 px), cf. contre-QA v0.4.1, point 3. */
	--cnd-footer-floating: calc(var(--s-7) + var(--s-5));
	background: var(--ground);
	border-top: 1px solid var(--line);
	font-family: var(--font-body);
	color: var(--ink-3);
}
.cnd.cnd-site-footer ul,
.cnd.cnd-site-footer p {
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Contre-QA v0.4.1, point 1 : liens hors police d'accent du kit Elementor (Roboto) — cf. en-tête. */
.cnd.cnd-site-footer a { font-family: inherit; }
.cnd.cnd-site-footer .cnd-site-footer__inner {
	max-width: var(--cnd-site-width);
	margin: 0 auto;
	padding: var(--s-7) var(--s-5) 0;
}
.cnd.cnd-site-footer .cnd-site-footer__main {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-6);
	padding-bottom: var(--s-6);
}

/* Logo + présentation */
.cnd.cnd-site-footer .cnd-site-footer__brand {
	flex: 1 1 280px;
	max-width: var(--cnd-footer-brand-max);
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}
.cnd.cnd-site-footer .cnd-site-footer__logo { display: inline-block; align-self: flex-start; text-decoration: none; color: var(--ink); }
.cnd.cnd-site-footer .cnd-site-footer__logo-img {
	display: block;
	width: var(--cnd-footer-logo);
	height: var(--cnd-footer-logo);
	max-width: none;
	object-fit: contain;
}
.cnd.cnd-site-footer .cnd-site-footer__text {
	font-size: var(--t-small);
	line-height: 1.55;
	color: var(--ink-3);
}

/* Quatre colonnes de liens, titres Outfit 17 px (--t-h4). Les groupes s'empilent dans les colonnes
   sans se couper (ordre du menu = ordre de lecture, colonne par colonne). */
.cnd.cnd-site-footer .cnd-site-footer__columns {
	flex: 1 1 520px;
	min-width: 0;
	columns: 4;
	column-gap: var(--s-5);
}
.cnd.cnd-site-footer .cnd-site-footer__group {
	break-inside: avoid;
	padding-bottom: var(--s-5);
}
.cnd.cnd-site-footer .cnd-site-footer__title {
	margin-bottom: var(--s-3);
	font-family: var(--font-display);
	font-size: var(--t-h4);
	font-weight: 500;
	line-height: 1.3;
	color: var(--ink);
}
.cnd.cnd-site-footer .cnd-site-footer__title-link {
	color: inherit;
	font: inherit;
	text-decoration: none;
}
.cnd.cnd-site-footer .cnd-site-footer__title-link:hover,
.cnd.cnd-site-footer .cnd-site-footer__title-link[aria-current="page"] {
	color: var(--brand-strong);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cnd.cnd-site-footer .cnd-site-footer__links {
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
}
.cnd.cnd-site-footer .cnd-site-footer__link {
	font-size: var(--t-small);
	line-height: 1.4;
	color: var(--ink-3);
	text-decoration: none;
}
.cnd.cnd-site-footer .cnd-site-footer__link:hover,
.cnd.cnd-site-footer .cnd-site-footer__link[aria-current="page"] {
	color: var(--brand-strong);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Réseaux sociaux */
.cnd.cnd-site-footer .cnd-site-footer__social {
	display: flex;
	gap: var(--s-2);
	padding-bottom: var(--s-5);
}
.cnd.cnd-site-footer .cnd-site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--cnd-footer-social);
	height: var(--cnd-footer-social);
	border-radius: var(--r-pill);
	border: 1px solid var(--line);
	background: var(--surface);
	color: var(--ink-3);
	text-decoration: none;
}
.cnd.cnd-site-footer .cnd-site-footer__social-link:hover { border-color: var(--brand-strong); color: var(--brand-strong); }

/* Bloc Qualiopi */
.cnd.cnd-site-footer .cnd-site-footer__qualiopi {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-5);
	padding: var(--s-5) 0;
	border-top: 1px solid var(--line);
}
.cnd.cnd-site-footer .cnd-site-footer__qualiopi-info {
	display: flex;
	flex-wrap: wrap; /* v0.36.0 : en mobile, la mention passe sous le logo de 182 px. */
	align-items: center;
	gap: var(--s-4);
	flex: 1 1 340px;
	min-width: 0;
}
.cnd.cnd-site-footer .cnd-site-footer__qualiopi-logo {
	flex: none;
	padding: var(--s-2) var(--s-3);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
}
.cnd.cnd-site-footer .cnd-site-footer__qualiopi-img {
	display: block;
	width: auto;
	height: var(--cnd-footer-qualiopi);
	max-width: none;
}
.cnd.cnd-site-footer .cnd-site-footer__qualiopi-text {
	display: flex;
	flex-direction: column;
	gap: var(--s-1);
	flex: 1 1 220px;
	min-width: 0;
}
/* v0.36.0 : mention de la catégorie à la taille de « processus certifié » (charte Qualiopi), lisible. */
.cnd.cnd-site-footer .cnd-site-footer__qualiopi-mention {
	font-size: var(--t-caption);
	line-height: 1.5;
	color: var(--ink-2);
}
.cnd.cnd-site-footer .cnd-site-footer__cert { flex: none; }

/* Mentions */
.cnd.cnd-site-footer .cnd-site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--s-3);
	padding: var(--s-4) 0 var(--s-6);
	border-top: 1px solid var(--line);
	font-size: var(--t-caption);
}
.cnd.cnd-site-footer .cnd-site-footer__copy { font-size: var(--t-caption); color: var(--ink-3); }
.cnd.cnd-site-footer .cnd-site-footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--s-5); }
.cnd.cnd-site-footer .cnd-site-footer__legal-links .cnd-site-footer__link { font-size: var(--t-caption); }
/* « Gérer mes cookies » (v0.39.0) : un bouton qui a l'air d'un lien du pied de page. La CSS additionnelle du site
   pose `button { margin-top: 32px !important; display: block; … }` : marge et affichage remis en !important ciblé. */
.cnd.cnd-site-footer button.cnd-site-footer__cookies {
	display: inline !important;
	margin: 0 !important;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: var(--font-body);
	font-weight: 400;
	line-height: 1.4;
	text-transform: none;
	letter-spacing: normal;
	color: var(--ink-3);
	cursor: pointer;
}
.cnd.cnd-site-footer button.cnd-site-footer__cookies:hover,
.cnd.cnd-site-footer button.cnd-site-footer__cookies:focus {
	background: transparent;
	color: var(--brand-strong);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.cnd.cnd-site-footer button.cnd-site-footer__cookies:focus-visible {
	outline: 2px solid var(--brand-strong);
	outline-offset: 2px;
}

/* Le bouton flottant (x 15–60 px) ne chevauche plus le texte quand le contenu commence à sa droite :
   bord du conteneur ((largeur − 1200) / 2 + 24 px) ≥ 64 px dès 1280 px. */
@media (max-width: 1279px) {
	.cnd.cnd-site-footer .cnd-site-footer__legal { padding-bottom: var(--cnd-footer-floating); }
}
@media (max-width: 899px) {
	.cnd.cnd-site-footer .cnd-site-footer__brand { max-width: none; }
	.cnd.cnd-site-footer .cnd-site-footer__columns { columns: 2; flex-basis: 100%; }
	.cnd.cnd-site-footer .cnd-site-footer__social { justify-content: center; }
	.cnd.cnd-site-footer .cnd-site-footer__cert { margin: 0 auto; }
}
