/* ==========================================================================
   Bloc « Sociétés du groupe » (hf/companies)
   Bloc imbriqué : hérite de la surface de la section parente (clair ou sombre).
   Les dispositions s'adaptent à la largeur réelle du bloc (requêtes de conteneur) :
   il fonctionne aussi bien en pleine largeur que dans la colonne d'une section « split ».
   ========================================================================== */

.hf-companies {
	--hf-companies-gap: clamp(16px, 1.7vw, 24px);
	--hf-logo-max: 60px;
	--hf-mono: 48px;
	container-type: inline-size;
}
.hf-companies :is(.hf-companies__grid, .hf-companies__list, .hf-companies__compact),
.hf-companies :is(.hf-companies__grid, .hf-companies__list, .hf-companies__compact) > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ---------- Éléments communs ---------- */
.hf-companies__num {
	font-family: var(--hf-font-sans);
	font-size: var(--hf-fs-eyebrow);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.14em;
	font-variant-numeric: tabular-nums;
	color: var(--hf-fg-muted);
}
.hf-companies__name {
	margin: 0;
	font-family: var(--hf-font-serif);
	font-weight: 400;
	color: var(--hf-fg);
	text-wrap: balance;
}
/* Capitales espacées à 11 px : taille plancher admise (contraste AA sur toutes les surfaces) */
.hf-companies__metier {
	margin: 0;
	font-family: var(--hf-font-sans);
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hf-accent);
}
.hf-companies__pitch {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--hf-fg-2);
	text-wrap: pretty;
}
.hf-companies .hf-icon {
	width: 18px;
	height: 18px;
	transition: transform var(--hf-dur) var(--hf-ease);
}

/* ---------- Logos ----------
   Couleurs d'origine légèrement désaturées au repos, pleine couleur au survol ou au focus ;
   hauteur optiquement égalisée (--hf-logo-s, calculé dans render.php).
   Sur fond sombre : silhouettes blanches au repos, version claire au survol. */
.hf-companies__logo {
	display: flex;
	align-items: center;
	min-width: 0;
	height: var(--hf-logo-max);
}
.hf-companies__logo-img {
	display: block;
	width: auto;
	max-width: 100%;
	height: calc(var(--hf-logo-max) * var(--hf-logo-s, 1));
	object-fit: contain;
	object-position: left center;
	filter: saturate(0.72);
	transition: filter var(--hf-dur) var(--hf-ease), opacity var(--hf-dur) var(--hf-ease);
}
.hf-companies__logo-img--on-dark {
	display: none;
}
:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__logo-img--on-light {
	display: none;
}
:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__logo-img--on-dark {
	display: block;
}
:is(.hf-surface--navy, .hf-surface--deep) :is(.hf-companies__logo-img--on-dark, .hf-companies__logo-img--adaptive) {
	filter: brightness(0) invert(1);
	opacity: 0.88;
}

/* Sans logo : monogramme (initiale en serif dans un carré à filet), jamais le nom répété */
.hf-companies__mono {
	display: grid;
	place-items: center;
	flex: none;
	width: var(--hf-mono);
	height: var(--hf-mono);
	font-family: var(--hf-font-serif);
	font-size: calc(var(--hf-mono) * 0.56);
	font-style: italic;
	font-weight: 400;
	line-height: 1;
	color: var(--hf-accent);
	border: 1px solid var(--hf-border-strong);
	border-radius: var(--hf-radius);
	transition: border-color var(--hf-dur) var(--hf-ease), color var(--hf-dur) var(--hf-ease);
}

/* ==========================================================================
   Disposition « grid » : cartes numérotées
   ========================================================================== */
