/* UEDF : annuaire et fiches membres. Couleurs et polices reprises du site. */
:root {
	--uedf-orange: #e09900;
	--uedf-bleu: #93a5bf;
	--uedf-bleu-fonce: #4159a0;
	--uedf-taupe: #bbac9f;
	--uedf-fond: #f4f4f4;
	--uedf-texte: #4a4a4a;
	--uedf-bord: #e4dfda;
	--uedf-rayon: 10px;
}

/* ---------- Logo dans son cadre (annuaire et fiche) ---------- */
.uedf-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 2;
	background: #fff;
	border-radius: var(--uedf-rayon);
	padding: 12%;
	box-sizing: border-box;
	overflow: hidden;
}
.uedf-logo img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	object-position: center;
	display: block;
}
/* Équilibre optique : les marges (en % de la largeur du cadre) varient selon la forme du logo
   pour qu'un logo carré et un logo très large paraissent de taille comparable. */
.uedf-logo--carre, .uedf-logo--haut { padding: 7% 14%; }
.uedf-logo--large { padding: 10% 11%; }
.uedf-logo--tres-large { padding: 12% 8%; }

/* Logo blanc ou très clair sur fond transparent : fond bleu UEDF. */
.uedf-logo--clair,
.uedf-carte .uedf-logo--clair { background: var(--uedf-bleu-fonce); border-color: var(--uedf-bleu-fonce); }

