.myfw-fn {
	--myfw-fn-dir: column;
	--myfw-fn-align: flex-start;
	--myfw-fn-text-align: left;
	--myfw-fn-gap: 24px;
	--myfw-fn-title-gap: 26px;

	--myfw-fn-bg: transparent;
	--myfw-fn-pad: 0;
	--myfw-fn-radius: 0px;
	--myfw-fn-border: currentColor;
	--myfw-fn-bw: 0px;

	--myfw-fn-title-color: var(--color-secondary, #d9cdb4);
	--myfw-fn-link-color: var(--color-text, #1f1f1f);
	--myfw-fn-link-color-hover: var(--color-accent, #b05a38);
	--myfw-fn-link-color-active: var(--myfw-fn-link-color-hover);
	--myfw-fn-underline-color: currentColor;
	--myfw-fn-underline-h: 2px;
	--myfw-fn-shift: 6px;
	--myfw-fn-link-pad: 0;
	--myfw-fn-sep-color: currentColor;

	box-sizing: border-box;
	padding: var(--myfw-fn-pad);
	background-color: var(--myfw-fn-bg);
	border: var(--myfw-fn-bw) solid var(--myfw-fn-border);
	border-radius: var(--myfw-fn-radius);
	text-align: var(--myfw-fn-text-align);
}

.myfw-fn__title {
	margin: 0 0 var(--myfw-fn-title-gap);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.2;
	color: var(--myfw-fn-title-color);
}

.myfw-fn__list {
	display: flex;
	flex-direction: var(--myfw-fn-dir);
	flex-wrap: wrap;
	align-items: var(--myfw-fn-align);
	justify-content: var(--myfw-fn-align);
	gap: var(--myfw-fn-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.myfw-fn__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.myfw-fn__link {
	position: relative;
	display: inline-block;
	padding: var(--myfw-fn-link-pad);
	font-size: 1.5rem;
	line-height: 1.25;
	cursor: pointer;
	transition: color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}
/* Couleurs/soulignement : sélecteur plus fort que les règles `a:hover` des thèmes. */
.myfw-fn .myfw-fn__link,
.myfw-fn .myfw-fn__link:visited {
	color: var(--myfw-fn-link-color);
	text-decoration: none;
	box-shadow: none;
}
.myfw-fn .myfw-fn__link:hover,
.myfw-fn .myfw-fn__link:focus-visible {
	color: var(--myfw-fn-link-color-hover);
	text-decoration: none;
}
.myfw-fn .myfw-fn__link.is-current {
	color: var(--myfw-fn-link-color-active);
}

/* ---- Effets au survol ---- */
.myfw-fn--fx-underline .myfw-fn__link span,
.myfw-fn--fx-slide .myfw-fn__link span {
	background-image: linear-gradient( var(--myfw-fn-underline-color), var(--myfw-fn-underline-color) );
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 var(--myfw-fn-underline-h);
	padding-bottom: 2px;
	transition: background-size 0.3s ease;
}
.myfw-fn--fx-underline .myfw-fn__link:hover span,
.myfw-fn--fx-underline .myfw-fn__link:focus-visible span,
.myfw-fn--fx-slide .myfw-fn__link:hover span,
.myfw-fn--fx-slide .myfw-fn__link:focus-visible span,
.myfw-fn--underline-current .myfw-fn__link.is-current span {
	background-size: 100% var(--myfw-fn-underline-h);
}
.myfw-fn--fx-underline .myfw-fn__link span {
	background-size: 0 var(--myfw-fn-underline-h);
	transition: none;
}
.myfw-fn--fx-shift .myfw-fn__link:hover,
.myfw-fn--fx-shift .myfw-fn__link:focus-visible {
	transform: translateX( var(--myfw-fn-shift) );
}
.myfw-fn--fx-fade .myfw-fn__list:hover .myfw-fn__link:not(:hover) {
	opacity: 0.55;
}

/* ---- Séparateurs (utiles en disposition « en ligne ») ---- */
.myfw-fn--sep-dot .myfw-fn__item + .myfw-fn__item::before,
.myfw-fn--sep-slash .myfw-fn__item + .myfw-fn__item::before,
.myfw-fn--sep-line .myfw-fn__item + .myfw-fn__item::before {
	color: var(--myfw-fn-sep-color);
	opacity: 0.7;
}
.myfw-fn--sep-dot .myfw-fn__item + .myfw-fn__item::before {
	content: "\00b7";
}
.myfw-fn--sep-slash .myfw-fn__item + .myfw-fn__item::before {
	content: "/";
}
.myfw-fn--sep-line .myfw-fn__item + .myfw-fn__item::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 1em;
	vertical-align: middle;
	background: var(--myfw-fn-sep-color);
}
.myfw-fn--sep-dot .myfw-fn__item + .myfw-fn__item,
.myfw-fn--sep-slash .myfw-fn__item + .myfw-fn__item,
.myfw-fn--sep-line .myfw-fn__item + .myfw-fn__item {
	display: inline-flex;
	align-items: center;
	gap: var(--myfw-fn-gap);
}

@media ( prefers-reduced-motion: reduce ) {
	.myfw-fn__link,
	.myfw-fn__link span {
		transition: none;
	}
}
