/* FFG Annuaire · charte FFG (Noir & Émeraude) */
.ffga {
	--ffga-ink: #121212;
	--ffga-green: #5d6b1c;
	--ffga-green-2: #5d6b1c;
	--ffga-beige: #f7f6f3;
	--ffga-line: #e6e4de;
	--ffga-muted: #5f625c;
	--ffga-white: #fff;
	--ffga-radius: 18px;
	--ffga-radius-sm: 12px;
	--ffga-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 8px 24px rgba(18, 18, 18, .06);
	--ffga-shadow-hover: 0 2px 4px rgba(18, 18, 18, .05), 0 16px 40px rgba(93, 107, 28, .14);
	--ffga-title: "Josefin Sans", inherit;
	--ffga-body: "Source Sans 3", inherit;
	font-family: var(--ffga-body);
	color: var(--ffga-ink);
	box-sizing: border-box;
}
.ffga *, .ffga *::before, .ffga *::after { box-sizing: inherit; }
.ffga [hidden] { display: none !important; }

/* ---------- Barre de filtres ---------- */
.ffga-bar {
	display: grid;
	grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(160px, 1fr)) auto;
	gap: 12px;
	align-items: end;
	padding: 18px;
	margin: 0 0 18px;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: var(--ffga-radius);
	box-shadow: var(--ffga-shadow);
}
.ffga-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ffga-field label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ffga-muted);
}
.ffga-field input,
.ffga-field select,
.ffga-field textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	font: inherit;
	font-size: 16px;
	color: var(--ffga-ink);
	background: var(--ffga-beige);
	border: 1px solid transparent;
	border-radius: var(--ffga-radius-sm);
	transition: border-color .2s, background .2s, box-shadow .2s;
	appearance: none;
}
.ffga-field select {
	padding-right: 38px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23121212' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.ffga-field input:focus,
.ffga-field select:focus,
.ffga-field textarea:focus {
	outline: none;
	background-color: var(--ffga-white);
	border-color: var(--ffga-green);
	box-shadow: 0 0 0 4px rgba(93, 107, 28, .18);
}
.ffga-reset {
	min-height: 46px;
	padding: 0 18px;
	font: inherit;
	font-weight: 600;
	color: var(--ffga-green);
	background: transparent;
	border: 1px solid var(--ffga-green);
	border-radius: 999px;
	cursor: pointer;
}
.ffga-reset:hover { background: var(--ffga-green); color: var(--ffga-white); }

/* ---------- Compteur et vues ---------- */
.ffga-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 16px;
}
.ffga-count { margin: 0; color: var(--ffga-muted); }
.ffga-count strong { font-family: var(--ffga-title); font-size: 22px; color: var(--ffga-ink); }
.ffga-views {
	display: inline-flex;
	padding: 4px;
	background: var(--ffga-beige);
	border-radius: 999px;
}
.ffga-views button {
	padding: 8px 18px;
	font: inherit;
	font-weight: 600;
	color: var(--ffga-muted);
	background: transparent;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}
.ffga-views button[aria-pressed="true"] {
	color: var(--ffga-white);
	background: var(--ffga-ink);
	box-shadow: var(--ffga-shadow);
}

/* ---------- Grille de cartes ---------- */
.ffga-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ffga-card {
	position: relative;
	display: grid;
	grid-template-columns: 128px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 16px;
	margin: 0;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: var(--ffga-radius);
	box-shadow: var(--ffga-shadow);
	transition: transform .2s, box-shadow .2s, border-color .2s;
}
.ffga-card:hover {
	transform: translateY(-2px);
	border-color: rgba(93, 107, 28, .35);
	box-shadow: var(--ffga-shadow-hover);
}

/* Cadre logo : même taille pour tous, logo entier, jamais rogné ni déformé */
.ffga-card__logo,
.ffga-fiche__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: var(--ffga-radius-sm);
}
.ffga-card__logo { width: 128px; height: 92px; padding: 6px; }
.ffga-card__logo img,
.ffga-fiche__logo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: 100%;
	object-fit: contain;
	object-position: center;
	margin: 0 !important;
}
.ffga-card__placeholder { color: var(--ffga-green-2); opacity: .55; }

.ffga-card__body { min-width: 0; }
.ffga-card__title {
	margin: 0 0 4px;
	font-family: var(--ffga-title);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
}
.ffga-card__title a { color: var(--ffga-ink); text-decoration: none; }
/* Toute la carte est cliquable */
.ffga-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--ffga-radius); }
.ffga-card__title a:focus-visible { outline: none; }
.ffga-card:focus-within { outline: 3px solid var(--ffga-green-2); outline-offset: 2px; }
.ffga-card__place { margin: 0 0 8px; font-size: 14px; color: var(--ffga-muted); }
.ffga-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ffga-card__tags span {
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 600;
	color: var(--ffga-green);
	background: rgba(93, 107, 28, .12);
	border-radius: 999px;
}
.ffga-card__arrow {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: var(--ffga-green);
	background: var(--ffga-beige);
	border-radius: 50%;
	transition: background .2s, color .2s;
}
.ffga-card:hover .ffga-card__arrow { color: var(--ffga-white); background: var(--ffga-green); }

.ffga-empty {
	padding: 32px;
	text-align: center;
	color: var(--ffga-muted);
	background: var(--ffga-beige);
	border-radius: var(--ffga-radius);
}
.ffga-link {
	padding: 0;
	font: inherit;
	font-weight: 600;
	color: var(--ffga-green);
	text-decoration: underline;
	background: none;
	border: 0;
	cursor: pointer;
}

/* ---------- Carte Leaflet ---------- */
.ffga-map,
.ffga-fiche__map {
	width: 100%;
	overflow: hidden;
	border-radius: var(--ffga-radius);
	box-shadow: var(--ffga-shadow);
	z-index: 0;
}
.ffga-map { height: 560px; margin: 0 0 18px; }
.ffga-fiche__map { height: 100%; min-height: 260px; }
.leaflet-div-icon.ffga-pin { background: none; border: 0; }
.ffga .leaflet-popup-content-wrapper { border-radius: var(--ffga-radius-sm); box-shadow: var(--ffga-shadow-hover); }
.ffga .leaflet-popup-content { margin: 12px 16px; font-family: var(--ffga-body); }
.ffga-pop strong { display: block; margin-bottom: 4px; font-family: var(--ffga-title); font-size: 15px; }
.ffga-pop a { font-weight: 600; color: var(--ffga-green); }

/* ---------- Fiche ---------- */
.ffga-fiche { margin: 32px 0 0; }
.ffga-fiche__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	padding: 20px;
	margin: 0 0 20px;
	background: var(--ffga-beige);
	border-radius: var(--ffga-radius);
}
.ffga-fiche__logo { width: 180px; height: 140px; padding: 14px; box-shadow: var(--ffga-shadow); }
.ffga-fiche__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ffga-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 22px;
	font: inherit;
	font-weight: 700;
	color: var(--ffga-ink);
	text-decoration: none;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	box-shadow: var(--ffga-shadow);
	cursor: pointer;
	transition: transform .2s, box-shadow .2s, background .2s;
}
.ffga-btn:hover { transform: translateY(-1px); box-shadow: var(--ffga-shadow-hover); }
.ffga-btn--primary { color: var(--ffga-white); background: var(--ffga-green); border-color: var(--ffga-green); }
.ffga-btn--primary:hover { color: var(--ffga-white); background: #256b41; }
.ffga-btn[disabled] { opacity: .6; cursor: wait; }

.ffga-fiche__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.ffga-box {
	padding: 22px;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: var(--ffga-radius);
	box-shadow: var(--ffga-shadow);
}
.ffga-box--map { padding: 0; overflow: hidden; }
.ffga-box__title {
	margin: 0 0 14px;
	font-family: var(--ffga-title);
	font-size: 19px;
	font-weight: 700;
	color: var(--ffga-ink);
}
.ffga-dl { display: grid; gap: 12px; margin: 0; }
.ffga-dl > div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; }
.ffga-dl dt { font-size: 13px; font-weight: 600; color: var(--ffga-muted); }
.ffga-dl dd { margin: 0; overflow-wrap: anywhere; }
.ffga-dl dd p { margin: 0 0 .4em; }
.ffga-dl dd p:last-child { margin: 0; }
.ffga-dl a { color: var(--ffga-green); font-weight: 600; text-decoration: none; }
.ffga-dl a:hover { text-decoration: underline; }
.ffga-muted { color: var(--ffga-muted); }

/* ---------- Formulaire de contact ---------- */
.ffga-contact { margin: 16px 0 0; scroll-margin-top: 120px; }
.ffga-form { display: grid; gap: 14px; }
.ffga-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ffga-form textarea { min-height: 140px; resize: vertical; }
.ffga-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ffga-muted); }
.ffga-consent input { margin-top: 3px; accent-color: var(--ffga-green); }
.ffga-form__foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ffga-form__status { margin: 0; font-weight: 600; }
.ffga-form__status.is-ok { color: var(--ffga-green); }
.ffga-form__status.is-err { color: #b3261e; }
.ffga-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ffga-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; }
.ffga-chips a {
	padding: 6px 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ffga-green);
	text-decoration: none;
	background: rgba(93, 107, 28, .12);
	border-radius: 999px;
}
.ffga-chips a:hover { color: var(--ffga-white); background: var(--ffga-green); }
.ffga-back { margin: 24px 0 0; }
.ffga-back a { font-weight: 700; color: var(--ffga-green); text-decoration: none; }

