@charset "UTF-8";
/* ==========================================================================
   OZE Accompagnement — pied de page.
   Deux niveaux : trois colonnes (identité / navigation / conversion),
   puis une barre inférieure (liens juridiques + copyright).
   Le balisage vient du thème parent ; rien n'est modifié dans celui-ci.
   ========================================================================== */

#footer.cmsmasters-footer {
	--ozf-bg: #3D3834;
	--ozf-text: #F7F1E7;
	--ozf-text-2: #D8CFC5;
	--ozf-btn: #B85C47;
	--ozf-btn-hover: #A04B38;
	--ozf-rule: rgba(247, 241, 231, .18);

	background: var(--ozf-bg);
	color: var(--ozf-text);
	font-family: var(--e-global-typography-text-font-family, 'Work Sans', Helvetica, Arial, sans-serif);
	font-size: 15px;
	line-height: 1.5;
}

/* Zone de widgets du thème : neutralisée (widgets déjà sortis des zones). */
.cmsmasters-footer-widgets { display: none !important; }

#footer .cmsmasters-footer__outer { padding: 0; }

#footer .cmsmasters-footer__inner.cmsmasters-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) minmax(0, 1.2fr);
	grid-template-areas:
		"brand nav cta"
		"legal legal copy";
	column-gap: 40px;
	row-gap: 0;
	grid-auto-rows: min-content;   /* aucune ligne implicite ne peut s'étirer */
	align-items: start;
	align-content: start;
	max-width: 1120px;
	margin-inline: auto;
	padding: 44px 20px 32px;
	width: 100%;
}

/* Les blocs vides du thème (zones sans contenu) ne doivent rien occuper */
#footer .cmsmasters-footer__inner > *:empty { display: none; }

/* Les blocs du thème deviennent transparents pour la grille */
#footer .cmsmasters-footer-html,
#footer .cmsmasters-footer-html__outer,
#footer .cmsmasters-footer-html__inner { display: contents; }

/* ------------------------------------------------- Colonne 1 : identité */
#footer .ozf-brand { grid-area: brand; }
/* Le logo était étiré à 168 × 1500 px : dimensions bornées explicitement,
   avec une spécificité et une priorité suffisantes pour battre le thème. */
#footer .ozf-brand__logo {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: 140px !important;
	max-height: 76px !important;
	object-fit: contain;
	margin: 0 0 14px;
}
#footer .ozf-brand__tagline {
	margin: 0;
	max-width: 30ch;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ozf-text-2);
	text-transform: none;
}

/* Réseaux sociaux : sous la signature, dans la colonne identité.
   Pastilles discrètes, icônes en currentColor (aucune couleur de marque). */
#footer .ozf-social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	/* Le balisage est un <ul> : sans cette remise à zéro, le navigateur applique
	   ses valeurs par défaut (puces et retrait gauche d'environ 40 px), d'où les
	   points affichés devant les pictogrammes. La liste de navigation du pied de
	   page, juste en dessous, portait déjà la même remise à zéro. */
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}
#footer .ozf-social li {
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Safari conserve le marqueur des éléments de liste devenus éléments flex. */
#footer .ozf-social li::marker { content: ""; }
#footer .ozf-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* 40 px : cible tactile confortable sans alourdir la colonne. */
	width: 40px;
	height: 40px;
	border: 1px solid var(--ozf-rule);
	border-radius: 50%;
	color: var(--ozf-text-2);
	text-decoration: none;
	transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}
#footer .ozf-social__link:hover,
#footer .ozf-social__link:focus-visible {
	background: rgba(247, 241, 231, .08);
	border-color: #F0BFAE;
	color: #F0BFAE;
}
#footer .ozf-social__icon {
	display: block;
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* ---------------------------------------------- Colonne 2 : navigation */
#footer .cmsmasters-footer-menu { grid-area: nav; }
#footer .cmsmasters-footer-menu__nav { width: 100%; }
#footer .cmsmasters-footer-menu__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
#footer .cmsmasters-footer-menu__list li { margin: 0; }
#footer .cmsmasters-footer-menu__list a {
	display: inline-block;
	padding: 5px 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ozf-text);
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	transition: color 180ms ease;
}
#footer .cmsmasters-footer-menu__list a:hover,
#footer .cmsmasters-footer-menu__list a:focus-visible {
	color: #F0BFAE;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --------------------------------------------- Colonne 3 : conversion */