/* Pas de logo : nom de la fondation en Playfair Display, couleurs UEDF. */
.uedf-logo--vide {
	container-type: inline-size;
	position: relative;
	flex-direction: column;
	background: linear-gradient(180deg, #fff 0, #fff 70%, rgba(147, 165, 191, .14) 100%);
	padding: 10% 9%;
	text-align: center;
}
.uedf-logo--vide::after {
	content: "";
	display: block;
	width: 18%;
	height: 2px;
	margin-top: 7%;
	background: var(--uedf-orange);
	border-radius: 2px;
}
.uedf-logo__nom {
	font-family: "Playfair Display", Georgia, "Times New Roman", serif;
	font-weight: 400;
	color: var(--uedf-bleu-fonce);
	font-size: clamp(15px, 11.5cqw, 36px);
	line-height: 1.15;
	letter-spacing: 0 !important;
	text-transform: none !important;
	overflow-wrap: break-word;
	hyphens: auto;
}
.uedf-logo--nom-long .uedf-logo__nom { font-size: clamp(12px, 8cqw, 26px); }

.uedf-badge {
	display: inline-block;
	background: rgba(224, 153, 0, .12);
	color: #9a6900;
	font-family: "Nunito", Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	padding: 3px 10px;
	border-radius: 100px;
}

/* ---------- Annuaire ---------- */
.uedf-annuaire { font-family: "Nunito", Helvetica, Arial, sans-serif; }
.uedf-annuaire__outils {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin-bottom: 28px;
}
.uedf-recherche { flex: 1 1 260px; max-width: 360px; }
.uedf-recherche input {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--uedf-bord);
	border-radius: 100px;
	font-size: 16px;
	background: #fff;
}
.uedf-recherche input:focus { outline: 2px solid var(--uedf-bleu); outline-offset: 1px; }
.uedf-filtres { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 100%; order: 3; }
.uedf-filtre {
	border: 1px solid var(--uedf-bord);
	background: #fff;
	color: var(--uedf-texte);
	padding: 7px 14px;
	border-radius: 100px;
	font-size: 14px;
	cursor: pointer;
	font-family: inherit;
}
.uedf-filtre:hover { border-color: var(--uedf-bleu); }
.uedf-filtre.is-actif { background: var(--uedf-bleu-fonce); border-color: var(--uedf-bleu-fonce); color: #fff; }
.uedf-compteur { margin: 0; color: #777; font-size: 15px; padding: 0 !important; }

.uedf-grille {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 20px;
}
.uedf-carte { margin: 0 !important; padding: 0 !important; }
.uedf-carte[hidden] { display: none; }
.uedf-carte a {
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
	padding: 10px 10px 14px;
	border-radius: var(--uedf-rayon);
	text-decoration: none;
	color: var(--uedf-texte);
	transition: background-color .2s ease, transform .2s ease;
}
.uedf-carte .uedf-logo { border: 1px solid var(--uedf-bord); }
.uedf-carte a:hover, .uedf-carte a:focus-visible { background: var(--uedf-fond); transform: translateY(-2px); }
.uedf-carte__nom {
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .5px;
	line-height: 1.35;
	text-align: center;
}
.uedf-carte .uedf-badge { align-self: center; font-size: 11px; }
.uedf-aucun { text-align: center; color: #777; padding: 40px 0; }

/* ---------- Fiche ---------- */
.uedf-fiche { font-family: "Nunito", Helvetica, Arial, sans-serif; color: var(--uedf-texte); }
.uedf-fiche__conteneur { width: 80%; max-width: 1080px; margin: 0 auto; }
.uedf-fiche h2, .uedf-fiche h3 { padding-bottom: 0; }

/* En-tête : logo et informations pratiques à gauche, titre et présentation à droite, alignés en haut. */
.uedf-fiche__entete {
	background: var(--uedf-fond);
	padding: 56px 0 60px;
}
.uedf-fiche__entete .uedf-fiche__conteneur {
	display: grid;
	grid-template-columns: minmax(220px, 300px) 1fr;
	gap: 28px 56px;
	align-items: start;
}
.uedf-fiche__identite { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.uedf-fiche__texte { margin-top: 36px; }
.uedf-fiche__texte h2 {
	font-family: "Nunito", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 16px;
	color: var(--uedf-taupe);
	margin: 0 0 10px;
	padding: 0;
}
.uedf-fiche__texte p { line-height: 1.9; font-size: 16px; }
.uedf-fiche__entete .uedf-logo { box-shadow: 10px 10px 0 0 var(--uedf-taupe); margin-bottom: 6px; }
.uedf-fiche__bloc { min-width: 0; }
.uedf-fiche__etiquette {
	margin: 0 0 8px !important;
	padding: 0 !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--uedf-taupe);
}
.uedf-fiche__titre { min-width: 0; }
.uedf-fiche__titre .entry-title {
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(30px, 3.6vw, 46px);
	line-height: 1.15;
	margin: 0 0 18px;
	padding: 0;
	color: #333;
}
.uedf-fiche__titre .uedf-badge { margin-bottom: 12px; }
.uedf-fiche__chapo { font-size: 19px; line-height: 1.7; margin: 0; padding: 0 !important; }
.uedf-fiche__chapo--vide { color: #888; font-size: 17px; }
.uedf-tags { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.uedf-tags li { background: #fff; border: 1px solid var(--uedf-bord); border-radius: 100px; padding: 4px 12px; font-size: 14px; line-height: 1.5; }
.uedf-fiche__liens { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 6px; }
.uedf-fiche__liens li { padding: 0 !important; }
.uedf-fiche__liens a { color: var(--uedf-orange); font-weight: 700; overflow-wrap: anywhere; }

.uedf-fiche__textes { background: var(--uedf-fond); padding: 10px 0 50px; }
.uedf-fiche__textes .uedf-fiche__conteneur { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 48px; }
.uedf-fiche__textes h2, .uedf-fiche__projets h2 {
	font-family: "Nunito", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 18px;
	color: var(--uedf-taupe);
	margin-bottom: 12px;
}
.uedf-fiche__textes p { line-height: 1.9; }

.uedf-fiche__projets { padding: 50px 0; background: #fff; }
.uedf-fiche__projets h2 { text-align: center; margin-bottom: 28px; }
.uedf-fiche__projets ul { list-style: none !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.uedf-fiche__projets li {
	border-radius: var(--uedf-rayon);
	box-shadow: 6px 6px 18px rgba(0, 0, 0, .12);
	padding: 24px;
	text-align: center;
}
.uedf-fiche__projets h3 { color: var(--uedf-orange); text-transform: uppercase; font-size: 15px; letter-spacing: 1px; margin-bottom: 10px; }
.uedf-fiche__projets p { margin: 0 0 6px; line-height: 1.5; padding: 0; }
.uedf-fiche__projets p span { color: #888; }
.uedf-fiche__projets a { color: var(--uedf-bleu-fonce); text-decoration: underline; word-break: break-word; }

.uedf-fiche__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; padding: 40px 0 70px; background: var(--uedf-fond); }
.uedf-bouton {
	display: inline-block;
	background: var(--uedf-orange);
	color: #fff !important;
	border-radius: 100px;
	padding: .6em 1.6em;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color .3s ease;
}
.uedf-bouton--secondaire { background: var(--uedf-bleu); }
.uedf-bouton:hover, .uedf-bouton:focus-visible { background: var(--uedf-bleu-fonce); }

@media (max-width: 980px) {
	.uedf-fiche__conteneur { width: auto; padding: 0 20px; }
	.uedf-fiche__entete { padding-top: 30px; }
	.uedf-fiche__entete .uedf-fiche__conteneur { grid-template-columns: 1fr; gap: 24px; }
	.uedf-fiche__entete .uedf-logo { max-width: 300px; }
	/* Sur mobile : logo, puis titre et présentation, puis domaines et contact. */
	.uedf-fiche__identite { display: contents; }
	.uedf-fiche__identite .uedf-logo { order: 1; }
	.uedf-fiche__titre { order: 2; }
	.uedf-fiche__bloc { order: 3; }
	.uedf-fiche__textes .uedf-fiche__conteneur { gap: 24px; }
}
@media (max-width: 480px) {
	.uedf-grille { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.uedf-carte a { transition: none; }
	.uedf-carte a:hover { transform: none; }
}
