/**
 * AVENA — Footer (template Elementor Theme Builder, pas un widget custom
 * du plugin, comme .avena-header). Classes posées manuellement sur les
 * éléments dans Elementor :
 * .avena-footer__top (Flexbox, bande verte du haut)
 *   .avena-footer__address, .avena-footer__contact (Titres)
 * .avena-footer__bottom (Flexbox, bande blanche du bas)
 *   .avena-footer__badge (Icône, rond décoratif flottant à gauche)
 *   .avena-footer__copyright (Titre, "Copyright Avena")
 *   .avena-footer__legal-link (Bouton ×2, liens légaux)
 *   .avena-footer__credit (Titre, "© 2026 De Visu Stanprod")
 *   .avena-footer__linkedin (Icône, carré LinkedIn)
 * Chargé sur TOUTES les pages (cf. enqueue_global_assets() dans
 * class-avena-plugin.php), comme le header.
 *
 * !important partout dès le départ (pas seulement en cas de conflit
 * constaté) : Elementor génère par élément sa propre règle très spécifique
 * (sélecteur du type .elementor .e-XXXXXXX, lié à l'ID de l'élément) qui
 * écrase sinon l'intégralité de la déclaration — même constat que sur
 * .avena-header (cf. avena-header.css).
 */
.avena-footer__top {
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	background-color: #009e4d !important; /* --avena-color-primary : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	padding: 20px 60px !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
}

.avena-footer__address,
.avena-footer__contact {
	color: #ffffff !important; /* --avena-color-white : idem */
	font-family: 'Circular Std', sans-serif !important;
	font-weight: 600 !important;
	font-size: 20px !important;
	margin: 0 !important;
}

.avena-footer__bottom {
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	background-color: #ffffff !important; /* --avena-color-white : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	padding: 24px 60px !important;
	position: relative !important; /* nécessaire pour le badge flottant */
	flex-wrap: wrap !important;
	/*
	 * gap sert aussi à espacer le sous-groupe de gauche (badge + copyright +
	 * liens légaux) : ces éléments sont enfants directs de .avena-footer__bottom
	 * (pas de sous-Flexbox dédié), le gap du parent fait donc office
	 * d'espacement cohérent entre eux plutôt que des marges individuelles.
	 */
	gap: 20px !important;
}

/*
 * Badge flottant : plus ancré dans le flux de .avena-footer__bottom, mais
 * position:fixed sur toute la page (visible en permanence au scroll,
 * déplaçable au drag — cf. avena-badge-drag.js). Position par défaut
 * bottom/left, écrasée en left/top par le JS dès qu'un drag a eu lieu ou
 * qu'une position est restaurée depuis localStorage.
 */
.avena-footer__badge {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 50% !important;
	background-color: #104651 !important; /* --avena-color-ink : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.2 ) !important;
	position: fixed !important;
	bottom: 24px !important;
	left: 24px !important;
	z-index: 9999 !important;
	cursor: grab !important;
	touch-action: none !important; /* évite le scroll de la page pendant le drag sur mobile */
}

.avena-footer__badge.is-dragging {
	cursor: grabbing !important;
	transition: none !important;
}

.avena-footer__badge img,
.avena-footer__badge svg {
	width: 24px !important;
	height: 24px !important;
}

/*
 * L'icône réelle est un SVG Elementor nichée dans un
 * div.elementor-icon-wrapper (enfant du wrapper, pas enfant direct de
 * .avena-footer__badge) — d'où la couleur bleu clair par défaut d'Elementor
 * non corrigée par la règle ci-dessus. Icône en blanc (pas ink #104651,
 * corrigé ici : c'est la même couleur que le fond du badge, donc invisible
 * dessus) pour contraster sur le cercle foncé, comme .avena-footer__linkedin.
 */
.avena-footer__badge .elementor-icon-wrapper,
.avena-footer__badge .elementor-icon-wrapper svg,
.avena-footer__badge .elementor-icon-wrapper svg path {
	fill: #ffffff !important;
	color: #ffffff !important;
}

.avena-footer__copyright {
	color: #009e4d !important; /* --avena-color-primary : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	font-family: 'Circular Std', sans-serif !important;
	font-weight: 400 !important;
	font-size: 11px !important;
	margin: 0 !important;
}

/*
 * Les liens légaux sont des widgets Bouton Elementor par défaut : on les
 * reset pour qu'ils ressemblent à du texte souligné simple, pas des
 * boutons pleins.
 */
.avena-footer__legal-link {
	background: none !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	color: #009e4d !important; /* --avena-color-primary : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	font-family: 'Circular Std', sans-serif !important;
	font-weight: 400 !important;
	font-size: 11px !important;
	text-decoration: underline !important;
	cursor: pointer !important;
}

.avena-footer__legal-link:hover {
	opacity: 0.75 !important;
}