.hf-companies__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--hf-companies-gap);
}
.hf-companies--count-3 .hf-companies__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hf-companies--count-2 .hf-companies__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hf-companies--count-1 .hf-companies__grid {
	grid-template-columns: minmax(0, 420px);
}
.hf-companies__item {
	display: flex;
	min-width: 0;
}
.hf-companies__card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	padding: clamp(24px, 2.3vw, 34px) clamp(22px, 2.1vw, 30px) clamp(22px, 2vw, 28px);
	background-color: transparent;
	border: 1px solid var(--hf-border);
	border-radius: var(--hf-radius);
	transition: border-color var(--hf-dur) var(--hf-ease), background-color var(--hf-dur) var(--hf-ease), transform var(--hf-dur) var(--hf-ease), box-shadow var(--hf-dur) var(--hf-ease);
}
.hf-surface--ivory .hf-companies__card {
	background-color: var(--hf-white);
	border-color: transparent;
}
:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__card {
	background-color: var(--hf-card);
}
/* Filet tricolore qui se déploie au survol (signature du logo) */
.hf-companies__card::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	height: 2px;
	background: var(--hf-tricolor);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.7s var(--hf-ease);
	pointer-events: none;
}
.hf-companies__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 1.25rem;
	margin-bottom: clamp(26px, 2.6vw, 36px);
}
.hf-companies__card .hf-companies__logo {
	margin-bottom: clamp(26px, 2.6vw, 38px);
}
/* Le métier se lit en surtitre (1re rangée, hauteur réservée de deux lignes : les noms
   restent alignés d'une carte à l'autre) ; le nom reste le premier élément du document. */
.hf-companies__body {
	display: grid;
	flex: 1 1 auto;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: minmax(calc(2 * 1.45 * 0.6875rem), auto);
	align-content: start;
	min-width: 0;
}
.hf-companies__card .hf-companies__metier {
	grid-row: 1;
	align-self: end;
}
.hf-companies__card .hf-companies__name {
	grid-row: 2;
	margin-top: 0.625rem;
	font-size: clamp(1.375rem, 1.2rem + 0.45vw, 1.625rem);
	line-height: 1.2;
	letter-spacing: -0.012em;
}
.hf-companies__card .hf-companies__pitch {
	grid-row: 3;
	margin-top: 0.875rem;
}
.hf-companies__card .hf-companies__tags {
	grid-row: 4;
}
.hf-companies .hf-companies__tags {
	margin-top: 1.25rem;
}
.hf-companies__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-top: 1.75rem;
	padding-top: 1.125rem;
	border-top: 1px solid var(--hf-border);
	transition: border-color var(--hf-dur) var(--hf-ease);
}
.hf-companies__more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hf-fg);
	text-decoration: none;
}
/* Lien étiré : toute la carte mène à la fiche */
.hf-companies__card .hf-companies__more::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: var(--hf-radius);
}
.hf-companies__card .hf-companies__more:focus-visible {
	outline: none;
}
.hf-companies__card .hf-companies__more:focus-visible::after {
	outline: 2px solid var(--hf-accent);
	outline-offset: 3px;
}
/* Lien vers le site externe : au-dessus du lien étiré ; zone tactile de 44 px de haut
   (marges négatives compensées : la mise en page ne bouge pas) */
.hf-companies__site {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	max-width: calc(100% + 8px);
	margin: -14px -4px;
	padding: 14px 4px;
	font-size: var(--hf-fs-xs);
	font-weight: 500;
	line-height: 1.3;
	color: var(--hf-fg-muted);
	text-decoration: none;
	transition: color var(--hf-dur) var(--hf-ease);
}
.hf-companies__site > span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.hf-companies__site .hf-icon {
	width: 15px;
	height: 15px;
}
.hf-companies__site:hover {
	color: var(--hf-accent);
}
.hf-companies__site:hover .hf-icon {
	transform: translate(2px, -2px);
}

/* Société à venir : carte atténuée par les couleurs, jamais par l'opacité
   (les textes restent au contraste AA) ; pas de lien vers le site externe */
.hf-companies__card.is-soon .hf-companies__name {
	color: var(--hf-fg-2);
}
.hf-companies__card.is-soon :is(.hf-companies__metier, .hf-companies__pitch) {
	color: var(--hf-fg-muted);
}
.hf-companies__card.is-soon .hf-companies__logo-img {
	filter: saturate(0.3);
}
:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__card.is-soon :is(.hf-companies__logo-img--on-dark, .hf-companies__logo-img--adaptive) {
	filter: brightness(0) invert(1);
}

