/* --------------------------------------------------------------------------
   Base très légère pour le chrome du footer (footer.php), volontairement
   séparée de style.css (réservé aux tokens de design partagés par les
   composants). Uniquement de la structure, via les tokens --component-* :
   aucune couleur/police en dur. Un thème qui repart de ce gabarit peut
   surcharger ce fichier à volonté sans toucher aux tokens globaux.
   -------------------------------------------------------------------------- */

.site-footer {
	background: var(--component-color-bg2);
	font-family: var(--component-font-family);
}

/* Fine bande de couleur en tête de footer : seule touche de couleur de marque
   sur une zone par ailleurs neutre (voir consigne client : pas de thème sombre). */
.site-footer__accent {
	height: 3px;
	background: linear-gradient(90deg, var(--component-color-primary), var(--component-color-primary-dark));
}

/* ---------------- Zone haute : marque + nav + widgets ---------------- */

.site-footer__top {
	display: grid;
	/* La 1re colonne (marque) doit rester non flexible (pas de fr) : une piste
	   flexible mêlée à repeat(auto-fit, ...) rend le nombre de répétitions
	   indéterminable pour le moteur de grille, qui retombe alors sur une
	   seule répétition — toutes les colonnes suivantes s'empilent en une
	   seule colonne pleine largeur (voir OVERRIDES.md). */
	grid-template-columns: minmax(80px, 140px) repeat(auto-fit, minmax(140px, 1fr));
	align-items: start;
	gap: var(--component-space-compact);
	padding-top: var(--component-space-normal);
	padding-bottom: var(--component-space-normal);
	border-bottom: 1px solid var(--component-color-border);
}

.site-footer__col-title {
	margin: 0 0 1rem;
	color: var(--component-color-primary);
	font-size: var(--component-font-size-h6);
	font-weight: 700;
}

.site-footer__logo {
	display: flex;
	align-items: flex-start;
}

.site-footer__logo img {
	display: block;
	max-height: 64px;
	width: auto;
}

.site-footer__site-title {
	margin: 0;
	font-size: var(--component-font-size-h5);
	font-weight: 700;
}

.site-footer__site-title a {
	color: var(--component-color-dark);
	text-decoration: none;
}

.site-footer__col-text {
	margin: 0;
	color: var(--component-color-surface-dark);
	font-size: var(--component-font-size-text);
	line-height: 1.5;
}

.site-footer__col-text a {
	color: var(--component-color-surface-dark);
	text-decoration: none;
	transition: color var(--component-transition);
}

.site-footer__col-text a:hover,
.site-footer__col-text a:focus {
	color: var(--component-color-primary);
}

.site-footer__col-text a:focus-visible {
	outline: 3px solid var(--component-color-primary);
	outline-offset: 2px;
}

/* Icônes réseaux sociaux : dernière "colonne" de la grille, alignée à droite
   sur les largeurs qui laissent de la place (voir grid-template-columns
   ci-dessus, auto-fit place naturellement cet élément en fin de ligne). */
.site-footer__social {
	display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1.5px solid var(--component-color-primary);
	border-radius: 50%;
	color: var(--component-color-primary);
	transition: background var(--component-transition), color var(--component-transition);
}

.site-footer__social-link:hover,
.site-footer__social-link:focus {
	background: var(--component-color-primary);
	color: var(--component-color-button-font);
}

.site-footer__social-link:focus-visible {
	outline: 3px solid var(--component-color-primary);
	outline-offset: 3px;
}

.site-footer__nav-list,
.site-footer__nav-list ul {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__nav-list ul {
	margin-top: 0.75rem;
	margin-left: 1rem;
}

.site-footer__nav-list a {
	color: var(--component-color-text);
	font-size: var(--component-font-size-text);
	text-decoration: none;
	transition: color var(--component-transition);
}

.site-footer__nav-list a:hover,
.site-footer__nav-list a:focus {
	color: var(--component-color-primary);
}

.site-footer__nav-list a:focus-visible {
	outline: 3px solid var(--component-color-primary);
	outline-offset: 2px;
}

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: var(--component-space-compact);
}

.site-footer__widgets .widget-title {
	margin: 0 0 1rem;
	color: var(--component-color-dark);
	font-size: var(--component-font-size-h6);
}

.site-footer__widgets .widget {
	color: var(--component-color-text);
	font-size: var(--component-font-size-text);
}

.site-footer__widgets .widget ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__widgets .widget li {
	margin-bottom: 0.6rem;
}

.site-footer__widgets .widget a {
	color: var(--component-color-text);
	text-decoration: none;
	transition: color var(--component-transition);
}

.site-footer__widgets .widget a:hover,
.site-footer__widgets .widget a:focus {
	color: var(--component-color-primary);
}

@media (max-width: 768px) {
	.site-footer__top {
		grid-template-columns: 1fr;
		gap: var(--component-space-compact);
	}
}

.site-footer__socket {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--component-gutter);
	padding-top: var(--component-space-compact);
	padding-bottom: var(--component-space-compact);
	color: var(--component-color-meta);
	font-size: var(--component-font-size-text);
}

.site-footer__socket-left,
.site-footer__socket-right {
	margin: 0;
}

.site-footer__socket-left p,
.site-footer__socket-right p {
	margin: 0;
}

.site-footer__socket-left img,
.site-footer__socket-right img {
	max-height: 32px;
	width: auto;
	vertical-align: middle;
}