/*
 * Le texte visible du bouton est dans un span.elementor-button-text interne
 * (pas directement dans .avena-footer__legal-link) — Elementor y applique
 * son propre text-decoration:none qui l'emporte sur celui du parent.
 */
.avena-footer__legal-link .elementor-button-text {
	text-decoration: underline !important;
}

.avena-footer__credit {
	color: #104651 !important; /* --avena-color-ink : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
	font-family: 'Circular Std', sans-serif !important;
	font-weight: 500 !important;
	font-size: 11px !important;
	margin: 0 !important;
}

.avena-footer__linkedin {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 45px !important;
	height: 45px !important;
	border-radius: 8px !important;
	background-color: #104651 !important; /* --avena-color-ink : var() ne se résout pas ici, hors du scope .avena-sim-* de tokens.css */
}

.avena-footer__linkedin img,
.avena-footer__linkedin svg {
	width: 24px !important;
	height: 24px !important;
}

/*
 * Mobile : grilles à deux colonnes conformes à la maquette Figma. Breakpoint
 * 767px, identique au mode Mobile par défaut d'Elementor. Le bouton cookie
 * conserve ses règles séparées ci-dessus et n'entre pas dans ces grilles.
 */
@media ( max-width: 767px ) {
	/* Grille mobile conforme à la maquette Figma : adresse à gauche,
	 * coordonnées et LinkedIn à droite. Le JS place LinkedIn dans ce bloc. */
	.avena-footer__top {
		display: grid !important;
		grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1fr ) !important;
		grid-template-rows: auto auto !important;
		column-gap: 20px !important;
		row-gap: 12px !important;
		height: auto !important;
		align-items: start !important;
		padding: 28px 20px 24px !important;
		text-align: left !important;
	}

	.avena-footer__address {
		grid-column: 1 !important;
		grid-row: 1 / span 2 !important;
		justify-self: start !important;
	}

	.avena-footer__contact {
		grid-column: 2 !important;
		grid-row: 1 !important;
		justify-self: end !important;
		transform: translateX( 8px ) !important;
	}

	.avena-footer__top .avena-footer__linkedin {
		grid-column: 2 !important;
		grid-row: 2 !important;
		justify-self: end !important;
		align-self: start !important;
	}

	.avena-footer__top .avena-footer__linkedin,
	.avena-footer__top .avena-footer__linkedin .elementor-icon,
	.avena-footer__top .avena-footer__linkedin .elementor-icon-wrapper {
		background-color: #104651 !important;
		color: #009e4d !important;
	}

	.avena-footer__top .avena-footer__linkedin svg,
	.avena-footer__top .avena-footer__linkedin svg path {
		fill: #009e4d !important;
		color: #009e4d !important;
	}

	.avena-footer__address,
	.avena-footer__address *,
	.avena-footer__contact,
	.avena-footer__contact * {
		color: #ffffff !important;
		font-family: 'Circular Std', sans-serif !important;
		font-size: 16px !important;
		font-weight: 600 !important;
		line-height: 1.55 !important;
		text-align: left !important;
	}

	/* Partie blanche : deux colonnes et deux lignes, comme la maquette. */
	.avena-footer__bottom {
		display: grid !important;
		grid-template-columns: max-content max-content !important;
		grid-auto-flow: row !important;
		justify-content: space-between !important;
		justify-items: center !important;
		column-gap: 8px !important;
		row-gap: 12px !important;
		height: auto !important;
		min-height: 0 !important;
		padding: 18px 20px 22px !important;
		align-items: center !important;
		align-content: start !important;
		text-align: center !important;
	}

	/* Conteneur Elementor devenu vide lorsque LinkedIn rejoint la bande verte. */
	.avena-footer__mobile-empty-linkedin-slot {
		display: none !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.avena-footer__copyright {
		grid-column: 1 !important;
		grid-row: 1 !important;
	}

	.avena-footer__credit {
		grid-column: 2 !important;
		grid-row: 1 !important;
	}

	.avena-footer__legal-link {
		width: auto !important;
		min-width: max-content !important;
		max-width: none !important;
		justify-self: center !important;
	}

	.avena-footer__copyright,
	.avena-footer__copyright *,
	.avena-footer__credit,
	.avena-footer__credit *,
	.avena-footer__legal-link,
	.avena-footer__legal-link * {
		font-family: 'Circular Std', sans-serif !important;
		width: auto !important;
		max-width: none !important;
		font-size: 13px !important;
		line-height: 1.3 !important;
		text-align: center !important;
		white-space: nowrap !important;
	}
}

/*
 * German page only: "Datenschutzbestimmungen" is too long to sit next to
 * "Rechtliche Hinweise" on a phone (it overflowed the screen by ~33 px at
 * 375 px). Each legal link gets its own full-width row. French footer untouched.
 */
@media ( max-width: 767px ) {
	html[lang="de-DE"] .avena-footer__bottom .avena-footer__legal-link {
		grid-column: 1 / -1 !important;
	}
}