/* Survol (pointeur fin uniquement) : filet plus soutenu, élévation légère, logo en couleur */
@media (hover: hover) {
	.hf-companies:not(.hf-companies--static) .hf-companies__card:hover {
		border-color: color-mix(in srgb, var(--hf-fg) 42%, transparent);
		transform: translateY(-4px);
		box-shadow: var(--hf-shadow);
	}
	:is(.hf-surface--navy, .hf-surface--deep) .hf-companies:not(.hf-companies--static) .hf-companies__card:hover {
		background-color: var(--hf-card-hover);
		box-shadow: none;
	}
	.hf-companies:not(.hf-companies--static) .hf-companies__card:hover::before {
		transform: scaleX(1);
	}
	.hf-companies__card:hover .hf-companies__foot {
		border-color: var(--hf-border-strong);
	}
	.hf-companies__card:hover .hf-companies__more .hf-icon {
		transform: translateX(5px);
	}
	.hf-companies__card:hover .hf-companies__logo-img {
		filter: none;
		opacity: 1;
	}
	:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__card:hover .hf-companies__logo-img--adaptive {
		filter: brightness(0) invert(1);
	}
	.hf-companies__card:hover .hf-companies__mono {
		border-color: var(--hf-accent);
	}
}
.hf-companies__card:focus-within .hf-companies__logo-img {
	filter: none;
	opacity: 1;
}
:is(.hf-surface--navy, .hf-surface--deep) .hf-companies__card:focus-within .hf-companies__logo-img--adaptive {
	filter: brightness(0) invert(1);
}

