Aller au contenu
Aéronautique – Lisi Aerospace
LISI AEROSPACE – Dorval
Secteur — Aéronautique
LISI AEROSPACE – équipementier aéronautique de premier rang
Plus de 6 000 collaborateurs, 19 sites de production dans 9 pays
Site de Dorval (Canada)
Contexte et objectifs
Savoir-faire tacite hautement spécialisé , nécessitant une transmission structurée des connaissances sur un processus manuel de précision.
Temps de montée en autonomie à accélérer , tant pour le réglage que pour la production.
Résultats obtenus
Autonomie en production de 1 mois à 2 jours
Autonomie sur les opérations de réglage de 6 mois à 2 semaines
Solutions mises en place par Hapster
Capturer un processus de production hautement spécialisé et critique,
en atelier.
Identifier les compétences à transmettre
et capter les modules.
Accompagner les experts dans la décomposition des savoirs
et la création de contenus.
Ils témoignent
Cette formation m’a donné une base solide avant d’aller en atelier, ce qui a grandement facilité ma compréhension des processus. »
Juny-Dale – Apprenant
Hapster facilite le processus d’apprentissage et aide les apprenants à assimiler les concepts plus rapidement. »
Shahram – formateur
Hapster est convivial et permet de capturer l’information rapidement et de manière pratique. »
Lylia – Championne
Un excellent moyen de mettre en avant les points clés et de garder les apprenants concentrés sur l’essentiel. »
Mohammad – Ingénieur de production
Ce cas pratique vous parle ?
Démarrons un pilote sur votre savoir-faire critique.
/*
* Hapster CEVA use-case visual demo
* Production target: https://hapster.io/fr/use-cases/ceva/
* WordPress body class: postid-2693
*
* Paste this CSS into a late-loading custom stylesheet or WordPress Additional CSS.
* Every rule is scoped to CEVA so the experiment cannot restyle other use cases.
*
* After approval:
* 1. Clean the empty/duplicated blocks in Gutenberg.
* 2. Remove the « temporary content cleanup » rules below.
* 3. Replace body.postid-2693 with body.single-use_case to share the design.
*/
/* ==========================================================================
CEVA design tokens and article foundation
========================================================================== */
body.postid-2693 {
–ceva-ink: var(–ink-900, #0b0f14);
–ceva-ink-soft: var(–ink-600, #2a3340);
–ceva-ink-muted: var(–ink-400, #6b7585);
–ceva-surface: #ffffff;
–ceva-surface-soft: var(–off-white, #fafaf8);
–ceva-line: var(–hairline, #eceef1);
–ceva-green: var(–brand-accent, #7dc6ad);
–ceva-green-strong: var(–brand-accent-strong, #5fae94);
–ceva-green-ink: var(–brand-accent-ink, #0a2a22);
–ceva-yellow: var(–hapster-orange, #ffc000);
–ceva-navy: var(–deep-navy, #082033);
–ceva-radius: var(–radius-soft, 14px);
–ceva-reading-width: 46rem;
–ceva-article-width: 57rem;
–ceva-shadow-soft: 0 18px 50px rgba(8, 20, 30, 0.08);
–ceva-shadow-card: 0 10px 30px rgba(8, 20, 30, 0.06);
}
body.postid-2693 .hapster-content-article {
width: min(100%, var(–ceva-article-width));
max-width: var(–ceva-article-width);
margin-inline: auto;
padding: clamp(2.25rem, 5vw, 4.5rem) clamp(1rem, 3vw, 1.75rem)
clamp(4rem, 8vw, 7rem);
color: var(–ceva-ink-soft);
font-family: Inter, -apple-system, BlinkMacSystemFont, « Segoe UI », Roboto,
Helvetica, Arial, sans-serif;
font-size: 1.0625rem;
font-weight: 400;
line-height: 1.7;
}
body.postid-2693 .hapster-content-article :where(
h1,
h2,
h3,
h4,
p,
li,
a,
cite,
strong,
em,
button
) {
font-family: inherit;
}
body.postid-2693 .hapster-content-article__inner {
max-width: none;
color: var(–ceva-ink-soft);
–hapster-prose-text: var(–ceva-ink-soft);
–hapster-prose-heading: var(–ceva-ink);
–hapster-prose-strong: var(–ceva-ink);
–hapster-prose-marker: var(–ceva-green-ink);
–hapster-prose-link: var(–ceva-green-ink);
–hapster-prose-link-hover: var(–ceva-ink);
–hapster-prose-rule: var(–ceva-line);
–hapster-prose-quote-bar: var(–ceva-green);
–hapster-prose-flow: 1rem;
}
body.postid-2693 .hapster-content-article :where(p, li) {
color: var(–ceva-ink-soft);
font-size: inherit;
line-height: 1.7;
}
body.postid-2693 .hapster-content-article :where(h1, h2, h3, h4) {
color: var(–ceva-ink);
text-wrap: balance;
}
body.postid-2693 .hapster-content-article h1 {
margin: 0;
font-size: clamp(2.5rem, 5vw, 3.75rem);
font-weight: 800;
line-height: 1.02;
letter-spacing: -0.04em;
}
body.postid-2693 .hapster-content-article h2 {
margin: 0;
font-size: clamp(1.5rem, 2.5vw, 2rem);
font-weight: 800;
line-height: 1.15;
letter-spacing: -0.025em;
}
body.postid-2693 .hapster-content-article h3 {
margin: 0;
font-size: clamp(1.125rem, 1.6vw, 1.375rem);
font-weight: 700;
line-height: 1.25;
letter-spacing: -0.012em;
}
body.postid-2693 .hapster-content-article a {
color: var(–ceva-green-ink);
text-decoration-color: color-mix(in srgb, var(–ceva-green) 70%, transparent);
text-decoration-thickness: 0.08em;
text-underline-offset: 0.2em;
}
body.postid-2693 .hapster-content-article a:hover {
color: var(–ceva-ink);
}
body.postid-2693 .hapster-content-article :where(a, button):focus-visible {
outline: 3px solid var(–ceva-yellow);
outline-offset: 3px;
}
/* ==========================================================================
Logo and hero
========================================================================== */
body.postid-2693 .hapster-content-article__inner > .wp-block-image:first-child {
position: relative;
z-index: 2;
width: fit-content;
margin: 0 auto -2.25rem;
padding: 0.9rem 1.25rem;
background: var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: calc(var(–ceva-radius) + 4px);
box-shadow: var(–ceva-shadow-card);
}
body.postid-2693
.hapster-content-article__inner
> .wp-block-image:first-child
img {
display: block;
max-height: 5.5rem;
object-fit: contain;
}
body.postid-2693 .hapster-uc-hero.wp-block-group {
position: relative;
overflow: hidden;
margin: 0;
padding: clamp(4.5rem, 8vw, 6rem) clamp(1.5rem, 5vw, 4rem)
clamp(2.25rem, 5vw, 4rem);
background:
radial-gradient(
circle at 50% 0%,
rgba(125, 198, 173, 0.22),
transparent 42%
),
var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: calc(var(–ceva-radius) + 6px);
box-shadow: var(–ceva-shadow-soft);
text-align: center;
}
body.postid-2693 .hapster-uc-hero::after {
content: « »;
position: absolute;
right: -4rem;
bottom: -5rem;
width: 12rem;
height: 12rem;
border: 1px solid rgba(125, 198, 173, 0.28);
border-radius: 999px;
pointer-events: none;
}
body.postid-2693 .hapster-uc-hero__eyebrow {
display: inline-flex;
align-items: center;
width: fit-content;
margin: 0 auto 1.15rem;
padding: 0.45rem 0.8rem;
background: rgba(125, 198, 173, 0.2);
border: 1px solid rgba(95, 174, 148, 0.32);
border-radius: 999px;
color: var(–ceva-green-ink);
font-size: 0.75rem;
font-weight: 800;
line-height: 1.35;
letter-spacing: 0.13em;
text-transform: uppercase;
}
body.postid-2693 .hapster-uc-hero .hapster-uc-hero__title {
max-width: 16ch;
margin-inline: auto;
color: var(–ceva-ink);
}
body.postid-2693 .hapster-uc-hero .wp-block-buttons:empty {
display: none;
}
/* ==========================================================================
Client profile and factual details
========================================================================== */
body.postid-2693 .hapster-uc-profile.wp-block-group {
margin-block-start: clamp(1.5rem, 3vw, 2.25rem);
padding: clamp(1.25rem, 3vw, 2rem);
background: var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: calc(var(–ceva-radius) + 2px);
box-shadow: var(–ceva-shadow-card);
}
body.postid-2693 .wp-block-list.hapster-uc-facts {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
margin: 0;
padding: 0;
border-top: 0;
}
body.postid-2693 .wp-block-list.hapster-uc-facts > li {
min-width: 0;
margin: 0;
padding: 0.9rem 1rem 0.9rem 0;
border-bottom: 1px solid var(–ceva-line);
color: var(–ceva-ink-soft);
line-height: 1.55;
}
body.postid-2693 .wp-block-list.hapster-uc-facts > li:nth-child(odd) {
padding-right: clamp(1rem, 3vw, 2rem);
}
body.postid-2693 .wp-block-list.hapster-uc-facts > li:nth-child(even) {
padding-left: clamp(1rem, 3vw, 2rem);
border-left: 1px solid var(–ceva-line);
}
body.postid-2693 .wp-block-list.hapster-uc-facts > li > strong {
color: var(–ceva-ink);
font-weight: 750;
}
/* ==========================================================================
Long-form section rhythm and ordinary lists
========================================================================== */
body.postid-2693 .hapster-uc-section.wp-block-group {
margin-block-start: clamp(2.75rem, 6vw, 5rem);
padding-block-start: clamp(1.5rem, 3vw, 2.25rem);
border-top: 1px solid var(–ceva-line);
}
body.postid-2693 .hapster-uc-section > h2 {
max-width: 24ch;
}
body.postid-2693 .hapster-uc-section > :where(p, h3) {
max-width: var(–ceva-reading-width);
}
body.postid-2693
.hapster-uc-section
> .wp-block-list:not(.hapster-uc-results) {
max-width: var(–ceva-reading-width);
margin: clamp(1rem, 2vw, 1.5rem) 0 0;
padding: 0;
list-style: none;
}
body.postid-2693
.hapster-uc-section
> .wp-block-list:not(.hapster-uc-results)
> li {
position: relative;
margin: 0;
padding: 0.65rem 0 0.65rem 1.5rem;
border-bottom: 1px solid var(–ceva-line);
color: var(–ceva-ink-soft);
}
body.postid-2693
.hapster-uc-section
> .wp-block-list:not(.hapster-uc-results)
> li::before {
content: « »;
position: absolute;
top: 1.3rem;
left: 0.15rem;
width: 0.48rem;
height: 0.48rem;
background: var(–ceva-green);
border: 2px solid var(–ceva-surface);
border-radius: 999px;
box-shadow: 0 0 0 1px var(–ceva-green-strong);
}
body.postid-2693
.hapster-uc-section
> .wp-block-list:not(.hapster-uc-results)
> li::marker {
content: « »;
}
/* ==========================================================================
Results / KPI cards
========================================================================== */
body.postid-2693 .wp-block-list.hapster-uc-results {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(0.85rem, 2vw, 1.25rem);
margin: clamp(1.25rem, 3vw, 2rem) 0 0;
padding: 0;
}
body.postid-2693 .wp-block-list.hapster-uc-results > li {
position: relative;
min-width: 0;
margin: 0;
padding: clamp(1.2rem, 2.5vw, 1.65rem);
background:
linear-gradient(145deg, rgba(125, 198, 173, 0.13), transparent 62%),
var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: var(–ceva-radius);
box-shadow: var(–ceva-shadow-card);
color: var(–ceva-ink-soft);
line-height: 1.55;
}
body.postid-2693 .wp-block-list.hapster-uc-results > li::before {
content: « »;
display: block;
width: 2rem;
height: 3px;
margin-bottom: 1rem;
background: var(–ceva-green);
border-radius: 999px;
}
body.postid-2693 .wp-block-list.hapster-uc-results > li::marker {
content: « »;
}
/* Reset ordinary inline emphasis before promoting the first KPI in CEVA’s first
two result cards. This is intentionally page-specific; permanent markup should
use a dedicated KPI-value class instead of relying on nth-child. */
body.postid-2693 .wp-block-list.hapster-uc-results > li > strong {
display: inline;
margin: 0;
color: var(–ceva-ink);
font-size: inherit;
font-weight: 750;
line-height: inherit;
letter-spacing: normal;
}
body.postid-2693
.wp-block-list.hapster-uc-results
> li:nth-child(-n + 2)
> strong:first-of-type {
display: block;
margin-bottom: 0.55rem;
color: var(–ceva-green-ink);
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 850;
line-height: 1;
letter-spacing: -0.035em;
}
/* ==========================================================================
Hapster solution diagram
========================================================================== */
body.postid-2693 .hapster-uc-section + .hapster-diagram {
margin-block-start: clamp(1.25rem, 2.5vw, 2rem);
}
body.postid-2693 .hapster-diagram {
width: 100%;
max-width: none;
padding: clamp(1.25rem, 3vw, 2rem);
background:
linear-gradient(145deg, rgba(125, 198, 173, 0.11), transparent 48%),
var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: calc(var(–ceva-radius) + 4px);
box-shadow: var(–ceva-shadow-card);
}
body.postid-2693 .hapster-diagram .hapster-diagram__header {
color: var(–ceva-green-ink);
}
body.postid-2693 .hapster-diagram .hapster-diagram__badge {
padding: 0.35rem 0.65rem;
background: rgba(125, 198, 173, 0.18);
border: 1px solid rgba(95, 174, 148, 0.3);
border-radius: 999px;
color: var(–ceva-green-ink);
font-size: 0.6875rem;
font-weight: 800;
letter-spacing: 0.09em;
}
body.postid-2693
.hapster-diagram
.hapster-diagram__grid.wp-block-columns {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
gap: 0.9rem;
margin-block: 1.25rem 0;
}
body.postid-2693
.hapster-diagram
.hapster-diagram__grid.wp-block-columns
+ .hapster-diagram__grid.wp-block-columns {
margin-block-start: 0.9rem;
}
body.postid-2693 .hapster-diagram-card {
min-width: 0;
padding: 1.15rem;
background: var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: var(–ceva-radius);
}
body.postid-2693 .hapster-diagram-card::before {
color: var(–ceva-green-ink);
font-size: 0.6875rem;
font-weight: 800;
letter-spacing: 0.1em;
}
body.postid-2693 .hapster-diagram-card .hapster-diagram-card__title {
margin-block-start: 0.65rem;
color: var(–ceva-navy);
font-size: 1rem;
font-weight: 750;
line-height: 1.4;
}
body.postid-2693 .hapster-diagram-card .hapster-diagram-card__desc {
margin-block-start: 0.45rem;
color: var(–ceva-ink-soft);
font-size: 0.875rem;
line-height: 1.6;
}
/* ==========================================================================
Testimonials
========================================================================== */
body.postid-2693 .hapster-uc-quotes.wp-block-group {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: clamp(1rem, 2vw, 1.5rem);
margin-block-start: clamp(1.25rem, 2.5vw, 2rem);
}
body.postid-2693 .hapster-uc-quotes .wp-block-quote {
position: relative;
min-width: 0;
margin: 0;
padding: clamp(1.25rem, 3vw, 1.75rem);
background: var(–ceva-surface-soft);
border: 1px solid var(–ceva-line);
border-left: 4px solid var(–ceva-green);
border-radius: var(–ceva-radius);
color: var(–ceva-ink-soft);
font-style: normal;
}
body.postid-2693 .hapster-uc-quotes .wp-block-quote p,
body.postid-2693 .hapster-uc-quotes .wp-block-quote p em {
margin: 0;
color: var(–ceva-ink-soft);
font-size: 1rem;
font-style: normal;
line-height: 1.7;
}
body.postid-2693 .hapster-uc-quotes .wp-block-quote strong {
color: var(–ceva-ink);
font-weight: 750;
}
body.postid-2693 .hapster-uc-quotes .wp-block-quote cite {
display: block;
margin-block-start: 1rem;
color: var(–ceva-green-ink);
font-size: 0.75rem;
font-style: normal;
font-weight: 800;
line-height: 1.5;
letter-spacing: 0.08em;
text-transform: uppercase;
}
/* The final two CEVA quotes are saved in a second testimonial section. Join
the two visual groups until all four quotes are merged in Gutenberg. */
body.postid-2693
.hapster-uc-section:has(.hapster-uc-quotes)
+ .hapster-uc-section:has(.hapster-uc-quotes) {
margin-block-start: 0;
padding-block-start: clamp(1rem, 2vw, 1.5rem);
border-top: 0;
}
/* ==========================================================================
Closing CTA
========================================================================== */
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface {
margin-block-start: clamp(3rem, 7vw, 5.5rem);
padding: clamp(1.5rem, 4vw, 3rem);
background:
radial-gradient(
circle at 100% 0%,
rgba(125, 198, 173, 0.22),
transparent 42%
),
var(–ceva-navy);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: calc(var(–ceva-radius) + 6px);
box-shadow: 0 22px 60px rgba(8, 20, 30, 0.18);
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
h2 {
max-width: 22ch;
color: #ffffff;
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
> p {
max-width: 40rem;
margin-block-start: 0.75rem;
color: rgba(255, 255, 255, 0.74);
font-size: clamp(1rem, 1.4vw, 1.125rem);
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-buttons {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
margin-block-start: 1.5rem;
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-button__link {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 2.875rem;
padding: 0.75rem 1.2rem;
border: 1px solid transparent;
border-radius: 999px;
font-size: 0.875rem;
font-weight: 800;
line-height: 1.25;
text-decoration: none;
transition:
transform 180ms ease,
background-color 180ms ease,
border-color 180ms ease;
}
body.postid-2693
.hapster-content-article
.hapster-cta-contact
.wp-block-button__link {
background: var(–ceva-yellow);
color: #111111;
}
body.postid-2693
.hapster-content-article
.hapster-cta-roi
.wp-block-button__link {
background: transparent;
border-color: rgba(255, 255, 255, 0.42);
color: #ffffff;
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-button__link:hover {
transform: translateY(-2px);
}
body.postid-2693
.hapster-content-article
.hapster-cta-contact
.wp-block-button__link:hover {
background: #ffffff;
color: var(–ceva-ink);
}
body.postid-2693
.hapster-content-article
.hapster-cta-roi
.wp-block-button__link:hover {
background: rgba(255, 255, 255, 0.1);
border-color: #ffffff;
color: #ffffff;
}
/* ==========================================================================
Related use-case cards
========================================================================== */
body.postid-2693 .hapster-content-article__inner > section.mt-16 {
margin-block-start: clamp(3rem, 7vw, 5.5rem);
padding-block-start: clamp(1.5rem, 3vw, 2.25rem);
border-top: 1px solid var(–ceva-line);
}
body.postid-2693 .hapster-content-article__inner > section.mt-16 > h2 {
margin: 0;
color: var(–ceva-ink);
font-size: clamp(1.5rem, 2.5vw, 2rem);
font-weight: 800;
line-height: 1.15;
letter-spacing: -0.025em;
}
body.postid-2693 .hapster-content-article__inner > section.mt-16 > div {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1rem;
margin-block-start: 1.5rem;
}
body.postid-2693 .hapster-content-article__inner > section.mt-16 > div > a {
display: flex;
min-width: 0;
min-height: 100%;
flex-direction: column;
padding: 1.25rem;
background: var(–ceva-surface);
border: 1px solid var(–ceva-line);
border-radius: var(–ceva-radius);
box-shadow: var(–ceva-shadow-card);
color: var(–ceva-ink);
text-decoration: none;
transition:
transform 180ms ease,
border-color 180ms ease,
box-shadow 180ms ease;
}
body.postid-2693
.hapster-content-article__inner
> section.mt-16
> div
> a:hover {
transform: translateY(-3px);
border-color: var(–ceva-green-strong);
box-shadow: var(–ceva-shadow-soft);
}
body.postid-2693
.hapster-content-article__inner
> section.mt-16
> div
> a
> p:first-child {
margin: 0;
color: var(–ceva-green-ink);
font-size: 0.6875rem;
font-weight: 800;
line-height: 1.4;
letter-spacing: 0.12em;
text-transform: uppercase;
}
body.postid-2693
.hapster-content-article__inner
> section.mt-16
> div
> a
> h3 {
margin-block-start: 0.65rem;
color: var(–ceva-ink);
font-size: 1.125rem;
font-weight: 750;
line-height: 1.35;
letter-spacing: -0.012em;
}
body.postid-2693
.hapster-content-article__inner
> section.mt-16
> div
> a
> p:last-child {
margin-block: 0.75rem 0;
color: var(–ceva-ink-soft);
font-size: 0.875rem;
line-height: 1.6;
}
/* ==========================================================================
Temporary content cleanup for the current CEVA Gutenberg document
========================================================================== */
/* Empty blocks currently create unexplained vertical gaps. */
body.postid-2693
.hapster-content-article
:where(p, h2, h3, ul, .wp-block-buttons):empty {
display: none;
}
/* CEVA currently contains the same generated « Autres use cases » section twice.
Delete the duplicate block in Gutenberg before removing this rule. */
body.postid-2693
.hapster-content-article__inner
> section.mt-16
+ section.mt-16 {
display: none;
}
/* ==========================================================================
Responsive behavior
========================================================================== */
@media (max-width: 767px) {
body.postid-2693 .hapster-content-article {
padding-inline: 0.75rem;
}
body.postid-2693
.hapster-content-article__inner
> .wp-block-image:first-child {
margin-bottom: -1.75rem;
padding: 0.75rem 1rem;
}
body.postid-2693 .hapster-uc-hero.wp-block-group {
padding: 3.75rem 1.25rem 2rem;
}
body.postid-2693 .wp-block-list.hapster-uc-facts {
grid-template-columns: 1fr;
}
body.postid-2693 .wp-block-list.hapster-uc-facts > li,
body.postid-2693 .wp-block-list.hapster-uc-facts > li:nth-child(odd),
body.postid-2693 .wp-block-list.hapster-uc-facts > li:nth-child(even) {
padding-inline: 0;
border-left: 0;
}
body.postid-2693 .wp-block-list.hapster-uc-results,
body.postid-2693 .hapster-uc-quotes.wp-block-group,
body.postid-2693 .hapster-content-article__inner > section.mt-16 > div {
grid-template-columns: 1fr;
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-buttons {
align-items: stretch;
flex-direction: column;
}
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-button,
body.postid-2693
.hapster-content-article
.is-style-hapster-section.is-style-hapster-surface
.wp-block-button__link {
width: 100%;
}
}
@media (prefers-reduced-motion: reduce) {
body.postid-2693 .hapster-content-article * {
scroll-behavior: auto;
transition-duration: 0.01ms;
}
}
Capter et transmettre les savoir-faire industriels. Methode brevetee. Made in France.
Contact
Hapster SAS, 2 place de Touraine, 78000 Versailles, France
Suivre sur LinkedIn
© 2026 Hapster