.ab-hub {
--ink:#12242B;
--paper:#FBFAF7;
--paper-2:#F1EEE8;
--sea:#0E6E7A;
--sea-deep:#0A4F58;
--sea-pale:#DCEBEC;
--amber:#D96A28;
--slate:#56666C;
--rule:#DAD5CB;
--display:"Bricolage Grotesque",system-ui,sans-serif;
--body:"Source Serif 4",Georgia,serif;
--mono:"IBM Plex Mono",ui-monospace,monospace;
--wrap:1180px;
--gut:clamp(20px,5vw,64px);
}
.ab-hub,.ab-hub * {
box-sizing:border-box}
html {
scroll-behavior:smooth;
-webkit-text-size-adjust:100%}
.ab-hub {
margin:0;
background:var(--paper);
color:var(--ink);
font-family:var(--body);
font-size:19px;
line-height:1.62;
font-optical-sizing:auto;
}
@media (max-width:700px) {
.ab-hub {
font-size:18px}
}
.ab-hub a {
color:inherit}
.ab-hub .wrap {
max-width:var(--wrap);
margin:0 auto;
padding:0 var(--gut)}
.ab-hub :focus-visible {
outline:3px solid var(--amber);
outline-offset:3px;
border-radius:2px}
.ab-hub .crumb {
font-family:var(--mono);
font-size:12.5px;
letter-spacing:.06em;
text-transform:uppercase;
color:var(--slate);
padding-top:26px}
.ab-hub .crumb a {
text-decoration:none}
.ab-hub .crumb a:hover {
color:var(--sea)}
.ab-hub .hero {
padding:14px 0 56px}
.ab-hub .hero h1 {
font-family:var(--display);
font-weight:800;
font-size:clamp(38px,6.2vw,74px);
line-height:1.02;
letter-spacing:-.035em;
margin:18px 0 22px;
max-width:19em;
}
.ab-hub .hero h1 em {
font-style:normal;
color:var(--sea);
}
.ab-hub .lede {
font-size:clamp(19px,2.1vw,23px);
max-width:34em;
margin:0 0 30px;
color:#22383F}
.ab-hub .trust {
display:flex;
flex-wrap:wrap;
gap:10px 26px;
align-items:center;
font-family:var(--display);
font-size:15px;
font-weight:600;
color:var(--slate);
border-top:1px solid var(--rule);
padding-top:20px;
max-width:52em;
}
.ab-hub .trust b {
color:var(--ink);
font-weight:600}
.ab-hub .qs {
background:var(--sea-pale);
border-top:1px solid var(--rule);
border-bottom:1px solid var(--rule)}
.ab-hub .qs-in {
padding:52px 0 58px}
.ab-hub .eyebrow {
font-family:var(--mono);
font-size:12.5px;
letter-spacing:.1em;
text-transform:uppercase;
color:var(--sea-deep);
margin:0 0 18px;
}
.ab-hub .qs h2 {
font-family:var(--display);
font-weight:800;
letter-spacing:-.025em;
font-size:clamp(26px,3.4vw,38px);
margin:0 0 30px;
max-width:24em;
line-height:1.1}
.ab-hub .q-grid {
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:2px;
background:rgba(10,79,88,.16);
border:1px solid rgba(10,79,88,.16);
}
@media (max-width:760px) {
.ab-hub .q-grid {
grid-template-columns:1fr}
}
.ab-hub .q-grid a {
background:var(--sea-pale);
padding:20px 22px;
text-decoration:none;
display:flex;
align-items:center;
gap:16px;
min-height:66px;
font-size:18.5px;
transition:background .15s;
}
.ab-hub .q-grid a:hover {
background:#fff}
.ab-hub .q-grid a::after {
content:"›";
margin-left:auto;
font-family:var(--display);
font-size:24px;
color:var(--sea);
flex:none}
.ab-hub .body-grid {
display:grid;
grid-template-columns:212px minmax(0,1fr);
gap:0;
padding:72px 0 40px;
align-items:start}
@media (max-width:1000px) {
.ab-hub .body-grid {
grid-template-columns:1fr}
}
.ab-hub .rail {
position:sticky;
top:110px;
padding-right:36px}
@media (max-width:1000px) {
.ab-hub .rail {
display:none}
}
.ab-hub .rail p {
font-family:var(--mono);
font-size:12px;
letter-spacing:.1em;
text-transform:uppercase;
color:var(--slate);
margin:0 0 20px}
.ab-hub .rail ol {
list-style:none;
margin:0;
padding:0;
position:relative}
.ab-hub .rail ol::before {
content:"";
position:absolute;
left:7px;
top:10px;
bottom:12px;
width:2px;
background:var(--rule);
}
.ab-hub .rail li {
position:relative;
padding:0 0 22px 30px}
.ab-hub .rail li::before {
content:"";
position:absolute;
left:0;
top:8px;
width:16px;
height:16px;
border-radius:50%;
background:var(--paper);
border:2px solid var(--rule);
transition:background .2s,border-color .2s,transform .2s;
}
.ab-hub .rail a {
text-decoration:none;
font-family:var(--display);
font-size:15px;
font-weight:600;
line-height:1.25;
display:block;
color:var(--slate);
}
.ab-hub .rail li.on::before {
background:var(--sea);
border-color:var(--sea);
transform:scale(1.15)}
.ab-hub .rail li.on a {
color:var(--ink)}
.ab-hub .rail a:hover {
color:var(--sea)}
.ab-hub .stage {
padding-bottom:64px;
scroll-margin-top:104px}
.ab-hub .stage-head {
border-top:2px solid var(--ink);
padding-top:18px;
margin-bottom:26px}
.ab-hub .stage-num {
font-family:var(--mono);
font-size:12.5px;
letter-spacing:.1em;
text-transform:uppercase;
color:var(--sea);
display:block;
margin-bottom:10px;
}
.ab-hub .stage h2 {
font-family:var(--display);
font-weight:800;
letter-spacing:-.03em;
font-size:clamp(29px,4vw,44px);
line-height:1.05;
margin:0 0 12px;
max-width:22em;
}
.ab-hub .stage-sub {
margin:0;
color:var(--slate);
max-width:40em;
font-size:18px}
.ab-hub .arts {
list-style:none;
margin:0;
padding:0;
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:1px;
background:var(--rule);
border:1px solid var(--rule)}
@media (max-width:700px) {
.ab-hub .arts {
grid-template-columns:1fr}
}
.ab-hub .arts li {
background:var(--paper)}
.ab-hub .arts a {
display:block;
padding:24px 26px 26px;
text-decoration:none;
height:100%;
transition:background .15s;
}
.ab-hub .arts a:hover {
background:#fff}
.ab-hub .arts a:hover .a-t {
color:var(--sea-deep);
text-decoration:underline;
text-decoration-thickness:2px;
text-underline-offset:3px}
.ab-hub .a-k {
font-family:var(--mono);
font-size:11.5px;
letter-spacing:.09em;
text-transform:uppercase;
color:var(--slate);
display:block;
margin-bottom:12px}
.ab-hub .a-t {
font-family:var(--display);
font-weight:600;
font-size:21px;
line-height:1.2;
letter-spacing:-.02em;
display:block;
margin-bottom:10px}
.ab-hub .a-d {
margin:0;
font-size:17px;
color:var(--slate);
line-height:1.5}
.ab-hub .stage-all {
display:inline-flex;
align-items:center;
gap:12px;
margin-top:24px;
font-family:var(--display);
font-weight:600;
font-size:17.5px;
text-decoration:none;
border-bottom:2px solid var(--sea);
padding-bottom:5px;
min-height:44px;
}
.ab-hub .stage-all:hover {
color:var(--sea)}
.ab-hub .stage-all b {
font-weight:600;
color:var(--slate)}
.ab-hub .cta {
background:var(--ink);
color:var(--paper);
margin:16px 0 76px;
border-radius:4px;
overflow:hidden}
.ab-hub .cta-in {
padding:clamp(34px,5vw,54px);
display:grid;
grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
gap:40px;
align-items:center}
@media (max-width:820px) {
.ab-hub .cta-in {
grid-template-columns:1fr;
gap:26px}
}
.ab-hub .cta h2 {
font-family:var(--display);
font-weight:800;
letter-spacing:-.03em;
font-size:clamp(27px,3.6vw,38px);
line-height:1.08;
margin:0 0 14px}
.ab-hub .cta p {
margin:0;
color:#B9C9CD;
font-size:18px;
max-width:32em}
.ab-hub .btn {
display:inline-flex;
align-items:center;
justify-content:center;
gap:12px;
background:var(--amber);
color:#fff;
text-decoration:none;
font-family:var(--display);
font-weight:600;
font-size:18.5px;
padding:18px 30px;
border-radius:999px;
min-height:56px;
}
.ab-hub .btn:hover {
background:#C25B1D}
.ab-hub .cta small {
display:block;
margin-top:14px;
color:#8FA5AA;
font-size:15.5px;
font-family:var(--display)}
.ab-hub .pillars {
border-top:1px solid var(--rule);
padding:60px 0 4px}
.ab-hub .pillars h2 {
font-family:var(--display);
font-weight:800;
letter-spacing:-.025em;
font-size:clamp(25px,3.2vw,34px);
margin:0 0 8px}
.ab-hub .pillars .note {
color:var(--slate);
margin:0 0 30px;
max-width:44em;
font-size:17.5px}
.ab-hub .p-grid {
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:22px}
@media (max-width:900px) {
.ab-hub .p-grid {
grid-template-columns:1fr}
}
.ab-hub .p-card {
border:1px solid var(--rule);
background:var(--paper-2);
border-radius:4px;
padding:26px 26px 28px;
text-decoration:none;
display:block;
transition:border-color .15s,background .15s;
}
.ab-hub .p-card:hover {
border-color:var(--sea);
background:#fff}
.ab-hub .p-card .a-t {
font-size:22px;
margin-bottom:8px}
.ab-hub .p-card .a-d {
font-size:16.5px}
.ab-hub .eeat {
margin-top:66px;
border:1px solid var(--rule);
border-radius:4px;
padding:clamp(28px,4vw,42px);
background:var(--paper-2)}
.ab-hub .eeat h2 {
font-family:var(--display);
font-weight:800;
letter-spacing:-.025em;
font-size:clamp(23px,2.8vw,30px);
margin:0 0 14px}
.ab-hub .eeat p {
margin:0 0 22px;
max-width:46em;
color:#2A3F46}
.ab-hub .people {
display:flex;
flex-wrap:wrap;
gap:14px;
list-style:none;
margin:0;
padding:0}
.ab-hub .people li {
background:var(--paper);
border:1px solid var(--rule);
border-radius:999px;
padding:11px 20px;
font-family:var(--display);
font-size:15.5px;
font-weight:600}
.ab-hub .people li i {
font-style:normal;
color:var(--slate);
font-weight:400}
.ab-hub .recent {
padding:70px 0 20px}
.ab-hub .recent h2 {
font-family:var(--display);
font-weight:600;
letter-spacing:-.02em;
font-size:22px;
margin:0 0 20px;
color:var(--slate)}
.ab-hub .recent ul {
list-style:none;
margin:0;
padding:0;
border-top:1px solid var(--rule)}
.ab-hub .recent li {
border-bottom:1px solid var(--rule)}
.ab-hub .recent a {
display:flex;
gap:22px;
align-items:baseline;
padding:17px 4px;
text-decoration:none;
min-height:44px;
flex-wrap:wrap}
.ab-hub .recent a:hover {
background:var(--paper-2)}
.ab-hub .recent time {
font-family:var(--mono);
font-size:12.5px;
color:var(--slate);
flex:none;
width:96px;
letter-spacing:.04em}
.ab-hub .recent span {
font-family:var(--display);
font-weight:600;
font-size:18.5px;
letter-spacing:-.015em}
.ab-hub .recent a:hover span {
color:var(--sea-deep)}
.ab-hub .pager {
display:flex;
gap:8px;
align-items:center;
padding:34px 0 90px;
font-family:var(--display);
font-weight:600}
.ab-hub .pager a,.ab-hub .pager strong {
min-width:48px;
min-height:48px;
display:inline-flex;
align-items:center;
justify-content:center;
border:1px solid var(--rule);
border-radius:3px;
text-decoration:none;
font-size:16.5px;
padding:0 14px;
}
.ab-hub .pager strong {
background:var(--ink);
color:#fff;
border-color:var(--ink)}
.ab-hub .pager a:hover {
border-color:var(--sea);
color:var(--sea)}
@media (prefers-reduced-motion:reduce) {
html {
scroll-behavior:auto}
.ab-hub,.ab-hub * {
transition:none!important;
animation:none!important}
}
.ab-hub {
position:relative;
box-shadow:0 0 0 100vmax var(--paper);
clip-path:inset(0 -100vmax)}
.ab-hub .cta {
box-shadow:0 0 0 100vmax var(--ink);
clip-path:inset(0 -100vmax)}
:has(.ab-hub) {
overflow:visible!important}
/* ============================================================
IDENTITE AUDIBENE — surcharge de la palette et des polices.
Pour revenir a la maquette d'origine : supprimer ce bloc.
============================================================ */
.ab-hub {
--ink: #005C9E; /* bleu audibene : titres et texte */
--paper: #ffffff; /* fond principal blanc */
--paper-2: #D2EAF9; /* fond secondaire bleu pale */
--sea: #005C9E; /* bleu audibene : liens et accents */
--sea-deep: #00477a; /* declinaison foncee : survols */
--sea-pale: #D2EAF9; /* bleu pale des bandeaux */
--amber: #FFAE0D; /* orange audibene : CTA */
--slate: #4d7396; /* declinaison grisee : texte secondaire */
--rule: #97C8EC; /* filets et bordures */
--display: Poppins, system-ui, sans-serif;
--body: Poppins, system-ui, sans-serif;
}
/* CTA orange : texte bleu fonce pour le contraste */
.ab-hub .btn, .ab-hub .cta .btn { color: #005C9E !important; }
/* ============================================================
REFONTE VISUELLE v2 — rythme, rondeur audibene, contraste.
Le rail de gauche est supprime.
============================================================ */
/* Rail supprime (securite si un ancien contenu traine en cache) */
.ab-hub .rail { display: none !important; }
.ab-hub .body-grid { grid-template-columns: 1fr !important; padding-top: 56px !important; }
/* Contraste renforce du texte secondaire (lisibilite senior) */
.ab-hub { --slate: #3f6285; }
/* Rythme vertical : les etapes 2 et 4 sur bandeau bleu pale, bord a bord */
.ab-hub #e2, .ab-hub #e4 {
background: var(--paper-2);
box-shadow: 0 0 0 100vmax var(--paper-2);
clip-path: inset(0 -100vmax);
padding-top: 48px;
padding-bottom: 56px;
margin-bottom: 56px;
}
.ab-hub #e2 .stage-head, .ab-hub #e4 .stage-head { border-top-color: var(--sea); }
/* FAQ : coins arrondis */
.ab-hub .q-grid { border-radius: 16px; overflow: hidden; }
/* Cartes d'articles : rondeur et survol du site audibene */
.ab-hub .arts { gap: 16px !important; background: transparent !important; border: 0 !important; }
.ab-hub .arts li { background: transparent !important; }
.ab-hub .arts a {
background: #fff;
border: 1px solid var(--rule);
border-radius: 16px;
transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ab-hub .arts a:hover {
background: #fff;
transform: translateY(-3px);
box-shadow: 0 10px 26px rgba(0,92,158,.14);
border-color: transparent;
}
.ab-hub .arts a:hover .a-t { text-decoration: none; color: var(--sea); }
/* Guides de reference : les pages piliers, mises au-dessus du lot */
.ab-hub .p-card {
background: #fff !important;
border: 2px solid var(--rule) !important;
border-radius: 20px !important;
padding: 32px 30px !important;
transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ab-hub .p-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(0,92,158,.16); border-color: var(--sea) !important; }
.ab-hub .p-card .a-t { font-size: 24px; }
.ab-hub .pillars { border-top: 0; }
.ab-hub .pillars h2 { font-size: clamp(27px,3.4vw,38px); }
/* Bande de confiance : equipe + Trustpilot reunis visuellement */
.ab-hub .eeat { border-radius: 20px 20px 0 0; margin-bottom: 0; }
.ab-hub .tp { padding: 0 0 8px; }
.ab-hub .tp > div { background: var(--paper-2); border-radius: 0 0 20px 20px; padding: 26px 26px 30px; }
/* Boutons et fleches : micro-interactions coherentes */
.ab-hub .btn { transition: transform .15s ease, box-shadow .15s ease; }
.ab-hub .btn:hover { background: var(--amber); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(255,174,13,.45); }
.ab-hub .stage-all { border-radius: 2px; }
/* ============================================================
IMAGES — styles + masquage automatique tant que les URL
"A-REMPLACER-..." ne sont pas substituees par la mediatheque
============================================================ */
.ab-hub img[src^="A-REMPLACER"] { display: none !important; }
.ab-hub .hero { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 20px 44px; align-items: center; }
.ab-hub .hero > .lede { grid-column: 1; margin-bottom: 10px; }
.ab-hub .hero > .trust { grid-column: 1; }
.ab-hub .hero > .hero-img { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.ab-hub .hero:has(> img[src^="A-REMPLACER"]) { grid-template-columns: 1fr; }
.ab-hub .hero:has(> img[src^="A-REMPLACER"]) > .lede, .ab-hub .hero:has(> img[src^="A-REMPLACER"]) > .trust { grid-column: 1; }
.ab-hub .hero-img { width: 100%; height: auto; max-height: 380px; object-fit: cover; border-radius: 20px; box-shadow: 0 14px 34px rgba(0,92,158,.16); }
@media (max-width: 900px) { .ab-hub .hero { grid-template-columns: 1fr; gap: 20px; } }
.ab-hub .p-card .p-img { width: 100%; height: 170px; object-fit: cover; border-radius: 14px; margin: 0 0 18px; display: block; }
/* ============================================================
v3 — COMPATIBILITE WORDPRESS
Les descriptions passent de
a (kses expulse les
hors des liens) : on leur rend un comportement de bloc.
============================================================ */
.ab-hub .a-d { display: block; margin: 0; font-size: 17px; color: var(--slate); line-height: 1.5; }
.ab-hub .p-card .a-d { font-size: 16.5px; }
.ab-hub .tp-slot:empty { display: none; }
/* ============================================================
v3 — a-d passe de
en (WordPress sortait les
hors des liens, ce qui ejectait les descriptions des cartes)
============================================================ */
.ab-hub .a-k, .ab-hub .a-t, .ab-hub .a-d {
display: block !important;
float: none !important;
position: static !important;
width: auto !important;
max-width: none !important;
clear: none !important;
}
.ab-hub .arts a, .ab-hub .p-card { display: flex !important; flex-direction: column !important; align-items: stretch !important; }
.ab-hub .arts a .a-d, .ab-hub .p-card .a-d { margin: 0 !important; }
.ab-hub .p-card .p-img { order: -1; }
/* ============================================================
v4 — Alignement sur la maquette : couleurs de titres,
compacite des encarts, disposition du CTA
============================================================ */
/* Titres des encarts en bleu audibene (le theme imposait sa couleur) */
.ab-hub .a-t { color: var(--ink) !important; }
.ab-hub .arts a .a-t, .ab-hub .p-card .a-t { color: var(--ink) !important; }
.ab-hub .a-k { color: var(--slate) !important; }
.ab-hub .a-d { color: var(--slate) !important; }
.ab-hub .stage h2, .ab-hub .qs h2, .ab-hub .pillars h2, .ab-hub .eeat h2 { color: var(--ink) !important; }
.ab-hub .stage-num, .ab-hub .eyebrow { color: var(--sea) !important; }
/* Encarts : on reprend les mesures de la maquette (le theme gonflait
les interlignes et les marges internes) */
.ab-hub .arts a { padding: 20px 22px !important; }
.ab-hub .arts .a-k { font-size: 11.5px !important; line-height: 1.2 !important; margin: 0 0 10px !important; letter-spacing: .09em !important; }
.ab-hub .arts .a-t { font-size: 19px !important; line-height: 1.25 !important; margin: 0 0 8px !important; }
.ab-hub .arts .a-d { font-size: 16px !important; line-height: 1.45 !important; margin: 0 !important; }
.ab-hub .arts { gap: 14px !important; }
/* CTA : disposition de la maquette (titre a gauche, bouton a droite,
alignes sur la meme ligne) + bleu de la charte force */
.ab-hub .cta { background: var(--ink) !important; box-shadow: 0 0 0 100vmax var(--ink) !important; }
.ab-hub .cta-in { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr) !important; align-items: center !important; padding: 44px clamp(20px,4vw,54px) !important; gap: 32px !important; }
.ab-hub .cta h2 { color: #fff !important; font-size: clamp(26px,3.2vw,36px) !important; margin: 0 0 12px !important; }
.ab-hub .cta p { color: #cfe4f4 !important; margin: 0 !important; }
.ab-hub .cta small { color: #a8cbe6 !important; }
.ab-hub .cta .btn { color: #005C9E !important; background: var(--amber) !important; white-space: nowrap; }
@media (max-width: 820px) { .ab-hub .cta-in { grid-template-columns: 1fr !important; } }
/* ============================================================
v5 — Descriptions dans les cartes (filet de secours si le
script ne passe pas) + CTA adaptatif
============================================================ */
/* Les
ne sont plus des rangees flex : la description ne peut
plus se placer a cote du lien */
.ab-hub .arts li { display: block !important; height: 100%; }
.ab-hub .arts li > a { display: flex !important; flex-direction: column !important; height: 100% !important; }
/* Secours : si la description reste hors du lien, c est le
qui devient la carte, et le lien perd son propre cadre */
.ab-hub .arts li:has(> .a-d) {
background: #fff; border: 1px solid var(--rule); border-radius: 16px; padding: 20px 22px;
transition: transform .18s ease, box-shadow .18s ease;
}
.ab-hub .arts li:has(> .a-d):hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0,92,158,.14); }
.ab-hub .arts li:has(> .a-d) > a { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; }
.ab-hub .arts li:has(> .a-d) > a:hover { transform: none !important; box-shadow: none !important; }
.ab-hub .arts li > .a-d { display: block; margin: 8px 0 0 !important; }
.ab-hub .p-grid > .a-d { display: block; grid-column: 1 / -1; margin: -12px 0 0 !important; }
/* CTA : flex adaptatif, plus de colonnes rigides qui ecrasent le titre */
.ab-hub .cta-in {
display: flex !important;
flex-wrap: wrap !important;
align-items: center !important;
justify-content: space-between !important;
gap: 24px 40px !important;
padding: 40px clamp(20px,4vw,52px) !important;
}
.ab-hub .cta-in > div:first-child, .ab-hub .cta-in > .cta-txt { flex: 1 1 340px; min-width: 280px; }
.ab-hub .cta-in > div:last-child { flex: 0 1 auto; }
.ab-hub .cta h2 { font-size: clamp(24px,2.6vw,34px) !important; }
.ab-hub .cta .btn {
display: inline-flex !important;
align-self: center !important;
width: auto !important;
height: auto !important;
padding: 16px 30px !important;
min-height: 0 !important;
border-radius: 999px !important;
line-height: 1.2 !important;
}
/* ============================================================
v6 — CTA : bouton a droite du texte (comme la maquette)
et libelle du bouton en blanc
============================================================ */
@media (min-width: 768px) {
.ab-hub .cta-in { flex-wrap: nowrap !important; }
.ab-hub .cta-in > div:first-child { flex: 1 1 auto !important; min-width: 0 !important; }
.ab-hub .cta-in > div:last-child { flex: 0 0 auto !important; text-align: left; }
}
.ab-hub .cta .btn, .ab-hub .btn { color: #ffffff !important; }
/* ============================================================
v7 — CTA : regles independantes de la structure interne
(fonctionne que les enfants soient des div, des p ou autre)
============================================================ */
.ab-hub .cta-in { display: flex !important; align-items: center !important; gap: 24px 36px !important; }
.ab-hub .cta-in > * { min-width: 0 !important; margin: 0 !important; }
.ab-hub .cta-in > *:first-child { flex: 1 1 auto !important; }
.ab-hub .cta-in > *:last-child { flex: 0 0 auto !important; }
@media (min-width: 768px) { .ab-hub .cta-in { flex-wrap: nowrap !important; } }
@media (max-width: 767px) { .ab-hub .cta-in { flex-wrap: wrap !important; } }
/* Bouton : taille naturelle, libelle en blanc, jamais coupe */
.ab-hub .cta .btn, .ab-hub a.btn {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: auto !important;
max-width: none !important;
height: auto !important;
min-height: 0 !important;
padding: 16px 30px !important;
border-radius: 999px !important;
white-space: nowrap !important;
overflow: visible !important;
line-height: 1.2 !important;
font-size: 17px !important;
color: #ffffff !important;
background: #FFAE0D !important;
box-sizing: border-box !important;
}
.ab-hub .cta .btn *, .ab-hub a.btn * { color: #ffffff !important; }
/* Marqueur de verification : si ce liseret clair apparait sous le
bandeau, le CSS a jour est bien en ligne */
.ab-hub .cta { border-bottom: 3px solid #97C8EC !important; }
/* ============================================================
v8 — CTA : identification des blocs PAR LEUR CONTENU
(independant du type de balise et des largeurs du theme)
============================================================ */
.ab-hub .cta-in { display: flex !important; align-items: center !important; justify-content: flex-start !important; }
/* Tous les enfants : on annule les largeurs imposees par le theme */
.ab-hub .cta-in > * {
width: auto !important;
min-width: 0 !important;
max-width: none !important;
flex-basis: auto !important;
margin: 0 !important;
padding: 0 !important;
}
/* Le bloc qui contient le bouton : taille naturelle, cale a droite */
.ab-hub .cta-in > *:has(.btn) { flex: 0 0 auto !important; margin-left: auto !important; }
/* Les autres blocs (titre + accroche) : prennent la place restante */
.ab-hub .cta-in > *:not(:has(.btn)) { flex: 1 1 auto !important; }
/* Le titre ne doit plus etre bride par une largeur en em */
.ab-hub .cta h2 { max-width: none !important; }
.ab-hub .cta p { max-width: 46em !important; }
/* ============================================================
v9 — Bloc d'intro centre (accroche + ligne de confiance)
============================================================ */
.ab-hub .hero { text-align: center; justify-items: center; }
.ab-hub .hero .lede {
max-width: 30em !important;
margin-left: auto !important;
margin-right: auto !important;
text-align: center !important;
}
.ab-hub .hero .trust {
justify-content: center !important;
text-align: center !important;
max-width: 44em !important;
margin-left: auto !important;
margin-right: auto !important;
}
/* Quand l'image d'intro est active, on repasse le texte a gauche
pour qu'il fasse face au visuel */
.ab-hub .hero:has(> img.hero-img:not([src^="A-REMPLACER"])) { text-align: left; }
.ab-hub .hero:has(> img.hero-img:not([src^="A-REMPLACER"])) .lede,
.ab-hub .hero:has(> img.hero-img:not([src^="A-REMPLACER"])) .trust {
text-align: left !important;
justify-content: flex-start !important;
margin-left: 0 !important;
}
/* ============================================================
v10 — CTA : mise en page a plat (le theme conserve ses propres
colonnes sur les enfants ; on ignore la structure et on cible
directement les elements de texte et le bouton)
============================================================ */
.ab-hub .cta-in,
.ab-hub .cta-in > *,
.ab-hub .cta-in > * > * {
width: auto !important;
max-width: none !important;
min-width: 0 !important;
flex-basis: auto !important;
float: none !important;
display: block;
}
/* Le conteneur devient une grille : texte a gauche, bouton a droite */
.ab-hub .cta-in {
display: grid !important;
grid-template-columns: minmax(0, 1fr) auto !important;
align-items: center !important;
gap: 10px 40px !important;
padding: 40px clamp(20px,4vw,52px) !important;
}
/* Le titre et l accroche occupent la colonne de gauche */
.ab-hub .cta-in h2 { grid-column: 1 !important; grid-row: 1 !important; margin: 0 0 8px !important; }
.ab-hub .cta-in p { grid-column: 1 !important; grid-row: 2 !important; margin: 0 !important; }
/* Le bloc du bouton occupe la colonne de droite, sur les deux rangees */
.ab-hub .cta-in > *:has(.btn) { grid-column: 2 !important; grid-row: 1 / span 2 !important; justify-self: end !important; text-align: right !important; }
/* Si le bouton est un enfant direct (structure a plat) */
.ab-hub .cta-in > .btn { grid-column: 2 !important; grid-row: 1 / span 2 !important; justify-self: end !important; }
.ab-hub .cta-in small { display: block !important; margin-top: 12px !important; }
@media (max-width: 760px) {
.ab-hub .cta-in { grid-template-columns: 1fr !important; }
.ab-hub .cta-in > *:has(.btn), .ab-hub .cta-in > .btn { grid-column: 1 !important; grid-row: auto !important; justify-self: start !important; text-align: left !important; }
.ab-hub .cta-in h2, .ab-hub .cta-in p { grid-row: auto !important; }
}
/* ============================================================
v11 — TYPOGRAPHIE DE MARQUE : Museo Sans / Museo Sans Rounded
On reutilise la police deja chargee (et licenciee) par le theme :
aucun fichier a televerser. La pile couvre les differentes
facons dont un theme peut avoir declare la famille.
============================================================ */
.ab-hub {
--display: "Museo Sans Rounded", "MuseoSansRounded", "MuseoSansRounded700",
"Museo Sans", "MuseoSans", "MuseoSans_700", Poppins, system-ui, sans-serif;
--body: "Museo Sans", "MuseoSans", "MuseoSans_500", "Museo Sans Rounded",
"MuseoSansRounded", Poppins, system-ui, sans-serif;
--mono: "Museo Sans", "MuseoSans", ui-monospace, monospace;
}
/* Museo utilise une echelle de graisses decalee (500 = normal, 700 = gras,
900 = extra) : on recale les titres et le corps de texte */
.ab-hub { font-weight: 500; }
.ab-hub .stage h2, .ab-hub .qs h2, .ab-hub .pillars h2, .ab-hub .eeat h2, .ab-hub .cta h2 { font-weight: 700 !important; }
.ab-hub .a-t, .ab-hub .btn, .ab-hub .stage-all, .ab-hub .people li, .ab-hub .recent span { font-weight: 700 !important; }
.ab-hub .a-k, .ab-hub .eyebrow, .ab-hub .stage-num { font-weight: 500 !important; }
.ab-hub .trust { font-weight: 500 !important; }
.ab-hub .trust b { font-weight: 700 !important; }
/* ============================================================
v12 — LARGEUR : le hub sort de la colonne etroite de la section
Image + Text et occupe toute la largeur ; le contenu est ensuite
recentre a 1180 px par .wrap (comme dans la maquette)
============================================================ */
.ab-hub {
width: 100vw !important;
max-width: 100vw !important;
margin-left: calc(50% - 50vw) !important;
margin-right: calc(50% - 50vw) !important;
box-sizing: border-box !important;
}
/* Les bandeaux pleine largeur n ont plus besoin de deborder : ils
suivent desormais la largeur du hub */
.ab-hub, .ab-hub .cta, .ab-hub #e2, .ab-hub #e4 { clip-path: none !important; }
.ab-hub { box-shadow: none !important; }
.ab-hub .cta { box-shadow: none !important; border-radius: 0 !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; width: 100vw !important; max-width: 100vw !important; }
.ab-hub #e2, .ab-hub #e4 { box-shadow: none !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; width: 100vw !important; max-width: 100vw !important; padding-left: 0 !important; padding-right: 0 !important; }
/* Le contenu interne reste centre et lisible */
.ab-hub .wrap, .ab-hub .cta-in, .ab-hub #e2 > *, .ab-hub #e4 > * {
max-width: 1180px !important;
margin-left: auto !important;
margin-right: auto !important;
}
.ab-hub .wrap { padding-left: clamp(20px,5vw,64px) !important; padding-right: clamp(20px,5vw,64px) !important; }
.ab-hub #e2, .ab-hub #e4 { padding-top: 48px !important; padding-bottom: 56px !important; }
.ab-hub #e2 > *, .ab-hub #e4 > * { padding-left: clamp(20px,5vw,64px) !important; padding-right: clamp(20px,5vw,64px) !important; }
.ab-hub .qs-in { max-width: 1180px !important; margin: 0 auto !important; padding-left: clamp(20px,5vw,64px) !important; padding-right: clamp(20px,5vw,64px) !important; }
/* Pas de defilement horizontal parasite */
html:has(.ab-hub), body:has(.ab-hub) { overflow-x: clip !important; }
/* ============================================================
v13 — CTA : structure normalisee par le script (.cta-txt /
.cta-act). Plus aucune hypothese sur le HTML du theme.
============================================================ */
.ab-hub .cta-in {
display: flex !important;
flex-direction: row !important;
align-items: center !important;
justify-content: space-between !important;
gap: 32px !important;
flex-wrap: nowrap !important;
}
.ab-hub .cta-in > .cta-txt {
flex: 1 1 auto !important;
min-width: 0 !important;
width: auto !important;
max-width: none !important;
text-align: left !important;
}
.ab-hub .cta-in > .cta-act {
flex: 0 0 auto !important;
width: auto !important;
max-width: none !important;
text-align: left !important;
}
.ab-hub .cta-txt h2 { margin: 0 0 8px !important; max-width: none !important; }
.ab-hub .cta-txt p { margin: 0 !important; max-width: 52em !important; }
.ab-hub .cta-act .btn { margin: 0 !important; }
.ab-hub .cta-act small { display: block !important; margin: 12px 0 0 !important; }
@media (max-width: 760px) {
.ab-hub .cta-in { flex-direction: column !important; align-items: flex-start !important; gap: 22px !important; }
}
/* ============================================================
v14 — INTRODUCTION : bloc centre, premier paragraphe en avant,
suivants en texte courant (la ligne de confiance est retiree)
============================================================ */
.ab-hub .hero { text-align: center !important; padding: 44px 0 52px !important; }
.ab-hub .hero .lede {
max-width: 46em !important;
margin: 0 auto 18px !important;
text-align: center !important;
}
.ab-hub .hero .lede:first-of-type {
font-size: clamp(20px,2.2vw,25px) !important;
line-height: 1.45 !important;
font-weight: 700 !important;
color: var(--ink) !important;
max-width: 34em !important;
margin-bottom: 24px !important;
}
.ab-hub .hero .lede-2 {
font-size: 17.5px !important;
line-height: 1.65 !important;
font-weight: 500 !important;
color: var(--slate) !important;
}
.ab-hub .hero .lede-2:last-of-type { margin-bottom: 0 !important; }
/* ============================================================
v15 — INTRO : le BLOC lui-meme est centre sur la page
(il restait cale dans la colonne de gauche de la section)
============================================================ */
.ab-hub .hero {
display: block !important;
width: 100% !important;
max-width: 1180px !important;
margin-left: auto !important;
margin-right: auto !important;
padding-left: clamp(20px,5vw,64px) !important;
padding-right: clamp(20px,5vw,64px) !important;
box-sizing: border-box !important;
grid-template-columns: none !important;
}
.ab-hub .hero > * {
float: none !important;
width: auto !important;
grid-column: auto !important;
}
.ab-hub .hero .lede, .ab-hub .hero .lede-2 {
margin-left: auto !important;
margin-right: auto !important;
}
/* L image d intro, si elle est activee, se centre aussi sous le texte */
.ab-hub .hero > .hero-img { display: block !important; margin: 28px auto 0 !important; max-width: 880px !important; }
/* Correctif v15 : garder l emplacement d image masque tant qu il
n a pas recu une vraie URL de la mediatheque */
.ab-hub img[src^="A-REMPLACER"],
.ab-hub .hero > img[src^="A-REMPLACER"] { display: none !important; }
/* ============================================================
v16 — CONTENU EN DEUX SECTIONS (une section natif "Regions
list" est inseree entre l etape 4 et l etape 5)
============================================================ */
.ab-hub-2 .body-grid { padding-top: 24px !important; }
.ab-hub-2 { margin-top: 0 !important; }
.ab-hub:not(.ab-hub-2) .body-grid { padding-bottom: 0 !important; }
/* Le bandeau bleu de l etape 4 doit fermer proprement la 1re section */
.ab-hub:not(.ab-hub-2) #e4 { margin-bottom: 0 !important; }
/* ============================================================
PATCH ANTI-THEME v2 — _CTRL Custom Code, position Head,
dans un NOUVEAU script (Add Script), APRES le CSS du hub.
============================================================ */
/* 1. Sortir de la colonne etroite de la section Image + Text */
:has(.ab-hub):not(html):not(body) { max-width: none !important; overflow: visible !important; }
html:has(.ab-hub), body:has(.ab-hub) { overflow-x: clip !important; }
[class]:has(> .ab-hub) {
width: 100% !important;
flex: 0 0 100% !important;
padding-left: 0 !important;
padding-right: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
}
/* 2. Neutraliser TOUTES les pastilles/coches injectees par le
theme sur les liens et listes de la page hub */
.ab-hub a::before,
.ab-hub li::before, .ab-hub li::after,
.ab-hub .p-card::before, .ab-hub .p-card::after {
content: none !important;
display: none !important;
}
.ab-hub ul li, .ab-hub ol li { list-style: none !important; }
.ab-hub a { box-shadow: none !important; }
.ab-hub .p-card, .ab-hub .q-grid a, .ab-hub .recent a { text-decoration: none !important; }
/* 3. Re-affirmer NOS puces du rail de parcours (legitimes),
ecrasees par la regle 2 */
.ab-hub .rail ol::before {
content:"" !important;
position:absolute !important;
left:7px !important;
top:10px !important;
bottom:12px !important;
width:2px !important;
background:var(--rule) !important;
}
.ab-hub .rail li::before {
content:"" !important;
position:absolute !important;
left:0 !important;
top:8px !important;
width:16px !important;
height:16px !important;
border-radius:50% !important;
background:var(--paper) !important;
border:2px solid var(--rule) !important;
transition:background .2s,border-color .2s,transform .2s !important;
}
.ab-hub .rail li.on::before {
background:var(--sea) !important;
border-color:var(--sea) !important;
transform:scale(1.15)}
/* ============================================================
v3 — RAIL DE PARCOURS : lisibilite et etat actif
============================================================ */
/* Le rail devient une carte blanche qui passe DEVANT les
bandeaux pleine largeur (CTA sombre) en restant lisible */
.ab-hub .rail {
z-index: 20 !important;
background: #fff !important;
padding: 16px 16px 16px 18px !important;
border: 1px solid var(--rule) !important;
border-radius: 14px !important;
box-shadow: 0 8px 22px rgba(0,92,158,.10) !important;
top: 110px !important; /* degage la barre de navigation sticky du site */
}
/* Etat actif beaucoup plus visible : pastille pleine + texte gras */
.ab-hub .rail li.on::before {
background: var(--sea) !important;
border-color: var(--sea) !important;
transform: scale(1.25) !important;
}
.ab-hub .rail li.on a {
color: var(--ink) !important;
font-weight: 700 !important;
}
.ab-hub .rail li a { transition: color .2s, font-weight .2s; }
/* ============================================================
v4 — BAS DE PAGE : grille des guides + widget Trustpilot
============================================================ */
/* La grille des 3 guides : on la verrouille contre le theme,
y compris si WordPress enveloppe les cartes dans des */
.ab-hub .p-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 22px !important; align-items: stretch !important; }
.ab-hub .p-grid > p { display: contents !important; }
.ab-hub .p-grid > * { margin: 0 !important; }
.ab-hub .p-card { display: block !important; height: 100% !important; }
.ab-hub .p-card .a-k, .ab-hub .p-card .a-t, .ab-hub .p-card .a-d { background: none !important; border: 0 !important; padding: 0 !important; }
@media (max-width: 900px) { .ab-hub .p-grid { grid-template-columns: 1fr !important; } }
/* Emplacement du widget Trustpilot */
.ab-hub .tp { padding: 56px 0 4px; }
/* ============================================================
v5 — ESPACE VIDE entre le hero et le contenu : la section
Image + Text genere des conteneurs d'image vides ; on les masque
============================================================ */
[class]:has(.ab-hub) > div:empty,
[class]:has(.ab-hub) > figure:empty,
[class]:has(.ab-hub) > p:empty,
[class]:has(.ab-hub) > span:empty { display: none !important; height: 0 !important; }
[class]:has(.ab-hub) > figure, [class]:has(.ab-hub) > .image, [class]:has(.ab-hub) > [class*="image"]:not(:has(img)) { min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
.ab-hub .hero { padding-top: 0 !important; }
(function () {
// Le theme peut imbriquer le CTA de plusieurs facons : on reconstruit
// une structure canonique (texte / action) pour que le CSS soit fiable.
var box = document.querySelector('.ab-hub .cta-in');
if (!box || box.dataset.normalized) return;
var h2 = box.querySelector('h2');
var lede = box.querySelector('p');
var btn = box.querySelector('.btn') || box.querySelector('a[href]');
var small = box.querySelector('small');
if (!h2 || !btn) return;
var txt = document.createElement('div'); txt.className = 'cta-txt';
var act = document.createElement('div'); act.className = 'cta-act';
txt.appendChild(h2);
if (lede) txt.appendChild(lede);
act.appendChild(btn);
if (small) act.appendChild(small);
box.textContent = '';
box.appendChild(txt);
box.appendChild(act);
box.dataset.normalized = '1';
})();
(function () {
// Le theme sort les descriptions hors des liens : on les remet dedans.
var stray = document.querySelectorAll('.ab-hub .a-d, .ab-hub p.a-d');
Array.prototype.forEach.call(stray, function (d) {
var prev = d.previousElementSibling;
// remonter jusqu au lien de la carte qui precede
while (prev && prev.tagName !== 'A') prev = prev.previousElementSibling;
if (!prev && d.parentNode) {
var pp = d.parentNode.previousElementSibling;
if (pp && pp.tagName === 'A') prev = pp;
}
if (prev && prev.querySelector('.a-t')) prev.appendChild(d);
});
})();
(function () {
// Widget Trustpilot : construit en JS (le champ Content filtre les attributs data-*)
var slot = document.getElementById('tp-slot');
if (!slot) return;
var w = document.createElement('div');
w.className = 'trustpilot-widget';
var attrs = {
'data-locale': 'fr-FR',
'data-template-id': '54ad5defc6454f065c28af8b',
'data-businessunit-id': '5878d9cc0000ff00059ab8b5',
'data-style-height': '240px',
'data-style-width': '100%',
'data-token': '48e3fece-3e2b-42c8-a5e3-8d8308fd69ec',
'data-stars': '5',
'data-review-languages': 'fr'
};
for (var k in attrs) w.setAttribute(k, attrs[k]);
var a = document.createElement('a');
a.href = 'https://fr.trustpilot.com/review/www.audibene.fr';
a.target = '_blank'; a.rel = 'noopener'; a.textContent = 'Voir nos avis sur Trustpilot';
w.appendChild(a);
slot.appendChild(w);
// Le bootstrap Trustpilot se charge en asynchrone : on attend qu il soit
// disponible avant d initialiser le widget (sinon il reste au lien de secours)
var tries = 0;
var timer = setInterval(function () {
if (window.Trustpilot && window.Trustpilot.loadFromElement) {
window.Trustpilot.loadFromElement(w, true);
clearInterval(timer);
} else if (++tries > 40) {
clearInterval(timer); // au-dela de 20 s, on garde le lien de secours
}
}, 500);
})();
Tout savoir sur l'audition et les appareils auditifs
- Homepage
-
- Tout savoir sur l’audition et les appareils auditifs
Entendre moins bien, ça arrive à des millions de Français : on fait répéter, on monte le son de la télévision, on perd le fil des conversations au restaurant. Voici tout ce qu’il faut savoir pour comprendre une perte auditive, choisir un appareil et bien vivre appareillé.
Nos guides répondent aux questions que l’on nous pose vraiment : à quoi ressemblent les premiers signes d’une baisse d’audition, ce que mesure un test auditif, combien coûte un appareil auditif en 2026, comment fonctionne le remboursement par la Sécurité sociale, la mutuelle et le dispositif 100 % Santé, quel format choisir entre intra-auriculaire et contour d’oreille, et comment entretenir ses appareils au quotidien.

Accès direct
Les questions qu’on nous pose le plus souvent
Testez votre audition en 3 minutes
Un test en ligne gratuit, sans inscription, avec un casque ou des écouteurs.
Étape 3 sur 5
Choisir son appareil
Formats, autonomie, connexion au téléphone et à la télé, comparatifs de marques.
- FormatsIntra-auriculaire ou contour d’oreille ?Discrétion, puissance, confort : à qui convient chaque format.
- BatterieRechargeable : le vrai coût sur quatre ansAutonomie réelle, remplacement de la batterie, comparaison avec les piles.
- ConnectivitéBluetooth : téléphone, télévision, visioCe qui fonctionne vraiment, et avec quels appareils.
- MarquesPhonak, Oticon, Signia, Starkey comparésLes points forts de chaque fabricant, gamme par gamme.
Piloter ses appareils depuis son smartphone →
Vérifiez la disponibilité d’un audioprothésiste partenaire audibene pour un essai gratuit dans votre région !
Nos trois guides de référence
Les pages les plus complètes du site, mises à jour en continu.
Qui écrit et qui relit ces guides
Chaque guide est rédigé par notre équipe éditoriale puis relu par nos experts de l’audition. Les sources sont citées et les montants de remboursement vérifiés à chaque évolution réglementaire.
- Laurence Tessier — Experte audition audibene
- Pierre Garidacci — Expert audition audibene
- Martin Ringenbach — Expert audition audibene
- Notre charte éditoriale →
Ils nous ont fait confiance !