@container (max-width: 1040px) {
	.hf-companies__grid,
	.hf-companies--count-3 .hf-companies__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Téléphone (bloc ≤ 600 px) : cartes condensées sur une colonne.
   Logo et lien du site (ou pastille « Prochainement ») en tête, puis métier et nom ;
   la flèche seule rappelle le lien étiré « Découvrir ». L'accroche et les tensions
   restent sur la fiche de la société. */
@container (max-width: 600px) {
	.hf-companies__grid,
	.hf-companies--count-3 .hf-companies__grid,
	.hf-companies--count-2 .hf-companies__grid,
	.hf-companies--count-1 .hf-companies__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	.hf-companies__card {
		--hf-logo-max: 38px;
		--hf-mono: 36px;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"logo logo"
			"body foot";
		align-items: center;
		column-gap: 16px;
		padding: 20px 20px 22px;
	}
	.hf-companies__top {
		display: contents;
	}
	.hf-companies__top > .hf-companies__num {
		display: none;
	}
	/* Le lien du site (ou la pastille) partage la 1re rangée avec le logo sans élargir
	   la colonne de la flèche : le métier et le nom gardent toute la largeur. */
	.hf-companies__top > :is(.hf-soon, .hf-companies__site) {
		grid-row: 1;
		grid-column: 1 / -1;
		justify-self: end;
		max-width: 56%;
	}
	.hf-companies__card .hf-companies__logo {
		grid-row: 1;
		grid-column: 1;
		justify-self: start;
		max-width: 44%;
		margin: 0;
	}
	.hf-companies__card .hf-companies__body {
		grid-area: body;
		grid-template-rows: auto;
		margin-top: 18px;
	}
	.hf-companies__card .hf-companies__name {
		margin-top: 0.375rem;
		font-size: 1.375rem;
	}
	.hf-companies__card :is(.hf-companies__pitch, .hf-companies__tags) {
		display: none;
	}
	.hf-companies__card .hf-companies__foot {
		grid-area: foot;
		align-self: end;
		justify-self: end;
		margin: 0;
		padding: 0 0 0.125rem;
		border: 0;
	}
	.hf-companies__more-label {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}
	.hf-companies__card .hf-companies__more .hf-icon {
		width: 20px;
		height: 20px;
	}
	/* Logos masqués : le numéro reprend la place du logo */
	.hf-companies--no-logos .hf-companies__top > .hf-companies__num {
		display: block;
		grid-row: 1;
		grid-column: 1;
	}
}

/* ==========================================================================
   Disposition « list » : lignes éditoriales
   ========================================================================== */
.hf-companies--list {
	--hf-logo-max: 38px;
	--hf-mono: 36px;
}
.hf-companies__list {
	border-top: 1px solid var(--hf-border);
}
.hf-companies__row {
	position: relative;
	display: grid;
	grid-template-columns: 3.5rem minmax(0, 4fr) minmax(0, 5fr) minmax(0, 2fr) 3.25rem;
	align-items: center;
	column-gap: clamp(20px, 2.8vw, 44px);
	padding-block: clamp(26px, 2.8vw, 40px);
	border-bottom: 1px solid var(--hf-border);
	isolation: isolate;
	transition: border-color var(--hf-dur) var(--hf-ease);
}
.hf-companies--no-logos .hf-companies__row {
	grid-template-columns: 3.5rem minmax(0, 4fr) minmax(0, 6fr) 3.25rem;
}
.hf-companies--static .hf-companies__row {
	grid-template-columns: 3.5rem minmax(0, 4fr) minmax(0, 5fr) minmax(0, 2fr);
}
.hf-companies--no-logos.hf-companies--static .hf-companies__row {
	grid-template-columns: 3.5rem minmax(0, 4fr) minmax(0, 7fr);
}
.hf-companies__row .hf-companies__num {
	grid-column: 1;
	align-self: start;
	padding-top: 0.875rem;
}
.hf-companies__row .hf-companies__ident {
	grid-column: 2;
}
.hf-companies__row .hf-companies__pitch {
	grid-column: 3;
	max-width: 54ch;
}
.hf-companies__row .hf-companies__logo {
	grid-column: 4;
	justify-content: flex-end;
}
.hf-companies__row .hf-companies__logo-img {
	object-position: right center;
}
.hf-companies__row .hf-companies__more--round {
	grid-column: -2 / -1;
}
.hf-companies__ident {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.625rem 1rem;
	min-width: 0;
}
.hf-companies__row .hf-companies__name {
	font-size: clamp(1.625rem, 1.25rem + 1.1vw, 2.25rem);
	line-height: 1.1;
	letter-spacing: -0.018em;
}
.hf-companies__row .hf-companies__metier {
	flex: 1 0 100%;
	color: var(--hf-fg-muted);
}
.hf-companies__row.is-soon :is(.hf-companies__name, .hf-companies__pitch) {
	color: var(--hf-fg-muted);
}

/* Flèche ronde, lien étiré sur toute la ligne */
.hf-companies__more--round {
	justify-self: end;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border: 1px solid var(--hf-border-strong);
	border-radius: 50%;
	transition: background-color var(--hf-dur) var(--hf-ease), border-color var(--hf-dur) var(--hf-ease), color var(--hf-dur) var(--hf-ease);
}
.hf-companies__more--round::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.hf-companies__more--round:focus-visible {
	outline: none;
}
.hf-companies__more--round:focus-visible::after {
	outline: 2px solid var(--hf-accent);
	outline-offset: 2px;
}

/* Photo révélée au survol : bandeau bleu nuit, photo traitée en fondu vers la droite */
.hf-companies__reveal {
	display: none;
}

@media (hover: hover) and (min-width: 901px) {
	/* Le bandeau déborde légèrement de la ligne : le texte garde sa marge et son alignement */
	.hf-companies--list:not(.hf-companies--static) .hf-companies__reveal {
		position: absolute;
		inset: -1px calc(-1 * clamp(16px, 1.8vw, 28px)) 0;
		z-index: -1;
		display: block;
		overflow: hidden;
		background-color: var(--hf-navy-900);
		opacity: 0;
		transition: opacity 0.55s var(--hf-ease);
	}
	.hf-surface--navy .hf-companies--list .hf-companies__reveal {
		background-color: var(--hf-navy-950);
	}
	/* Traitement photographique unique du site (--hf-photo-filter + lavis --hf-photo-wash),
	   complété d'un voile de lisibilité sous le texte blanc. */
	.hf-companies__reveal-img {
		position: absolute;
		inset: 0;
		width: 100%;
		max-width: none;
		height: 100%;
		object-fit: cover;
		object-position: center 40%;
		filter: var(--hf-photo-filter);
		transform: scale(1.06);
		transition: transform 1.2s var(--hf-ease);
		-webkit-mask-image: linear-gradient(90deg, transparent 18%, #000 72%);
		mask-image: linear-gradient(90deg, transparent 18%, #000 72%);
	}
	.hf-companies__reveal::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		background: var(--hf-photo-wash);
		mix-blend-mode: color;
	}
	.hf-companies__reveal::after {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 2;
		background: linear-gradient(90deg, rgba(4, 32, 79, 0.2) 25%, rgba(4, 32, 79, 0.66) 62%, rgba(4, 32, 79, 0.74) 100%);
	}
	.hf-companies--list:not(.hf-companies--static) .hf-companies__row.has-photo:hover {
		--hf-fg: var(--hf-white);
		--hf-fg-2: rgba(255, 255, 255, 0.84);
		--hf-fg-muted: rgba(255, 255, 255, 0.64);
		--hf-accent: var(--hf-blue-300);
		--hf-border-strong: rgba(255, 255, 255, 0.36);
		--hf-tricolor-mid: var(--hf-white);
		border-bottom-color: transparent;
	}
	.hf-companies__row :is(.hf-companies__name, .hf-companies__pitch, .hf-companies__metier, .hf-companies__num, .hf-soon) {
		transition: color 0.45s var(--hf-ease);
	}
	.hf-companies__row:hover .hf-companies__reveal {
		opacity: 1;
	}
	.hf-companies__row:hover .hf-companies__reveal-img {
		transform: scale(1);
	}
	.hf-companies__row.has-photo:hover .hf-companies__more--round {
		color: var(--hf-navy-900);
		background-color: var(--hf-white);
		border-color: var(--hf-white);
	}
	.hf-companies__row:hover .hf-companies__more--round .hf-icon {
		transform: translateX(3px);
	}
	/* Logo sur le bandeau sombre */
	.hf-companies--list .hf-companies__row.has-photo:hover .hf-companies__logo-img--on-light {
		display: none;
	}
	.hf-companies--list .hf-companies__row.has-photo:hover .hf-companies__logo-img--on-dark {
		display: block;
		filter: none;
		opacity: 1;
	}
	.hf-companies--list .hf-companies__row.has-photo:hover .hf-companies__logo-img--adaptive {
		filter: brightness(0) invert(1);
		opacity: 1;
	}
	.hf-companies--list .hf-companies__row.has-photo:hover .hf-companies__mono {
		color: var(--hf-white);
		border-color: rgba(255, 255, 255, 0.5);
	}
}
/* Survol d'une ligne sans photo : la flèche s'inverse simplement */
@media (hover: hover) {
	.hf-companies--list .hf-companies__row:not(.has-photo):hover .hf-companies__more--round {
		color: var(--hf-bg);
		background-color: var(--hf-fg);
		border-color: var(--hf-fg);
	}
}

@container (max-width: 1040px) {
	.hf-companies__row,
	.hf-companies--no-logos .hf-companies__row {
		grid-template-columns: 3rem minmax(0, 4fr) minmax(0, 5fr) 3.25rem;
	}
	.hf-companies--static .hf-companies__row,
	.hf-companies--no-logos.hf-companies--static .hf-companies__row {
		grid-template-columns: 3rem minmax(0, 4fr) minmax(0, 6fr);
	}
	.hf-companies__row .hf-companies__logo {
		display: none;
	}
}
@container (max-width: 680px) {
	.hf-companies__row,
	.hf-companies--no-logos .hf-companies__row,
	.hf-companies--static .hf-companies__row,
	.hf-companies--no-logos.hf-companies--static .hf-companies__row {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"num num"
			"ident more"
			"pitch pitch";
		row-gap: 0.75rem;
		padding-block: 28px;
	}
	.hf-companies__row .hf-companies__num {
		grid-area: num;
		padding-top: 0;
	}
	.hf-companies__row .hf-companies__ident {
		grid-area: ident;
	}
	.hf-companies__row .hf-companies__pitch {
		grid-area: pitch;
	}
	.hf-companies__row .hf-companies__more--round {
		grid-area: more;
		align-self: start;
		width: 2.75rem;
		height: 2.75rem;
	}
}

/* ==========================================================================
   Disposition « compact » : grille de liens sobres
   ========================================================================== */
.hf-companies--compact {
	--hf-logo-max: 46px;
	--hf-mono: 40px;
}
.hf-companies__compact {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--hf-companies-gap);
}
.hf-companies--compact.hf-companies--count-3 .hf-companies__compact {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hf-companies--compact.hf-companies--count-2 .hf-companies__compact {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hf-companies__cell {
	display: flex;
	min-width: 0;
}
.hf-companies__link {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-content: start;
	gap: 1.125rem 1rem;
	width: 100%;
	padding: 1.5rem 0 1.75rem;
	color: var(--hf-fg);
	text-decoration: none;
	border-top: 1px solid var(--hf-border);
}
.hf-companies__link::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--hf-fg);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.6s var(--hf-ease);
}
.hf-companies__link .hf-companies__logo {
	grid-column: 1;
	grid-row: 1;
}
.hf-companies__link-text {
	display: grid;
	gap: 0.375rem;
	grid-column: 1;
	min-width: 0;
}
/* Avec logos : rangée de logo réservée (logo ou monogramme), les noms restent alignés */
.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link {
	grid-template-rows: var(--hf-logo-max) auto;
}
.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link-text {
	grid-row: 2;
}
.hf-companies__link .hf-companies__name {
	font-size: 1.25rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
}
.hf-companies__link .hf-companies__metier {
	color: var(--hf-fg-muted);
	letter-spacing: 0.12em;
}
.hf-companies__link .hf-soon {
	justify-self: start;
}
.hf-companies__link > .hf-icon {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
	margin-top: 0.125rem;
	color: var(--hf-fg-muted);
}
.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link > .hf-icon {
	align-self: center;
	margin-top: 0;
}
.hf-companies__link.is-soon .hf-companies__name {
	color: var(--hf-fg-muted);
}
@media (hover: hover) {
	a.hf-companies__link:hover::before {
		transform: scaleX(1);
	}
	a.hf-companies__link:hover > .hf-icon {
		color: var(--hf-fg);
		transform: translateX(4px);
	}
	a.hf-companies__link:hover .hf-companies__logo-img {
		filter: none;
		opacity: 1;
	}
	:is(.hf-surface--navy, .hf-surface--deep) a.hf-companies__link:hover .hf-companies__logo-img--adaptive {
		filter: brightness(0) invert(1);
	}
	a.hf-companies__link:hover .hf-companies__mono {
		border-color: var(--hf-accent);
	}
}
a.hf-companies__link:focus-visible {
	outline-offset: 4px;
}

@container (max-width: 1040px) {
	.hf-companies__compact,
	.hf-companies--compact.hf-companies--count-3 .hf-companies__compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Une seule colonne : liste resserrée, sans logos */
@container (max-width: 520px) {
	.hf-companies__compact,
	.hf-companies--compact.hf-companies--count-3 .hf-companies__compact,
	.hf-companies--compact.hf-companies--count-2 .hf-companies__compact {
		grid-template-columns: minmax(0, 1fr);
	}
	.hf-companies__link,
	.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link {
		grid-template-rows: auto;
		padding-block: 1.25rem 1.375rem;
	}
	.hf-companies__link .hf-companies__logo {
		display: none;
	}
	.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link-text {
		grid-row: 1;
	}
	.hf-companies--compact:not(.hf-companies--no-logos) .hf-companies__link > .hf-icon {
		align-self: start;
		margin-top: 0.25rem;
	}
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
	.hf-companies__card,
	.hf-companies__card::before,
	.hf-companies .hf-icon,
	.hf-companies__logo-img,
	.hf-companies__mono,
	.hf-companies__reveal,
	.hf-companies__reveal-img,
	.hf-companies__link::before {
		transition: none;
	}
	.hf-companies:not(.hf-companies--static) .hf-companies__card:hover,
	.hf-companies__row:hover .hf-companies__reveal-img {
		transform: none;
	}
}
