/**
 * Site footer — refonte 2026
 * Fond sombre, 3 colonnes (brand / hot topics / certifs) + locations + legal.
 */

.site-footer {
	background: #2F3D47;
	color: #fff;
	padding: 60px 0 0 0;
	margin-top: 0;
}

/* Padding latéral cohérent avec le header :
   - ≥ 992px : ~col-lg-1 (4.166%) de chaque côté
   - <  992px : 1rem de chaque côté */
.site-footer > .container-fluid {
	padding-left: 4.1666666667%;
	padding-right: 4.1666666667%;
}

@media (max-width: 991.98px) {
	.site-footer > .container-fluid {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

.site-footer a {
	color: #fff;
	text-decoration: none;
	transition: opacity .15s ease, color .15s ease;
}

.site-footer a:hover,
.site-footer a:focus {
	color: #fff;
	opacity: 0.7;
	text-decoration: none;
}

/* Top main row */
.site-footer__main {
	padding-bottom: 40px;
	row-gap: 32px;
}

.site-footer__col {
	color: #fff;
}

.site-footer__col-title {
	margin: 0 0 16px 0;
	font-weight: 500;
	font-size: 1rem;
	color: #fff;
}

/* Col brand */
.site-footer__logo {
	margin-bottom: 28px;
	line-height: 0;
}

.site-footer__logo img {
	max-width: 160px;
	height: auto;
}

.site-footer__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.95rem;
	line-height: 1.5;
}

.site-footer__contact > li {
	margin: 0 0 6px 0;
}

.site-footer__social {
	display: flex;
	gap: 5px;
	margin-top: 4px;
	margin-bottom: 8px;
}

.site-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.5);
	font-size: 0.85rem;
}

.site-footer__social a:hover,
.site-footer__social a:focus {
	background: #fff;
	color: #2F3D47 !important;     /* override du .site-footer a { color: #fff !important } */
	border-color: #fff;
	opacity: 1;
}

/* Col hot topics — décalée pour s'aligner avec l'adresse (sous le logo) */
.site-footer__col--topics {
	padding-top: 0;
}

@media (min-width: 768px) {
	.site-footer__col--topics {
		padding-top: 75px;
	}
}

.site-footer__topics-list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 1rem;
	line-height: 1.7;
}

.site-footer__topics-list a {
	display: inline-block;
}

/* Col certifications */
.site-footer__certs {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 12px;
}

.site-footer__cert {
	display: inline-flex;
}

.site-footer__cert-img {
	max-width: 80px;
	height: auto;
}

.site-footer__cert-placeholder {
	display: inline-block;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: #fff;
}

.site-footer__cert-caption {
	margin: 0;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.85);
}

/* Locations row */
.site-footer__locations {
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.site-footer__locations-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.site-footer__location-inner {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 14px;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.04);
	color: #fff;
	font-size: 0.85rem;
	line-height: 1.3;
	min-width: 100px;
}

a.site-footer__location-inner:hover,
a.site-footer__location-inner:focus {
	background: rgba(255, 255, 255, 0.12);
	opacity: 1;
}

.site-footer__location-city {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	color: #fff;
}

.site-footer__location-arrow {
	display: inline-block;
	color: #fff;
	transition: transform .2s ease;
}

.site-footer__location-inner:hover .site-footer__location-arrow,
.site-footer__location-inner:focus .site-footer__location-arrow {
	transform: rotate(45deg);
}

.site-footer__location-country {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.78rem;
	text-transform: capitalize;
}

/* Legal bottom row — préservé tel quel mais adapté pour fond sombre */
.site-footer .border-top {
	border-color: rgba(255, 255, 255, 0.15) !important;
}

.site-footer .footer-menu {
	margin: 0;
	padding: 0;
}

.site-footer .footer-menu li {
	display: inline-block;
}

.site-footer .footer-menu li:not(:last-child)::after {
	content: "·";
	margin: 0 8px;
	color: rgba(255, 255, 255, 0.4);
}

.site-footer .footer-menu a {
	color: rgba(255, 255, 255, 0.85);
}

.site-footer .footer-menu a:hover {
	color: #fff;
	opacity: 1;
}

.site-footer .small {
	color: rgba(255, 255, 255, 0.85);
}

/* Override du theme: les <a> globaux deviennent oranges, on remet en blanc dans le footer */
.site-footer a {
	color: #fff !important;
}

.site-footer .footer-menu a {
	color: rgba(255, 255, 255, 0.85) !important;
}

@media (max-width: 767.98px) {
	.site-footer {
		padding: 40px 0 0 0;
		text-align: center;
	}

	.site-footer__main {
		padding-bottom: 24px;
		row-gap: 28px;
	}

	.site-footer__col {
		padding-left: 0;
		padding-right: 0;
		text-align: center;
	}

	/* Centrer le bloc social */
	.site-footer__social {
		justify-content: center;
	}

	/* Certifications centrées */
	.site-footer__certs {
		justify-content: center !important;
	}

	/* Locations row centrée */
	.site-footer__locations-list {
		justify-content: center;
	}

	/* Legal bottom centré */
	.site-footer .footer-menu {
		align-items: center;
	}

	.site-footer .border-top.pt-3.pb-3 .row {
		justify-content: center;
	}

	/* Logo + brand */
	.site-footer__logo {
		margin-bottom: 20px;
	}

	.site-footer__logo img {
		max-width: 140px;
	}

	.site-footer__contact {
		font-size: 0.9rem;
	}

	.site-footer__contact > li {
		margin-bottom: 8px;
	}

	/* Hot topics : pas de padding-top (déjà géré par min-width 768),
	   sépare visuellement de la col précédente avec un border-top discret */
	.site-footer__col--topics {
		padding-top: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.12);
		padding-top: 24px !important;
	}

	.site-footer__topics-list {
		font-size: 0.95rem;
		line-height: 1.9;
	}

	/* Certifications */
	.site-footer__col--certs {
		border-top: 1px solid rgba(255, 255, 255, 0.12);
		padding-top: 24px;
	}

	.site-footer__certs {
		justify-content: flex-start;
		gap: 14px;
	}

	.site-footer__cert-img {
		max-width: 70px;
	}

	.site-footer__cert-placeholder {
		width: 70px;
		height: 70px;
	}

	/* Locations row */
	.site-footer__locations {
		padding: 20px 0;
	}

	.site-footer__locations-list {
		gap: 6px;
	}

	.site-footer__location-inner {
		min-width: 0;
		padding: 8px 12px;
		flex: 1 1 calc(50% - 6px);     /* 2 colonnes sur mobile */
	}

	/* Bottom legal — wrap propre avec items en bloc, séparateurs masqués */
	.site-footer .footer-menu {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}

	.site-footer .footer-menu li {
		display: block;
		margin: 0;
	}

	.site-footer .footer-menu li:not(:last-child)::after {
		content: none;
	}

	.site-footer .border-top.pt-3.pb-3 {
		padding-top: 1.5rem !important;
	}

	.site-footer .border-top.pt-3.pb-3 .row {
		row-gap: 12px;
	}
}