/* ---------- Pages région / département / thème ---------- */
.ffga-archive__wrap { max-width: 1240px; margin: 0 auto; padding: 40px 16px 64px; }
.ffga-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; font-size: 14px; color: #5f625c; }
.ffga-breadcrumb a { color: #5d6b1c; text-decoration: none; }
.ffga-archive__title {
	margin: 0 0 16px;
	font-family: "Josefin Sans", inherit;
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.15;
	color: #121212;
}
.ffga-archive__intro { max-width: 760px; margin: 0 0 24px; color: #5f625c; }

/* ==================================================================
   Carte de France des associations : même style que les cartes FFG
   (Archives départementales, Villages disparus)
   ================================================================== */
.ffgmap {
	font-family: Arial, sans-serif;
	max-width: 100%;
	margin: 0 auto 32px;
	overflow: hidden;
	border-radius: 10px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, .13);
	background: #fff;
}
.ffgmap * { box-sizing: border-box; }
.ffgmap [hidden] { display: none !important; }
.ffgmap-header {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	color: #fff;
	background: linear-gradient(135deg, #1a3a5c 0%, #2d6a9f 100%);
}
.ffgmap-header-icon { display: flex; flex-shrink: 0; }
.ffgmap-header-text { min-width: 0; }
.ffgmap-title { font-size: 1.1rem; font-weight: 700; line-height: 1.35; color: #fff; }
.ffgmap-subtitle { margin-top: 3px; font-size: .78rem; color: #fff; opacity: .85; }
.ffgmap-stats { margin-left: auto; font-size: .8rem; color: #fff; opacity: .95; white-space: nowrap; }
.ffgmap-stats strong { font-size: 1.05rem; color: #fff; }

.ffgmap-controls {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 10px 16px;
	background: #fff;
	border-bottom: 1px solid #dde;
}
.ffgmap-legend {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 6px;
}
.ffgmap-tools {
	display: flex;
	align-items: center;
	gap: 10px;
}
.ffgmap-legend-item {
	display: flex;
	align-items: center;
	gap: 5px;
	padding: 3px 8px;
	font-family: Arial, sans-serif;
	font-size: .78rem;
	color: #333;
	white-space: nowrap;
	background: none;
	border: 1px solid transparent;
	border-radius: 14px;
	cursor: pointer;
	user-select: none;
}
.ffgmap-legend-item:hover { color: #1a3a5c; }
.ffgmap-legend-item.ffgmap-active { font-weight: 700; color: #1a3a5c; background: #f2f5f9; border-color: #c9d3e0; }
.ffgmap-dot {
	display: inline-block;
	flex-shrink: 0;
	width: 13px;
	height: 13px;
	border: 2px solid rgba(0, 0, 0, .22);
	border-radius: 50%;
}
.ffgmap-search-wrap { flex: 1 1 auto; min-width: 0; }
.ffgmap-search {
	width: 100%;
	padding: 6px 12px;
	font-family: Arial, sans-serif;
	font-size: .8rem;
	border: 1px solid #bbc;
	border-radius: 20px;
	outline: none;
}
.ffgmap-search:focus { border-color: #2d6a9f; box-shadow: 0 0 0 2px rgba(45, 106, 159, .2); }
.ffgmap-btn {
	flex-shrink: 0;
	padding: 8px 16px;
	font-family: Arial, sans-serif;
	font-size: .78rem;
	font-weight: 700;
	color: #fff;
	white-space: nowrap;
	background: linear-gradient(135deg, #1a3a5c 0%, #2d6a9f 100%);
	border: none;
	border-radius: 20px;
	cursor: pointer;
	transition: filter .15s, transform .15s;
}
.ffgmap-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.ffgmap-btn:focus-visible,
.ffgmap-legend-item:focus-visible { outline: 2px solid #2d6a9f; outline-offset: 2px; }
.ffgmap-btn-alt { color: #1a3a5c; background: #fff; border: 1px solid #c9d3e0; }
.ffgmap-btn-alt[aria-expanded="true"] { background: #eef3f8; border-color: #2d6a9f; }

.ffgmap-body { display: flex; align-items: stretch; }
.ffgmap-map { position: relative; flex: 1 1 auto; min-width: 0; height: var(--ffgmap-h, 640px); z-index: 0; }
.ffgmap-hint {
	position: absolute;
	top: 12px;
	left: 50%;
	z-index: 800;
	padding: 6px 14px;
	font-size: .75rem;
	color: #fff;
	background: rgba(26, 58, 92, .88);
	border-radius: 16px;
	transform: translateX(-50%);
	pointer-events: none;
	transition: opacity .3s;
}
.ffgmap-hint.ffgmap-hidden { opacity: 0; }
.ffgmap-back {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 900;
	padding: 8px 16px;
	font-family: Arial, sans-serif;
	font-size: .78rem;
	font-weight: 700;
	color: #1a3a5c;
	background: #fff;
	border: 1px solid #c9d3e0;
	border-radius: 20px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .18);
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
}
.ffgmap-back:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(26, 58, 92, .25); }
.ffgmap-back:focus-visible { outline: 2px solid #2d6a9f; outline-offset: 2px; }

/* Liste latérale */
.ffgmap-list {
	flex: 0 0 290px;
	height: var(--ffgmap-h, 640px);
	overflow-y: auto;
	font-size: .8rem;
	background: #f7f9fc;
	border-right: 1px solid #dde;
}
.ffgmap-list-group { border-bottom: 1px solid #e3e8ef; }
.ffgmap-list-head {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 9px 14px;
	font-size: .8rem;
	font-weight: 700;
	color: #1a3a5c;
	background: #eef3f8;
	border-bottom: 1px solid #dde;
}
.ffgmap-list-count { margin-left: auto; font-weight: 400; color: #666; }
.ffgmap-list ul { margin: 0 !important; padding: 4px 0 !important; list-style: none !important; }
.ffgmap-list li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ffgmap-list-item {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 6px 14px;
	font-family: Arial, sans-serif;
	font-size: .8rem;
	line-height: 1.35;
	text-align: left;
	color: #222;
	background: none;
	border: none;
	cursor: pointer;
}
.ffgmap-list-item .ffgmap-dot { width: 10px; height: 10px; border-width: 1px; }
.ffgmap-list-item:hover { color: #1a3a5c; background: #e6edf5; }
.ffgmap-list-item:focus-visible { outline: 2px solid #2d6a9f; outline-offset: -2px; }
.ffgmap-list-item.ffgmap-current { font-weight: 700; color: #1a3a5c; background: #dce6f1; }
.ffgmap-list-empty { padding: 14px; font-style: italic; color: #888; }

/* Repères et groupes */
.leaflet-div-icon.ffgmap-marker,
.leaflet-div-icon.ffgmap-cluster { background: none; border: 0; }
.ffgmap-marker span {
	display: block;
	width: 18px;
	height: 18px;
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
	transition: transform .15s;
}
.ffgmap-marker:hover span { transform: scale(1.25); }
.ffgmap-cluster span {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	font-family: Arial, sans-serif;
	font-size: .8rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, #1a3a5c 0%, #2d6a9f 100%);
	border: 3px solid rgba(255, 255, 255, .9);
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgba(45, 106, 159, .22), 0 2px 8px rgba(0, 0, 0, .25);
}

/* Encart outre-mer */
.ffgmap-dom {
	max-width: 210px;
	padding: 8px;
	font-family: Arial, sans-serif;
	background: rgba(255, 255, 255, .95);
	border-radius: 10px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
}
.ffgmap-dom-title { margin: 0 0 6px; padding: 0 4px; font-size: .68rem; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #1a3a5c; }
.ffgmap-dom button {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	width: 100%;
	padding: 5px 8px;
	font-family: Arial, sans-serif;
	font-size: .76rem;
	color: #222;
	text-align: left;
	background: none;
	border: 0;
	border-radius: 6px;
	cursor: pointer;
}
.ffgmap-dom button:hover { color: #1a3a5c; background: #eef3f8; }
.ffgmap-dom button span { font-weight: 700; color: #2d6a9f; }

/* Popups */
.ffgmap .leaflet-popup-content-wrapper {
	padding: 0 !important;
	overflow: hidden;
	border: none !important;
	border-radius: 10px !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, .18) !important;
}
.ffgmap .leaflet-popup-content { width: 300px !important; margin: 0 !important; font-family: Arial, sans-serif; }
.ffgmap .leaflet-popup-tip-container { display: none; }
.ffgmap .leaflet-popup-close-button { top: 6px !important; right: 6px !important; color: #fff !important; }
.ffgmap-ph { padding: 12px 30px 10px 16px; font-size: .93rem; font-weight: 700; line-height: 1.3; color: #fff; }
.ffgmap-badge {
	display: inline-block;
	margin: 5px 4px 0 0;
	padding: 2px 8px;
	font-size: .67rem;
	font-weight: 400;
	background: rgba(255, 255, 255, .25);
	border-radius: 10px;
}
.ffgmap-pb { padding: 11px 15px; }
.ffgmap-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 84px;
	margin: 0 0 10px;
	padding: 8px;
	background: #fff;
	border: 1px solid #e3e8ef;
	border-radius: 8px;
}
.ffgmap-logo img { max-width: 100% !important; max-height: 100% !important; width: auto !important; height: auto !important; object-fit: contain; margin: 0 !important; }
.ffgmap-row { margin-bottom: 7px; font-size: .78rem; }
.ffgmap-lbl { margin-bottom: 2px; font-size: .68rem; letter-spacing: .5px; text-transform: uppercase; color: #888; }
.ffgmap-val { line-height: 1.4; color: #222; }
.ffgmap-val a { color: #1a3a5c; font-weight: 700; text-decoration: none; }
.ffgmap-links { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.ffgmap-link {
	display: block;
	padding: 7px 12px;
	font-size: .76rem;
	font-weight: 700;
	color: #1a3a5c !important;
	text-decoration: none !important;
	background: #eef3f8;
	border-radius: 6px;
}
.ffgmap-link:hover { background: #dce6f1; }
.ffgmap-link-main { color: #fff !important; background: linear-gradient(135deg, #1a3a5c 0%, #2d6a9f 100%); }
.ffgmap-link-main:hover { filter: brightness(1.08); background: linear-gradient(135deg, #1a3a5c 0%, #2d6a9f 100%); }

@media (max-width: 700px) {
	.ffgmap-tools { flex-wrap: wrap; }
	.ffgmap-search-wrap { flex: 1 1 100%; }
	.ffgmap-back { top: auto; bottom: 12px; right: 12px; }
}
@media (max-width: 700px) {
	.ffgmap-header { padding: 14px 16px; }
	.ffgmap-stats { display: none; }
	.ffgmap-body { flex-direction: column; }
	.ffgmap-list { flex: 0 0 auto; height: 300px; border-right: 0; border-bottom: 1px solid #dde; }
	.ffgmap-map { height: 460px; }
	.ffgmap-btn { flex: 1 1 auto; }
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
	.ffga-bar { grid-template-columns: 1fr 1fr; }
	.ffga-field--search { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
	.ffga-fiche__grid, .ffga-form__row { grid-template-columns: 1fr; }
	.ffga-dl > div { grid-template-columns: 1fr; gap: 2px; }
	.ffga-map { height: 420px; }
}
@media (max-width: 560px) {
	.ffga-bar { grid-template-columns: 1fr; padding: 14px; }
	.ffga-card { grid-template-columns: 96px 1fr; padding: 14px; }
	.ffga-card__logo { width: 96px; height: 72px; padding: 5px; }
	.ffga-card__arrow { display: none; }
	.ffga-fiche__head { flex-direction: column; align-items: stretch; }
	.ffga-fiche__logo { width: 100%; height: 150px; }
	.ffga-fiche__actions .ffga-btn { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.ffga-card, .ffga-btn, .ffga-card__arrow { transition: none; }
}

/* Aperçu [ffg_fiche] */
.ffga-preview { max-width: 1100px; margin: 0 auto; }
.ffga-preview__title { margin: 0 0 12px; font-family: "Josefin Sans", inherit; font-size: clamp(24px, 3vw, 34px); line-height: 1.2; color: #121212; }
.ffga-preview__content { color: #3a3d38; }

/* ==================================================================
   FICHE ASSOCIATION v1.0.7 : informations à gauche (2/3),
   colonne contact à droite (1/3), collante au défilement
   ================================================================== */
.ffga-fiche__layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
	gap: 24px;
	align-items: start;
}
.ffga-fiche__main { display: grid; gap: 16px; min-width: 0; }
.ffga-fiche__main .ffga-chips { margin: 0; }
.ffga-fiche__main .ffga-back { margin: 4px 0 0; }

/* Une seule carte d'informations, sections séparées par un filet */
.ffga-info { padding: 6px 24px; }
.ffga-info__section { padding: 18px 0; }
.ffga-info__section + .ffga-info__section { border-top: 1px solid var(--ffga-line); }
.ffga-info__title {
	margin: 0 0 12px;
	font-family: var(--ffga-title);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ffga-green);
}
.ffga-info .ffga-dl > div { grid-template-columns: 150px 1fr; }

/* Carte de localisation : hauteur fixe dans la colonne principale */
.ffga-fiche__main .ffga-fiche__map { height: 300px; min-height: 0; }

/* Colonne contact */
.ffga-fiche__aside { position: sticky; top: 110px; }
.ffga-side { padding: 20px; }
.ffga-side__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 130px;
	margin: 0 0 16px;
	padding: 12px;
	background: var(--ffga-beige);
	border-radius: var(--ffga-radius-sm);
}
.ffga-side__logo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	margin: 0 !important;
}
.ffga-side__contacts {
	display: grid;
	gap: 10px;
	margin: 0 0 18px !important;
	padding: 0 !important;
	list-style: none !important;
}
.ffga-side__contacts li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	font-size: 15px;
	overflow-wrap: anywhere;
}
.ffga-side__contacts a { color: var(--ffga-ink); font-weight: 600; text-decoration: none; }
.ffga-side__contacts a:hover { color: var(--ffga-green); }
.ffga-side__ico {
	display: grid;
	place-items: center;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	color: var(--ffga-green);
	background: rgba(93, 107, 28, .12);
	border-radius: 50%;
}

/* Formulaire compact */
.ffga-side .ffga-contact { margin: 0; padding: 18px 0 0; border-top: 1px solid var(--ffga-line); scroll-margin-top: 130px; }
.ffga-side__title { margin: 0 0 4px; font-family: var(--ffga-title); font-size: 18px; font-weight: 700; color: var(--ffga-ink); }
.ffga-side__intro { margin: 0 0 14px; font-size: 14px; color: var(--ffga-muted); }
.ffga-side .ffga-form { gap: 10px; }
.ffga-side .ffga-field input,
.ffga-side .ffga-field textarea { min-height: 42px; padding: 8px 12px; font-size: 15px; }
.ffga-side .ffga-form textarea { min-height: 96px; }
.ffga-side .ffga-consent { font-size: 13px; line-height: 1.4; }
.ffga-btn--block { width: 100%; }
.ffga-side .ffga-form__status { font-size: 14px; }
.ffga-side .ffga-form__status:empty { display: none; }

/* Tablette et mobile : une colonne, contact sous le logo en tête */
@media (max-width: 900px) {
	.ffga-fiche__layout { grid-template-columns: 1fr; }
	.ffga-fiche__aside { position: static; order: -1; }
	.ffga-info .ffga-dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* ==================================================================
   BANDEAU DE RECHERCHE v1.0.8 : fond clair, illustration fine,
   barre « pilule » segmentée façon Airbnb, accès rapide par thème
   ================================================================== */

/* Bandeau : fond clair, rappel émeraude par petites formes */
.ffga-hero {
	position: relative;
	margin: 0 0 28px;
	padding: 40px 40px 26px;
	overflow: hidden;
	background:
		radial-gradient(circle at 92% 8%, rgba(93, 107, 28, .16) 0, rgba(93, 107, 28, 0) 34%),
		radial-gradient(circle at 4% 100%, rgba(93, 107, 28, .08) 0, rgba(93, 107, 28, 0) 30%),
		linear-gradient(180deg, #fbfaf7 0%, var(--ffga-beige) 100%);
	border: 1px solid var(--ffga-line);
	border-radius: 28px;
}
.ffga-hero--compact { padding: 20px; background: var(--ffga-beige); border-radius: 24px; }
.ffga-hero__head { position: relative; z-index: 1; max-width: 640px; margin: 0 0 26px; }
.ffga-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ffga-green);
	background: var(--ffga-white);
	border: 1px solid rgba(93, 107, 28, .2);
	border-radius: 999px;
}
.ffga-hero__kicker::before { content: ""; width: 7px; height: 7px; background: var(--ffga-green-2); border-radius: 50%; }
.ffga-hero__title {
	margin: 0 0 10px;
	font-family: var(--ffga-title);
	font-size: clamp(26px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--ffga-ink);
}
.ffga-hero__intro { margin: 0; font-size: 17px; line-height: 1.5; color: var(--ffga-muted); }
.ffga-hero__art {
	position: absolute;
	top: 18px;
	right: 34px;
	width: 260px;
	height: auto;
	pointer-events: none;
}

/* Barre pilule segmentée */
.ffga-hero .ffga-bar {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 8px 8px 8px 10px;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(18, 18, 18, .05), 0 14px 36px rgba(18, 18, 18, .09);
}
.ffga-seg {
	position: relative;
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 8px 22px;
	border-radius: 999px;
	transition: background .2s, box-shadow .2s;
}
.ffga-seg--search { flex: 1.5 1 0; }
.ffga-seg + .ffga-seg::before {
	content: "";
	position: absolute;
	top: 22%;
	bottom: 22%;
	left: 0;
	width: 1px;
	background: var(--ffga-line);
}
.ffga-seg:hover { background: var(--ffga-beige); }
.ffga-seg:hover::before,
.ffga-seg:hover + .ffga-seg::before,
.ffga-seg:focus-within::before,
.ffga-seg:focus-within + .ffga-seg::before { opacity: 0; }
.ffga-seg:focus-within { background: var(--ffga-white); box-shadow: 0 6px 20px rgba(18, 18, 18, .12); }
.ffga-seg label {
	margin: 0 0 2px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ffga-ink);
	cursor: pointer;
}
.ffga-seg input,
.ffga-seg select {
	width: 100%;
	min-height: 0;
	padding: 0;
	font: inherit;
	font-size: 15px;
	color: var(--ffga-muted);
	background: transparent;
	border: 0;
	outline: none;
	box-shadow: none;
	text-overflow: ellipsis;
	appearance: none;
	cursor: pointer;
}
.ffga-seg input { cursor: text; }
.ffga-seg input::placeholder { color: #8b8e87; }
.ffga-seg.is-set select,
.ffga-seg input:not(:placeholder-shown) { font-weight: 600; color: var(--ffga-ink); }
.ffga-seg.is-set label { color: var(--ffga-green); }

/* Bouton rond Rechercher */
.ffga-go {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 58px;
	margin-left: 6px;
	padding: 0 24px;
	font: inherit;
	font-weight: 700;
	color: var(--ffga-white);
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 6px 18px rgba(93, 107, 28, .35);
	cursor: pointer;
	transition: transform .2s, box-shadow .2s;
}
.ffga-go:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(93, 107, 28, .42); }
.ffga-go:focus-visible { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 3px; }

/* Accès rapide par thème */
.ffga-quick {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 16px 0 0;
	padding: 0 8px;
}
.ffga-quick:empty { display: none; }
.ffga-quick__label { margin-right: 4px; font-size: 13px; font-weight: 600; color: var(--ffga-muted); }
.ffga-quick__chip {
	padding: 7px 14px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--ffga-ink);
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	cursor: pointer;
	transition: border-color .2s, color .2s, background .2s, box-shadow .2s;
}
.ffga-quick__chip:hover { border-color: var(--ffga-green); color: var(--ffga-green); box-shadow: 0 4px 12px rgba(93, 107, 28, .12); }
.ffga-quick__chip[aria-pressed="true"] { color: var(--ffga-white); background: var(--ffga-green); border-color: var(--ffga-green); }
.ffga-quick .ffga-reset { min-height: 0; margin-left: auto; padding: 7px 14px; font-size: 14px; }

/* Tablette : illustration masquée, barre sur deux lignes */
@media (max-width: 1080px) {
	.ffga-hero__art { display: none; }
}
@media (max-width: 860px) {
	.ffga-hero { padding: 28px 18px 20px; border-radius: 22px; }
	.ffga-hero .ffga-bar { flex-wrap: wrap; padding: 8px; border-radius: 24px; }
	.ffga-seg { flex: 1 1 45%; padding: 10px 16px; border-radius: 16px; }
	.ffga-seg--search { flex: 1 1 100%; }
	.ffga-seg + .ffga-seg::before { display: none; }
	.ffga-go { flex: 1 1 100%; min-height: 50px; margin: 6px 0 0; }
}
@media (max-width: 520px) {
	.ffga-seg { flex: 1 1 100%; }
}

/* ==================================================================
   FICHE ASSOCIATION v1.0.9 : bandeau d'identité + deux colonnes.
   Sélecteurs renforcés pour résister aux styles du thème (titres, marges).
   ================================================================== */

/* Remise à zéro des styles de thème à l'intérieur de la fiche */
.ffga.ffga-fiche p,
.ffga.ffga-fiche h2,
.ffga.ffga-fiche dl,
.ffga.ffga-fiche dd { margin: 0; }
.ffga.ffga-fiche h2 { padding: 0; line-height: 1.25; text-transform: none; letter-spacing: 0; }

/* Bandeau d'identité, même famille visuelle que le bandeau de recherche */
.ffga.ffga-fiche .ffga-fhero {
	position: relative;
	display: grid;
	grid-template-columns: 168px minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
	margin: 0 0 24px;
	padding: 28px;
	overflow: hidden;
	background:
		radial-gradient(circle at 96% 0%, rgba(93, 107, 28, .16) 0, rgba(93, 107, 28, 0) 32%),
		linear-gradient(180deg, #fbfaf7 0%, var(--ffga-beige) 100%);
	border: 1px solid var(--ffga-line);
	border-radius: 28px;
}
.ffga.ffga-fiche .ffga-fhero__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 168px;
	height: 128px;
	padding: 14px;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 20px;
	box-shadow: 0 10px 28px rgba(18, 18, 18, .08);
}
.ffga.ffga-fiche .ffga-fhero__logo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	margin: 0 !important;
}
.ffga.ffga-fiche .ffga-fhero__body { display: grid; gap: 10px; min-width: 0; }
.ffga.ffga-fiche .ffga-fhero .ffga-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.ffga.ffga-fiche .ffga-fhero .ffga-chips a {
	padding: 4px 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--ffga-green);
	text-decoration: none;
	background: var(--ffga-white);
	border: 1px solid rgba(93, 107, 28, .22);
	border-radius: 999px;
}
.ffga.ffga-fiche .ffga-fhero .ffga-chips a:hover { color: var(--ffga-white); background: var(--ffga-green); border-color: var(--ffga-green); }
.ffga.ffga-fiche .ffga-fhero__name {
	font-family: var(--ffga-title);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 700;
	line-height: 1.15;
	color: var(--ffga-ink);
}
.ffga.ffga-fiche .ffga-fhero__place {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 16px;
	color: var(--ffga-muted);
}
.ffga.ffga-fiche .ffga-fhero__place svg { flex: 0 0 auto; color: var(--ffga-green-2); }

/* FICHE v1.3.8 : compteur de vues, simple mention grise en pied de fiche */
.ffga.ffga-fiche .ffga-viewcount {
	margin: -8px 0 0;
	font-size: 12px;
	color: #9a9d96;
}
.ffga.ffga-fiche .ffga-fhero__actions { display: grid; gap: 10px; justify-items: stretch; }
.ffga.ffga-fiche .ffga-fhero__actions .ffga-go,
.ffga.ffga-fiche .ffga-fhero__actions .ffga-btn { min-height: 48px; margin: 0; padding: 0 24px; text-decoration: none; white-space: nowrap; }

/* Colonne principale : une carte d'informations, sections séparées */
.ffga.ffga-fiche .ffga-fiche__layout { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 24px; }
.ffga.ffga-fiche .ffga-box { border-radius: 22px; }
.ffga.ffga-fiche .ffga-info { padding: 4px 28px; }
.ffga.ffga-fiche .ffga-info__section { padding: 22px 0; }
.ffga.ffga-fiche h2.ffga-info__title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-family: var(--ffga-title);
	font-size: 14px !important;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ffga-green);
}
.ffga.ffga-fiche h2.ffga-info__title::before {
	content: "";
	width: 8px;
	height: 8px;
	background: var(--ffga-green-2);
	border-radius: 50%;
}
.ffga.ffga-fiche .ffga-dl { gap: 10px; }
.ffga.ffga-fiche .ffga-dl > div { grid-template-columns: 160px 1fr; gap: 16px; }
.ffga.ffga-fiche .ffga-dl dt { padding-top: 2px; font-size: 13px; font-weight: 600; color: var(--ffga-muted); }
.ffga.ffga-fiche .ffga-dl dd { font-size: 16px; line-height: 1.55; color: var(--ffga-ink); }
.ffga.ffga-fiche .ffga-about__text { font-size: 16px; line-height: 1.65; color: #3a3d38; }
.ffga.ffga-fiche .ffga-about__text p + p { margin-top: .8em; }
.ffga.ffga-fiche .ffga-about__text img { max-width: 100%; height: auto; border-radius: 12px; }
.ffga.ffga-fiche .ffga-box--map { padding: 0; }
.ffga.ffga-fiche .ffga-fiche__main .ffga-fiche__map { height: 280px; border-radius: 22px; box-shadow: none; }
.ffga.ffga-fiche .ffga-back a { font-size: 15px; }

/* Colonne contact */
.ffga.ffga-fiche .ffga-side { padding: 24px; }
.ffga.ffga-fiche .ffga-side__kicker {
	margin: 0 0 14px;
	font-family: var(--ffga-title);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ffga-green);
}
.ffga.ffga-fiche .ffga-side__contacts li { font-size: 15px; }
.ffga.ffga-fiche h2.ffga-side__title { margin: 0 0 4px; font-family: var(--ffga-title); font-size: 19px !important; font-weight: 700; color: var(--ffga-ink); }
.ffga.ffga-fiche .ffga-side__intro { margin: 0 0 14px; }
.ffga.ffga-fiche .ffga-side .ffga-field label { margin: 0; }
.ffga.ffga-fiche .ffga-side .ffga-go { width: 100%; min-height: 48px; margin: 4px 0 0; }

@media (max-width: 980px) {
	.ffga.ffga-fiche .ffga-fhero { grid-template-columns: 128px minmax(0, 1fr); }
	.ffga.ffga-fiche .ffga-fhero__logo { width: 128px; height: 100px; }
	.ffga.ffga-fiche .ffga-fhero__actions { grid-column: 1 / -1; grid-auto-flow: column; justify-content: start; }
	.ffga.ffga-fiche .ffga-fiche__layout { grid-template-columns: 1fr; }
	.ffga.ffga-fiche .ffga-fiche__aside { position: static; order: 0; }
}
@media (max-width: 560px) {
	.ffga.ffga-fiche .ffga-fhero { grid-template-columns: 1fr; padding: 20px; text-align: left; }
	.ffga.ffga-fiche .ffga-fhero__logo { width: 100%; height: 120px; }
	.ffga.ffga-fiche .ffga-fhero__actions { grid-auto-flow: row; justify-content: stretch; }
	.ffga.ffga-fiche .ffga-info { padding: 4px 20px; }
	.ffga.ffga-fiche .ffga-dl > div { grid-template-columns: 1fr; gap: 2px; }
}

/* ==================================================================
   FICHE v1.1.0 : réseaux sociaux (Facebook, LinkedIn, Instagram, X,
   groupe Facebook, forum) dans la colonne contact
   ================================================================== */
.ffga.ffga-fiche .ffga-social { margin: 0 0 18px; }
.ffga.ffga-fiche .ffga-social__label {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ffga-muted);
}
.ffga.ffga-fiche .ffga-social__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.ffga.ffga-fiche .ffga-social__list li { margin: 0 !important; }
.ffga.ffga-fiche .ffga-social__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px 7px 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ffga-ink);
	text-decoration: none;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	transition: border-color .2s, color .2s, box-shadow .2s;
}
.ffga.ffga-fiche .ffga-social__btn svg { color: var(--ffga-green); }
.ffga.ffga-fiche a.ffga-social__btn:hover { color: var(--ffga-green); border-color: var(--ffga-green); box-shadow: 0 4px 12px rgba(93, 107, 28, .12); }
.ffga.ffga-fiche .ffga-social__btn--text { white-space: normal; }

/* ==================================================================
   FICHE v1.1.1 : boutons « Afficher le téléphone / l'e-mail »
   (coordonnées chargées au clic, absentes du code de la page)
   ================================================================== */
.ffga.ffga-fiche .ffga-reveal {
	padding: 6px 14px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--ffga-green);
	background: var(--ffga-white);
	border: 1px solid rgba(93, 107, 28, .3);
	border-radius: 999px;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.ffga.ffga-fiche .ffga-reveal:hover { color: var(--ffga-white); background: var(--ffga-green); border-color: var(--ffga-green); }
.ffga.ffga-fiche .ffga-reveal[disabled] { opacity: .6; cursor: wait; }
.ffga.ffga-fiche .ffga-reveal.is-error { color: #b3261e; border-color: rgba(179, 38, 30, .3); }

/* ==================================================================
   FICHE v1.1.2 : lignes de contact soignées (téléphone, e-mail, site)
   avec bouton « Afficher » discret, révélation au clic
   ================================================================== */
.ffga.ffga-fiche .ffga-side__contacts { gap: 8px; margin: 0 0 20px !important; }
.ffga.ffga-fiche .ffga-crow {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	background: var(--ffga-beige);
	border: 1px solid transparent;
	border-radius: 14px;
	transition: border-color .2s, background .2s;
}
.ffga.ffga-fiche .ffga-crow:hover { background: #fff; border-color: var(--ffga-line); }
.ffga.ffga-fiche .ffga-crow .ffga-side__ico { flex: 0 0 36px; width: 36px; height: 36px; background: #fff; box-shadow: 0 2px 6px rgba(18, 18, 18, .06); }
.ffga.ffga-fiche .ffga-crow__txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ffga.ffga-fiche .ffga-crow__lbl {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ffga-muted);
}
.ffga.ffga-fiche .ffga-crow__val {
	font-size: 15px;
	font-weight: 600;
	color: var(--ffga-ink);
	text-decoration: none;
	overflow-wrap: anywhere;
}
.ffga.ffga-fiche a.ffga-crow__val:hover { color: var(--ffga-green); text-decoration: underline; }

/* Le bouton « Afficher » ressemble à un lien, pas à une pastille */
.ffga.ffga-fiche .ffga-reveal {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ffga-green);
	text-align: left;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
}
.ffga.ffga-fiche .ffga-reveal:hover { color: #256b41; background: none; text-decoration: underline; text-underline-offset: 3px; }
.ffga.ffga-fiche .ffga-reveal svg { flex: 0 0 auto; opacity: .75; }
.ffga.ffga-fiche .ffga-reveal:focus-visible { outline: 2px solid var(--ffga-green-2); outline-offset: 3px; border-radius: 4px; }
.ffga.ffga-fiche .ffga-reveal.is-loading { opacity: .55; cursor: wait; }
.ffga.ffga-fiche .ffga-reveal.is-error { color: #b3261e; }

/* ==================================================================
   FICHE v1.1.3 : réseaux sociaux en pastilles rondes (icône seule,
   nom au survol), alignées sur une ligne
   ================================================================== */
.ffga.ffga-fiche .ffga-social { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 20px; padding: 12px 14px; background: var(--ffga-beige); border-radius: 14px; }
.ffga.ffga-fiche .ffga-social__label { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ffga-muted); }
.ffga.ffga-fiche .ffga-social__list { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ffga.ffga-fiche .ffga-social__list li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.ffga.ffga-fiche .ffga-social__list li::before,
.ffga.ffga-fiche .ffga-social__list li::marker { content: none; }
.ffga.ffga-fiche a.ffga-social__btn {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	color: var(--ffga-green);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--ffga-line);
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(18, 18, 18, .06);
	transition: transform .2s, color .2s, background .2s, border-color .2s, box-shadow .2s;
}
.ffga.ffga-fiche a.ffga-social__btn svg { width: 18px; height: 18px; color: inherit; }
.ffga.ffga-fiche a.ffga-social__btn:hover { transform: translateY(-2px); color: #fff; background: var(--ffga-green); border-color: var(--ffga-green); box-shadow: 0 8px 18px rgba(93, 107, 28, .28); }
.ffga.ffga-fiche a.ffga-social__btn:focus-visible { outline: 2px solid var(--ffga-green-2); outline-offset: 3px; }
.ffga.ffga-fiche .ffga-social__btn--text { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; font-size: 13px; color: var(--ffga-ink); background: #fff; border-radius: 999px; }

/* ==================================================================
   FICHE v1.1.4 : retour à la ligne propre des e-mails et adresses web
   (coupure après « @ », jamais au milieu d'un mot)
   ================================================================== */
.ffga.ffga-fiche .ffga-crow__val {
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
}
.ffga.ffga-fiche .ffga-crow__txt { flex: 1 1 auto; }

/* ==================================================================
   ANNUAIRE v1.1.5 : en-tête de la liste des fiches (titre, texte de
   présentation, compteur et filtres actifs), fond clair
   ================================================================== */
.ffga .ffga-results {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
	margin: 8px 0 24px;
	padding: 0 0 22px;
	border-bottom: 1px solid var(--ffga-line);
}
.ffga .ffga-results__text { max-width: 720px; }
.ffga .ffga-results__kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ffga-green);
}
.ffga .ffga-results__kicker::before { content: ""; width: 22px; height: 2px; background: var(--ffga-green-2); border-radius: 2px; }
.ffga h2.ffga-results__title {
	margin: 0 0 8px;
	padding: 0;
	font-family: var(--ffga-title);
	font-size: clamp(22px, 2.4vw, 28px) !important;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ffga-ink);
}
.ffga .ffga-results__intro { margin: 0; font-size: 16px; line-height: 1.55; color: var(--ffga-muted); }

/* Compteur : tuile blanche, chiffre en grand */
.ffga .ffga-results__count {
	min-width: 200px;
	padding: 16px 22px;
	text-align: right;
	background:
		radial-gradient(circle at 100% 0%, rgba(93, 107, 28, .14) 0, rgba(93, 107, 28, 0) 55%),
		var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 20px;
	box-shadow: 0 10px 28px rgba(18, 18, 18, .06);
}
.ffga .ffga-results__count .ffga-count { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; margin: 0; color: var(--ffga-muted); }
.ffga .ffga-results__count .ffga-count strong { font-family: var(--ffga-title); font-size: 40px; font-weight: 700; line-height: 1; color: var(--ffga-green); }
.ffga .ffga-results__count .ffga-count span { font-size: 15px; font-weight: 600; }
.ffga .ffga-results__filter { max-width: 260px; margin: 6px 0 0 auto; font-size: 13px; line-height: 1.4; color: var(--ffga-muted); }
.ffga .ffga-results .ffga-views { grid-column: 1 / -1; justify-self: start; }

@media (max-width: 720px) {
	.ffga .ffga-results { grid-template-columns: 1fr; gap: 16px; }
	.ffga .ffga-results__count { text-align: left; }
	.ffga .ffga-results__count .ffga-count { justify-content: flex-start; }
	.ffga .ffga-results__filter { margin-left: 0; }
}

/* ==================================================================
   ANNUAIRE v1.1.6 : sélection aléatoire de 6 fiches par défaut,
   bouton « Voir les … associations » dans la tuile du compteur
   ================================================================== */
.ffga .ffga-results__all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0;
	padding: 9px 18px;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	color: var(--ffga-white);
	white-space: nowrap;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(93, 107, 28, .3);
	cursor: pointer;
	transition: transform .2s, box-shadow .2s;
}
.ffga .ffga-results__all:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(93, 107, 28, .38); }
.ffga .ffga-results__all:focus-visible { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 3px; }

/* ==================================================================
   ANNUAIRE v1.1.7 : boutons sous les fiches,
   « Afficher 6 associations de plus » et « Voir les … associations »
   ================================================================== */
.ffga .ffga-results__all { display: none; }
.ffga .ffga-more {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 28px 0 0;
}
.ffga .ffga-more[hidden] { display: none; }
.ffga .ffga-more__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 24px;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	color: var(--ffga-ink);
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	box-shadow: 0 4px 14px rgba(18, 18, 18, .06);
	cursor: pointer;
	transition: transform .2s, box-shadow .2s, border-color .2s, color .2s;
}
.ffga .ffga-more__btn:hover { transform: translateY(-1px); color: var(--ffga-green); border-color: var(--ffga-green); box-shadow: 0 8px 20px rgba(93, 107, 28, .14); }
.ffga .ffga-more__btn--all { color: var(--ffga-white); background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%); border-color: transparent; box-shadow: 0 6px 18px rgba(93, 107, 28, .3); }
.ffga .ffga-more__btn--all:hover { color: var(--ffga-white); border-color: transparent; box-shadow: 0 10px 24px rgba(93, 107, 28, .38); }
.ffga .ffga-more__btn:focus-visible { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 3px; }
@media (max-width: 560px) {
	.ffga .ffga-more__btn { flex: 1 1 100%; justify-content: center; }
}

/* ==================================================================
   ANNUAIRE v1.1.8 : la tuile du compteur sert de bouton
   (nombre total en grand + lien « Voir toutes les associations »)
   ================================================================== */
.ffga .ffga-results__count { position: relative; }
.ffga .ffga-results__count.is-link { cursor: pointer; transition: transform .2s, box-shadow .2s, border-color .2s; }
.ffga .ffga-results__count.is-link:hover { transform: translateY(-2px); border-color: rgba(93, 107, 28, .35); box-shadow: 0 14px 32px rgba(93, 107, 28, .16); }
.ffga .ffga-results__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	padding: 0;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	color: var(--ffga-green);
	background: none;
	border: 0;
	cursor: pointer;
}
.ffga .ffga-results__link[hidden] { display: none; }
/* Toute la tuile est cliquable */
.ffga .ffga-results__link::after { content: ""; position: absolute; inset: 0; border-radius: 20px; }
.ffga .ffga-results__count.is-link:hover .ffga-results__link { text-decoration: underline; text-underline-offset: 3px; }
.ffga .ffga-results__link:focus-visible { outline: none; }
.ffga .ffga-results__count.is-link:focus-within { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 3px; }

/* ==================================================================
   ANNUAIRE v1.1.9 : tuile « Annuaire complet », refonte.
   Pastille ronde avec le nombre, texte, flèche ; fond clair.
   Deux états : lien (sélection affichée) / statique (tout ou filtré).
   ================================================================== */
.ffga .ffga-tile {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	min-width: 300px;
	padding: 12px 14px 12px 12px;
	background: var(--ffga-white);
	border: 1px solid var(--ffga-line);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 12px 30px rgba(18, 18, 18, .07);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

/* Pastille du nombre : anneau émeraude, chiffre en Josefin Sans */
.ffga .ffga-tile__num {
	position: relative;
	display: grid;
	place-items: center;
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	background: linear-gradient(145deg, #f7f6f3 0%, #e3f5ea 100%);
	border-radius: 50%;
	box-shadow: inset 0 0 0 2px rgba(93, 107, 28, .45);
}
.ffga .ffga-tile__num::after {
	content: "";
	position: absolute;
	top: 6px;
	right: 4px;
	width: 9px;
	height: 9px;
	background: var(--ffga-green-2);
	border: 2px solid var(--ffga-white);
	border-radius: 50%;
}
.ffga .ffga-tile__num strong {
	font-family: var(--ffga-title);
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.01em;
	color: var(--ffga-green);
}

.ffga .ffga-tile__txt { display: flex; flex: 1 1 auto; flex-direction: column; gap: 3px; min-width: 0; text-align: left; }
.ffga .ffga-tile__kicker {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--ffga-muted);
}
.ffga .ffga-tile__main { font-size: 15px; font-weight: 600; line-height: 1.35; color: var(--ffga-ink); }
.ffga .ffga-tile__cta {
	margin: 0;
	padding: 0;
	font: inherit;
	font-family: var(--ffga-title);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
	text-align: left;
	color: var(--ffga-ink);
	background: none;
	border: 0;
	cursor: pointer;
}
.ffga .ffga-tile__cta[hidden] { display: none; }
.ffga .ffga-tile__cta::after { content: ""; position: absolute; inset: 0; border-radius: 999px; } /* toute la tuile cliquable */
.ffga .ffga-tile__cta:focus-visible { outline: none; }

/* Flèche ronde */
.ffga .ffga-tile__arrow {
	display: grid;
	place-items: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	color: var(--ffga-white);
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border-radius: 50%;
	box-shadow: 0 6px 16px rgba(93, 107, 28, .32);
	transition: transform .25s ease, box-shadow .25s ease;
}

/* État lien / état statique */
.ffga .ffga-tile:not(.is-link) .ffga-tile__when-link,
.ffga .ffga-tile:not(.is-link) .ffga-tile__arrow,
.ffga .ffga-tile.is-link .ffga-tile__when-static { display: none; }
.ffga .ffga-tile:not(.is-link) { border-radius: 22px; box-shadow: 0 1px 2px rgba(18, 18, 18, .04); }
.ffga .ffga-tile.is-link { cursor: pointer; }
.ffga .ffga-tile.is-link:hover {
	transform: translateY(-2px);
	border-color: rgba(93, 107, 28, .35);
	box-shadow: 0 2px 4px rgba(18, 18, 18, .04), 0 18px 40px rgba(93, 107, 28, .16);
}
.ffga .ffga-tile.is-link:hover .ffga-tile__arrow { transform: translateX(4px); box-shadow: 0 10px 22px rgba(93, 107, 28, .4); }
.ffga .ffga-tile.is-link:hover .ffga-tile__cta { color: var(--ffga-green); }
.ffga .ffga-tile.is-link:focus-within { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 4px; }

@media (max-width: 720px) {
	.ffga .ffga-tile { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.ffga .ffga-tile, .ffga .ffga-tile__arrow { transition: none; }
}

/* ==================================================================
   ANNUAIRE v1.2.0 : barre de recherche collante pendant la lecture
   des fiches (se fixe sous le menu du site, revient en place en haut)
   ================================================================== */
.ffga .ffga-bar-holder { position: relative; z-index: 1; }
.ffga .ffga-hero .ffga-bar.is-docked {
	position: fixed;
	z-index: 990;
	margin: 0;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	border-color: rgba(93, 107, 28, .18);
	box-shadow: 0 4px 10px rgba(18, 18, 18, .06), 0 22px 50px rgba(18, 18, 18, .16);
	animation: ffga-dock-in .28s ease both;
}
@keyframes ffga-dock-in {
	from { opacity: 0; transform: translateY(-10px); }
	to { opacity: 1; transform: none; }
}
/* Sur mobile, la barre collante reste compacte : recherche + bouton */
@media (max-width: 860px) {
	.ffga .ffga-hero .ffga-bar.is-docked { flex-wrap: nowrap; padding: 6px; border-radius: 999px; }
	.ffga .ffga-hero .ffga-bar.is-docked .ffga-seg:not(.ffga-seg--search) { display: none; }
	.ffga .ffga-hero .ffga-bar.is-docked .ffga-seg--search { flex: 1 1 auto; padding: 6px 14px; }
	.ffga .ffga-hero .ffga-bar.is-docked .ffga-go { flex: 0 0 auto; min-height: 44px; margin: 0 0 0 6px; padding: 0 16px; }
	.ffga .ffga-hero .ffga-bar.is-docked .ffga-go span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ffga .ffga-hero .ffga-bar.is-docked { animation: none; }
}
/* Correctif v1.2.0 : la barre collante passe au-dessus de tout le bandeau */
.ffga .ffga-bar-holder { z-index: auto; }
.ffga .ffga-hero .ffga-bar.is-docked { background: #fff; }
.ffga .ffga-hero .ffga-quick { z-index: 0; }

/* ==================================================================
   ANNUAIRE v1.2.1 : stabilité de la barre collante.
   Pendant la navigation, la zone des fiches garde une hauteur mini
   pour que la page ne raccourcisse pas quand un filtre réduit la liste.
   ================================================================== */
.ffga.is-browsing .ffga-grid { min-height: calc(100vh - 240px); align-content: start; }
.ffga.is-browsing .ffga-empty { min-height: calc(100vh - 240px); margin: 0; }
.ffga.is-browsing .ffga-grid[hidden] + .ffga-empty,
.ffga.is-browsing .ffga-empty:not([hidden]) { display: block; }

/* ==================================================================
   CARTE v1.2.2 : passage à la charte FFG 2026 (Noir & Émeraude,
   Josefin Sans / Source Sans 3). Fin du bleu marine des anciennes
   cartes. Bandeau clair avec rappels émeraude, sans aplat foncé.
   ================================================================== */
.ffgmap {
	--fm-ink: #121212;
	--fm-green: #5d6b1c;
	--fm-green-2: #5d6b1c;
	--fm-beige: #f7f6f3;
	--fm-line: #e6e4de;
	--fm-muted: #5f625c;
	font-family: "Source Sans 3", inherit;
	border: 1px solid var(--fm-line);
	border-radius: 24px;
	box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 14px 36px rgba(18, 18, 18, .08);
}

/* Bandeau */
.ffgmap .ffgmap-header {
	padding: 20px 24px;
	color: var(--fm-ink);
	background:
		radial-gradient(circle at 96% 0%, rgba(93, 107, 28, .18) 0, rgba(93, 107, 28, 0) 38%),
		linear-gradient(180deg, #fbfaf7 0%, var(--fm-beige) 100%);
	border-bottom: 1px solid var(--fm-line);
}
.ffgmap .ffgmap-header-icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	color: var(--fm-green);
	background: #fff;
	border: 1px solid rgba(93, 107, 28, .2);
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(18, 18, 18, .06);
}
.ffgmap .ffgmap-header-icon svg { width: 24px; height: 24px; }
.ffgmap .ffgmap-title { font-family: "Josefin Sans", inherit; font-size: 1.3rem; font-weight: 700; line-height: 1.2; color: var(--fm-ink); }
.ffgmap .ffgmap-subtitle { margin-top: 4px; font-size: .9rem; color: var(--fm-muted); opacity: 1; }
.ffgmap .ffgmap-stats {
	padding: 8px 16px;
	font-size: .85rem;
	color: var(--fm-muted);
	background: #fff;
	border: 1px solid var(--fm-line);
	border-radius: 999px;
	opacity: 1;
}
.ffgmap .ffgmap-stats strong { font-family: "Josefin Sans", inherit; font-size: 1.15rem; color: var(--fm-green); }

/* Barre d'outils */
.ffgmap .ffgmap-controls { padding: 12px 18px; border-bottom: 1px solid var(--fm-line); }
.ffgmap .ffgmap-legend-item { font-family: inherit; font-size: .85rem; color: var(--fm-ink); }
.ffgmap .ffgmap-legend-item:hover { color: var(--fm-green); }
.ffgmap .ffgmap-legend-item.ffgmap-active { color: var(--fm-green); background: rgba(93, 107, 28, .1); border-color: rgba(93, 107, 28, .3); }
.ffgmap .ffgmap-dot { border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(18, 18, 18, .15); }
.ffgmap .ffgmap-search {
	padding: 9px 16px;
	font-family: inherit;
	font-size: .9rem;
	background: var(--fm-beige);
	border: 1px solid transparent;
	border-radius: 999px;
}
.ffgmap .ffgmap-search:focus { background: #fff; border-color: var(--fm-green); box-shadow: 0 0 0 3px rgba(93, 107, 28, .2); }
.ffgmap .ffgmap-btn {
	padding: 9px 18px;
	font-family: inherit;
	font-size: .85rem;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(93, 107, 28, .28);
}
.ffgmap .ffgmap-btn:hover { filter: none; box-shadow: 0 8px 18px rgba(93, 107, 28, .36); }
.ffgmap .ffgmap-btn-alt { color: var(--fm-ink); background: #fff; border: 1px solid var(--fm-line); box-shadow: none; }
.ffgmap .ffgmap-btn-alt:hover { color: var(--fm-green); border-color: var(--fm-green); }
.ffgmap .ffgmap-btn-alt[aria-expanded="true"] { color: var(--fm-green); background: rgba(93, 107, 28, .1); border-color: var(--fm-green); }
.ffgmap .ffgmap-btn:focus-visible,
.ffgmap .ffgmap-legend-item:focus-visible { outline-color: var(--fm-green-2); }

/* Bulle d'aide et bouton de retour */
.ffgmap .ffgmap-hint { background: rgba(18, 18, 18, .78); font-family: inherit; }
.ffgmap .ffgmap-back { font-family: inherit; color: var(--fm-ink); border-color: var(--fm-line); }
.ffgmap .ffgmap-back:hover { color: var(--fm-green); box-shadow: 0 6px 18px rgba(93, 107, 28, .2); }

/* Liste latérale */
.ffgmap .ffgmap-list { background: var(--fm-beige); border-right-color: var(--fm-line); }
.ffgmap .ffgmap-list-head { font-family: "Josefin Sans", inherit; color: var(--fm-ink); background: #efede7; border-bottom-color: var(--fm-line); }
.ffgmap .ffgmap-list-item { font-family: inherit; font-size: .88rem; color: var(--fm-ink); }
.ffgmap .ffgmap-list-item:hover { color: var(--fm-green); background: #fff; }
.ffgmap .ffgmap-list-item.ffgmap-current { color: var(--fm-green); background: rgba(93, 107, 28, .14); }
.ffgmap .ffgmap-list-item:focus-visible { outline-color: var(--fm-green-2); }

/* Regroupements de repères */
.ffgmap .ffgmap-cluster span {
	font-family: "Josefin Sans", inherit;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	box-shadow: 0 0 0 5px rgba(93, 107, 28, .25), 0 3px 10px rgba(18, 18, 18, .22);
}

/* Encart outre-mer */
.ffgmap .ffgmap-dom { font-family: inherit; border: 1px solid var(--fm-line); border-radius: 14px; }
.ffgmap .ffgmap-dom-title { font-family: "Josefin Sans", inherit; color: var(--fm-green); }
.ffgmap .ffgmap-dom button { font-family: inherit; color: var(--fm-ink); }
.ffgmap .ffgmap-dom button:hover { color: var(--fm-green); background: rgba(93, 107, 28, .1); }
.ffgmap .ffgmap-dom button span { color: var(--fm-green); }

/* Popups */
.ffgmap .leaflet-popup-content-wrapper { border-radius: 16px !important; }
.ffgmap .leaflet-popup-content { font-family: "Source Sans 3", inherit; }
.ffgmap .ffgmap-ph { font-family: "Josefin Sans", inherit; font-size: 1rem; }
.ffgmap .ffgmap-logo { border-color: var(--fm-line); border-radius: 12px; }
.ffgmap .ffgmap-lbl { color: var(--fm-muted); }
.ffgmap .ffgmap-val { color: var(--fm-ink); }
.ffgmap .ffgmap-val a { color: var(--fm-green); }
.ffgmap .ffgmap-link { color: var(--fm-ink) !important; background: var(--fm-beige); border-radius: 999px; text-align: center; }
.ffgmap .ffgmap-link:hover { color: var(--fm-green) !important; background: rgba(93, 107, 28, .12); }
.ffgmap .ffgmap-link-main,
.ffgmap .ffgmap-link-main:hover { color: #fff !important; background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%); }

/* ==================================================================
   CARTE v1.3.0 : refonte « chic ». Cadre intérieur arrondi, icônes
   vectorielles, dégradés subtils ivoire / émeraude, repères et
   regroupements allégés, popups blanches à filet coloré.
   ================================================================== */

/* Conteneur général */
.ffgmap {
	overflow: hidden;
	background: linear-gradient(180deg, #ffffff 0%, #fbfaf7 100%);
	border: 1px solid #e9e6df;
	border-radius: 28px;
	box-shadow: 0 1px 2px rgba(18, 18, 18, .03), 0 24px 60px -24px rgba(18, 18, 18, .18);
}

/* En-tête : ivoire, halo émeraude, motif de points très discret */
.ffgmap .ffgmap-header {
	position: relative;
	gap: 18px;
	padding: 26px 28px 22px;
	background:
		radial-gradient(circle at 100% 0%, rgba(93, 107, 28, .20) 0, rgba(93, 107, 28, 0) 42%),
		radial-gradient(rgba(93, 107, 28, .10) 1px, transparent 1.2px) 0 0 / 18px 18px,
		linear-gradient(180deg, #fbfaf7 0%, #f5f3ee 100%);
	border-bottom: 1px solid #ebe8e1;
}
.ffgmap .ffgmap-header-icon {
	width: 54px;
	height: 54px;
	color: #fff;
	background: linear-gradient(145deg, #1e2a1e 0%, #5d6b1c 100%);
	border: 0;
	border-radius: 18px;
	box-shadow: 0 10px 24px -8px rgba(93, 107, 28, .55), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.ffgmap .ffgmap-header-icon svg { width: 26px; height: 26px; }
.ffgmap .ffgmap-kicker {
	margin: 0 0 4px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #5d6b1c;
}
.ffgmap .ffgmap-title { font-family: "Josefin Sans", inherit; font-size: 1.45rem; font-weight: 700; letter-spacing: -.01em; color: #121212; }
.ffgmap .ffgmap-subtitle { margin-top: 3px; font-size: .92rem; color: #6b6e67; }
.ffgmap .ffgmap-stats {
	padding: 10px 18px;
	font-size: .85rem;
	color: #6b6e67;
	background: rgba(255, 255, 255, .85);
	border: 1px solid #e9e6df;
	border-radius: 16px;
	box-shadow: 0 8px 20px -10px rgba(18, 18, 18, .2);
}
.ffgmap .ffgmap-stats strong { display: block; font-family: "Josefin Sans", inherit; font-size: 1.6rem; line-height: 1; color: #5d6b1c; }

/* Barre d'outils */
.ffgmap .ffgmap-controls { gap: 12px; padding: 16px 22px; background: #fff; border-bottom: 0; }
.ffgmap .ffgmap-legend { gap: 6px; }
.ffgmap .ffgmap-legend-item {
	gap: 8px;
	padding: 6px 12px;
	font-size: .84rem;
	font-weight: 600;
	color: #3a3d38;
	background: #f7f6f3;
	border: 1px solid transparent;
	border-radius: 999px;
	transition: background .2s, border-color .2s, color .2s;
}
.ffgmap .ffgmap-legend-item:hover { color: #121212; background: #fff; border-color: #e3e0d8; }
.ffgmap .ffgmap-legend-item.ffgmap-active { color: #121212; background: #fff; border-color: #5d6b1c; box-shadow: 0 4px 12px -4px rgba(93, 107, 28, .35); }
.ffgmap .ffgmap-dot { width: 10px; height: 10px; border: 0; box-shadow: 0 0 0 3px rgba(255, 255, 255, .9), 0 0 0 4px rgba(18, 18, 18, .08); }
.ffgmap .ffgmap-tools { gap: 10px; }
.ffgmap .ffgmap-search-wrap { position: relative; }
.ffgmap .ffgmap-search-ico { position: absolute; top: 50%; left: 16px; color: #8b8e87; transform: translateY(-50%); pointer-events: none; }
.ffgmap .ffgmap-search {
	height: 46px;
	padding: 0 18px 0 44px;
	font-size: .92rem;
	color: #121212;
	background: #f7f6f3;
	border: 1px solid #ebe8e1;
	border-radius: 999px;
	transition: background .2s, border-color .2s, box-shadow .2s;
}
.ffgmap .ffgmap-search:focus { background: #fff; border-color: #5d6b1c; box-shadow: 0 0 0 4px rgba(93, 107, 28, .16); }
.ffgmap .ffgmap-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 46px;
	padding: 0 20px;
	font-size: .88rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 10px 22px -10px rgba(93, 107, 28, .7), inset 0 1px 0 rgba(255, 255, 255, .2);
	transition: transform .2s, box-shadow .2s;
}
.ffgmap .ffgmap-btn:hover { transform: translateY(-1px); filter: none; box-shadow: 0 14px 28px -10px rgba(93, 107, 28, .75), inset 0 1px 0 rgba(255, 255, 255, .2); }
.ffgmap .ffgmap-btn-alt { color: #121212; background: #fff; border: 1px solid #e3e0d8; box-shadow: 0 6px 16px -10px rgba(18, 18, 18, .3); }
.ffgmap .ffgmap-btn-alt svg { color: #5d6b1c; }
.ffgmap .ffgmap-btn-alt:hover { color: #121212; border-color: #5d6b1c; }
.ffgmap .ffgmap-btn-alt[aria-expanded="true"] { color: #121212; background: #f7f6f3; border-color: #5d6b1c; }

/* Corps : la carte dans un cadre intérieur */
.ffgmap .ffgmap-body { gap: 14px; padding: 0 14px 14px; background: #fff; }
.ffgmap .ffgmap-map {
	overflow: hidden;
	border: 1px solid #e9e6df;
	border-radius: 20px;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);
}
.ffgmap .ffgmap-list {
	flex: 0 0 300px;
	padding: 6px 0;
	background: #fbfaf7;
	border: 1px solid #e9e6df;
	border-radius: 20px;
}
.ffgmap .ffgmap-list-group { border-bottom: 0; }
.ffgmap .ffgmap-list-head {
	padding: 12px 18px 6px;
	font-family: "Source Sans 3", inherit;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #5d6b1c;
	background: linear-gradient(180deg, #fbfaf7 70%, rgba(251, 250, 247, 0));
	border-bottom: 0;
}
.ffgmap .ffgmap-list-count { color: #9a9d96; font-weight: 600; letter-spacing: 0; }
.ffgmap .ffgmap-list ul { padding: 0 8px 6px !important; }
.ffgmap .ffgmap-list-item { gap: 10px; padding: 8px 10px; font-size: .9rem; color: #2a2c28; border-radius: 10px; }
.ffgmap .ffgmap-list-item:hover { color: #121212; background: #fff; box-shadow: 0 4px 12px -6px rgba(18, 18, 18, .25); }
.ffgmap .ffgmap-list-item.ffgmap-current { font-weight: 700; color: #121212; background: #fff; box-shadow: inset 3px 0 0 #5d6b1c, 0 4px 12px -6px rgba(18, 18, 18, .25); }
.ffgmap .ffgmap-list-item .ffgmap-dot { width: 8px; height: 8px; box-shadow: none; }

/* Contrôles Leaflet */
.ffgmap .leaflet-control-zoom { border: 0 !important; border-radius: 14px !important; overflow: hidden; box-shadow: 0 10px 24px -10px rgba(18, 18, 18, .35) !important; }
.ffgmap .leaflet-control-zoom a {
	width: 38px !important;
	height: 38px !important;
	font: 400 20px/38px "Source Sans 3", Arial, sans-serif !important;
	color: #121212 !important;
	background: rgba(255, 255, 255, .96) !important;
	border-bottom: 1px solid #efede7 !important;
}
.ffgmap .leaflet-control-zoom a:hover { color: #5d6b1c !important; background: #fff !important; }
.ffgmap .leaflet-control-attribution { font-size: 10px; color: #8b8e87; background: rgba(255, 255, 255, .75) !important; border-radius: 8px 0 0 0; }
.ffgmap .leaflet-control-attribution a { color: #6b6e67; }

.ffgmap .ffgmap-hint {
	padding: 7px 16px;
	font-size: .78rem;
	font-weight: 600;
	color: #121212;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid #e9e6df;
	border-radius: 999px;
	box-shadow: 0 8px 20px -10px rgba(18, 18, 18, .3);
}
.ffgmap .ffgmap-back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	font-size: .82rem;
	color: #121212;
	background: rgba(255, 255, 255, .95);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid #e3e0d8;
	box-shadow: 0 10px 24px -10px rgba(18, 18, 18, .35);
}
.ffgmap .ffgmap-back svg { color: #5d6b1c; }
.ffgmap .ffgmap-back:hover { border-color: #5d6b1c; box-shadow: 0 12px 28px -10px rgba(93, 107, 28, .45); }

/* Encart outre-mer : verre dépoli */
.ffgmap .ffgmap-dom {
	max-width: 220px;
	padding: 10px;
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid #e9e6df;
	border-radius: 16px;
	box-shadow: 0 12px 28px -12px rgba(18, 18, 18, .35);
}
.ffgmap .ffgmap-dom-title { margin: 2px 6px 8px; font-family: "Source Sans 3", inherit; font-size: .68rem; letter-spacing: .14em; color: #5d6b1c; }
.ffgmap .ffgmap-dom button { padding: 7px 10px; font-size: .84rem; border-radius: 10px; }
.ffgmap .ffgmap-dom button:hover { background: #f7f6f3; }
.ffgmap .ffgmap-dom button span {
	min-width: 22px;
	padding: 1px 7px;
	font-size: .75rem;
	text-align: center;
	color: #5d6b1c;
	background: #e9f6ee;
	border-radius: 999px;
}

/* Repères : point bicolore cerclé de blanc */
.ffgmap .ffgmap-marker span {
	width: 20px;
	height: 20px;
	background: radial-gradient(circle at 35% 30%, var(--c2) 0%, var(--c1) 100%) !important;
	border: 3px solid #fff;
	box-shadow: 0 0 0 1px rgba(18, 18, 18, .08), 0 6px 14px -4px rgba(18, 18, 18, .45);
	transition: transform .2s ease;
}
.ffgmap .ffgmap-marker:hover span { transform: scale(1.3); }

/* Regroupements : pastille blanche, anneau émeraude */
.ffgmap .ffgmap-cluster span {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	background: #fff;
	border: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(93, 107, 28, .18), 0 10px 22px -8px rgba(18, 18, 18, .45);
}
.ffgmap .ffgmap-cluster span::before {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: conic-gradient(#1e2a1e, #5d6b1c, #1e2a1e);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
}
.ffgmap .ffgmap-cluster b { position: relative; font-family: "Josefin Sans", inherit; font-size: .95rem; font-weight: 700; color: #121212; }

/* Popups */
.ffgmap .leaflet-popup-content-wrapper {
	padding: 0 !important;
	overflow: hidden;
	background: #fff;
	border: 1px solid #ebe8e1 !important;
	border-radius: 20px !important;
	box-shadow: 0 24px 50px -18px rgba(18, 18, 18, .45) !important;
}
.ffgmap .leaflet-popup-content { width: 320px !important; margin: 0 !important; font-family: "Source Sans 3", inherit; }
.ffgmap .leaflet-popup-tip-container { display: none; }
.ffgmap .leaflet-popup-close-button {
	top: 12px !important;
	right: 12px !important;
	width: 28px !important;
	height: 28px !important;
	font: 400 18px/28px Arial, sans-serif !important;
	color: #6b6e67 !important;
	text-align: center;
	background: #f7f6f3 !important;
	border-radius: 50%;
}
.ffgmap .leaflet-popup-close-button:hover { color: #121212 !important; background: #efede7 !important; }
.ffgmap-pop { position: relative; padding: 20px 20px 18px; }
.ffgmap-pop::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--c1), var(--c2)); }
.ffgmap-pop__head { display: grid; grid-template-columns: 60px 1fr; gap: 14px; align-items: center; padding-right: 28px; }
.ffgmap-pop__logo {
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	padding: 6px;
	overflow: hidden;
	color: #5d6b1c;
	background: #fff;
	border: 1px solid #ebe8e1;
	border-radius: 14px;
	box-shadow: 0 6px 14px -8px rgba(18, 18, 18, .3);
}
.ffgmap-pop__logo img { width: 100% !important; height: 100% !important; object-fit: contain; margin: 0 !important; }
.ffgmap-pop__id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ffgmap-pop__type { display: inline-flex; align-items: center; gap: 6px; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--c1); }
.ffgmap-pop__type i { width: 7px; height: 7px; background: var(--c2); border-radius: 50%; }
.ffgmap-pop__name { font-family: "Josefin Sans", inherit; font-size: 1.05rem; font-weight: 700; line-height: 1.22; color: #121212; }
.ffgmap-pop__place { display: inline-flex; align-items: flex-start; gap: 5px; font-size: .82rem; line-height: 1.35; color: #6b6e67; }
.ffgmap-pop__place svg { flex: 0 0 auto; margin-top: 2px; color: #5d6b1c; }
.ffgmap-pop__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; }
.ffgmap-pop__chips span { padding: 3px 10px; font-size: .75rem; font-weight: 600; color: #5d6b1c; background: #f7f6f3; border: 1px solid #e6e8d4; border-radius: 999px; }
.ffgmap-pop__actions { display: grid; gap: 8px; margin: 16px 0 0; }
.ffgmap .ffgmap-pop__main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 44px;
	padding: 0 8px 0 18px;
	font-size: .9rem;
	font-weight: 700;
	color: #fff !important;
	text-decoration: none !important;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	border-radius: 999px;
	box-shadow: 0 10px 20px -10px rgba(93, 107, 28, .75);
	transition: box-shadow .2s, transform .2s;
}
.ffgmap .ffgmap-pop__main svg { box-sizing: content-box; padding: 6px; background: rgba(255, 255, 255, .2); border-radius: 50%; transition: transform .2s; }
.ffgmap .ffgmap-pop__main:hover { transform: translateY(-1px); box-shadow: 0 14px 24px -10px rgba(93, 107, 28, .8); }
.ffgmap .ffgmap-pop__main:hover svg { transform: translateX(3px); }
.ffgmap-pop__row { display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; gap: 8px; }
.ffgmap .ffgmap-pop__sec {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	height: 40px;
	font-size: .84rem;
	font-weight: 600;
	color: #121212 !important;
	text-decoration: none !important;
	background: #f7f6f3;
	border: 1px solid #ebe8e1;
	border-radius: 999px;
	transition: background .2s, border-color .2s;
}
.ffgmap .ffgmap-pop__sec svg { color: #5d6b1c; }
.ffgmap .ffgmap-pop__sec:hover { background: #fff; border-color: #5d6b1c; }

@media (max-width: 700px) {
	.ffgmap { border-radius: 22px; }
	.ffgmap .ffgmap-header { padding: 18px; }
	.ffgmap .ffgmap-body { padding: 0 10px 10px; }
	.ffgmap .ffgmap-list { flex: 0 0 auto; }
	.ffgmap .ffgmap-btn span { white-space: nowrap; }
}
/* Correctif v1.3.1 : la bulle d'aide passe en bas, pour ne pas chevaucher « Retour à la carte de France » */
.ffgmap .ffgmap-hint { top: auto; bottom: 16px; }

/* ==================================================================
   EN-TÊTE DE PAGE v1.4.0 [ffg_entete] : même famille que le
   dictionnaire des métiers anciens, en Noir & Émeraude.
   Fond clair, rappels émeraude par petites formes, grands textes
   lisibles pour tous les publics.
   ================================================================== */
.ffga-head {
	--h-ink: #121212;
	--h-green: #5d6b1c;
	--h-green-2: #5d6b1c;
	--h-beige: #f7f6f3;
	--h-line: #e6e4de;
	--h-muted: #5f625c;
	position: relative;
	margin: 0 0 32px;
	padding: 56px 48px 52px;
	overflow: hidden;
	font-family: "Source Sans 3", sans-serif;
	color: var(--h-ink);
	background:
		radial-gradient(circle at 100% 0%, rgba(93, 107, 28, .14) 0, rgba(93, 107, 28, 0) 38%),
		radial-gradient(circle at 0% 100%, rgba(93, 107, 28, .07) 0, rgba(93, 107, 28, 0) 34%),
		linear-gradient(180deg, #fbfaf7 0%, var(--h-beige) 100%);
	border: 1px solid var(--h-line);
	border-radius: 32px;
	box-sizing: border-box;
}
.ffga-head *, .ffga-head *::before, .ffga-head *::after { box-sizing: border-box; }

/* Petites formes émeraude, sans aplat */
.ffga-head__dot { position: absolute; border-radius: 50%; pointer-events: none; }
.ffga-head__dot--a { top: 34px; right: 42%; width: 10px; height: 10px; background: var(--h-green-2); opacity: .7; }
.ffga-head__dot--b { bottom: 40px; left: 46%; width: 6px; height: 6px; background: var(--h-green); opacity: .45; }

.ffga-head__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 1fr);
	gap: 48px;
	align-items: center;
}

/* Surtitre encadré de deux filets */
.ffga-head .ffga-head__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font: 700 12px/1 "Source Sans 3", sans-serif;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--h-green);
}
.ffga-head .ffga-head__eyebrow::before,
.ffga-head .ffga-head__eyebrow::after { content: ""; width: 32px; height: 1px; background: currentColor; opacity: .5; }

/* Titre : deux lignes au plus */
.ffga-head h1.ffga-head__title {
	max-width: 18ch;
	margin: 18px 0 16px;
	padding: 0;
	font: 700 clamp(30px, 3.6vw, 46px)/1.12 "Josefin Sans", sans-serif;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--h-ink);
}
.ffga-head h1.ffga-head__title em { font-style: italic; color: var(--h-green); }

.ffga-head .ffga-head__lead {
	max-width: 620px;
	margin: 0;
	font-size: 18px;
	line-height: 1.6;
	color: var(--h-muted);
}

/* Boutons */
.ffga-head__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.ffga-head a.ffga-head__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	font: 700 16px/1 "Source Sans 3", sans-serif;
	text-decoration: none;
	border-radius: 999px;
	transition: transform .2s, box-shadow .2s, border-color .2s, color .2s;
}
.ffga-head a.ffga-head__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ffga-head a.ffga-head__btn--primary {
	color: #fff;
	background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%);
	box-shadow: 0 10px 24px -10px rgba(93, 107, 28, .75);
}
.ffga-head a.ffga-head__btn--primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 14px 28px -10px rgba(93, 107, 28, .8); }
.ffga-head a.ffga-head__btn--ghost {
	color: var(--h-ink);
	background: #fff;
	border: 1px solid var(--h-line);
	box-shadow: 0 6px 16px -10px rgba(18, 18, 18, .25);
}
.ffga-head a.ffga-head__btn--ghost:hover { color: var(--h-green); border-color: var(--h-green); transform: translateY(-1px); }
.ffga-head a.ffga-head__btn:focus-visible { outline: 3px solid rgba(93, 107, 28, .5); outline-offset: 3px; }

/* Chiffres en pastilles */
.ffga-head ul.ffga-head__stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
.ffga-head ul.ffga-head__stats li {
	margin: 0;
	padding: 8px 18px;
	font-size: 15px;
	color: var(--h-muted);
	background: #fff;
	border: 1px solid var(--h-line);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 8px 20px -12px rgba(18, 18, 18, .18);
}
.ffga-head ul.ffga-head__stats li::before { content: none; }
.ffga-head ul.ffga-head__stats b { margin-right: 6px; font: 700 18px/1 "Josefin Sans", sans-serif; color: var(--h-green); }

/* Carte « En trois étapes » */
.ffga-head__card {
	position: relative;
	padding: 28px 28px 24px;
	background: #fff;
	border: 1px solid var(--h-line);
	border-radius: 24px;
	box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 24px 50px -24px rgba(18, 18, 18, .22);
}
.ffga-head__card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 28px;
	right: 28px;
	height: 3px;
	background: linear-gradient(90deg, #1e2a1e 0%, #5d6b1c 100%);
	border-radius: 0 0 3px 3px;
}
.ffga-head .ffga-head__card-kicker {
	margin: 0 0 16px;
	font: 700 12px/1 "Source Sans 3", sans-serif;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--h-green);
}
.ffga-head ol.ffga-head__steps { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.ffga-head ol.ffga-head__steps li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; margin: 0; font-size: 16px; line-height: 1.5; color: var(--h-muted); }
.ffga-head ol.ffga-head__steps li::before { content: none; }
.ffga-head ol.ffga-head__steps strong { color: var(--h-ink); }
.ffga-head .ffga-head__num {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	font: 700 17px/1 "Josefin Sans", sans-serif;
	color: var(--h-green);
	background: linear-gradient(145deg, #f7f6f3 0%, #e3f5ea 100%);
	border-radius: 50%;
	box-shadow: inset 0 0 0 2px rgba(93, 107, 28, .4);
}

/* Ancre de la carte : la page s'arrête sous le menu du site */
.ffga-anchor { display: block; position: relative; top: -120px; visibility: hidden; }
#ffga-recherche { scroll-margin-top: 120px; }

@media (max-width: 980px) {
	.ffga-head { padding: 40px 28px; }
	.ffga-head__grid { grid-template-columns: 1fr; gap: 32px; }
	.ffga-head__dot--a { right: 24px; }
}
@media (max-width: 560px) {
	.ffga-head { padding: 30px 18px; border-radius: 24px; }
	.ffga-head .ffga-head__lead { font-size: 17px; }
	.ffga-head a.ffga-head__btn { flex: 1 1 100%; justify-content: center; }
	.ffga-head__card { padding: 24px 20px 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.ffga-head a.ffga-head__btn { transition: none; }
}

/* ==================================================================
   FICHE v1.5.0 : en-tête de chaque association, même famille que le
   dictionnaire des métiers anciens (fond blanc, surtitre à filet,
   titre Josefin Sans, bouton noir + bouton blanc, pastilles, logo
   mis en scène comme une planche d'archives).
   ================================================================== */
.ffga.ffga-fiche .ffga-fh { position: relative; margin: 0 0 40px; padding: 24px 0 8px; background: #fff; }
.ffga.ffga-fiche .ffga-fh__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 380px); gap: 72px; align-items: center; }
.ffga.ffga-fiche .ffga-fh__text { text-align: left; }

/* Fil d'Ariane discret */
.ffga.ffga-fiche .ffga-fh__crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 22px; font: 400 14px/1.4 "Source Sans 3", sans-serif; color: rgba(18, 18, 18, .55); }
.ffga.ffga-fiche .ffga-fh__crumb a { color: rgba(18, 18, 18, .64); text-decoration: none; box-shadow: none; }
.ffga.ffga-fiche .ffga-fh__crumb a:hover { color: #5d6b1c; }

/* Surtitre à un filet */
.ffga.ffga-fiche .ffga-fh__eyebrow { display: inline-flex; align-items: center; gap: 14px; font: 600 12px/1 "Source Sans 3", sans-serif; letter-spacing: .22em; text-transform: uppercase; color: #5d6b1c; }
.ffga.ffga-fiche .ffga-fh__eyebrow::before { content: ""; width: 36px; height: 1px; background: currentColor; opacity: .5; }

/* Nom de l'association : 2 lignes visées */
.ffga.ffga-fiche h1.ffga-fh__title { max-width: 22ch; margin: 20px 0 18px; padding: 0; font: 600 clamp(1.9rem, 3.2vw, 2.7rem)/1.14 "Josefin Sans", sans-serif; letter-spacing: -.015em; text-transform: none; color: #121212; }
.ffga.ffga-fiche p.ffga-fh__lead { max-width: 560px; margin: 0; font: 400 1.06rem/1.65 "Source Sans 3", sans-serif; color: rgba(18, 18, 18, .64); }

/* Boutons */
.ffga.ffga-fiche .ffga-fh__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.ffga.ffga-fiche a.ffga-fh__btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; font: 600 .95rem/1 "Source Sans 3", sans-serif; text-decoration: none; border-radius: 999px; box-shadow: none; transition: transform .25s, box-shadow .25s, color .25s, border-color .25s; }
.ffga.ffga-fiche a.ffga-fh__btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s; }
/* v1.5.6 : CTA en émeraude FFG, jamais en noir */
.ffga.ffga-fiche a.ffga-fh__btn--primary { color: #fff; background: linear-gradient(135deg, #1e2a1e 0%, #5d6b1c 100%); box-shadow: 0 10px 24px -8px rgba(93, 107, 28, .55); }
.ffga.ffga-fiche a.ffga-fh__btn--primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 30px -8px rgba(93, 107, 28, .6); }
.ffga.ffga-fiche a.ffga-fh__btn--primary:hover svg { transform: translateY(2px); }
.ffga.ffga-fiche a.ffga-fh__btn--ghost { color: #121212; background: #fff; border: 1px solid rgba(18, 18, 18, .10); box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 8px 24px rgba(18, 18, 18, .06); }
.ffga.ffga-fiche a.ffga-fh__btn--ghost:hover { color: #5d6b1c; border-color: #5d6b1c; transform: translateY(-2px); }

/* Pastilles : région, département, thème (cliquables) */
.ffga.ffga-fiche ul.ffga-fh__pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 32px 0 0; padding: 0; list-style: none; }
.ffga.ffga-fiche ul.ffga-fh__pills li { margin: 0; padding: 0; list-style: none; }
.ffga.ffga-fiche ul.ffga-fh__pills li::before { content: none; }
.ffga.ffga-fiche ul.ffga-fh__pills a { display: inline-block; padding: 8px 18px; font: 600 .88rem/1.2 "Source Sans 3", sans-serif; color: rgba(18, 18, 18, .72); text-decoration: none; background: #fff; border: 1px solid rgba(18, 18, 18, .10); border-radius: 999px; box-shadow: 0 1px 2px rgba(18, 18, 18, .04), 0 8px 24px rgba(18, 18, 18, .06); transition: color .2s, border-color .2s; }
.ffga.ffga-fiche ul.ffga-fh__pills a:hover { color: #5d6b1c; border-color: #5d6b1c; }

/* Logo mis en scène : réglette graduée, repères de cadrage, étiquette */
.ffga.ffga-fiche .ffga-fh__media { position: relative; width: 100%; margin: 0; padding: 0 0 30px 40px; }
.ffga.ffga-fiche .ffga-fh__media::before { content: ""; position: absolute; left: 0; top: 6%; bottom: calc(6% + 30px); width: 20px; border-right: 1px solid rgba(93, 107, 28, .45);
	background:
		repeating-linear-gradient(180deg, #5d6b1c 0 1px, transparent 1px 50px) right top / 20px 100% no-repeat,
		repeating-linear-gradient(180deg, rgba(93, 107, 28, .55) 0 1px, transparent 1px 10px) right top / 9px 100% no-repeat; }
.ffga.ffga-fiche .ffga-fh__frame { position: relative; display: block; }
.ffga.ffga-fiche .ffga-fh__frame::before, .ffga.ffga-fiche .ffga-fh__frame::after { content: ""; position: absolute; z-index: 2; width: 30px; height: 30px; pointer-events: none; }
.ffga.ffga-fiche .ffga-fh__frame::before { top: -12px; right: -12px; border-top: 2px solid #5d6b1c; border-right: 2px solid #5d6b1c; border-top-right-radius: 10px; }
.ffga.ffga-fiche .ffga-fh__frame::after { bottom: -12px; left: -12px; border-bottom: 2px solid #5d6b1c; border-left: 2px solid #5d6b1c; border-bottom-left-radius: 10px; }
.ffga.ffga-fiche .ffga-fh__logo { display: grid; place-items: center; aspect-ratio: 1 / 1; padding: 16%; background: radial-gradient(circle at 100% 0, rgba(93, 107, 28, .10), transparent 45%), #fff; border: 1px solid rgba(18, 18, 18, .08); border-radius: 18px; box-shadow: 0 2px 6px rgba(18, 18, 18, .06), 0 28px 60px rgba(18, 18, 18, .16); overflow: hidden; }
.ffga.ffga-fiche .ffga-fh__logo img, .ffga.ffga-fiche .ffga-fh__logo svg { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: contain; border-radius: 0; box-shadow: none; }
.ffga.ffga-fiche .ffga-fh__tag { position: absolute; right: 28px; bottom: 0; z-index: 3; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 40px); padding: 12px 18px 12px 14px; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(18, 18, 18, .10); border-radius: 16px; box-shadow: 0 12px 32px rgba(18, 18, 18, .12); }
.ffga.ffga-fiche .ffga-fh__tag i { display: grid; flex: none; place-items: center; width: 34px; height: 34px; background: rgba(93, 107, 28, .16); border-radius: 10px; }
.ffga.ffga-fiche .ffga-fh__tag i::before { content: ""; width: 10px; height: 10px; background: #5d6b1c; border-radius: 3px; box-shadow: 0 0 0 4px rgba(93, 107, 28, .25); }
.ffga.ffga-fiche .ffga-fh__tag span { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.ffga.ffga-fiche .ffga-fh__tag small { font: 600 .66rem/1.2 "Source Sans 3", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #5d6b1c; }
.ffga.ffga-fiche .ffga-fh__tag strong { overflow: hidden; font: 600 .98rem/1.3 "Josefin Sans", sans-serif; color: #121212; white-space: nowrap; text-overflow: ellipsis; }

/* Bandeau photo du thème (Essentials, .pix-main-intro) : supprimé UNIQUEMENT sur les fiches d'associations.
   Les classes body.ffga-single et body.single-acadp_listings n'existent que sur ces pages :
   les bandeaux des autres pages ne bougent pas. */
body.ffga-single .pix-main-intro,
body.single-acadp_listings .pix-main-intro { display: none !important; }
/* Le menu du thème flotte en haut de page : la fiche commence juste dessous */
body.ffga-single #content,
body.single-acadp_listings #content { padding-top: 150px !important; }

@media (max-width: 900px) {
	.ffga.ffga-fiche .ffga-fh__grid { grid-template-columns: 1fr; gap: 36px; }
	.ffga.ffga-fiche .ffga-fh__media { order: -1; width: 100%; max-width: 340px; margin: 0 auto; padding: 0 0 30px 32px; }
	.ffga.ffga-fiche .ffga-fh__tag { right: 12px; }
	.ffga.ffga-fiche .ffga-fh__frame::before { top: -8px; right: -6px; }
	.ffga.ffga-fiche .ffga-fh__text { text-align: center; }
	.ffga.ffga-fiche .ffga-fh__crumb, .ffga.ffga-fiche .ffga-fh__cta, .ffga.ffga-fiche ul.ffga-fh__pills { justify-content: center; }
	.ffga.ffga-fiche h1.ffga-fh__title, .ffga.ffga-fiche p.ffga-fh__lead { margin-left: auto; margin-right: auto; }
}
@media (max-width: 560px) {
	.ffga.ffga-fiche a.ffga-fh__btn { flex: 1 1 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.ffga.ffga-fiche a.ffga-fh__btn, .ffga.ffga-fiche a.ffga-fh__btn svg { transition: none; }
}

/* ==================================================================
   v1.6.0 · Fusion : carte reliée à la recherche, liste qui suit la zone,
   compteur « Toute la France » (blocs repris de la v1.4.x)
   ================================================================== */
/* ==================================================================
   ANNUAIRE v1.4.0 : carte reliée à la recherche.
   [ffg_annuaire carte="oui"] : recherche, puis carte, puis fiches.
   La carte n'a plus sa propre recherche ni ses filtres de thème.
   ================================================================== */
.ffga .ffga-linked-map { margin: 0 0 36px; }
.ffga .ffga-linked-map .ffgmap { margin: 0; }
.ffgmap.is-linked .ffgmap-legend,
.ffgmap.is-linked .ffgmap-search-wrap { display: none; }
.ffgmap.is-linked .ffgmap-controls { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ffgmap.is-linked .ffgmap-tools { margin-left: auto; }
.ffgmap .ffgmap-linked-note {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: .9rem;
	color: #6b6e67;
}
.ffgmap .ffgmap-linked-note svg {
	box-sizing: content-box;
	padding: 6px;
	color: #5d6b1c;
	background: #f7f6f3;
	border-radius: 50%;
}
@media (max-width: 700px) {
	.ffgmap.is-linked .ffgmap-tools { width: 100%; margin-left: 0; }
}
/* Accès rapide : thème sans résultat avec les filtres en cours */
.ffga .ffga-quick__chip:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; border-color: var(--ffga-line); color: var(--ffga-muted); }

/* ==================================================================
   CARTE v1.4.5 : la liste suit la zone affichée ; survol croisé
   liste <-> carte ; étiquette du nom au survol d'un point
   ================================================================== */
/* En-tête « N associations dans cette zone » */
.ffgmap .ffgmap-list-zone {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 8px 6px;
	padding: 10px 12px;
	font-size: .84rem;
	color: #3a3d38;
	background: #fff;
	border: 1px solid #e9e6df;
	border-radius: 12px;
	box-shadow: 0 6px 14px -8px rgba(18, 18, 18, .25);
}
.ffgmap .ffgmap-list-zone strong { font-family: "Josefin Sans", inherit; font-size: 1.05rem; color: #5d6b1c; }
.ffgmap .ffgmap-list-zone button {
	margin-left: auto;
	padding: 4px 10px;
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
	color: #5d6b1c;
	background: #f7f6f3;
	border: 1px solid #e6e8d4;
	border-radius: 999px;
	cursor: pointer;
}
.ffgmap .ffgmap-list-zone button:hover { color: #fff; background: #5d6b1c; border-color: #5d6b1c; }

/* Ligne de la liste survolée depuis la carte */
.ffgmap .ffgmap-list-item.is-hot { color: #121212; background: #fff; box-shadow: inset 3px 0 0 #5d6b1c, 0 4px 12px -6px rgba(18, 18, 18, .25); }

/* Point ou pastille survolé depuis la liste */
.ffgmap .ffgmap-marker.is-hot { z-index: 1000 !important; }
.ffgmap .ffgmap-marker.is-hot span { transform: scale(1.6); box-shadow: 0 0 0 4px rgba(93, 107, 28, .35), 0 8px 18px -4px rgba(18, 18, 18, .5); }
.ffgmap .ffgmap-cluster.is-hot { z-index: 1000 !important; }
.ffgmap .ffgmap-cluster.is-hot span { transform: scale(1.15); box-shadow: 0 0 0 8px rgba(93, 107, 28, .35), 0 12px 26px -8px rgba(18, 18, 18, .5); }
.ffgmap .ffgmap-cluster span { transition: transform .2s ease, box-shadow .2s ease; }

/* Étiquette du nom au survol d'un point */
.ffgmap .leaflet-tooltip.ffgmap-tip {
	padding: 6px 12px;
	font-family: "Source Sans 3", inherit;
	font-size: .85rem;
	font-weight: 700;
	color: #121212;
	white-space: nowrap;
	background: #fff;
	border: 1px solid #e9e6df;
	border-radius: 999px;
	box-shadow: 0 8px 20px -8px rgba(18, 18, 18, .4);
}
.ffgmap .leaflet-tooltip.ffgmap-tip::before { display: none; }
/* Correctif v1.4.5 : bouton « Toute la liste » sur une ligne */
.ffgmap .ffgmap-list-zone { line-height: 1.25; }
.ffgmap .ffgmap-list-zone button { flex: 0 0 auto; white-space: nowrap; }

/* ==================================================================
   ANNUAIRE v1.4.6 : fiches limitées à la zone affichée sur la carte,
   bouton « Toute la France » dans la tuile du compteur
   ================================================================== */
.ffga .ffga-tile__zone {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	margin: 6px 0 0;
	padding: 5px 12px;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	color: #5d6b1c;
	background: #f7f6f3;
	border: 1px solid #e6e8d4;
	border-radius: 999px;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.ffga .ffga-tile__zone:hover { color: #fff; background: #5d6b1c; border-color: #5d6b1c; }
.ffga .ffga-tile__zone[hidden] { display: none; }


/* ==================================================================
   FICHE v1.6.1 : logo de l'en-tête agrandi (cadre plus large, marge
   intérieure réduite, image étirée dans tout le cadre quel que soit
   le style du thème sur les images)
   ================================================================== */
.ffga.ffga-fiche .ffga-fh__grid { grid-template-columns: minmax(0, 1fr) minmax(300px, 440px); gap: 64px; }
.ffga.ffga-fiche .ffga-fh__logo { position: relative; padding: 0; }
.ffga.ffga-fiche .ffga-fh__logo img,
.ffga.ffga-fiche .ffga-fh__logo svg {
	position: absolute;
	top: 9%;
	left: 9%;
	width: 82% !important;
	height: 82% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	object-fit: contain;
	object-position: center;
}
@media (max-width: 900px) {
	.ffga.ffga-fiche .ffga-fh__grid { grid-template-columns: 1fr; }
	.ffga.ffga-fiche .ffga-fh__media { max-width: 380px; }
}

/* ==================================================================
   v1.7.0 · Charte des pages profondes FFG : Cèdre & Citron
   (l'émeraude du logo est réservé au logo). Fonds clairs, couleur en
   petites touches ; vert acide uniquement en petits accents.
   ================================================================== */
.ffga.ffga-fiche .ffga-fh__tag i { background: rgba(93, 107, 28, .12); }
.ffga.ffga-fiche .ffga-fh__tag i::before { background: #defd42; box-shadow: 0 0 0 2px #5d6b1c, 0 0 0 6px rgba(93, 107, 28, .18); }
.ffga.ffga-fiche .ffga-fh__eyebrow { color: #5d6b1c; }
.ffga.ffga-fiche h1.ffga-fh__title { color: #1e2a1e; }

/* ==================================================================
   v1.8.0 · Vert acide #defd42, la signature FFG des pages profondes
   Cèdre = profondeur (titres, boutons), Citron = accents, Acide = étincelle.
   Jamais de texte acide sur fond blanc : l'acide est une forme, un fond
   de survol ou une icône sur fond Cèdre.
   ================================================================== */
:root { --ffg-acid: #defd42; --ffg-cedre: #1e2a1e; --ffg-citron: #5d6b1c; }

/* 1. Boutons : dégradé Cèdre vers Citron, icône en acide ; au survol, fond acide et texte Cèdre */
.ffga-go, .ffga .ffga-results__all, .ffga .ffga-more__btn--all, .ffgmap .ffgmap-btn,
.ffga.ffga-fiche a.ffga-fh__btn--primary, .ffga-head a.ffga-head__btn--primary, .ffgmap .ffgmap-pop__main {
	transition: background .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.ffga-go svg, .ffga .ffga-results__all svg, .ffga .ffga-more__btn--all svg, .ffgmap .ffgmap-btn svg,
.ffga.ffga-fiche a.ffga-fh__btn--primary svg, .ffga-head a.ffga-head__btn--primary svg { color: var(--ffg-acid); stroke: var(--ffg-acid); }
.ffga-go:hover, .ffga .ffga-results__all:hover, .ffga .ffga-more__btn--all:hover, .ffgmap .ffgmap-btn:hover,
.ffga.ffga-fiche a.ffga-fh__btn--primary:hover, .ffga-head a.ffga-head__btn--primary:hover, .ffgmap .ffgmap-pop__main:hover {
	color: var(--ffg-cedre) !important;
	background: var(--ffg-acid) !important;
	box-shadow: 0 14px 30px -10px rgba(93, 107, 28, .55) !important;
}
.ffga-go:hover svg, .ffga .ffga-results__all:hover svg, .ffga .ffga-more__btn--all:hover svg, .ffgmap .ffgmap-btn:hover svg,
.ffga.ffga-fiche a.ffga-fh__btn--primary:hover svg, .ffga-head a.ffga-head__btn--primary:hover svg { color: var(--ffg-cedre); stroke: var(--ffg-cedre); }
.ffga-go:focus-visible, .ffga-quick__chip:focus-visible, .ffga-seg:focus-within { outline: 3px solid var(--ffg-acid); outline-offset: 2px; }

/* 2. Surtitres : filet acide devant le texte Citron */
.ffga-hero__kicker::before, .ffga.ffga-fiche .ffga-fh__eyebrow::before { background: var(--ffg-acid) !important; opacity: 1 !important; height: 3px; border-radius: 2px; }

/* 3. Accès rapide et légende de la carte : sélection en fond acide, texte Cèdre */
.ffga .ffga-quick__chip:hover { border-color: var(--ffg-citron); color: var(--ffg-cedre); background: rgba(222, 253, 66, .22); }
.ffga .ffga-quick__chip[aria-pressed="true"] { color: var(--ffg-cedre); background: var(--ffg-acid); border-color: var(--ffg-citron); box-shadow: 0 6px 16px -8px rgba(93, 107, 28, .6); }
.ffgmap .ffgmap-legend-item.ffgmap-active { color: var(--ffg-cedre); background: var(--ffg-acid); border-color: var(--ffg-citron); }

/* 4. Pastilles région / département des fiches : survol acide */
.ffga.ffga-fiche ul.ffga-fh__pills a:hover { color: var(--ffg-cedre); background: var(--ffg-acid); border-color: var(--ffg-citron); }

/* 5. Vignettes : liseré acide et flèche acide au survol */
.ffga-card { position: relative; }
.ffga-card::after { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 3px; background: var(--ffg-acid); border-radius: 0 0 3px 3px; transform: scaleX(0); transform-origin: left; transition: transform .3s ease; pointer-events: none; }
.ffga-card:hover::after, .ffga-card.is-hot::after { transform: scaleX(1); }
.ffga-card:hover .ffga-card__arrow { color: var(--ffg-cedre) !important; background: var(--ffg-acid) !important; }

/* 6. Compteur « Voir toutes les associations » : point acide */
.ffga .ffga-tile__num::after { background: var(--ffg-acid); box-shadow: 0 0 0 2px var(--ffg-citron); }

/* 7. Carte : anneau des regroupements Cèdre / acide, élément survolé en acide */
.ffgmap .ffgmap-cluster span::before { background: conic-gradient(var(--ffg-cedre), var(--ffg-citron), var(--ffg-acid), var(--ffg-cedre)); }
.ffgmap .ffgmap-cluster.is-hot span { box-shadow: 0 0 0 8px rgba(222, 253, 66, .55), 0 12px 26px -8px rgba(30, 42, 30, .5); }
.ffgmap .ffgmap-list-item.is-hot { box-shadow: inset 4px 0 0 var(--ffg-acid), 0 4px 12px -6px rgba(30, 42, 30, .25); }

/* 8. Fiche : réglette et repères de cadrage du logo en acide sur trait Citron */
.ffga.ffga-fiche .ffga-fh__frame::before, .ffga.ffga-fiche .ffga-fh__frame::after { border-color: var(--ffg-citron); }
.ffga.ffga-fiche .ffga-fh__frame::before { box-shadow: 3px -3px 0 -1px var(--ffg-acid); }
.ffga.ffga-fiche .ffga-fh__frame::after { box-shadow: -3px 3px 0 -1px var(--ffg-acid); }
.ffga.ffga-fiche h2.ffga-info__title::before { background: var(--ffg-acid) !important; box-shadow: 0 0 0 2px var(--ffg-citron); }