#footer .ozf-cta { grid-area: cta; }
#footer .ozf-cta__hook {
	margin: 0 0 16px;
	max-width: 34ch;
	font-size: 16px;
	line-height: 1.45;
	color: var(--ozf-text);
}
#footer .ozf-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 24px;
	border-radius: 10px;
	/* Le fond demandé (#B85C47) n'offre que 2,6:1 avec le brun : un contour plus
	   clair rend le bord du bouton perceptible (seuil 3:1 des composants). */
	border: 2px solid #D8876F;
	background: var(--ozf-btn);
	color: #FFFFFF;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	text-transform: none;
	transition: background-color 180ms ease, border-color 180ms ease;
}
#footer .ozf-cta__btn:hover,
#footer .ozf-cta__btn:focus-visible {
	background: var(--ozf-btn-hover);
	border-color: #E09480;
	color: #FFFFFF;
}

/* -------------------------------------- Niveau inférieur : légal + © */
#footer .ozf-legal {
	grid-area: legal;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
	margin-top: 28px;
	padding-top: 16px;
	border-top: 1px solid var(--ozf-rule);
}
#footer .ozf-legal a {
	display: inline-block;
	padding: 4px 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ozf-text-2);
	text-decoration: none;
	text-transform: none;
	transition: color 180ms ease;
}
#footer .ozf-legal a:hover,
#footer .ozf-legal a:focus-visible {
	color: var(--ozf-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

#footer .cmsmasters-footer-copyright {
	grid-area: copy;
	margin-top: 28px;
	padding-top: 16px;
	border-top: 1px solid var(--ozf-rule);
	text-align: right;
}
#footer .cmsmasters-footer-copyright__outer,
#footer .cmsmasters-footer-copyright__inner { padding: 0; margin: 0; }
#footer .cmsmasters-footer-copyright p {
	margin: 4px 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ozf-text-2);
	text-transform: none;
}

/* Focus clavier visible sur fond sombre */
#footer a:focus-visible {
	outline: 3px solid #F0BFAE;
	outline-offset: 3px;
	border-radius: 3px;
}

/* --------------------------------------------------------- Responsive */
@media (max-width: 1024px) {
	#footer .cmsmasters-footer__inner.cmsmasters-footer__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas:
			"brand nav"
			"cta   cta"
			"legal legal"
			"copy  copy";
		column-gap: 32px;
		padding: 40px 20px 34px;
	}
	#footer .ozf-cta { margin-top: 28px; }
	#footer .cmsmasters-footer-copyright { margin-top: 14px; padding-top: 0; border-top: 0; text-align: left; }
	#footer .ozf-legal { margin-top: 30px; }
}

@media (max-width: 640px) {
	#footer .cmsmasters-footer__inner.cmsmasters-footer__inner {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "brand" "nav" "cta" "legal" "copy";
		padding: 32px 18px 28px;
		text-align: left;
	}
	#footer .ozf-brand__logo { max-width: 120px !important; max-height: 66px !important; }
	#footer .cmsmasters-footer-menu { margin-top: 22px; }
	#footer .ozf-cta { margin-top: 24px; }
	#footer .ozf-cta__btn { width: 100%; }
	#footer .ozf-legal {
		margin-top: 26px;
		gap: 2px 18px;
		font-size: 14.5px;
	}
	#footer .ozf-legal a { padding: 3px 0; }
}

/* Pas de mot coupé ni de débordement horizontal */
#footer .ozf-brand__tagline,
#footer .ozf-cta__hook,
#footer .ozf-legal a,
#footer .cmsmasters-footer-menu__list a { overflow-wrap: break-word; hyphens: none; }

@media (prefers-reduced-motion: reduce) {
	#footer * { transition: none !important; }
}
