/*body{font-family:open sans, arial;}*/
  /* Baromètre 2026 : styles isolés sous #barometre-epargne-2026. POLICES : celles du site s'appliquent automatiquement (voir les variables --f-display / --f-text, commentées, dans la première règle). */
  #barometre-epargne-2026 {
    --ink: #13264B;
    --ink-deep: #0C1D3D;
    --coral: #EF6446;
    --coral-ink: #BA3A21;
    --coral-soft: #F6A48E;
    --blush: #FDEBE5;
    --blue: #2E64B3;
    --blue-soft: #C9D9F1;
    --mist: #F2F4F8;
    --line: #DDE2EB;
    --muted: #56617A;
    --paper: #FFFFFF;
    --rest: #D3D9E4;
    /* POLICES — désactivées : la police du site s'applique automatiquement (héritage). Pour réactiver les polices du baromètre, décommenter les deux lignes ci-dessous ET le <link> Google Fonts placé juste avant ce <style>. --f-display:"Outfit","Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif; --f-text:"Atkinson Hyperlegible","Segoe UI",system-ui,-apple-system,sans-serif; */
    display: block;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--f-text);
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  #barometre-epargne-2026 {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;
    max-width: none;
    float: none;
    clear: both;
    text-align: left;
    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-shadow: none
  }

  #barometre-epargne-2026 :where(div, section, nav, figure, figcaption, h1, h2, h3, h4, p, ul, ol, li, dl, dt, dd, a, button, span, strong, em, b, i, small, sup, time, blockquote, table, caption, thead, tbody, tr, th, td, details, summary) {
    all: revert
  }

  #barometre-epargne-2026 :where(h1, h2, h3, h4, p, ul, ol, li, a, blockquote, figure, figcaption, summary, table, th, td, dt, dd, button, strong, em)::before,
  #barometre-epargne-2026 :where(h1, h2, h3, h4, p, ul, ol, li, a, blockquote, figure, figcaption, summary, table, th, td, dt, dd, button, strong, em)::after {
    content: none
  }

  #barometre-epargne-2026 *,
  #barometre-epargne-2026 *::before,
  #barometre-epargne-2026 *::after {
    box-sizing: border-box
  }

  #barometre-epargne-2026 :where(svg) {
    max-width: 100%;
    min-width: 0;
    max-height: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    float: none;
    vertical-align: baseline;
    background: none;
    box-shadow: none;
    filter: none;
    opacity: 1;
    transform: none;
    overflow: visible
  }

  #barometre-epargne-2026 :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd) {
    margin: 0
  }

  #barometre-epargne-2026 :where(ul, ol) {
    padding: 0;
    list-style: none
  }

  #barometre-epargne-2026 :where(button) {
    font: inherit;
    color: inherit;
    letter-spacing: inherit
  }

  #barometre-epargne-2026 :where(a) {
    color: var(--coral-ink);
    text-underline-offset: .15em
  }

  #barometre-epargne-2026 :focus-visible {
    outline: 3px solid var(--coral);
    outline-offset: 2px;
    border-radius: 4px
  }

  #barometre-epargne-2026 [hidden] {
    display: none !important
  }

  #barometre-epargne-2026 .apb-wrapc {
    display: contents
  }

  #barometre-epargne-2026 br {
    display: none
  }

  #barometre-epargne-2026 p:empty {
    display: none
  }

  #barometre-epargne-2026 .apb-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap
  }

  #barometre-epargne-2026 .apb-wrap {
    max-width: 1160px;
    margin: 0 auto;
    padding: 0 clamp(18px, 4vw, 40px)
  }

  #barometre-epargne-2026 h2 {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: clamp(1.5em, 2.8vw, 2.1em);
    line-height: 1.15;
    letter-spacing: -.015em;
    max-width: 34ch
  }

  #barometre-epargne-2026 h3 {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.28em;
    line-height: 1.25;
    margin-bottom: .55em
  }

  #barometre-epargne-2026 .apb-lede {
    font-size: 1.16em;
    line-height: 1.55;
    max-width: 68ch;
    margin-top: .9em
  }

  #barometre-epargne-2026 .apb-block__text p {
    max-width: 60ch
  }

  #barometre-epargne-2026 .apb-block__text p+p {
    margin-top: .75em
  }

  #barometre-epargne-2026 .apb-note {
    font-size: .8em;
    color: var(--muted);
    margin-top: .7em
  }

  #barometre-epargne-2026 .apb-hero {
    background: var(--ink-deep);
    color: #fff;
    padding: 3.4em 0 3em
  }

  #barometre-epargne-2026 .apb-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 2.5em 4em;
    align-items: center
  }

  #barometre-epargne-2026 .apb-hero__kicker {
    font-size: .95em;
    color: #F9BBA9;
    margin-bottom: 1.1em
  }

  #barometre-epargne-2026 .apb-hero h1 {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: clamp(2.05em, 4.9vw, 3.45em);
    line-height: 1.04;
    letter-spacing: -.025em;
    max-width: 15ch
  }

  #barometre-epargne-2026 .apb-hero__lede {
    margin-top: 1.15em;
    font-size: 1.08em;
    color: #D3DAE8;
    max-width: 54ch
  }

  #barometre-epargne-2026 .apb-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 1em 0;
    margin-top: 2em;
    padding-top: 1.1em;
    border-top: 1px solid rgba(255, 255, 255, .18)
  }

  #barometre-epargne-2026 .apb-facts>li {
    padding-right: 1.4em;
    margin-right: 1.4em;
    border-right: 1px solid rgba(255, 255, 255, .18)
  }

  #barometre-epargne-2026 .apb-facts>li:last-child {
    border-right: 0;
    margin-right: 0;
    padding-right: 0
  }

  #barometre-epargne-2026 .apb-facts__k {
    display: block;
    font-size: .8em;
    color: #AEB9CF
  }

  #barometre-epargne-2026 .apb-facts__v {
    display: block;
    font-family: var(--f-display);
    font-size: 1.2em;
    font-weight: 500
  }

  #barometre-epargne-2026 .apb-dial {
    width: 100%;
    max-width: 470px;
    justify-self: center;
    text-align: center
  }

  #barometre-epargne-2026 .apb-dial__svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible
  }

  #barometre-epargne-2026 .apb-dial__track {
    fill: none;
    stroke: rgba(255, 255, 255, .11);
    stroke-width: 22
  }

  #barometre-epargne-2026 .apb-dial__prog {
    fill: none;
    stroke: var(--coral);
    stroke-width: 22;
    transition: stroke-dashoffset 1.2s cubic-bezier(.3, 1, .4, 1)
  }

  #barometre-epargne-2026 .apb-dial__ticks line {
    stroke: rgba(255, 255, 255, .35);
    stroke-width: 1.4
  }

  #barometre-epargne-2026 .apb-dial__ticks line.is-major {
    stroke: rgba(255, 255, 255, .8);
    stroke-width: 2
  }

  #barometre-epargne-2026 .apb-dial__ticks text {
    fill: #9FACC5;
    font-size: 10px;
    font-family: var(--f-text);
    text-anchor: middle
  }

  #barometre-epargne-2026 .apb-dial__needle {
    transform-box: view-box;
    transform-origin: 160px 164px;
    transform: rotate(-90deg);
    transition: transform 1.25s cubic-bezier(.34, 1.32, .5, 1)
  }

  #barometre-epargne-2026 .apb-dial__needle line {
    stroke: #fff;
    stroke-width: 4;
    stroke-linecap: round
  }

  #barometre-epargne-2026 .apb-dial__needle circle {
    fill: var(--coral);
    stroke: #fff;
    stroke-width: 3
  }

  #barometre-epargne-2026 .apb-dial__value {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: clamp(3em, 7vw, 4.3em);
    line-height: 1;
    margin-top: .12em;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em
  }

  #barometre-epargne-2026 .apb-dial__list li {
    color: #E1E7F1;
    max-width: 36ch;
    margin: .7em auto 0;
    min-height: 3.3em
  }

  #barometre-epargne-2026 .apb-dial__list li strong {
    color: #fff
  }

  #barometre-epargne-2026.apb--js .apb-dial__list li strong {
    display: none
  }

  #barometre-epargne-2026 .apb-dial__tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45em;
    margin-top: 1.1em
  }

  #barometre-epargne-2026 .apb-dial__tab {
    appearance: none;
    cursor: pointer;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .3);
    color: #fff;
    border-radius: 999px;
    padding: .42em .95em;
    font-size: .88em;
    transition: background .2s, border-color .2s, color .2s
  }

  #barometre-epargne-2026 .apb-dial__tab:hover {
    border-color: #fff
  }

  #barometre-epargne-2026 .apb-dial__tab[aria-pressed="true"] {
    background: var(--coral);
    border-color: var(--coral);
    color: var(--ink-deep);
    font-weight: 700
  }

  #barometre-epargne-2026:not(.apb--js) .apb-dial__tabs,
  #barometre-epargne-2026:not(.apb--js) .apb-dial__value {
    display: none
  }

  #barometre-epargne-2026 .apb-toc {
    position: sticky;
    top: var(--apb-sticky-top, 0px);
    z-index: 40;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--line);
    transition: top .2s ease, box-shadow .2s ease
  }

  @supports ((-webkit-backdrop-filter:blur(8px)) or (backdrop-filter:blur(8px))) {
    #barometre-epargne-2026 .apb-toc {
      background: rgba(255, 255, 255, .95);
      -webkit-backdrop-filter: saturate(1.2) blur(10px);
      backdrop-filter: saturate(1.2) blur(10px)
    }
  }

  #barometre-epargne-2026 .apb-toc.is-stuck {
    box-shadow: 0 8px 20px -12px rgba(12, 29, 61, .28)
  }

  #barometre-epargne-2026 .apb-toc__inner {
    position: relative;
    display: flex;
    align-items: center;
    padding-top: .55em;
    padding-bottom: .55em
  }

  #barometre-epargne-2026 .apb-toc__toggle {
    display: none
  }

  #barometre-epargne-2026 .apb-toc__list {
    display: flex;
    gap: .25em;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch
  }

  #barometre-epargne-2026 .apb-toc__list::-webkit-scrollbar {
    display: none
  }

  #barometre-epargne-2026 .apb-toc__list.fade-r {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent)
  }

  #barometre-epargne-2026 .apb-toc__list.fade-l {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px);
    mask-image: linear-gradient(90deg, transparent, #000 40px)
  }

  #barometre-epargne-2026 .apb-toc__list.fade-l.fade-r {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent)
  }

  #barometre-epargne-2026 .apb-toc__list li {
    flex: 0 0 auto
  }

  #barometre-epargne-2026 .apb-toc a {
    display: inline-block;
    white-space: nowrap;
    padding: .4em .7em;
    border-radius: 999px;
    background: var(--mist);
    color: var(--ink);
    text-decoration: none;
    font-size: .84em;
    transition: background .15s, color .15s
  }

  #barometre-epargne-2026 .apb-toc a:hover {
    background: var(--blush)
  }

  #barometre-epargne-2026 .apb-toc a[aria-current="location"] {
    background: var(--ink);
    color: #fff
  }

  #barometre-epargne-2026 .apb-toc__ph {
    height: 0
  }

  #barometre-epargne-2026 .apb-volet {
    background: var(--blush);
    padding: 1.5em 0
  }

  #barometre-epargne-2026 .apb-volet .apb-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .2em 1.1em
  }

  #barometre-epargne-2026 .apb-volet__n {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.45em;
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-sec {
    padding: 4.2em 0;
    scroll-margin-top: 90px
  }

  #barometre-epargne-2026 h2[tabindex="-1"]:focus:not(:focus-visible) {
    outline: none
  }

  #barometre-epargne-2026 .apb-sec+.apb-sec {
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-block {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 2em 3.6em;
    margin-top: 3.2em;
    align-items: start
  }

  #barometre-epargne-2026 .apb-block+.apb-block {
    padding-top: 3.2em;
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-fig {
    min-width: 0
  }

  #barometre-epargne-2026 .apb-fig figcaption {
    margin-top: 1.2em;
    font-size: .8em;
    color: var(--muted);
    line-height: 1.45
  }

  #barometre-epargne-2026 .apb-delta {
    display: inline-block;
	width: fit-content;
	margin-top:6px;
    max-width: 100%;
    font-size: max(.78em, 11.5px);
    font-weight: 700;
    line-height: 1.35;
    padding: .12em .5em;
    border-radius: 4px;
    white-space: normal;
    background: var(--blush);
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-delta--down {
    background: #E3ECF8;
    color: #1F4D92
  }

  #barometre-epargne-2026 .apb-delta--flat {
    background: var(--mist);
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-bars {
    display: grid;
    gap: .95em
  }

  #barometre-epargne-2026 .apb-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "l v" "t t";
    gap: .3em .8em;
    align-items: end;
    transition: opacity .2s
  }

  #barometre-epargne-2026 .apb-bars:hover>.apb-bar:not(:hover) {
    opacity: .5
  }

  #barometre-epargne-2026 .apb-bar__label {
    grid-area: l;
    font-size: .97em;
    line-height: 1.35
  }

  #barometre-epargne-2026 .apb-bar__val {
    grid-area: v;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.35em;
    line-height: 1;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-bar__track {
    grid-area: t;
    display: block;
    height: 14px;
    border-radius: 7px;
    background: var(--mist);
    overflow: hidden
  }

  #barometre-epargne-2026 .apb-bar__fill {
    position: relative;
    display: block;
    height: 100%;
    width: calc(var(--v) * 1%);
    border-radius: inherit;
    background: var(--coral);
    transform-origin: left center;
    transition: transform 1s cubic-bezier(.2, .7, .2, 1)
  }

  #barometre-epargne-2026 .apb-bar--ink .apb-bar__fill {
    background: var(--ink)
  }

  #barometre-epargne-2026 .apb-bar__note {
    grid-column: 1 / -1;
    font-size: .82em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-bar__d,
  #barometre-epargne-2026 .apb-group__d {
    grid-column: 1 / -1;
    justify-self: start
  }

  #barometre-epargne-2026 .apb-bar__gain {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: calc(var(--d) / var(--v) * 100%);
    background: var(--blue);
    opacity: 0;
    transition: opacity .35s
  }

  #barometre-epargne-2026 .apb-bars--deltas.show-delta .apb-bar__gain,
  #barometre-epargne-2026:not(.apb--js) .apb-bar__gain {
    opacity: 1
  }

  #barometre-epargne-2026.apb--js .apb-bars--deltas:not(.show-delta) .apb-delta {
    visibility: hidden
  }

  #barometre-epargne-2026 .apb-bar--sep {
    margin-top: .2em;
    padding-top: 1.15em;
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-pending .apb-bar__fill {
    transform: scaleX(0)
  }

  #barometre-epargne-2026 .apb-toggle {
    appearance: none;
    cursor: pointer;
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-bottom: 1.2em;
    padding: .4em .9em .4em 3.05em;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-size: .88em
  }

  #barometre-epargne-2026 .apb-toggle::before {
    content: "";
    position: absolute;
    left: .45em;
    top: 50%;
    width: 2.1em;
    height: 1.2em;
    margin-top: -.6em;
    border-radius: 999px;
    background: var(--rest);
    transition: background .2s
  }

  #barometre-epargne-2026 .apb-toggle::after {
    content: "";
    position: absolute;
    left: .6em;
    top: 50%;
    width: .9em;
    height: .9em;
    margin-top: -.45em;
    border-radius: 50%;
    background: #fff;
    transition: transform .2s
  }

  #barometre-epargne-2026 .apb-toggle[aria-pressed="true"]::before {
    background: var(--blue)
  }

  #barometre-epargne-2026 .apb-toggle[aria-pressed="true"]::after {
    transform: translateX(.9em)
  }

  #barometre-epargne-2026:not(.apb--js) .apb-toggle {
    display: none
  }

  #barometre-epargne-2026 .apb-legend {
    display: grid;
    gap: .25em
  }

  #barometre-epargne-2026 .apb-leg {
    appearance: none;
    text-align: left;
    background: none;
    border: 0;
    border-radius: 8px;
    padding: .55em .65em;
    display: grid;
    grid-auto-flow: column;
    gap: .15em .7em;
    align-items: center;
    transition: background .15s
  }

  #barometre-epargne-2026 .apb-leg:hover,
  #barometre-epargne-2026 .apb-leg.is-active {
    background: var(--mist)
  }

  #barometre-epargne-2026 .apb-leg::before,
  #barometre-epargne-2026 .apb-stack__legend li::before {
    content: "";
    display: block;
    width: .85em;
    height: .85em;
    border-radius: 3px;
    background: var(--c)
  }

  #barometre-epargne-2026 .apb-leg__t {
    font-size: .94em;
    line-height: 1.35
  }

  #barometre-epargne-2026 .apb-leg b {
    font-family: var(--f-display);
    font-size: 1.25em;
    font-weight: 600;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-donut {
    display: grid;
    grid-template-columns: minmax(170px, 230px) minmax(0, 1fr);
    gap: 1.4em;
    align-items: center
  }

  #barometre-epargne-2026 .apb-donut__chart {
    position: relative
  }

  #barometre-epargne-2026 .apb-donut__chart svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible
  }

  #barometre-epargne-2026 .apb-donut__center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0 24%;
    pointer-events: none
  }

  #barometre-epargne-2026 .apb-donut__center strong {
    font-family: var(--f-display);
    font-size: 2.05em;
    font-weight: 600;
    line-height: 1;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-donut__center span {
    font-size: .76em;
    color: var(--muted);
    margin-top: .35em;
    line-height: 1.25
  }

  #barometre-epargne-2026 .apb-rings .apb-donut__center strong {
    font-size: 1.6em
  }

  #barometre-epargne-2026 .apb-rings .apb-donut__center {
    padding: 0 32%
  }

  #barometre-epargne-2026 .apb-arc,
  #barometre-epargne-2026 .apb-ring {
    fill: none;
    cursor: pointer;
    transition: stroke-dasharray 1.1s cubic-bezier(.2, .7, .2, 1), opacity .2s
  }

  #barometre-epargne-2026 .apb-arc {
    stroke-width: 22
  }

  #barometre-epargne-2026 .apb-ring {
    stroke-width: 14;
    stroke-linecap: round
  }

  #barometre-epargne-2026 .apb-arc-track {
    fill: none;
    stroke: var(--mist);
    stroke-width: 22
  }

  #barometre-epargne-2026 .apb-ring-track {
    fill: none;
    stroke: var(--mist);
    stroke-width: 14
  }

  #barometre-epargne-2026 .apb-donut.has-active .apb-arc:not(.is-active),
  #barometre-epargne-2026 .apb-donut.has-active .apb-ring:not(.is-active) {
    opacity: .42
  }

  #barometre-epargne-2026:not(.apb--js) .apb-donut {
    grid-template-columns: 1fr
  }

  #barometre-epargne-2026:not(.apb--js) .apb-donut__chart {
    display: none
  }

  #barometre-epargne-2026 .apb-stack__bar {
    display: flex;
    gap: 3px;
    height: 62px;
    border-radius: 10px;
    overflow: hidden
  }

  #barometre-epargne-2026 .apb-seg {
    appearance: none;
    border: 0;
    min-width: 0;
    padding: 0;
    flex: var(--v) 1 0;
    background: var(--c);
    color: var(--tc, #fff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.05em;
    cursor: default;
    transition: opacity .2s
  }

  #barometre-epargne-2026 .apb-seg--sm {
    font-size: 0
  }

  #barometre-epargne-2026 .apb-stack__bar:hover .apb-seg:not(:hover) {
    opacity: .45
  }

  #barometre-epargne-2026 .apb-stack__bar {
    transition: clip-path 1.1s cubic-bezier(.2, .7, .2, 1)
  }

  #barometre-epargne-2026 .apb-pending .apb-stack__bar {
    clip-path: inset(0 100% 0 0)
  }

  #barometre-epargne-2026 .apb-stack__legend {
    display: grid;
    gap: .55em;
    margin-top: 1.1em
  }

  #barometre-epargne-2026 .apb-stack__legend li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .1em .7em;
    align-items: baseline
  }

  #barometre-epargne-2026 .apb-stack__legend li::before {
    transform: translateY(.1em)
  }

  #barometre-epargne-2026 .apb-stack__legend b {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.15em;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-stack__legend .apb-leg__n {
    grid-column: 2 / -1
  }

  #barometre-epargne-2026 .apb-know__bar {
    display: flex;
    gap: 3px;
    height: 62px;
    border-radius: 10px;
    overflow: hidden
  }

  #barometre-epargne-2026 .apb-know__low {
    flex: 87 1 0;
    display: flex;
    background: var(--coral-soft)
  }

  #barometre-epargne-2026 .apb-know__low i {
    display: block;
    width: calc(31 / 87 * 100%);
    background: var(--coral)
  }

  #barometre-epargne-2026 .apb-know__high {
    transform: scaleX(-1);.
    flex: 13 1 0;
    display: flex;
    justify-content: flex-end;
    background: var(--blue-soft)
  }

  #barometre-epargne-2026 .apb-know__high i {
    display: block;
    width: calc(1 / 13 * 100%);
    min-width: 4px;
    background: var(--blue)
  }

  #barometre-epargne-2026 .apb-know__labels {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1em 2em;
    margin-top: .9em
  }

  #barometre-epargne-2026 .apb-know__labels div:last-child {
    text-align: right
  }

  #barometre-epargne-2026 .apb-know__labels b {
    display: block;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.5em;
    line-height: 1.1
  }

  #barometre-epargne-2026 .apb-know__labels span {
    display: block;
    font-size: .85em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-know__labels em {
    font-style: normal;
    color: var(--ink);
    font-weight: 700
  }

  #barometre-epargne-2026 .apb-know__bar {
    transition: clip-path 1.1s cubic-bezier(.2, .7, .2, 1)
  }

  #barometre-epargne-2026 .apb-pending .apb-know__bar {
    clip-path: inset(0 100% 0 0)
  }

  #barometre-epargne-2026 .apb-cmp {
    margin-top: 1.7em;
    padding-top: 1.3em;
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-cmp__t {
    font-weight: 700;
    font-size: .92em;
    margin-bottom: .65em
  }

  #barometre-epargne-2026 .apb-chipgroup+.apb-chipgroup {
    margin-top: .75em
  }

  #barometre-epargne-2026 .apb-chipgroup__l {
    font-size: .8em;
    color: var(--muted);
    margin-bottom: .35em
  }

  #barometre-epargne-2026 .apb-chips {
    display: flex;
    flex-wrap: wrap;
	flex-direction: column;
    gap: 1em 0.4em
  }

  #barometre-epargne-2026 .apb-chip {
    appearance: none;
    cursor: pointer;
    display: inline-block;
    padding: .36em .8em;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-size: .87em;
    line-height: 1.35;
    text-align: left;
    transition: background .15s, border-color .15s, color .15s
  }

  #barometre-epargne-2026 .apb-chip span {
    margin-left: .4em;
    font-weight: 700;
    color: var(--coral-ink);
    white-space: nowrap
  }

  #barometre-epargne-2026 .apb-chip sup {
    font-size: .7em;
    line-height: 0
  }

  #barometre-epargne-2026 .apb-chip:hover {
    border-color: var(--ink)
  }

  #barometre-epargne-2026 .apb-chip[aria-pressed="true"] {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff
  }

  #barometre-epargne-2026 .apb-chip[aria-pressed="true"] span {
    color: #FFC4B4
  }

  #barometre-epargne-2026:not(.apb--js) .apb-chip {
    cursor: default
  }

  #barometre-epargne-2026 .apb-cmp__viz {
    display: grid;
    gap: .5em;
    margin-top: 1.1em;
    padding: 1em 1.1em;
    background: var(--mist);
    border-radius: 10px
  }

  #barometre-epargne-2026 .apb-cmp__metric {
    font-size: .84em;
    color: var(--muted);
    margin-bottom: .15em
  }

  #barometre-epargne-2026 .apb-cmp__row {
    display: grid;
    grid-template-columns: minmax(0, 10.5em) minmax(0, 1fr) 3.3em;
    gap: .75em;
    align-items: center;
    font-size: .9em;
    line-height: 1.3
  }

  #barometre-epargne-2026 .apb-cmp__track {
    display: block;
    height: 12px;
    border-radius: 6px;
    background: #fff
  }

  #barometre-epargne-2026 .apb-cmp__fill {
    display: block;
    height: 100%;
    width: calc(var(--v, 0) * 1%);
    border-radius: inherit;
    background: var(--coral);
    transition: width .6s cubic-bezier(.2, .7, .2, 1)
  }

  #barometre-epargne-2026 .apb-cmp__row--ref .apb-cmp__fill {
    background: #8A95AB
  }

  #barometre-epargne-2026 .apb-cmp__row--sel .apb-cmp__l {
    font-weight: 700
  }

  #barometre-epargne-2026 .apb-cmp__v {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.1em;
    text-align: right;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-wexp {
    display: grid;
    gap: 1.3em
  }

  #barometre-epargne-2026 .apb-waffle {
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 5px;
    width: min(100%, 330px)
  }

  #barometre-epargne-2026 .apb-waffle i {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 3px;
    background: var(--line);
    transition: background .35s;
    transition-delay: calc(var(--i) * 6ms)
  }

  #barometre-epargne-2026 .apb-waffle i.on {
    background: var(--coral)
  }

  #barometre-epargne-2026 .apb-wexp__out {
    display: flex;
    align-items: baseline;
	flex-direction: column;
    gap: .6em;
    flex-wrap: wrap
  }

  #barometre-epargne-2026 .apb-wexp__v {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 2.6em;
    line-height: 1;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-wexp__l {
    max-width: 30ch;
    line-height: 1.35
  }

  #barometre-epargne-2026 .apb-div {
    display: grid;
    gap: 1.5em
  }

  #barometre-epargne-2026 .apb-div__head {
        display: flex;
    justify-content: center;
    grid-template-columns: 1fr 1fr;
    font-size: .82em;
    font-weight: 700;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-div__head span:first-child {
    text-align: right;
    padding-right: .8em;
    color: var(--blue)
  }

  #barometre-epargne-2026 .apb-div__head span:last-child {
    padding-left: .8em;
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-div__label {
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: .5em
  }

  #barometre-epargne-2026 .apb-div__bars {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr
  }

  #barometre-epargne-2026 .apb-div__bars::after {
    content: "";
    position: absolute;
    left: 50%;
    top: -5px;
    bottom: -5px;
    width: 2px;
    margin-left: -1px;
    background: var(--ink)
  }

  #barometre-epargne-2026 .apb-div__half {
    display: flex
  }

  #barometre-epargne-2026 .apb-div__half:first-child {
    justify-content: flex-end
  }

  #barometre-epargne-2026 .apb-div__yes,
  #barometre-epargne-2026 .apb-div__no {
    height: 34px;
    width: calc(var(--v) * 1%);
    display: flex;
    align-items: center;
    padding: 0 .6em;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: .95em;
    transition: transform 1s cubic-bezier(.2, .7, .2, 1)
  }

  #barometre-epargne-2026 .apb-div__yes,
  #barometre-epargne-2026 .apb-div__no {
    position: relative;
    white-space: nowrap
  }

  #barometre-epargne-2026 .apb-div__yes.is-out>span {
    position: absolute;
    right: calc(100% + .4em);
    color: var(--blue)
  }

  #barometre-epargne-2026 .apb-div__no.is-out>span {
    position: absolute;
    left: calc(100% + .4em);
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-div__yes {
    background: var(--blue);
    color: #fff;
    border-radius: 6px 0 0 6px;
    transform-origin: right center
  }

  #barometre-epargne-2026 .apb-div__no {
    background: var(--coral);
    color: var(--ink-deep);
    justify-content: flex-end;
    border-radius: 0 6px 6px 0;
    transform-origin: left center
  }

  #barometre-epargne-2026 .apb-pending .apb-div__yes,
  #barometre-epargne-2026 .apb-pending .apb-div__no {
    transform: scaleX(0)
  }

  #barometre-epargne-2026 .apb-div__more {
    font-size: .85em;
    color: var(--muted);
    margin-top: .5em;
    max-width: 60ch
  }

  #barometre-epargne-2026 .apb-poll__q {
    font-family: var(--f-display);
    font-weight: 500;
    font-size: 1.15em;
    line-height: 1.3;
    margin-bottom: .8em
  }

  #barometre-epargne-2026 .apb-poll__opts {
    display: grid;
    gap: .5em
  }

  #barometre-epargne-2026 .apb-poll__opt {
    appearance: none;
    cursor: pointer;
    text-align: left;
    padding: .8em 1em;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    background: #fff;
    font-size: .95em;
    line-height: 1.35;
    transition: border-color .15s, background .15s
  }

  #barometre-epargne-2026 .apb-poll__opt:hover {
    border-color: var(--coral);
    background: var(--blush)
  }

  #barometre-epargne-2026 .apb-linkbtn {
    appearance: none;
    cursor: pointer;
    background: none;
    border: 0;
    padding: 0;
    margin-top: .9em;
    color: var(--coral-ink);
    text-decoration: underline;
    text-underline-offset: .15em;
    font-size: .9em
  }

  #barometre-epargne-2026.apb--js .apb-poll:not(.is-revealed) .apb-poll__res {
    display: none
  }

  #barometre-epargne-2026.apb--js .apb-poll.is-revealed .apb-poll__ask {
    display: none
  }

  #barometre-epargne-2026:not(.apb--js) .apb-poll__ask,
  #barometre-epargne-2026:not(.apb--js) .apb-poll__again {
    display: none
  }

  #barometre-epargne-2026 .apb-poll__out {
    font-weight: 700;
    margin-bottom: 1em;
    min-height: 1.6em
  }

  #barometre-epargne-2026 .apb-bar.is-mine .apb-bar__fill {
    background: var(--ink)
  }

  #barometre-epargne-2026 .apb-bar.is-mine .apb-bar__label::after {
    content: "Votre choix";
    display: inline-block;
    margin-left: .55em;
    padding: .05em .55em;
    border-radius: 999px;
    background: var(--ink);
    color: #fff;
    font-size: .75em;
    font-weight: 700;
    vertical-align: .1em
  }

  #barometre-epargne-2026 .apb-group {
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-group:last-child {
    border-bottom: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-group__head {
    appearance: none;
    width: 100%;
    background: none;
    border: 0;
    padding: .95em 0;
    text-align: left;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "t v x" "b b b";
    gap: .35em .8em;
    align-items: center
  }

  #barometre-epargne-2026 button.apb-group__head {
    cursor: pointer
  }

  #barometre-epargne-2026 .apb-group__t {
    grid-area: t;
    font-weight: 700;
    line-height: 1.35
  }

  #barometre-epargne-2026 .apb-group__v {
    grid-area: v;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.45em;
    line-height: 1;
    font-variant-numeric: tabular-nums
  }

  #barometre-epargne-2026 .apb-group__x {
    grid-area: x;
    width: 1.7em;
    height: 1.7em;
    border-radius: 50%;
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    font-size: .95em;
    line-height: 1;
    transition: transform .25s, background .15s
  }

  #barometre-epargne-2026 div.apb-group__head .apb-group__x {
    visibility: hidden
  }

  #barometre-epargne-2026 button.apb-group__head:hover .apb-group__x {
    background: var(--mist)
  }

  #barometre-epargne-2026 .apb-group__head[aria-expanded="true"] .apb-group__x {
    transform: rotate(45deg)
  }

  #barometre-epargne-2026:not(.apb--js) .apb-group__x {
    display: none
  }

  #barometre-epargne-2026 .apb-group__head .apb-bar__track {
    grid-area: b;
    height: 16px;
    border-radius: 8px
  }

  #barometre-epargne-2026 .apb-group__n {
    grid-column: 1 / -1;
    font-size: .82em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-group__body {
    padding: .2em 0 1.2em 1em;
    margin-left: .15em;
    border-left: 3px solid var(--blush)
  }

  #barometre-epargne-2026 .apb-group__body .apb-bar__fill {
    background: var(--coral-soft)
  }

  #barometre-epargne-2026 .apb-group__body .apb-bar__val {
    font-size: 1.15em
  }

  #barometre-epargne-2026 .apb-gloss {
    margin-top: 1.3em;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 0 1em
  }

  #barometre-epargne-2026 .apb-gloss summary {
    cursor: pointer;
    padding: .8em 0;
    font-weight: 700;
    font-size: .92em
  }

  #barometre-epargne-2026 .apb-gloss dl {
    padding-bottom: 1em;
    display: grid;
    gap: .7em
  }

  #barometre-epargne-2026 .apb-gloss dt {
    font-weight: 700;
    font-size: .92em
  }

  #barometre-epargne-2026 .apb-gloss dd {
    font-size: .9em;
    color: var(--muted);
    line-height: 1.5
  }

  #barometre-epargne-2026 .apb-obs {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 1.5em 3.6em;
    margin-top: 3.4em;
    padding-top: 2.4em;
    border-top: 2px solid var(--ink)
  }

  #barometre-epargne-2026 .apb-obs p {
    max-width: 60ch
  }

  #barometre-epargne-2026 .apb-quote blockquote p {
    font-family: var(--f-display);
    font-size: 1.3em;
    line-height: 1.42;
    text-indent: -.5em
  }

  #barometre-epargne-2026 .apb-quote figcaption {
    margin-top: .9em;
    font-size: .86em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-quote figcaption b {
    color: var(--ink)
  }

  #barometre-epargne-2026 .apb-reg {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 2.2em 3.6em;
    margin-top: 2.4em;
    align-items: start
  }

  #barometre-epargne-2026 .apb-reg__themes {
    display: flex;
    flex-wrap: wrap;
    gap: .4em;
    margin-bottom: 1.3em
  }

  #barometre-epargne-2026 .apb-map {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(5, auto);
    gap: 6px;
    max-width: 430px
  }

  #barometre-epargne-2026 .apb-tile {
    appearance: none;
    cursor: pointer;
    border: 0;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    background: var(--mist);
    color: var(--muted);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    padding: .55em .6em;
    text-align: left;
    transition: background .2s, color .2s, transform .15s, box-shadow .2s
  }

  #barometre-epargne-2026 .apb-tile b {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.2em;
    line-height: 1
  }

  #barometre-epargne-2026 .apb-tile small {
    font-size: .66em;
    line-height: 1.15
  }

  #barometre-epargne-2026 .apb-tile:hover {
    transform: translateY(-2px)
  }

  #barometre-epargne-2026 .apb-tile[data-n="1"] {
    background: var(--blush);
    color: var(--ink)
  }

  #barometre-epargne-2026 .apb-tile[data-n="2"] {
    background: var(--coral-soft);
    color: var(--ink)
  }

  #barometre-epargne-2026 .apb-tile[data-n="3"] {
    background: var(--coral);
    color: var(--ink-deep)
  }

  #barometre-epargne-2026 .apb-tile[aria-pressed="true"] {
    background: var(--ink);
    color: #fff;
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--ink)
  }

  #barometre-epargne-2026 .apb-tile--island {
    margin: 12px 0 0 12px
  }

  #barometre-epargne-2026 .apb-map__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4em 1em;
    margin-top: 1em;
    font-size: .8em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-map__legend li::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    border-radius: 3px;
    margin-right: .35em;
    vertical-align: -.15em;
    background: var(--mist)
  }

  #barometre-epargne-2026 .apb-map__legend li[data-n="1"]::before {
    background: var(--blush)
  }

  #barometre-epargne-2026 .apb-map__legend li[data-n="2"]::before {
    background: var(--coral-soft)
  }

  #barometre-epargne-2026 .apb-map__legend li[data-n="3"]::before {
    background: var(--coral)
  }

  #barometre-epargne-2026:not(.apb--js) .apb-reg__side {
    display: none
  }

  #barometre-epargne-2026:not(.apb--js) .apb-reg {
    grid-template-columns: 1fr
  }

  #barometre-epargne-2026 .apb-reg__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: .5em 1em;
    margin-bottom: .4em
  }

  #barometre-epargne-2026 .apb-reg__h {
    font-size: .85em;
    font-family: var(--f-text);
    font-weight: 700;
    color: var(--muted);
    margin-bottom: .2em;
    flex-basis: 100%
  }

  #barometre-epargne-2026 .apb-reg__title {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.28em;
    line-height: 1.25
  }

  #barometre-epargne-2026 .apb-reg__sub {
    font-size: .88em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-reg__list li {
    padding: .85em 0;
    border-top: 1px solid var(--line);
    line-height: 1.5
  }

  #barometre-epargne-2026 .apb-reg__list li strong {
    display: block;
    font-size: .82em;
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-reg.has-region .apb-reg__list li strong {
    display: none
  }

  #barometre-epargne-2026 .apb-reg__empty {
    padding: 1em 0;
    border-top: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    gap: .5em
  }

  #barometre-epargne-2026 .apb-reg__empty p {
    flex-basis: 100%;
    color: var(--muted)
  }

  #barometre-epargne-2026:not(.apb--js) .apb-reg__head,
  #barometre-epargne-2026:not(.apb--js) .apb-reg__empty {
    display: none
  }

  #barometre-epargne-2026 .apb-sec--meth {
    background: var(--mist)
  }

  #barometre-epargne-2026 .apb-meth {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
    gap: 2em 3.6em;
    align-items: start
  }

  #barometre-epargne-2026 .apb-meth p {
    max-width: 62ch;
    margin-top: .9em
  }

  #barometre-epargne-2026 .apb-mention {
    background: #fff;
    border: 2px solid var(--ink);
    border-radius: 12px;
    padding: 1.2em 1.4em
  }

  #barometre-epargne-2026 .apb-mention p {
    margin-top: .4em
  }

  #barometre-epargne-2026 .apb-mention .apb-mention__t {
    margin-top: 0;
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.15em
  }

  #barometre-epargne-2026 .apb-mention__q {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.2em;
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-copy {
    appearance: none;
    cursor: pointer;
    margin-top: .9em;
    padding: .45em 1em;
    border: 0;
    border-radius: 999px;
    background: var(--ink);
    color: #fff;
    font-size: .88em;
    font-weight: 700
  }

  #barometre-epargne-2026:not(.apb--js) .apb-copy {
    display: none
  }

  #barometre-epargne-2026 .apb-dl {
    margin-top: 1.4em
  }

  #barometre-epargne-2026 .apb-dl a {
    display: flex;
    justify-content: space-between;
    gap: 1em;
    padding: .85em 0;
    border-top: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
    font-weight: 700
  }

  #barometre-epargne-2026 .apb-dl a:hover {
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-dl span {
    font-weight: 400;
    font-size: .85em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-faq {
    margin-top: 1.8em;
    max-width: 820px
  }

  #barometre-epargne-2026 .apb-faq details {
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-faq details:last-child {
    border-bottom: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-faq summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding: 1.05em 2.6em 1.05em 0
  }

  #barometre-epargne-2026 .apb-faq summary::-webkit-details-marker {
    display: none
  }

  #barometre-epargne-2026 .apb-faq summary {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.08em;
    line-height: 1.3
  }

  #barometre-epargne-2026 .apb-faq summary::after {
    content: "+";
    position: absolute;
    right: .25em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5em;
    line-height: 1;
    color: var(--coral-ink);
    transition: transform .2s
  }

  #barometre-epargne-2026 .apb-faq details[open] summary::after {
    transform: translateY(-50%) rotate(45deg)
  }

  #barometre-epargne-2026 .apb-faq__a {
    padding: 0 0 1.2em;
    max-width: 70ch
  }

  #barometre-epargne-2026 .apb-hero__by {
    margin-top: .9em;
    font-size: .88em;
    color: #AEB9CF;
    max-width: 54ch
  }

  #barometre-epargne-2026 .apb-hero__by strong {
    color: #fff
  }

  #barometre-epargne-2026 .apb-key__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 3.6em;
    margin-top: 1.8em
  }

  #barometre-epargne-2026 .apb-key__list li {
    padding: 1em 0;
    border-top: 1px solid var(--line);
    line-height: 1.55;
    max-width: 60ch
  }

  #barometre-epargne-2026 .apb-key__list strong {
    font-family: var(--f-display);
    font-weight: 600;
    color: var(--coral-ink)
  }

  #barometre-epargne-2026 .apb-tables {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .6em;
    margin-top: 2em
  }

  #barometre-epargne-2026 .apb-tbl,
  #barometre-epargne-2026 .apb-tbl__scroll {
    min-width: 0;
    max-width: 100%
  }

  #barometre-epargne-2026 .apb-tbl {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff
  }

  #barometre-epargne-2026 .apb-tbl summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding: 1em 3em 1em 1.2em
  }

  #barometre-epargne-2026 .apb-tbl summary::-webkit-details-marker {
    display: none
  }

  #barometre-epargne-2026 .apb-tbl summary {
    font-family: var(--f-display);
    font-weight: 600;
    font-size: 1.1em;
    line-height: 1.3
  }

  #barometre-epargne-2026 .apb-tbl summary::after {
    content: "+";
    position: absolute;
    right: 1em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5em;
    line-height: 1;
    color: var(--coral-ink);
    transition: transform .2s
  }

  #barometre-epargne-2026 .apb-tbl[open] summary::after {
    transform: translateY(-50%) rotate(45deg)
  }

  #barometre-epargne-2026 .apb-tbl__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    padding: 0 1.2em 1.2em
  }

  #barometre-epargne-2026 .apb-tbl table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: .92em;
    line-height: 1.4
  }

  #barometre-epargne-2026 .apb-tbl th,
  #barometre-epargne-2026 .apb-tbl td {
    text-align: left;
    vertical-align: top;
    padding: .6em .8em;
    border-top: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-tbl thead th {
    border-top: 0;
    font-size: .82em;
    font-weight: 700;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-tbl tbody th {
    font-weight: 400
  }

  #barometre-epargne-2026 .apb-tbl td:nth-child(2) {
    font-family: var(--f-display);
    font-weight: 600;
    white-space: nowrap
  }

  #barometre-epargne-2026 .apb-tbl td:nth-child(3),
  #barometre-epargne-2026 .apb-tbl td:nth-child(4) {
    color: var(--muted);
    font-size: .95em
  }

  #barometre-epargne-2026 .apb-tbl tr.is-sub th {
    padding-left: 1.8em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-meth__h {
    margin-top: 1.6em;
    margin-bottom: 0
  }

  @media (max-width:920px) {
    #barometre-epargne-2026 .apb-key__list {
      grid-template-columns: minmax(0, 1fr)
    }
  }

  #barometre-epargne-2026 .apb-intro {
    max-width: 72ch;
    color: var(--muted);
    margin-bottom: 2.2em;
    padding-bottom: 1.6em;
    border-bottom: 1px solid var(--line)
  }

  #barometre-epargne-2026 .apb-block__text em {
    font-style: italic;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-obs--quote {
    grid-template-columns: minmax(0, 1fr)
  }

  #barometre-epargne-2026 .apb-obs--quote .apb-quote {
    max-width: 860px
  }

  #barometre-epargne-2026 .apb-wexp--inline {
    margin-top: 1.4em
  }

  #barometre-epargne-2026 .apb-wexp--inline .apb-waffle {
    width: min(100%, 280px)
  }

  #barometre-epargne-2026 .apb-about {
    list-style: disc;
    padding-left: 1.2em;
    margin-top: .5em
  }

  #barometre-epargne-2026 .apb-about li {
    margin-top: .45em;
    max-width: 62ch
  }

  #barometre-epargne-2026 .apb-dl__t {
    margin-top: 1.8em;
    font-weight: 700;
    font-size: .9em;
    color: var(--muted)
  }

  #barometre-epargne-2026 .apb-tbl tr.is-group th {
    padding-top: 1.1em;
    font-weight: 700;
    font-size: .86em;
    color: var(--coral-ink);
    border-top: 0
  }

  #barometre-epargne-2026 .apb-tbl td:nth-child(2) {
    white-space: normal;
    min-width: 6em
  }

  @media (max-width:920px) {
    #barometre-epargne-2026.apb--js .apb-toc__inner {
      padding-top: 0;
      padding-bottom: 0
    }

    #barometre-epargne-2026.apb--js .apb-toc__toggle {
      appearance: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: .6em;
      width: 100%;
      min-height: 52px;
      padding: 0;
      border: 0;
      background: none;
      text-align: left;
      font-size: .95em
    }

    #barometre-epargne-2026.apb--js .apb-toc__t {
      font-weight: 700;
      color: var(--muted);
      font-size: .85em
    }

    #barometre-epargne-2026.apb--js .apb-toc__current {
      flex: 1;
      min-width: 0;
      font-weight: 700;
      color: var(--ink);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    #barometre-epargne-2026.apb--js .apb-toc__toggle::after {
      content: "";
      flex: 0 0 auto;
      width: .55em;
      height: .55em;
      margin-right: .3em;
      border-right: 2px solid var(--ink);
      border-bottom: 2px solid var(--ink);
      transform: translateY(-25%) rotate(45deg);
      transition: transform .2s
    }

    #barometre-epargne-2026.apb--js .apb-toc.is-open .apb-toc__toggle::after {
      transform: translateY(20%) rotate(-135deg)
    }

    #barometre-epargne-2026.apb--js .apb-toc__list {
      display: none;
      position: absolute;
      left: 0;
      right: 0;
      top: 100%;
      flex-direction: column;
      gap: .15em;
      padding: .4em clamp(18px, 4vw, 40px) 1em;
      background: #fff;
      border-bottom: 1px solid var(--line);
      box-shadow: 0 18px 30px -18px rgba(12, 29, 61, .35);
      max-height: calc(100vh - var(--apb-sticky-top, 0px) - 70px);
      overflow-y: auto;
      -webkit-mask-image: none;
      mask-image: none
    }

    #barometre-epargne-2026.apb--js .apb-toc.is-open .apb-toc__list {
      display: flex
    }

    #barometre-epargne-2026.apb--js .apb-toc a {
      display: flex;
      align-items: center;
      min-height: 44px;
      border-radius: 8px;
      background: none;
      padding: .5em .8em;
      font-size: 1em
    }

    #barometre-epargne-2026.apb--js .apb-toc a:hover {
      background: var(--mist)
    }

    #barometre-epargne-2026.apb--js .apb-toc a[aria-current="location"] {
      background: var(--mist);
      color: var(--ink);
      font-weight: 700;
      box-shadow: inset 3px 0 0 var(--coral)
    }
  }

  #barometre-epargne-2026 .apb-tip {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    pointer-events: none;
    max-width: 270px;
    padding: .45em .65em;
    border-radius: 6px;
    background: var(--ink-deep);
    color: #fff;
    font-family: var(--f-text);
    font-size: 14px;
    line-height: 1.4;
    opacity: 0;
    transition: opacity .15s;
    box-shadow: 0 6px 18px rgba(12, 29, 61, .25)
  }

  #barometre-epargne-2026 .apb-tip.is-on {
    opacity: 1
  }

  @media (max-width:920px) {

    #barometre-epargne-2026 .apb-hero__grid,
    #barometre-epargne-2026 .apb-block,
    #barometre-epargne-2026 .apb-obs,
    #barometre-epargne-2026 .apb-reg,
    #barometre-epargne-2026 .apb-meth {
      grid-template-columns: minmax(0, 1fr)
    }

    #barometre-epargne-2026 .apb-dial {
      max-width: 430px
    }
  }

  @media (max-width:560px) {
    #barometre-epargne-2026 {
      font-size: 16px
    }

    #barometre-epargne-2026 .apb-hero {
      padding: 2.4em 0 2.2em
    }

    #barometre-epargne-2026 .apb-sec {
      padding: 3em 0
    }

    #barometre-epargne-2026 .apb-donut {
      grid-template-columns: minmax(0, 1fr)
    }

    #barometre-epargne-2026 .apb-donut__chart {
      width: min(230px, 100%);
      margin: 0 auto
    }

    #barometre-epargne-2026 .apb-tile small {
      display: none
    }

    #barometre-epargne-2026 .apb-cmp__row {
      grid-template-columns: minmax(0, 7.5em) minmax(0, 1fr) 3em
    }

    #barometre-epargne-2026 .apb-facts>li {
      border-right: 0;
      padding-right: 0
    }

    #barometre-epargne-2026 .apb-stack__bar,
    #barometre-epargne-2026 .apb-know__bar {
      height: 52px
    }
  }

  @media (prefers-reduced-motion:reduce) {

    #barometre-epargne-2026 *,
    #barometre-epargne-2026 *::before,
    #barometre-epargne-2026 *::after {
      transition: none !important;
      animation: none !important
    }
  }

  @media (pointer:coarse) {

    #barometre-epargne-2026 .apb-chip,
    #barometre-epargne-2026 .apb-dial__tab,
    #barometre-epargne-2026 .apb-toc__list a {
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      padding-top: .5em;
      padding-bottom: .5em
    }

    #barometre-epargne-2026 .apb-chip {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: baseline;
      align-content: center;
      column-gap: 0
    }

    #barometre-epargne-2026 .apb-linkbtn {
      min-height: 44px;
      padding: .6em 0
    }

    #barometre-epargne-2026 .apb-leg {
      min-height: 44px
    }

    #barometre-epargne-2026 .apb-tbl summary,
    #barometre-epargne-2026 .apb-faq summary,
    #barometre-epargne-2026 .apb-gloss summary {
      min-height: 48px;
      display: flex;
      align-items: center
    }

    #barometre-epargne-2026 .apb-toggle {
      min-height: 44px
    }
  }

  @media (max-width:380px) {
    #barometre-epargne-2026 .apb-hero h1 {
      font-size: 1.85em
    }

    #barometre-epargne-2026 .apb-div__yes,
    #barometre-epargne-2026 .apb-div__no {
      font-size: .82em;
      padding: 0 .35em
    }

    #barometre-epargne-2026 .apb-tile {
      padding: .4em
    }

    #barometre-epargne-2026 .apb-tile b {
      font-size: 1.05em
    }

    #barometre-epargne-2026 .apb-tbl__scroll {
      padding: 0 .8em 1em
    }

    #barometre-epargne-2026 .apb-tbl summary {
      padding-left: .9em
    }
  }
Baromètre Ifop pour Altaprofits, 2026

# Baromètre 2026 de l’Épargne en France et en régions

[Voir les communiqués de presse](#cp-presse-barometre)

Depuis plusieurs années, le « Baromètre de l’épargne en France et en régions » d’Altaprofits, réalisé par Ifop, décrypte le comportements d’épargne des Français, à travers le temps, avec des approfondissements spécifiques du financement de la retraite et de la défense nationale, de la fiscalité, de l’investissement responsable avec simultanément des focus régionaux.

Altaprofits est Courtier et Conseil en Gestion de Patrimoine sur Internet depuis 1999. Publié le 8 septembre 2026.

- Échantillon : 2 412 personnes (18 ans +)
- Période d'étude 30 mars au 8 avril 2026
- Publication 4 juin et 8 septembre 2026



79 %

1. déclarent avoir recours à des produits sans risque, même avec un faible rendement.
2. des actifs comptent exclusivement sur le système de retraite par répartition actuel pour assurer la totalité de leurs revenus une fois à la retraite.
3. sont prêts à investir une partie de leurs économies dans des fonds d’investissement ou des produits d’épargne destinés au financement de la défense nationale
4. des Français maîtrisent mal la fiscalité de l'épargne mais 76 % des épargnants indiquent qu’elle compte dans leurs choix de placement
5. des épargnants réalloueraient leur épargne vers un dispositif plus avantageux face à une hausse de la fiscalité
6. des Français reconnaissent au critère d’investissement responsable une certaine importance, mais il n’apparaît comme critère de sélection primordial que pour une minorité (20 %)

Risque Retraite Défense Fiscalité Hausse de la fiscalité Investissement responsable







 SommaireAller à une section

- [Épargne](#apb-epargne)
- [Retraite](#apb-retraite)
- [Défense](#apb-defense)
- [Fiscalité](#apb-fiscalite)
- [Investissement responsable](#apb-isr)
- [Régions](#apb-regions)
- [Tous les chiffres](#apb-chiffres)
- [FAQ](#apb-faq)



Premier volet

**Publié le 4 juin 2026**



Cette **8e édition du « Baromètre de l’épargne en France et en régions »** s’inscrit dans un double contexte de tensions : une instabilité politique et des contraintes budgétaires en France, un climat international dégradé par la guerre commerciale de Donald Trump et le conflit au Moyen-Orient, avec un impact direct sur le pouvoir d’achat des Français.





## Le comportement d’épargne des Français est inchangé malgré des signaux révélateurs d’un environnement conjoncturel fragilisé

### La fréquence de placement des Français



**81 %**placent de l’argent



- **81 %**de Français déclarent placer de l’argent sur leurs produits d’épargne
- **62 %**le font au moins une fois tous les six mois
- **37 %**au moins une fois par mois



© Baromètre Ifop pour Altaprofits, 2026.

### L’appétence au risque des épargnants français

Parmi ceux ayant déclaré posséder au moins un produit d’épargne (95 % de l’échantillon) :



**79 %**produits sans risque



- **79 %**déclarent avoir recours à des produits sans risque, même avec un faible rendement+ 3 points par rapport à 2024
- **18 %**privilégient des produits « un peu risqués » avec un rendement espéré plus important
- **3 %**des produits risqués avec une chance d’obtenir un rendement important- 3 points vs 2023



© Baromètre Ifop pour Altaprofits, 2026.

### Les produits d’épargne des épargnants français



1. Les livrets réglementés (Livret A, LDDS, PEL, …)75 %
2. Un contrat d’assurance vie ou de capitalisation27 %+ 3 points vs 2025
3. Un Plan Épargne Retraite (PER)14 %
4. Un Plan Épargne en Actions (PEA)13 %
5. Des Sociétés Civiles de Placement Immobilier (SCPI)2 %
6. Immobilisation des liquidités sur un compte courant13 %un bond de + 7 points vs 2024

© Baromètre Ifop pour Altaprofits, 2026.

### Les observations d’Altaprofits

En 2025, dans le prolongement d’une hausse quasi-continue depuis le milieu des années 2010, le taux d’épargne des ménages français atteignait 18,3% du revenu disponible brut selon la Banque de France. Cette dynamique se retrouve dans la collecte de l’assurance vie, qui enchaîne des mois record de collecte en 2026 après une forte croissance déjà en 2025.

Derrière cette épargne élevée se cache davantage une stratégie défensive qu'une recherche de performance. Nos résultats confirment une accentuation progressive de l'aversion au risque depuis 2023, traditionnellement forte chez les Français, dans leurs comportements d’épargne. Une large majorité d'épargnants privilégie les placements sans risque, quitte à renoncer à un rendement plus élevé, tandis que logiquement, la part des Français optant pour des produits risqués diminue encore. Cette aversion au risque, naturelle chez les seniors en phase de préservation du capital, se concentre également chez les femmes et les ménages modestes, révélant des inégalités persistantes face à l'investissement. **Le climat d'incertitudes économiques et géopolitiques amplifie cette tendance, incitant à sécuriser plutôt qu'à dynamiser son épargne.**

**Un autre signal préoccupant réside dans l'immobilisation croissante des liquidités**. La part de Français déclarant conserver l'intégralité de leur épargne sur leur compte courant reste similaire à 2025, en nette hausse par rapport à 2024. Ce comportement, particulièrement marqué chez les plus âgés, révèle une préférence pour la disponibilité immédiate et une difficulté persistante à se projeter vers des placements plus engageants.



> « Année après année, les Français continuent d’épargner, mais privilégient la sécurité au détriment du rendement. Depuis 2024, à l’aversion au risque culturelle s’ajoutent des signaux d’attentisme, conséquence du contexte macroéconomique et géopolitique dégradé. »

**Catherine Baudeneau**, Directrice Marketing Offre et Communication d’Altaprofits



## La retraite dans un contexte de baisse majeure du pouvoir d’achat

### Les actifs comptent de plus en plus exclusivement sur le système de retraite par répartition

Montant de la retraite 7 sur 10 Niveau de vie 75 %

**7 actifs sur 10**ne connaissent pas le montant qu’ils percevront au moment de la retraite







**43 %**en totalité



- **43 %**estiment que leurs revenus proviendront **en totalité** du système de retraite par répartitionune hausse de +15 points vs 2025
- **39 %**envisagent que leurs revenus pourraient **majoritairement** provenir du système de retraite par répartition actuel avec un complément par capitalisation issu de leur épargne ou placements financiers ou immobiliers- 8 points vs 2025
- **9 %**considèrent que leurs revenus pourraient provenir **à parts égales** de leur pension de retraite et de leur épargne ou placements financiers ou immobiliers- 6 points vs 2025
- **9 %**que leurs revenus proviendront **majoritairement** de leur épargne ou de leurs placements financiers ou immobiliers, la pension retraite étant un complément



© Baromètre Ifop pour Altaprofits, 2026.

### Une France divisée en trois sur l’avenir de la réforme des retraites 2023 actuellement suspendue



37 % 34 % 29 %

- **37 %** des Français souhaitent qu’une autre réforme soit envisagée
- **34 %** voudraient que la réforme soit purement et simplement abrogée
- **29 %** estiment qu’il faudrait appliquer la réforme telle que prévue initialement



© Baromètre Ifop pour Altaprofits, 2026.

### Parmi les 37 % de Français souhaitant une réforme différente, une majorité claire émerge sur les leviers à privilégier



Cotiser davantage durant la vie active pour augmenter les recettes sans toucher à l’âge de départ à la durée de cotisation

Oui Non

63 %

37 %





Travailler plus longtemps

Oui Non

32 %

68 %





Baisser le niveau des pensions retraite pour inciter à capitaliser par eux-mêmes pour leur future retraite

Oui Non

18 %

82 %







© Baromètre Ifop pour Altaprofits, 2026.

### Les observations d’Altaprofits

Les années passées ont montré que plus de 80% des actifs français étaient convaincus qu’il fallait épargner pour sa retraite, chiffre stable d’année en année. D’ailleurs, le Plan Épargne Retraite (PER), produit retraite par excellence, poursuit sa progression de manière régulière.

Pourtant, plusieurs constats alertent : nous observons une forte progression d’actifs qui comptent exclusivement sur le système par répartition pour assurer leurs revenus une fois à la retraite, progression tirée par les catégories les plus fragiles. Les autres signaux observés dans l’étude laissent à penser que ce n’est pas par regain de confiance dans le système, mais plus par absence de choix. D’ailleurs, le PER cible les actifs plutôt aisés, séduits par les avantages fiscaux proposés et disposant déjà d’une capacité d’épargne confortable. Pour une partie importante des classes moyennes et modestes, les priorités restent davantage centrées sur le maintien du pouvoir d’achat, la capacité d’épargne immédiate pour faire face aux imprévus et la visibilité à court terme que sur l’optimisation fiscale et la préparation de la retraite à long terme. Ce clivage se confirme dans le rejet massif de la piste – pour une autre réforme des retraites – d’une baisse des pensions afin d’encourager davantage de capitalisation individuelle, piste qui n’est soutenue que par les catégories les plus aisées.

Enfin, la moyenne d’âge d’adhésion au PER reste élevée. Sur le plan financier, l’idée que le meilleur moyen de préparer sa retraite est de commencer tôt, même avec de très petites sommes investies sur les marchés financiers, n’a pas encore véritablement fait son chemin. L’aversion au risque, frein majeur à l’investissement sur les marchés financiers, revient ici également dans le jeu et continue de peser lourd.



> « Avec une moyenne d’âge à l’ouverture de 51 ans chez Altaprofits, on voit qu’il faut encore de la pédagogie pour inciter à l’ouverture d’un produit retraite très tôt avec de petites sommes régulières, placées sur les marchés financiers pour profiter du dynamisme long terme de ces derniers. La retraite par capitalisation individuelle a encore du chemin à parcourir. »

**Catherine Baudeneau**, Directrice Marketing Offre et Communication d’Altaprofits



## Le financement de la défense nationale n’intéresse toujours qu’une minorité de Français en dépit d’une logique de réarmement pour la sécurisation des nations partout en Europe

Prêts à investir 30 % Réfractaires 70 %

**30 %** des Français sont prêts à investir dans le financement de la défense nationale





© Baromètre Ifop pour Altaprofits, 2026.

### Parmi les 70 % Français qui sont plutôt réfractaires à investir dans des fonds d’investissement ou des produits d’épargne dédiés à la défense nationale



Le justifient par des raisons politiques, éthiques ou morales44 %quasi-stable, soit + 2 points vs 2025+

1. Considèrent avant tout ce financement comme une prérogative devant relever exclusivement de l'État ou des impôts 24 %
2. mentionnent l’idée selon laquelle financer l’économie de la défense va à l’encontre de leurs principes éthiques15 %
3. estiment que cela n’est pas compatible avec une politique Environnementale, Sociale et de Gouvernance (ESG)5 %



Mettent en avant des raisons économiques ou financières40 %+

1. Craignent une trop grande prise de risque18 %
2. Estiment que ce type de produits ne correspond pas à leurs attentes en termes de durée de placement ou de montant minimal d’investissement12 %
3. Doutent du rendement6 %
4. n’ont pas les moyens d’investir dans de tels fonds4 %



Ne citent aucune raison particulière12 %+







© Baromètre Ifop pour Altaprofits, 2026.

### Les observations d’Altaprofits

Le premier frein évoqué est le fait que le financement de la défense doit relever de l’État et des impôts. Manière de rappeler que, pour flécher l’épargne des Français vers un secteur spécifique, une incitation est toujours un facilitateur. D’autant plus s’il s’agit d’investir dans le non coté, secteur encore méconnu et perçu comme risqué. Or le besoin de financement concerne les Petites et Moyennes Entreprises (PME) et des Entreprises de Taille Intermédiaire (ETI) de la défense. Une première réponse a été apportée avec la création du fonds Bpifrance Défense, mais il se heurte aux freins traditionnels du capital investissement au 1er rang desquels la durée de blocage et la perception du risque, sans visibilité sur le rendement attendu.

Sur les raisons éthiques ou en lien avec le critère de l’investissement responsable ESG (Environnement Socialement Responsable), l’enjeu sera de renforcer la transparence sur l’utilisation de l’investissement et de mieux démontrer la dimension ESG des entreprises financées. En 2025, les précisions apportées par l’Union européenne ont confirmé qu’investissement durable et défense ne sont pas incompatibles, à condition de respecter des exigences élevées de transparence et d’exclusions ciblées. Le message est passé, il faut désormais convaincre.



> « Les 30 % de Français prêts à investir dans le secteur de la défense restent stables depuis un an, malgré un contexte géopolitique hautement dégradé. Cette stabilité montre que les réticences ne relèvent pas uniquement d’un manque d’information, mais aussi de convictions personnelles et de considérations éthiques profondément ancrées. »

**Catherine Baudeneau**, Directrice Marketing Offre et Communication d’Altaprofits



## Les principaux enseignements en régions (versus les moyennes nationales)

© Baromètre Ifop pour Altaprofits, 2026.

Comportement d'épargne| **Les habitants de Normandie** sont ceux déclarant le plus placer de l’argent au moins une fois tous les six mois (14%, + 5 points versus la moyenne nationale), tandis que **les habitants de la région Provence-Alpes-Côte d’Azur** sont ceux déclarant le moins placer de l’argent sur la fréquence d’au moins une fois par mois (29 %, - 8 points versus la moyenne nationale) |
|---|
| **Les résidents d’Île-de-France** se confirment quant à eux moins averses au risque, privilégiant ainsi davantage les produits risqués avec un rendement espéré plus important (6 %, + 3 points en comparaison avec la moyenne nationale). Ils sont également plus nombreux à avoir privilégié au cours de l’année 2025 un Plan Épargne Retraite (PER) (19 %, + 5 points versus la moyenne nationale), un Plan Épargne Actions (PEA) (19 %, + 6 points par rapport à la moyenne nationale), une ou plusieurs Sociétés Civiles de Placement Immobilier (SCPI) (5 %, + 3 points versus la moyenne nationale), des placements davantage permis sans doute grâce à un niveau de revenus plus élevés qu’en moyenne aux abords de la capitale et un nombre plus important de cadres et de professions intellectuelles supérieures. |
| **Les habitants des Hauts-de-France** figurent parmi les moins nombreux à avoir eu recours à un Plan Épargne Retraite (PER) (9 %, - 5 points versus celle nationale), alors que par ailleurs **les résidents du Centre-Val de Loire** se situent les plus nombreux à avoir privilégié un contrat d’assurance vie ou de capitalisation (37 %, + 10 points par rapport à la moyenne nationale). |
| **Les résidents de Nouvelle-Aquitaine** sont ceux qui ont le moins laissé tout leur argent sur leur compte courant (8 %, - 5 points versus la moyenne nationale). |
|



Actifs et retraite| **Les actifs d'Auvergne-Rhône-Alpes** sont les moins nombreux à compter sur le système de retraite par répartition pour assurer en totalité leur niveau de vie à la retraite (34 %, - 9 points par rapport à la moyenne nationale). |
|---|
| **Les actifs franciliens** sont parmi les plus nombreux à envisager un niveau de vie stable (27 %, + 6 points versus la moyenne nationale) ou augmenté (7%, + 3 points en comparaison avec la moyenne nationale) à leur retraite. Paradoxalement, ils sont pourtant plus informés qu’en moyenne du montant de leur future pension retraite (36 %, + 6 points par rapport à la moyenne nationale). |
| **Les actifs d’Occitanie** sont les plus nombreux à estimer que leur niveau de vie va diminuer (84 %, + 9 points versus la moyenne nationale). |
| **Les actifs d'Auvergne-Rhône-Alpes** sont sous-représentés parmi les connaisseurs de leur future pension retraite (22 %, - 8 points en comparaison avec la moyenne nationale). |
|



Avenir de la réforme des retraites 2023 suspendue| **Les habitants dans le Grand-Est** sont les plus nombreux à opter pour une autre réforme des retraites, différente de celle initiée en 2023 (44 %, + 7 points versus la moyenne nationale), tandis que **ceux de Normandie** se sont largement déclarés pour son abrogation définitive et pour trouver d’autres sources de financement des retraites pour les années à venir (45 %, + 11 points par rapport à la moyenne nationale). |
|---|
| **Les Franciliens** sont moins nombreux à être pour l’abrogation définitive de la réforme des retraite 2023 (28 %, - 6 en comparaison avec la moyenne nationale). |
|



Financement de la défense nationale| **Les habitants d’Île-de-France** sont plus nombreux à se déclarer prêts à investir leurs économies dans des produits d’épargne dédiés à la défense nationale (33 %, + 3 points versus la moyenne nationale). |
|---|
| Parmi ceux qui déclarent ne pas souhaiter investir leurs économies dans ce type de fonds d’investissement ou produits d’épargne, **les habitants de la région Nouvelle Aquitaine** sont les plus nombreux à déclarer que des raisons économiques ou financières les en empêchent (48 %, + 8 points versus la moyenne nationale) quand **les résidents de Provence-Alpes-Côte d’Azur et Corse** estiment que le financement de la défense doit uniquement relever de l’État et des impôts (33 %, contre 24 % de moyenne nationale). Enfin, **en Bretagne**, les habitants déclarent que le financement de la défense n’est pas compatible avec une politique ESG (Environnementale, Sociale et de Gouvernance) (12 % contre 5 % de moyenne nationale). |
|







Deuxième volet

**Publié le 8 septembre 2026**



Avec l’ouverture de la campagne présidentielle 2027, les débats sur les finances publiques, le pouvoir d’achat, la fiscalité, le financement de l’économie et la transition écologique devraient progressivement s’intensifier. Dans ce contexte, Altaprofits dévoile le deuxième volet de son « Baromètre 2026 de l’épargne en France et en régions » réalisé par Ifop afin de mesurer les attentes, les perceptions et les intentions des Français sur deux sujets appelés à nourrir le débat public : la fiscalité de l’épargne et l’investissement responsable.





## La fiscalité de l’épargne

Paradoxalement, 87 % des Français la maîtrisent mal mais 76 % des épargnants indiquent qu’elle compte dans leurs choix de placement. Face à une hausse de la fiscalité, près d’un épargnant sur deux (46 %) réallouerait son épargne vers un dispositif plus avantageux.

### Un paradoxe : les Français la maîtrisent mal… mais ils indiquent qu’elle compte dans leurs choix de placement

Les Français reconnaissent très largement mal connaître la fiscalité de l’épargne : 87 % d’entre eux estiment avoir un niveau de connaissance faible ou lacunaire en la matière (notes comprises entre 1 et 6 sur 10), dont 31 % le qualifiant de très mauvais (notes comprises entre 1 et 2). Seuls 13 % estiment avoir un niveau de connaissance élevé sur la fiscalité de l’épargne (notes comprises entre 7 et 10), dont à peine 1 % déclarant un niveau de connaissance très bon (notes comprises entre 9 et 10).

*Le déficit de connaissance est particulièrement marqué chez les femmes (92 % contre 81 % chez les hommes), notamment les femmes de moins de 35 ans (95 %). En revanche, les cadres (22 %), les retraités CSP+ (20 %) et les diplômés du supérieur (20 % pour les diplômés du 2e et 3e cycle – master et doctorat -) sont les plus nombreux à déclarer un niveau de connaissance élevé.*

Comparer par profil

Niveau de connaissance faible ou lacunaire sur la fiscalité de l'épargne :

Femmes 92 % Hommes 81 % Femmes de moins de 35 ans 95 %



Niveau de connaissance élevé sur la fiscalité de l'épargne :

Cadres 22 % Retraités CSP+ 20 % Diplômés du 2e et 3e cycle 20 %







- **87 %** estiment avoir un niveau de connaissance faible ou lacunaire sur la fiscalité de l'épargne
- **dont 31 %** estiment avoir un niveau de connaissances très mauvais
- **13 %** estiment avoir un niveau de connaissance élevé sur la fiscalité de l'épargne
- **dont 1 %** estiment avoir un niveau de connaissance élevé sur la fiscalité de l'épargne
- 



© Baromètre Ifop pour Altaprofits, 2026.

### Ils sont pourtant près de trois sur quatre à considérer que la fiscalité de l’épargne influence leurs décisions

76 % de ceux qui déclarent placer régulièrement de l’argent considèrent que la fiscalité pèse dans leurs choix de placement, dont 27 % beaucoup et 49 % assez.

*La fiscalité joue un rôle plus important auprès des 65 ans et plus (81 %), des femmes de 35 ans et plus (81 %), des cadres (82 %) et des catégories aisées (84 %). À l’inverse, les plus jeunes et les femmes de moins de 35 ans y accordent moins d’attention.*

Comparer par profil

65 ans et plus 81 % Femmes de 35 ans et plus 81 % Cadres 82 % Catégories aisées 84 %





27 % 49 % la fiscalité ne compte pas dans leurs choix de placement

- **27 %** déclarent que la fiscalité pèse "beaucoup" dans leurs choix de placement
- **49 %** déclarent que la fiscalité pèse "assez" dans leurs choix de placement



© Baromètre Ifop pour Altaprofits, 2026.

### Face à une hausse de la fiscalité de l’épargne, près d’un épargnant sur deux réallouerait son épargne vers un dispositif plus avantageux

Dans l’hypothèse d’une hausse de la fiscalité sur l’épargne, la réaction majoritairement anticipée serait la réorientation, et non le repli : 46 % envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé — une réaction d’optimisation qui témoigne d’une certaine flexibilité comportementale face à la pression fiscale —. 28 % maintiendraient leur effort d’épargne tel qu’ils le font actuellement, 20 % le diminueraient et 6 % l’augmenteraient.

*L’idée de réallouer son épargne vers des placements plus avantageux séduit :*

- *particulièrement les cadres (54 %),*
- *les professions intermédiaires (54 %),*
- *les diplômés de 2e et 3e cycles (54 %),*
- *les hauts revenus (61 % pour les revenus supérieurs à 3 652 € mensuels et plus par personne au foyer)*
- *les épargnants les plus réguliers (50 %)*
- *Au contraire, les plus modestes et les moins diplômés privilégieraient davantage le maintien ou la réduction de l’effort d’épargne*

Comparer par profil

Cadres 54 % Professions intermédiaires 54 % Diplômés de 2e et 3e cycles 54 % Hauts revenus 61 % Épargnants les plus réguliers 50 %





Et vous, que feriez-vous dans l’hypothèse d’une hausse de la fiscalité sur l’épargne ?

Réallouer mon épargne vers un dispositif plus avantageux, moins taxé Maintenir mon effort d’épargne tel que je le fais actuellement Diminuer mon effort d’épargne Augmenter mon effort d’épargne

Voir directement les résultats



1. envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé46 %
2. maintiendraient leur effort d’épargne tel qu’ils le font actuellement28 %
3. le diminueraient20 %
4. l’augmenteraient6 %

Répondre à nouveau





© Baromètre Ifop pour Altaprofits, 2026.

### Les observations d’Altaprofits

Ces résultats montrent que la fiscalité constitue un vrai levier d’orientation des comportements d’épargne. Les Français en maîtrisent imparfaitement les mécanismes, mais ils en appréhendent les effets sur le rendement global de leurs placements et en tiennent compte dans leurs arbitrages patrimoniaux. Ces enseignements sont importants à l’heure où les constats se multiplient sur l’abondance d’épargne en France et en Europe et sur la nécessité de transformer cette épargne en source de financement pour l’économie et la transition climatique du vieux continent. Néanmoins, gardons à l’esprit que la pédagogie demeure essentielle afin que les épargnants prennent des décisions cohérentes avec leurs objectifs patrimoniaux : une incitation fiscale ne doit jamais être l’unique motivation du choix d’un placement.



> « La fiscalité est un levier important dans les choix d’épargne des Français. Mais il est toujours bon de rappeler qu’un placement ne se juge pas uniquement à l’aune de son avantage fiscal : il doit avant tout répondre à un objectif patrimonial et s’inscrire dans une vision de long terme. »

**Catherine Baudeneau**, Directrice Marketing Offre et Communication d’Altaprofits



## L’investissement responsable en faveur d’une économie plus durable

L’importance du critère d’investissement responsable, qui consiste à orienter les placements vers les entreprises contribuant à une économie plus durable, est reconnue par une majorité de Français, mais beaucoup manquent encore de repères pour passer à l’action.

### Plus de 7 Français sur 10 reconnaissent au critère d’investissement responsable une certaine importance

73 % l’estiment « déterminant » (20 %) ou « important mais pas déterminant » (53 %) et il apparaît comme critère de sélection secondaire pour 27 % des sondés.

*Le caractère secondaire est plus fréquemment cité par les hommes (34 %, contre 22 % des femmes), les catégories professionnelles supérieures (34 %), les diplômés (31 % des titulaires d’un diplôme de 2e ou 3e cycle), les célibataires sans enfants (31 %) et les catégories aisées (37 %). À l’inverse, les étudiants (28 %), les catégories les plus modestes (27 %) et les ouvriers (26 %) sont davantage enclins à considérer l’investissement responsable comme un critère déterminant.*

Comparer par profil

Critère de sélection secondaire

Hommes 34 % Femmes 22 % Catégories professionnelles supérieures 34 % Titulaires d’un diplôme de 2e ou 3e cycle 31 % Célibataires sans enfants 31 % Catégories aisées 37 %



Critère déterminant

Étudiants 28 % Catégories les plus modestes 27 % Ouvriers 26 %







20 % 53 % 27 %

- **20 %** de Français reconnaissent au critère d'investissement responsable une importance déterminante
- **53 %** de Français reconnaissent au critère d'investissement responsable une importance certaine mais pas déterminante
- **27 %** de Français estiment ce critère secondaire



© Baromètre Ifop pour Altaprofits, 2026.

### La méconnaissance des différents indicateurs relatifs à l’investissement responsable constitue un frein structurel

La notoriété des différents indicateurs présentés relatifs à l’investissement responsable demeure minoritaire auprès du grand public bien qu’en progression : 31 % des Français déclarent connaître au moins un indicateur responsable, un score en hausse de 5 points par rapport à celui de 2025.

*Les hommes (35 %), les moins de 35 ans (39 %), les cadres (52 %), les diplômés du supérieur (48 %) et les hauts revenus (54 %) figurent parmi les publics les plus familiers des différents indicateurs d’investissement responsable.*

Plus en détail, les critères ESG (Environnementaux, Sociaux et de Gouvernance) arrivent en tête, connus par 23 % des Français (+ 3 points versus 2025) (dont 7 % voyant précisément ce dont il s’agit), suivis du label ISR (Investissement Socialement Responsable) connu par 22 % (+ 4 points par rapport à l’année dernière). Le label Greenfin et la classification SFDR sont toujours connus par moins d’1 Français sur 10 (respectivement, 9 % et 7 %, scores stables par rapport à 2025).

Comparer par profil

Hommes 35 % Moins de 35 ans 39 % Cadres 52 % Diplômés du supérieur 48 % Hauts revenus 54 %





Afficher l’évolution par rapport à 2025

1. Déclarent connaître au moins un indicateur responsable31 %un score en hausse de 5 points par rapport à celui de 2025
2. Déclarent connaître les critères ESG (Environnementaux, Sociaux et de Gouvernance)23 %dont 7 % voyant précisément ce dont il s’agit+ 3 points versus 2025
3. Déclarent connaître le label ISR (Investissement Socialement Responsable)22 %+ 4 points par rapport à l’année dernière
4. Déclarent connaître le label Greenfin9 %scores stables par rapport à 2025
5. Déclarent connaître la classification SFDR7 %scores stables par rapport à 2025

© Baromètre Ifop pour Altaprofits, 2026.

### Du côté de ceux qui considèrent que le critère d’investissement responsable est « important » ou « secondaire » mais pas « déterminant » dans leur choix de placement (soit 80 % de l’échantillon)

La principale raison évoquée demeure de loin le déficit d’information vis-à-vis de ces produits. 7 répondants sur 10 citent principalement des éléments ayant trait au manque d’informations pour justifier leur non-investissement dans ce type de produits (74 % - + 3 points vs 2025 -, dont 57 % en premier choix). Cela recouvre le fait de ne pas être suffisamment renseigné sur le sujet (pour 54 % des répondants, + 4 points par rapport à 2025), les craintes vis-à-vis des risques de ce type de placement (26 %, score stable), et vis-à-vis de son rendement (21 %, score stable).

En parallèle, 4 répondants sur 10 continuent de faire part d’une forme de défiance à l’égard de ces produits (40 %, en hausse de + 4 points versus 2025), exprimant notamment une crainte d’être victime de greenwashing (27 %, + 4 points versus 2025, particulièrement ceux les plus dotés en capital financier et éducatif) ou un manque de confiance envers les labels d’investissement responsable (19 %, stable).

*Le manque d’information est davantage exprimé par les 18-24 ans (82 %), les femmes (77 %) et les employés (79 %). Les cadres et professions intellectuelles supérieures (39 %), les diplômés de 2e et 3e cycles (47 %) ainsi que les hauts revenus (52 %) se montrent plus sensibles au risque de greenwashing.*

Enfin, près de 2 répondants sur 10 déclarent ne pas être intéressés par l’investissement responsable (18 %), une proportion stable par rapport à avril 2025.

*Les artisans, commerçants, les chefs d’entreprise (26 %) et les moins diplômés (22 %) sont surreprésentés sur ce point.*

Comparer par profil

Manque d’information

18-24 ans 82 % Femmes 77 % Employés 79 %



Risque de greenwashing

Cadres et professions intellectuelles supérieures 39 % Diplômés de 2e et 3e cycles 47 % Hauts revenus 52 %



Ne pas être intéressés par l’investissement responsable

Les artisans, commerçants, les chefs d’entreprise 26 % Moins diplômés 22 %







Estiment qu'il y a un déficit d’information vis-à-vis de ces produits74 %+dont 57 % en premier choix+ 3 points vs 2025

1. Estiment ne pas être suffisamment renseignés sur le sujet54 %+ 4 points par rapport à 2025
2. Ont des craintes vis-à-vis des risques de ce type de placement26 %score stable
3. Ont des craintes vis-à-vis de son rendement21 %score stable



Ont une forme de défiance à l’égard de ces produits40 %+en hausse de + 4 points versus 2025

1. Ont une crainte d’être victime de greenwashing27 %+ 4 points versus 2025
2. Ont un manque de confiance envers les labels d’investissement responsable19 %stable



Déclarent ne pas être intéressés par l’investissement responsable18 %+une proportion stable par rapport à avril 2025







© Baromètre Ifop pour Altaprofits, 2026.

### Les observations d’Altaprofits

L’étude met en évidence le niveau d’exigence des investisseurs les plus avertis. Chez les publics les plus dotés en capital financier et éducatif, le caractère responsable d’un placement ne suffit pas, à lui seul, à emporter la décision. Ces épargnants attendent des preuves tangibles de la qualité des méthodologies employées, de la réalité des impacts extra-financiers et de la robustesse des processus de sélection. Les inquiétudes plus marquées vis-à-vis du greenwashing chez ces populations traduisent moins un désintérêt à l’égard de l’investissement responsable qu’une défiance et une exigence accrue de transparence. Chez les publics plus jeunes ou moins familiers des marchés financiers, le critère responsable apparaît davantage comme un moteur d’adhésion. Le principal enjeu réside donc moins dans l’attractivité de ces placements que dans la capacité de l’ensemble des acteurs à rendre leurs promesses lisibles, comparables et démontrables, afin de permettre aux épargnants de mieux identifier leur impact réel.



> « Le défi de l’investissement responsable n’est plus de convaincre de son importance, mais d’apporter la preuve de son impact. Cela passe par une information claire, plus transparente et plus accessible aux épargnants. »

**Catherine Baudeneau**, Directrice Marketing Offre et Communication d’Altaprofits



## Les principaux enseignements en régions (versus les moyennes nationales)

La fiscalité de l’épargne L’investissement responsable

**HDF**Hauts-de-France **BRE**Bretagne **NOR**Normandie **IDF**Île-de-France **GES**Grand Est **PDL**Pays de la Loire **CVL**Centre-Val de Loire **BFC**Bourgogne-Franche-Comté **NAQ**Nouvelle-Aquitaine **ARA**Auvergne-Rhône-Alpes **OCC**Occitanie **PACA**Provence-Alpes-Côte d’Azur **COR**Corse

- Aucun enseignement
- 1
- 2
- 3 et plus



Toutes les régions

Voir toutes les régions



- **Occitanie, Pays de la Loire**L’Occitanie et les Pays de la Loire enregistrent les plus forts déficits de connaissance de la fiscalité de l’épargne (+ 7 et + 9 points).
- **Grand Est**Le Grand Est se distingue par le meilleur niveau déclaré de connaissance de la fiscalité (4 % de « très bon », + 3 points) et par une attention plus forte portée à la fiscalité dans les choix de placement (85 %, + 9 points).
- **Bourgogne-Franche-Comté**Au contraire, les habitants de Bourgogne-Franche-Comté sont les plus nombreux à considérer que la fiscalité ne compte pas dans leurs choix de placement (33 %, + 9 points).
- **Nouvelle-Aquitaine**En cas de hausse de la fiscalité de l’épargne, les résidents de Nouvelle-Aquitaine seraient les plus enclins à réduire leur effort d’épargne (28 %, + 8 points).
- **Île-de-France**Les Franciliens affichent le meilleur niveau de connaissance des indicateurs d’investissement responsable (41 %, + 10 points) mais aussi une sensibilité plus forte au risque de greenwashing (34 %, + 7 points).
- **Bretagne**Les Bretons sont les moins familiers des indicateurs d’investissement responsable (23 %, - 8 points), notamment des critères ESG (16 %, - 7 points) et du label ISR (14 %, - 8 points). Ils sont pourtant les plus nombreux à faire du critère responsable un élément déterminant de leurs choix de placement (29 %, + 9 points).
- **Nouvelle-Aquitaine**Les habitants de Nouvelle-Aquitaine expriment davantage de craintes quant au risque des investissements responsables (34 %, + 8 points).
- **Normandie**La Normandie se distingue par le plus faible niveau de désintérêt pour l’investissement responsable (10 %, - 8 points).
- **Grand Est**Dans le Grand Est, le manque d’information sur l’investissement responsable est moins marqué qu’ailleurs (44 %, - 10 points).
- **Centre-Val de Loire**Les habitants du Centre-Val de Loire sont les plus nombreux à considérer l’investissement responsable comme un critère important, sans qu’il soit déterminant (68 %, + 15 points).







## Tous les chiffres du baromètre 2026

© Baromètre Ifop pour Altaprofits, 2026.

Le comportement d’épargne des Français| Indicateur | 2026 | Évolution |
|---|---|---|
| La fréquence de placement des Français |
| Déclarent placer de l’argent sur leurs produits d’épargne | 81 % |  |
| Le font au moins une fois tous les six mois | 62 % |  |
| Au moins une fois par mois | 37 % |  |
| L’appétence au risque des Français : parmi ceux ayant déclaré posséder au moins un produit d’épargne (95 % de l’échantillon) |
| Déclarent avoir recours à des produits sans risque, même avec un faible rendement | 79 % | + 3 points par rapport à 2024 |
| Privilégient des produits « un peu risqués » avec un rendement espéré plus important | 18 % |  |
| Des produits risqués avec une chance d’obtenir un rendement important | 3 % | - 3 points vs 2023 |
| Les produits d’épargne des Français |
| Les livrets réglementés (Livret A, LDDS, PEL, …) | 75 % |  |
| Un contrat d’assurance vie ou de capitalisation | 27 % | + 3 points vs 2025 |
| Un Plan Épargne Retraite (PER) | 14 % |  |
| Un Plan Épargne en Actions (PEA) | 13 % |  |
| Des Sociétés Civiles de Placement Immobilier (SCPI) | 2 % |  |
| Immobilisation des liquidités sur un compte courant | 13 % | un bond de + 7 points vs 2024 |



La retraite dans un contexte de baisse majeure du pouvoir d’achat| Indicateur | 2026 | Évolution |
|---|---|---|
| Les actifs comptent de plus en plus exclusivement sur le système de retraite par répartition |
| Ne connaissent pas le montant qu’ils percevront au moment de la retraite | 7 actifs sur 10 |  |
| Anticipent une baisse de leur niveau de vie | 75 % | score en hausse de + 3 points vs avril 2025 et + 6 points vs 2024 |
| Estiment que leurs revenus proviendront en totalité du système de retraite par répartition | 43 % | une hausse de +15 points vs 2025 |
| Envisagent que leurs revenus pourraient majoritairement provenir du système de retraite par répartition actuel avec un complément par capitalisation issu de leur épargne ou placements financiers ou immobilier | 39 % | - 8 points vs 2025 |
| Considèrent que leurs revenus pourraient provenir à parts égales de leur pension de retraite et de leurs placements | 9 % | - 6 points vs 2025 |
| Que leurs revenus proviendront majoritairement de leur épargne ou bien de leurs placements financiers ou immobiliers | 9 % |  |
| Une France divisée en trois sur l’avenir de la réforme des retraites 2023 actuellement suspendue |
| Souhaitent qu’une autre réforme soit envisagée | 37 % |  |
| Voudraient que la réforme soit purement et simplement abrogée | 34 % |  |
| Estiment qu’il faudrait appliquer la réforme telle que prévue initialement | 29 % |  |
| Parmi les 37 % de Français souhaitant une réforme différente, une majorité claire émerge sur les leviers à privilégier |
| Cotiser davantage durant la vie active pour augmenter les recettes sans toucher à l’âge de départ à la durée de cotisation | Oui : 63 % / Non : 37 % |  |
| Travailler plus longtemps | Oui : 32 % / Non : 68 % |  |
| Baisser le niveau des pensions retraite pour inciter à capitaliser par eux-mêmes pour leur future retraite | Oui : 18 % / Non : 82 % |  |



Le financement de la défense nationale| Indicateur | 2026 | Évolution |
|---|---|---|
| Sont prêts à investir dans des fonds d’investissement ou des produits d’épargne destinés au financement de la défense nationale | 30 % |  |
| Sont réfractaires | 70 % |  |
| Parmi les Français qui sont plutôt réfractaires à investir dans des fonds d’investissement ou des produits d’épargne dédiés à la défense nationale |
| Cela doit relever de l’État et des impôts | 24 % |  |
| Placements trop risqués, peur de perdre de l’argent | 18 % |  |
| Aucune ou une autre raison | 16 % |  |
| Contraire à leurs principes éthiques | 15 % |  |
| Ne correspond pas à leurs attentes et besoins en matière d’épargne (durée de placement trop longue, montant minimal trop élevé à l’entrée) | 12 % |  |
| Doutent sur le rendement | 6 % |  |
| Non compatible avec une politique ESG | 5 % |  |
| N’ont pas les moyens | 4 % |  |



La fiscalité de l’épargne| Indicateur | 2026 | Évolution |
|---|---|---|
| Niveau de connaissance faible ou lacunaire (notes comprises entre 1 et 6 sur 10) | 87 % |  |
| Dont 31 % le qualifiant de très mauvais (notes comprises entre 1 et 2) | 31 % |  |
| Niveau de connaissance élevé (notes comprises entre 7 et 10) | 13 % |  |
| Dont à peine 1 % déclarant un niveau de connaissance très bon (notes comprises entre 9 et 10) | 1 % |  |
| Ceux qui déclarent placer régulièrement de l’argent |
| Considèrent que la fiscalité pèse dans leurs choix de placement | 76 % |  |
| Beaucoup | 27 % |  |
| Assez | 49 % |  |
| Dans l’hypothèse d’une hausse de la fiscalité sur l’épargne |
| Envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé | 46 % |  |
| Maintiendraient leur effort d’épargne tel qu’ils le font actuellement | 28 % |  |
| Le diminueraient | 20 % |  |
| L’augmenteraient | 6 % |  |



L’investissement responsable en faveur d’une économie plus durable| Indicateur | 2026 | Évolution |
|---|---|---|
| « Déterminant » | 20 % |  |
| « Important mais pas déterminant » | 53 % |  |
| Critère de sélection secondaire | 27 % |  |
| Déclarent connaître au moins un indicateur responsable | 31 % | un score en hausse de 5 points par rapport à celui de 2025 |
| Critères ESG (Environnementaux, Sociaux et de Gouvernance) | 23 % | + 3 points versus 2025 |
| Label ISR (Investissement Socialement Responsable) | 22 % | + 4 points par rapport à l’année dernière |
| Label Greenfin | 9 % | scores stables par rapport à 2025 |
| Classification SFDR | 7 % | scores stables par rapport à 2025 |
| Du côté de ceux qui considèrent que le critère d’investissement responsable est « important » ou « secondaire » mais pas « déterminant » dans leur choix de placement (soit 80 % de l’échantillon) |
| Éléments ayant trait au manque d’informations (dont 57 % en premier choix) | 74 % | + 3 points vs 2025 |
| Ne pas être suffisamment renseigné sur le sujet | 54 % | + 4 points par rapport à 2025 |
| Les craintes vis-à-vis des risques de ce type de placement | 26 % | score stable |
| … et vis-à-vis de son rendement | 21 % | score stable |
| Une forme de défiance à l’égard de ces produits | 40 % | en hausse de + 4 points versus 2025 |
| Une crainte d’être victime de greenwashing | 27 % | + 4 points versus 2025 |
| Un manque de confiance envers les labels d’investissement responsable | 19 % | stable |
| Ne pas être intéressés par l’investissement responsable | 18 % | une proportion stable par rapport à avril 2025 |









Sourçage

Toute publication totale ou partielle doit impérativement utiliser la mention complète suivante : « Baromètre Ifop pour Altaprofits, 2026 » et aucune reprise de l’enquête ne pourra être dissociée de cet intitulé.



- [Baromètre 2026 de l’Épargne en France et en régions, deuxième volet PDF](https://espace.altaprofits.com/documentation/pdf/ESPACEPRESSE/septembre-2026/CP-IFOP-Altaprofits-Barometre2026-fiscalite-et-ir.pdf)
- [Baromètre 2026 de L’Épargne en France et en régionsPDF](https://espace.altaprofits.com/documentation/pdf/ESPACEPRESSE/juin%202026/CP-IFOP-Altaprofits-Barometre2026-National.pdf)

Pour aller plus loin

- [Altaprofits Vie Assurance vie](https://www.altaprofits.com/assurance-vie/assurance-vie-generali)
- [e-PER Generali Retraite](https://www.altaprofits.com/plan-epargne-retraite/e-per-generali)
- [Notre sélection de SCPI SCPI](https://www.altaprofits.com/notre-offre-financiere/investir-dans-l-immobilier/nos-scpi)
- [Nos engagements durables Nous connaître](https://www.altaprofits.com/nous-connaitre/nos-engagements-durables)





## Questions fréquentes sur le baromètre 2026

Dans quel contexte s’inscrit le Baromètre 2026 de l’épargne en France et en régions ?Cette 8e édition s’inscrit dans un double contexte :

\- de tensions : une instabilité politique et des contraintes budgétaires en France, un climat international dégradé par la guerre commerciale de Donald Trump et le conflit au Moyen-Orient, avec un impact direct sur le pouvoir d’achat des Français,

\- de campagne présidentielle 2027 : les débats sur les finances publiques, le pouvoir d’achat, la fiscalité, le financement de l’économie et la transition écologique devraient progressivement s’intensifier.



Comment l’enquête a-t-elle été réalisée ?Le « Baromètre 2026 de l’Épargne en France et en régions » a été réalisé par Ifop du 30 mars au 8 avril 2026, auprès d’un échantillon de 2 412 personnes, représentatif de la population française âgée de 18 ans et plus, et constitué selon la méthode des quotas (sexe, âge, profession de la personne interrogée) après stratification par région et catégorie d’agglomération. Les interviews ont été réalisées par questionnaire auto-administré en ligne.



Quels sont les produits d’épargne des Français ?Les livrets réglementés (Livret A, LDDS, PEL, …) : 75 %. Un contrat d’assurance vie ou de capitalisation : 27 % (+ 3 points vs 2025). Un Plan Épargne Retraite (PER) : 14 %. Un Plan Épargne en Actions (PEA) : 13 %. Des Sociétés Civiles de Placement Immobilier (SCPI) : 2 %. Immobilisation des liquidités sur un compte courant : 13 % (un bond de + 7 points vs 2024).



Quelle est l’appétence au risque des Français ?Parmi ceux ayant déclaré posséder au moins un produit d’épargne (95 % de l’échantillon) : 79 % déclarent avoir recours à des produits sans risque, même avec un faible rendement (+ 3 points par rapport à 2024) ; 18 % privilégient des produits « un peu risqués » avec un rendement espéré plus important ; 3 % des produits risqués avec une chance d’obtenir un rendement important (- 3 points vs 2023).



Comment les actifs envisagent-ils leur retraite ?7 actifs sur 10 ne connaissent pas le montant qu’ils percevront au moment de la retraite. 75 % anticipent une baisse de leur niveau de vie (score en hausse de + 3 points vs avril 2025 et + 6 points vs 2024). 43 % estiment que leurs revenus proviendront en totalité du système de retraite par répartition (une hausse de +15 points vs 2025).



Les Français sont-ils prêts à investir dans la défense nationale ?30 % des Français sont prêts à investir une partie de leurs économies dans des fonds d’investissement ou des produits d’épargne destinés au financement de la défense nationale. 70 % des Français y sont plutôt réfractaires.



Les Français connaissent-ils la fiscalité de l’épargne ?Les Français reconnaissent très largement mal connaître la fiscalité de l’épargne : 87 % d’entre eux estiment avoir un niveau de connaissance faible ou lacunaire en la matière (notes comprises entre 1 et 6 sur 10), dont 31 % le qualifiant de très mauvais (notes comprises entre 1 et 2). Ils sont pourtant près de trois sur quatre à considérer que la fiscalité de l’épargne influence leurs décisions : 76 % de ceux qui déclarent placer régulièrement de l’argent considèrent que la fiscalité pèse dans leurs choix de placement, dont 27 % beaucoup et 49 % assez.



Que feraient les épargnants face à une hausse de la fiscalité de l’épargne ?Dans l’hypothèse d’une hausse de la fiscalité sur l’épargne, la réaction majoritairement anticipée serait la réorientation, et non le repli : 46 % envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé — une réaction d’optimisation qui témoigne d’une certaine flexibilité comportementale face à la pression fiscale —. 28 % maintiendraient leur effort d’épargne tel qu’ils le font actuellement, 20 % le diminueraient et 6 % l’augmenteraient.



Quelle place les Français accordent-ils à l’investissement responsable ?73 % des Français reconnaissent au critère d’investissement responsable une certaine importance, mais il n’apparaît comme critère de sélection déterminant que pour une minorité (20 %). La notoriété des différents indicateurs présentés relatifs à l’investissement responsable demeure minoritaire auprès du grand public bien qu’en progression : 31 % des Français déclarent connaître au moins un indicateur responsable, un score en hausse de 5 points par rapport à celui de 2025.



Comment citer le baromètre ?Toute publication totale ou partielle doit impérativement utiliser la mention complète suivante : « Baromètre Ifop pour Altaprofits, 2026 » et aucune reprise de l’enquête ne pourra être dissociée de cet intitulé.










{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.altaprofits.com/#organization",
      "name": "Altaprofits",
      "url": "https://www.altaprofits.com",
      "foundingDate": "1999",
      "description": "Altaprofits est Courtier et Conseil en Gestion de Patrimoine sur Internet depuis 1999.",
      "telephone": "+33 1 44 77 12 14",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "35-37, rue de Rome",
        "postalCode": "75008",
        "addressLocality": "Paris",
        "addressCountry": "FR"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://www.ifop.com/#organization",
      "name": "Ifop",
      "url": "https://www.ifop.com"
    },
    {
      "@type": "Person",
      "@id": "https://www.altaprofits.com/#catherine-baudeneau",
      "name": "Catherine Baudeneau",
      "jobTitle": "Directrice Marketing Offre et Communication",
      "worksFor": {
        "@id": "https://www.altaprofits.com/#organization"
      }
    },
    {
      "@type": "Article",
      "headline": "Baromètre 2026 de l’Épargne en France et en régions",
      "description": "Altaprofits dévoile le deuxième volet de son « Baromètre 2026 de l’épargne en France et en régions » réalisé par Ifop afin de mesurer les attentes, les perceptions et les intentions des Français sur deux sujets appelés à nourrir le débat public : la fiscalité de l’épargne et l’investissement responsable.",
      "datePublished": "2026-09-08",
      "dateModified": "2026-09-08",
      "inLanguage": "fr-FR",
      "author": {
        "@id": "https://www.altaprofits.com/#organization"
      },
      "publisher": {
        "@id": "https://www.altaprofits.com/#organization"
      },
      "contributor": {
        "@id": "https://www.ifop.com/#organization"
      },
      "mentions": [
        {
          "@id": "https://www.altaprofits.com/#catherine-baudeneau"
        }
      ],
      "isBasedOn": [
        "https://www.altaprofits.com/documentation/pdf/ESPACEPRESSE/juin%202026/CP-IFOP-Altaprofits-Barometre2026-National.pdf"
      ],
      "about": [
        "Épargne des Français",
        "Assurance vie",
        "Retraite par répartition",
        "Fiscalité de l’épargne",
        "Investissement responsable"
      ]
    },
    {
      "@type": "Dataset",
      "name": "Baromètre Ifop pour Altaprofits, 2026",
      "alternateName": "Baromètre 2026 de l’Épargne en France et en régions",
      "description": "Le « Baromètre 2026 de l’Épargne en France et en régions » a été réalisé par Ifop du 30 mars au 8 avril 2026, auprès d’un échantillon de 2 412 personnes, représentatif de la population française âgée de 18 ans et plus, et constitué selon la méthode des quotas (sexe, âge, profession de la personne interrogée) après stratification par région et catégorie d’agglomération. Les interviews ont été réalisées par questionnaire auto-administré en ligne.",
      "creator": [
        {
          "@id": "https://www.ifop.com/#organization"
        },
        {
          "@id": "https://www.altaprofits.com/#organization"
        }
      ],
      "temporalCoverage": "2026-03-30/2026-04-08",
      "spatialCoverage": {
        "@type": "Place",
        "name": "France"
      },
      "measurementTechnique": "Questionnaire auto-administré en ligne, méthode des quotas (sexe, âge, profession de la personne interrogée) après stratification par région et catégorie d’agglomération.",
      "variableMeasured": [
        {
          "@type": "PropertyValue",
          "name": "Déclarent placer de l’argent sur leurs produits d’épargne",
          "value": 81,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Déclarent avoir recours à des produits sans risque, même avec un faible rendement",
          "value": 79,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Les livrets réglementés (Livret A, LDDS, PEL, …)",
          "value": 75,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Un contrat d’assurance vie ou de capitalisation",
          "value": 27,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Un Plan Épargne Retraite (PER)",
          "value": 14,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Immobilisation des liquidités sur un compte courant",
          "value": 13,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Estiment que leurs revenus proviendront en totalité du système de retraite par répartition",
          "value": 43,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Anticipent une baisse de leur niveau de vie",
          "value": 75,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Sont prêts à investir dans le financement de la défense nationale",
          "value": 30,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Niveau de connaissance faible ou lacunaire de la fiscalité de l’épargne",
          "value": 87,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Considèrent que la fiscalité pèse dans leurs choix de placement",
          "value": 76,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé",
          "value": 46,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Reconnaissent au critère d’investissement responsable une certaine importance",
          "value": 73,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Critère d’investissement responsable « déterminant »",
          "value": 20,
          "unitText": "pourcentage"
        },
        {
          "@type": "PropertyValue",
          "name": "Déclarent connaître au moins un indicateur responsable",
          "value": 31,
          "unitText": "pourcentage"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Qu’est-ce que le Baromètre 2026 de l’Épargne en France et en régions ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Avec l’ouverture de la campagne présidentielle 2027, les débats sur les finances publiques, le pouvoir d’achat, la fiscalité, le financement de l’économie et la transition écologique devraient progressivement s’intensifier. Dans ce contexte, Altaprofits dévoile le deuxième volet de son « Baromètre 2026 de l’épargne en France et en régions » réalisé par Ifop afin de mesurer les attentes, les perceptions et les intentions des Français sur deux sujets appelés à nourrir le débat public : la fiscalité de l’épargne et l’investissement responsable."
          }
        },
        {
          "@type": "Question",
          "name": "Comment l’enquête a-t-elle été réalisée ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Le « Baromètre 2026 de l’Épargne en France et en régions » a été réalisé par Ifop du 30 mars au 8 avril 2026, auprès d’un échantillon de 2 412 personnes, représentatif de la population française âgée de 18 ans et plus, et constitué selon la méthode des quotas (sexe, âge, profession de la personne interrogée) après stratification par région et catégorie d’agglomération. Les interviews ont été réalisées par questionnaire auto-administré en ligne."
          }
        },
        {
          "@type": "Question",
          "name": "Quels sont les produits d’épargne des Français ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Les livrets réglementés (Livret A, LDDS, PEL, …) : 75 %. Un contrat d’assurance vie ou de capitalisation : 27 % (+ 3 points vs 2025). Un Plan Épargne Retraite (PER) : 14 %. Un Plan Épargne en Actions (PEA) : 13 %. Des Sociétés Civiles de Placement Immobilier (SCPI) : 2 %. Immobilisation des liquidités sur un compte courant : 13 % (un bond de + 7 points vs 2024)."
          }
        },
        {
          "@type": "Question",
          "name": "Quelle est l’appétence au risque des Français ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Parmi ceux ayant déclaré posséder au moins un produit d’épargne (95 % de l’échantillon) : 79 % déclarent avoir recours à des produits sans risque, même avec un faible rendement (+ 3 points par rapport à 2024) ; 18 % privilégient des produits « un peu risqués » avec un rendement espéré plus important ; 3 % des produits risqués avec une chance d’obtenir un rendement important (- 3 points vs 2023)."
          }
        },
        {
          "@type": "Question",
          "name": "Comment les actifs envisagent-ils leur retraite ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "7 actifs sur 10 ne connaissent pas le montant qu’ils percevront au moment de la retraite. 75 % anticipent une baisse de leur niveau de vie (score en hausse de + 3 points vs avril 2025 et + 6 points vs 2024). 43 % estiment que leurs revenus proviendront en totalité du système de retraite par répartition (une hausse de +15 points vs 2025)."
          }
        },
        {
          "@type": "Question",
          "name": "Les Français sont-ils prêts à investir dans la défense nationale ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "30 % des Français sont prêts à investir dans le financement de la défense nationale. 70 % des Français sont réfractaires à investir dans le financement de la défense nationale."
          }
        },
        {
          "@type": "Question",
          "name": "Les Français connaissent-ils la fiscalité de l’épargne ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Les Français reconnaissent très largement mal connaître la fiscalité de l’épargne : 87 % d’entre eux estiment avoir un niveau de connaissance faible ou lacunaire en la matière (notes comprises entre 1 et 6 sur 10), dont 31 % le qualifiant de très mauvais (notes comprises entre 1 et 2). Ils sont pourtant près de trois sur quatre à considérer que la fiscalité de l’épargne influence leurs décisions : 76 % de ceux qui déclarent placer régulièrement de l’argent considèrent que la fiscalité pèse dans leurs choix de placement, dont 27 % beaucoup et 49 % assez."
          }
        },
        {
          "@type": "Question",
          "name": "Que feraient les épargnants face à une hausse de la fiscalité de l’épargne ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dans l’hypothèse d’une hausse de la fiscalité sur l’épargne, la réaction majoritairement anticipée serait la réorientation, et non le repli : 46 % envisageraient alors de réallouer leur épargne vers un dispositif plus avantageux, moins taxé — une réaction d’optimisation qui témoigne d’une certaine flexibilité comportementale face à la pression fiscale —. 28 % maintiendraient leur effort d’épargne tel qu’ils le font actuellement, 20 % le diminueraient et 6 % l’augmenteraient."
          }
        },
        {
          "@type": "Question",
          "name": "Quelle place les Français accordent-ils à l’investissement responsable ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "73 % des Français reconnaissent au critère d’investissement responsable une certaine importance, mais il n’apparaît comme critère de sélection primordial que pour une minorité (20 %). La notoriété des différents indicateurs présentés relatifs à l’investissement responsable demeure minoritaire auprès du grand public bien qu’en progression : 31 % des Français déclarent connaître au moins un indicateur responsable, un score en hausse de 5 points par rapport à celui de 2025."
          }
        },
        {
          "@type": "Question",
          "name": "Comment citer le baromètre ?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Toute publication totale ou partielle doit impérativement utiliser la mention complète suivante : « Baromètre Ifop pour Altaprofits, 2026 » et aucune reprise de l’enquête ne pourra être dissociée de cet intitulé."
          }
        }
      ]
    }
  ]
}

/* Baromètre 2026 – interactions. Vanilla JS, aucune dépendance.
   Conçu pour résister à l'éditeur CKEditor 5 de Drupal : tous les éléments décoratifs
   (barres, SVG, pastilles, pictogrammes) sont créés ici ; chaque composant retrouve
   ses propres éléments où qu'ils soient ; chaque module est isolé (une erreur n'arrête
   pas les autres) ; sans script, tout le contenu et les chiffres restent visibles. */
(function () {
  'use strict';
  var root = document.getElementById('barometre-epargne-2026');
  if (!root || root.classList.contains('apb--js')) return;
  root.classList.add('apb--js');

  var RM = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
  var NS = 'http://www.w3.org/2000/svg';
  function $(s, c) { return (c || root).querySelector(s); }
  function $$(s, c) { return Array.prototype.slice.call((c || root).querySelectorAll(s)); }
  function pct(v) { return String(v).replace('.', ',') + '\u00a0%'; }
  function el(tag, cls, parent, before) { var e = document.createElement(tag); if (cls) e.className = cls; if (parent) parent.insertBefore(e, before || null); return e; }
  function svgEl(tag, attrs, parent) { var e = document.createElementNS(NS, tag); for (var k in attrs) e.setAttribute(k, attrs[k]); if (parent) parent.appendChild(e); return e; }
  function press(list, on) { list.forEach(function (b) { b.setAttribute('aria-pressed', b === on ? 'true' : 'false'); }); }
  function num(t) { var m = String(t || '').replace(/\s/g, '').replace(',', '.').match(/-?\d+(\.\d+)?/); return m ? parseFloat(m[0]) : NaN; }
  function chipLabel(ch) { var c = ch.cloneNode(true); var s = c.querySelector('span'); if (s) s.parentNode.removeChild(s); return c.textContent.replace(/\s+/g, ' ').trim(); }
  function safe(name, fn) { try { fn(); } catch (e) { if (window.console && console.warn) console.warn('[Baromètre 2026] module « ' + name + ' » :', e); } }
  /* Valeur d'une barre : variable --v du style, sinon data-v, sinon chiffre affiché */
  function valOf(node, textSel) {
    var v = parseFloat(node.style.getPropertyValue('--v'));
    if (isNaN(v)) v = parseFloat(node.getAttribute('data-v'));
    if (isNaN(v) && textSel) { var t = $(textSel, node); v = num(t && t.textContent); }
    if (!isNaN(v)) node.style.setProperty('--v', v);
    return v;
  }

  /* Animations à l'apparition : un élément n'est masqué QUE s'il est pris en charge ici */
  var pending = [];
  var io = (!RM && 'IntersectionObserver' in window) ? new IntersectionObserver(function (entries) {
    entries.forEach(function (e) { if (e.isIntersecting) { io.unobserve(e.target); reveal(e.target); } });
  }, { threshold: 0.12 }) : null;
  function reveal(t) {
    if (t._apbDone) return; t._apbDone = true;
    t.classList.remove('apb-pending'); t.classList.add('is-in');
    if (t._apbIn) safe('animation', t._apbIn);
  }
  function whenIn(t, fn) {
    if (t._apbDone) { if (fn) safe('animation', fn); return; }
    if (fn) t._apbIn = fn;
    if (io) { if (pending.indexOf(t) < 0) { t.classList.add('apb-pending'); pending.push(t); io.observe(t); } }
    else reveal(t);
  }
  function replay(t) {
    if (RM) return;
    t.classList.add('apb-pending'); void t.offsetWidth;
    requestAnimationFrame(function () { requestAnimationFrame(function () { t.classList.remove('apb-pending'); }); });
  }
  /* Filet de sécurité : ce qui est à l'écran est toujours affiché, même si l'observateur échoue */
  var guard = setInterval(function () {
    pending = pending.filter(function (t) {
      if (t._apbDone) return false;
      var r = t.getBoundingClientRect();
      if (r.bottom > 0 && r.top < (window.innerHeight || 800)) { reveal(t); return false; }
      return true;
    });
    if (!pending.length) clearInterval(guard);
  }, 900);

  /* Nettoyage de ce que l'éditeur WYSIWYG ajoute (paragraphes autour des boutons, paragraphes vides) */
  safe('nettoyage', function () {
    var TEXT = /\bapb-(block__text|faq__a|wrap|hero__text|meth|obs|intro|mention|lede)\b/;
    $$('p').forEach(function (p) {
      if (p.className || !p.parentNode) return;
      var parent = p.parentNode, pc = (parent.className && parent.className.baseVal === undefined) ? parent.className : '';
      var txt = p.textContent.replace(/\u00a0/g, ' ').trim();
      if (!txt && !p.querySelector('*:not(br)')) { parent.removeChild(p); return; }
      var ownText = Array.prototype.some.call(p.childNodes, function (n) { return n.nodeType === 3 && n.textContent.replace(/\u00a0/g, ' ').trim(); });
      var onlyCtrl = !ownText && p.children.length && Array.prototype.every.call(p.children, function (c) { return c.tagName === 'BUTTON' || c.tagName === 'BR' || /\bapb-/.test(c.className); });
      var inComponent = /\bapb-/.test(pc) && !TEXT.test(pc);
      if (onlyCtrl || inComponent) { while (p.firstChild) parent.insertBefore(p.firstChild, p); parent.removeChild(p); }
    });
  });

  /* Pleine largeur : le bloc sort du conteneur étroit du thème (désactivable : data-bleed="false") */
  function bleed() {
    if (root.getAttribute('data-bleed') === 'false') return;
    var vw = document.documentElement.clientWidth;
    root.style.marginLeft = '0px'; root.style.marginRight = '0px'; root.style.width = '';
    var r = root.getBoundingClientRect();
    if (Math.abs(r.left) < 1 && Math.abs(r.width - vw) < 1) return;
    root.style.width = vw + 'px';
    root.style.maxWidth = 'none';
    root.style.marginLeft = (-r.left) + 'px';
    root.style.marginRight = '0px';
  }
  safe('pleine largeur', bleed);
  var bleedT; window.addEventListener('resize', function () { clearTimeout(bleedT); bleedT = setTimeout(bleed, 60); });

  /* Titre de page Drupal en double : masqué s'il reprend le H1 du bloc (désactivable : data-hide-page-title="false") */
  safe('titre en double', function () {
    if (root.getAttribute('data-hide-page-title') === 'false') return;
    var own = root.querySelector('h1'); if (!own) return;
    var key = function (t) { return (t || '').normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[’']/g, "'").replace(/\s+/g, ' ').trim().toLowerCase(); };
    var k = key(own.textContent);
    Array.prototype.forEach.call(document.querySelectorAll('h1'), function (h) {
      if (!root.contains(h) && key(h.textContent) === k) { h.style.display = 'none'; h.setAttribute('data-apb-hidden-title', ''); }
    });
  });;

  safe('info-bulles', function () {
  /* Info-bulle ---------------------------------------------------------- */
  var tip = document.createElement('div');
  tip.className = 'apb-tip';
  tip.setAttribute('aria-hidden', 'true');
  root.appendChild(tip);
  function showTip(text, x, y) {
    if (!text) return hideTip();
    tip.textContent = text;
    tip.classList.add('is-on');
    var w = tip.offsetWidth, h = tip.offsetHeight;
    var left = Math.max(8, Math.min(window.innerWidth - w - 8, x - w / 2));
    var top = y - h - 14; if (top < 8) top = y + 22;
    tip.style.left = left + 'px'; tip.style.top = top + 'px';
  }
  function hideTip() { tip.classList.remove('is-on'); }
  function tipOf(e) { var t = e.target && e.target.closest ? e.target.closest('[data-tip]') : null; return t && root.contains(t) ? t : null; }
  root.addEventListener('pointermove', function (e) { var t = tipOf(e); if (t) showTip(t.getAttribute('data-tip'), e.clientX, e.clientY); else hideTip(); });
  root.addEventListener('pointerdown', function (e) { var t = tipOf(e); if (t) showTip(t.getAttribute('data-tip'), e.clientX, e.clientY); });
  root.addEventListener('pointerleave', hideTip);
  root.addEventListener('focusin', function (e) { var t = tipOf(e); if (t) { var r = t.getBoundingClientRect(); showTip(t.getAttribute('data-tip'), r.left + r.width / 2, r.top); } });
  root.addEventListener('focusout', hideTip);
  window.addEventListener('scroll', hideTip, { passive: true });

  });

  /* Éléments graphiques créés à l'exécution (aucun élément vide dans le HTML) */
  function track(host, before) { var t = el('span', 'apb-bar__track', host, before); var f = el('span', 'apb-bar__fill', t); el('span', 'apb-bar__gain', f); return t; }
  safe('barres', function () {
    $$('.apb-bar').forEach(function (li) {
      if ($('.apb-bar__track', li)) return;
      valOf(li, '.apb-bar__val');
      var d = parseFloat(li.style.getPropertyValue('--d')); if (isNaN(d)) li.style.setProperty('--d', 0);
      var val = $('.apb-bar__val', li);
      track(li, val ? val.nextSibling : null);
    });
    $$('.apb-group__head').forEach(function (h) {
      if ($('.apb-bar__track', h)) return;
      valOf(h, '.apb-group__v');
      var ref = $('.apb-group__x', h) || $('.apb-group__v', h);
      track(h, ref ? ref.nextSibling : null);
    });
  });
  safe('connaissance', function () {
    $$('.apb-know').forEach(function (k) {
      if ($('.apb-know__bar', k)) return;
      var g = function (a) { return k.getAttribute(a) || ''; };
      var lo = num(g('data-low')), lod = num(g('data-low-deep')), hi = num(g('data-high')), hid = num(g('data-high-deep'));
      if (isNaN(lo) || isNaN(hi)) return;
      var bar = el('div', 'apb-know__bar', k, k.firstChild);
      var a = el('div', 'apb-know__low', bar); a.style.flex = lo + ' 1 0'; a.setAttribute('data-tip', g('data-tip-low'));
      var ai = el('i', '', a); ai.style.width = (lod / lo * 100) + '%'; ai.setAttribute('data-tip', g('data-tip-low-deep'));
      var b = el('div', 'apb-know__high', bar); b.style.flex = hi + ' 1 0'; b.setAttribute('data-tip', g('data-tip-high'));
      var bi = el('i', '', b); bi.style.width = (hid / hi * 100) + '%'; bi.setAttribute('data-tip', g('data-tip-high-deep'));
    });
  });
  safe('barres oui-non', function () {
    $$('.apb-div__yes, .apb-div__no').forEach(function (b) {
      valOf(b);
      if (b.firstElementChild) return;
      var s = document.createElement('span'); while (b.firstChild) s.appendChild(b.firstChild); b.appendChild(s);
    });
  });

  /* Cadran du baromètre (hero) ------------------------------------------ */
  safe('cadran', function () {
    var d = $('.apb-dial'); if (!d) return;
    var svg = $('.apb-dial__svg', d);
    if (!svg) {
      svg = svgEl('svg', { 'class': 'apb-dial__svg', viewBox: '0 0 320 184', role: 'img', 'aria-label': 'Cadran indiquant le chiffre clé sélectionné sur une échelle de 0 à 100 %' });
      d.insertBefore(svg, d.firstChild);
      svgEl('path', { 'class': 'apb-dial__track', d: 'M20 164 A140 140 0 0 1 300 164' }, svg);
      svgEl('path', { 'class': 'apb-dial__prog', d: 'M20 164 A140 140 0 0 1 300 164' }, svg);
      svgEl('g', { 'class': 'apb-dial__ticks' }, svg);
      var nd = svgEl('g', { 'class': 'apb-dial__needle' }, svg);
      svgEl('line', { x1: 160, y1: 164, x2: 160, y2: 62 }, nd);
      svgEl('circle', { cx: 160, cy: 164, r: 9 }, nd);
    }
    var needle = $('.apb-dial__needle', d), prog = $('.apb-dial__prog', d), out = $('.apb-dial__value', d);
    var items = $$('.apb-dial__list li', d), tabs = $$('.apb-dial__tab', d), ticks = $('.apb-dial__ticks', d);
    var cx = 160, cy = 164, r = 140;
    for (var i = 0; i <= 20; i++) {
      var a = Math.PI * (1 - i / 20), major = i % 5 === 0, r2 = r - (major ? 32 : 25);
      svgEl('line', { x1: (cx + (r - 15) * Math.cos(a)).toFixed(2), y1: (cy - (r - 15) * Math.sin(a)).toFixed(2),
        x2: (cx + r2 * Math.cos(a)).toFixed(2), y2: (cy - r2 * Math.sin(a)).toFixed(2), 'class': major ? 'is-major' : '' }, ticks);
      if (major) { var t = svgEl('text', { x: (cx + (r - 46) * Math.cos(a)).toFixed(2), y: (cy - (r - 46) * Math.sin(a) + 4).toFixed(2) }, ticks); t.textContent = i * 5; }
    }
    var L = prog.getTotalLength ? prog.getTotalLength() : Math.PI * r;
    prog.style.strokeDasharray = L + ' ' + L; prog.style.strokeDashoffset = L;
    var cur = 0, raf = 0;
    function count(to) {
      if (!out) return;
      cancelAnimationFrame(raf);
      if (RM) { cur = to; out.textContent = pct(to); return; }
      var from = cur, t0 = null;
      function step(ts) {
        if (t0 === null) t0 = ts;
        var k = Math.min(1, (ts - t0) / 1100); k = 1 - Math.pow(1 - k, 3);
        cur = Math.round(from + (to - from) * k); out.textContent = pct(cur);
        if (k < 1) raf = requestAnimationFrame(step);
      }
      raf = requestAnimationFrame(step);
    }
    function set(i) {
      if (!items[i]) return;
      var v = num(items[i].getAttribute('data-v'));
      press(tabs, tabs[i]);
      items.forEach(function (li, j) { li.hidden = j !== i; });
      needle.style.transform = 'rotate(' + (v * 1.8 - 90) + 'deg)';
      prog.style.strokeDashoffset = L * (1 - v / 100);
      count(v);
    }
    tabs.forEach(function (b, i) { b.addEventListener('click', function () { set(i); }); });
    items.forEach(function (li, j) { li.hidden = j !== 0; });
    if (out) out.textContent = pct(0);
    setTimeout(function () { set(0); }, RM ? 0 : 400);
  });

  /* Anneaux (donut) et cercles concentriques ---------------------------- */
  function arcChart(wrap, rings) {
    var chart = $('.apb-donut__chart', wrap); if (!chart) return;
    var svg = $('svg', chart);
    if (!svg) { svg = svgEl('svg', { viewBox: rings ? '0 0 200 200' : '0 0 160 160', 'aria-hidden': 'true' }); chart.insertBefore(svg, chart.firstChild); }
    var btns = $$('.apb-leg', wrap), cv = $('[data-dv]', wrap), cl = $('[data-dl]', wrap), arcs = [];
    function label(b) { var t = $('.apb-leg__t', b); return (t ? t.textContent : '').replace(/\s+/g, ' ').trim(); }
    if (rings) {
      var radii = [84, 63, 42];
      btns.forEach(function (b, i) {
        var R = radii[i] || 30, C = 2 * Math.PI * R, v = num(b.getAttribute('data-v'));
        svgEl('circle', { cx: 100, cy: 100, r: R, 'class': 'apb-ring-track' }, svg);
        var a = svgEl('circle', { cx: 100, cy: 100, r: R, 'class': 'apb-ring', transform: 'rotate(-90 100 100)', 'data-tip': label(b) + ' : ' + pct(v) }, svg);
        a.style.stroke = b.getAttribute('data-c'); a.style.strokeDasharray = '0 ' + C;
        a._len = v / 100 * C; a._C = C; arcs.push(a);
      });
    } else {
      var R = 62, C = 2 * Math.PI * R, gap = 2, off = 0;
      var total = btns.reduce(function (s, b) { return s + num(b.getAttribute('data-v')); }, 0);
      svgEl('circle', { cx: 80, cy: 80, r: R, 'class': 'apb-arc-track' }, svg);
      btns.forEach(function (b) {
        var v = num(b.getAttribute('data-v')), share = v / total * C;
        var a = svgEl('circle', { cx: 80, cy: 80, r: R, 'class': 'apb-arc', transform: 'rotate(-90 80 80)', 'stroke-dashoffset': (-off).toFixed(2), 'data-tip': label(b) + ' : ' + pct(v) }, svg);
        a.style.stroke = b.getAttribute('data-c'); a.style.strokeDasharray = '0 ' + C;
        a._len = Math.max(0.6, share - gap); a._C = C; off += share; arcs.push(a);
      });
    }
    function activate(i) {
      btns.forEach(function (b, j) { b.classList.toggle('is-active', j === i); b.setAttribute('aria-pressed', j === i ? 'true' : 'false'); });
      arcs.forEach(function (a, j) { a.classList.toggle('is-active', j === i); });
      wrap.classList.add('has-active');
      if (cv) cv.textContent = pct(num(btns[i].getAttribute('data-v')));
      if (cl) cl.textContent = btns[i].getAttribute('data-short') || '';
    }
    btns.forEach(function (b, i) {
      ['click', 'mouseenter', 'focus'].forEach(function (ev) { b.addEventListener(ev, function () { activate(i); }); });
    });
    arcs.forEach(function (a, i) { ['click', 'mouseenter'].forEach(function (ev) { a.addEventListener(ev, function () { activate(i); }); }); });
    whenIn(wrap, function () { arcs.forEach(function (a) { a.style.strokeDasharray = a._len.toFixed(2) + ' ' + a._C.toFixed(2); }); });
    if (btns.length) activate(0);
  }
  $$('[data-donut]').forEach(function (w) { safe('anneau', function () { arcChart(w, false); }); });
  $$('[data-rings]').forEach(function (w) { safe('cercles', function () { arcChart(w, true); }); });

  /* Comparateur de profils ---------------------------------------------- */
  $$('.apb-cmp').forEach(function (box) { safe('comparateur', function () {
    var chips = $$('.apb-chip', box); if (!chips.length) return;
    var viz = document.createElement('div');
    viz.className = 'apb-cmp__viz'; viz.setAttribute('aria-live', 'polite');
    function row(k) { return '<div class="apb-cmp__row apb-cmp__row--' + k + '"><span class="apb-cmp__l">\u00a0<span class="apb-cmp__track"><span class="apb-cmp__fill"><b class="apb-cmp__v">\u00a0'; }
    viz.innerHTML = '<p class="apb-cmp__metric">\u00a0' + row('sel') + row('ref');
    var note = null; $$('.apb-note', box).forEach(function (n) { if (n.parentNode === box) note = n; });
    box.insertBefore(viz, note);
    var m = $('.apb-cmp__metric', viz), rs = $('.apb-cmp__row--sel', viz), rr = $('.apb-cmp__row--ref', viz);
    function fill(r, lab, v) { $('.apb-cmp__l', r).textContent = lab; $('.apb-cmp__fill', r).style.setProperty('--v', v); $('.apb-cmp__v', r).textContent = pct(v); }
    function pick(ch) {
      press(chips, ch);
      var g = ch.closest('[data-metric]') || box;
      m.textContent = g.getAttribute('data-metric') || '';
      fill(rs, chipLabel(ch), num(ch.getAttribute('data-v')));
      fill(rr, g.getAttribute('data-ref-label') || 'Total', num(g.getAttribute('data-ref')));
    }
    chips.forEach(function (ch) { ch.addEventListener('click', function () { pick(ch); }); });
    pick(chips[0]);
  }); });

  /* Pictogrammes 100 cases ---------------------------------------------- */
  $$('.apb-wexp').forEach(function (box) { safe('pictogramme', function () {
    var chips = $$('.apb-chip', box), big = $('.apb-wexp__v', box), lab = $('.apb-wexp__l', box), out = $('.apb-wexp__out', box);
    var grid = $('.apb-waffle', box) || el('div', 'apb-waffle', out ? out.parentNode : box, out);
    grid.setAttribute('role', 'img');
    var cells = [];
    for (var i = 0; i < 100; i++) { var c = document.createElement('i'); c.style.setProperty('--i', i); grid.appendChild(c); cells.push(c); }
    function pick(ch) {
      var v = num(ch.getAttribute('data-v'));
      press(chips, ch);
      cells.forEach(function (c, i) { c.classList.toggle('on', i < v); });
      grid.setAttribute('aria-label', v + ' cases sur 100');
      if (big) big.textContent = ch.getAttribute('data-big') || pct(v);
      if (lab) lab.textContent = ch.getAttribute('data-label') || chipLabel(ch);
    }
    chips.forEach(function (ch) { ch.addEventListener('click', function () { pick(ch); }); });
    if (chips[0]) { press(chips, chips[0]); whenIn(box, function () { pick(chips[0]); }); }
  }); });

  /* Barres Oui / Non : étiquette sortie de la barre si elle n'y tient pas */
  safe('étiquettes oui-non', function () {
    var bars = $$('.apb-div__yes, .apb-div__no'); if (!bars.length) return;
    function fit() {
      bars.forEach(function (b) {
        var s = b.firstElementChild; if (!s) return;
        b.classList.remove('is-out');
        if (s.offsetWidth > b.clientWidth - 8) b.classList.add('is-out');
      });
    }
    var t; window.addEventListener('resize', function () { clearTimeout(t); t = setTimeout(fit, 120); });
    fit();
    if (document.fonts && document.fonts.ready) document.fonts.ready.then(fit);
  });

  /* Groupes dépliables (chaque groupe retrouve son bouton et sa liste, où qu'ils soient) */
  safe('groupes', function () {
    $$('.apb-groups').forEach(function (gs) {
      $$('.apb-group', gs).forEach(function (g, i) {
        var h = $('button.apb-group__head', g), body = $('.apb-group__body', g);
        if (!h || !body) return;
        function set(open, anim) {
          h.setAttribute('aria-expanded', open ? 'true' : 'false');
          body.hidden = !open;
          if (open && anim) replay(body);
        }
        set(i === 0, false);
        h.addEventListener('click', function () { set(h.getAttribute('aria-expanded') !== 'true', true); });
      });
    });
  });

  /* Bascule « évolution par rapport à 2025 » ----------------------------- */
  safe('bascule', function () {
    $$('[data-delta-toggle]').forEach(function (btn) {
      var list = document.getElementById(btn.getAttribute('aria-controls')); if (!list) return;
      btn.addEventListener('click', function () {
        var on = btn.getAttribute('aria-pressed') !== 'true';
        btn.setAttribute('aria-pressed', on ? 'true' : 'false');
        list.classList.toggle('show-delta', on);
      });
    });
  });

  /* Sondage « Et vous ? » ------------------------------------------------ */
  $$('.apb-poll').forEach(function (p) { safe('sondage', function () {
    var res = $('.apb-poll__res', p), list = $('.apb-bars', res || p), opts = $$('.apb-poll__opt', p);
    var skip = $('.apb-poll__skip', p), again = $('.apb-poll__again', p);
    if (!res || !list) return;
    var out = $('.apb-poll__out', p) || el('p', 'apb-poll__out', res, res.firstChild);
    out.setAttribute('aria-live', 'polite');
    function reveal(k) {
      p.classList.add('is-revealed');
      $$('.apb-bar', list).forEach(function (b) { b.classList.toggle('is-mine', b.getAttribute('data-k') === k); });
      var mine = k ? $('.apb-bar[data-k="' + k + '"]', list) : null;
      out.textContent = mine ? 'Dans l’hypothèse d’une hausse de la fiscalité sur l’épargne vous feriez comme ' + pct(num(mine.getAttribute('data-v'))) + ' des épargnants interrogés.' : 'Réponses des épargnants interrogés :';
      replay(list);
      if (again) { again.hidden = false; again.focus({ preventScroll: true }); }
    }
    opts.forEach(function (o) { o.addEventListener('click', function () { reveal(o.getAttribute('data-k')); }); });
    if (skip) skip.addEventListener('click', function () { reveal(null); });
    if (again) again.addEventListener('click', function () {
      p.classList.remove('is-revealed'); out.textContent = ''; again.hidden = true;
      if (opts[0]) opts[0].focus({ preventScroll: true });
    });
  }); });

  /* Carte des régions ---------------------------------------------------- */
  safe('régions', function () {
    var reg = $('.apb-reg'); if (!reg) return;
    var tiles = $$('.apb-tile', reg), themes = $$('.apb-reg__theme', reg), items = $$('.apb-reg__list li', reg);
    var title = $('.apb-reg__title', reg), reset = $('.apb-reg__reset', reg);
    var empty = $('.apb-reg__empty', reg) || el('div', 'apb-reg__empty', $('.apb-reg__panel', reg) || reg);
    var names = {}; tiles.forEach(function (t) { names[t.dataset.r] = t.dataset.name; });
    var st = { t: themes[0].dataset.t, r: null };
    function has(li, r) { return (' ' + li.dataset.r + ' ').indexOf(' ' + r + ' ') > -1; }
    function render() {
      press(themes, themes.filter(function (b) { return b.dataset.t === st.t; })[0]);
      tiles.forEach(function (t) {
        var n = items.filter(function (li) { return li.dataset.t === st.t && has(li, t.dataset.r); }).length;
        t.setAttribute('data-n', Math.min(n, 3));
        t.setAttribute('aria-pressed', st.r === t.dataset.r ? 'true' : 'false');
        t.setAttribute('aria-label', t.dataset.name);
        t.setAttribute('data-tip', t.dataset.name + ' : ' + (n ? n + (n > 1 ? ' enseignements' : ' enseignement') : 'aucun enseignement publié sur ce thème'));
      });
      var shown = 0;
      items.forEach(function (li) {
        var ok = li.dataset.t === st.t && (!st.r || has(li, st.r));
        li.hidden = !ok; if (ok) shown++;
      });
      reg.classList.toggle('has-region', !!st.r);
      title.textContent = st.r ? names[st.r] : 'Toutes les régions';
      reset.hidden = !st.r;
      empty.innerHTML = '';
      empty.hidden = shown > 0;
      if (!shown && st.r) {
        var p = document.createElement('p');
        p.textContent = 'Aucun enseignement publié pour cette région sur ce thème.';
        empty.appendChild(p);
        themes.forEach(function (b) {
          if (b.dataset.t === st.t) return;
          var any = items.some(function (li) { return li.dataset.t === b.dataset.t && has(li, st.r); });
          if (!any) return;
          var x = document.createElement('button');
          x.type = 'button'; x.className = 'apb-chip';
          x.textContent = 'Afficher le thème « ' + b.textContent.trim() + ' »';
          x.addEventListener('click', function () { st.t = b.dataset.t; render(); });
          empty.appendChild(x);
        });
      }
    }
    tiles.forEach(function (t) { t.addEventListener('click', function () { st.r = st.r === t.dataset.r ? null : t.dataset.r; render(); }); });
    themes.forEach(function (b) { b.addEventListener('click', function () { st.t = b.dataset.t; render(); }); });
    reset.addEventListener('click', function () { st.r = null; render(); });
    render();
  });

  /* Header du site et barre de sommaire : mesures partagées ------------- */
  function siteHeaderBottom() {
    var manual = parseInt(root.getAttribute('data-scroll-offset'), 10);
    if (!isNaN(manual)) return manual;
    var max = 0;
    var els = document.elementsFromPoint ? document.elementsFromPoint(window.innerWidth / 2, 1) : [];
    els.forEach(function (el) {
      if (root.contains(el) || el === document.documentElement || el === document.body) return;
      var pos = window.getComputedStyle(el).position;
      if (pos !== 'fixed' && pos !== 'sticky') return;
      var r = el.getBoundingClientRect();
      if (r.top <= 1 && r.bottom > max && r.height < window.innerHeight / 2) max = r.bottom;
    });
    try { if (window.Drupal && Drupal.displace && Drupal.displace.offsets) max = Math.max(max, Drupal.displace.offsets.top || 0); } catch (e) {}
    return Math.max(0, Math.round(max));
  }
  function tocBarHeight() { var t = $('.apb-toc'); return t ? Math.round($('.apb-toc__inner', t).getBoundingClientRect().height) : 0; }

  /* Sommaire collant ------------------------------------------------------
     position: sticky sous le header du site ; mode de secours en position fixe
     si un conteneur parent du CMS bloque le sticky (overflow: hidden…) ;
     section active signalée ; barre compacte dépliante sous 920 px.       */
  safe('sommaire', function () {
    var toc = $('.apb-toc'); if (!toc) return;
    var list = $('.apb-toc__list', toc), toggle = $('.apb-toc__toggle', toc), cur = $('.apb-toc__current', toc);
    var links = $$('.apb-toc__list a', toc);
    var secs = links.map(function (a) { return document.getElementById(a.getAttribute('href').slice(1)); });
    var mq = window.matchMedia('(max-width: 920px)');

    /* Le sticky est-il neutralisé par un parent (overflow ≠ visible, sans être le vrai conteneur de défilement) ? */
    function stickyBlocked() {
      for (var el = root.parentElement; el && el !== document.documentElement; el = el.parentElement) {
        var cs = window.getComputedStyle(el), ov = cs.overflowX + ' ' + cs.overflowY;
        if (!/(auto|scroll|hidden)/.test(ov)) continue;
        if (el === document.body && !/(auto|scroll|hidden)/.test(window.getComputedStyle(document.documentElement).overflowX + window.getComputedStyle(document.documentElement).overflowY)) continue;
        if (/(auto|scroll)/.test(cs.overflowY) && el.scrollHeight > el.clientHeight + 1) return false; /* vrai conteneur de défilement : le sticky fonctionne */
        return true;
      }
      return false;
    }
    var fixedMode = stickyBlocked(), ph = null;
    if (fixedMode) { ph = document.createElement('div'); ph.className = 'apb-toc__ph'; toc.parentNode.insertBefore(ph, toc); toc.classList.add('is-fixed-mode'); }

    function setOpen(open) {
      toc.classList.toggle('is-open', open);
      if (toggle) toggle.setAttribute('aria-expanded', open ? 'true' : 'false');
    }
    if (toggle) toggle.addEventListener('click', function () { setOpen(!toc.classList.contains('is-open')); });
    links.forEach(function (a) { a.addEventListener('click', function () { setOpen(false); }); });
    document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && toc.classList.contains('is-open')) { setOpen(false); toggle.focus(); } });
    document.addEventListener('click', function (e) { if (toc.classList.contains('is-open') && !toc.contains(e.target)) setOpen(false); });

    var active = -2;
    function spy() {
      var line = siteHeaderBottom() + tocBarHeight() + 60, idx = -1;
      secs.forEach(function (s, i) { if (s && s.getBoundingClientRect().top <= line) idx = i; });
      if (idx === active) return;
      active = idx;
      links.forEach(function (a, i) { if (i === idx) a.setAttribute('aria-current', 'location'); else a.removeAttribute('aria-current'); });
      if (cur) cur.textContent = idx > -1 ? links[idx].textContent : 'Aller à une section';
      if (idx > -1 && !mq.matches && list.scrollWidth > list.clientWidth) {
        var a = links[idx], target = a.offsetLeft - (list.clientWidth - a.offsetWidth) / 2;
        list.scrollTo({ left: Math.max(0, target), behavior: RM ? 'auto' : 'smooth' });
      }
    }
    function fades() {
      var o = list.scrollWidth > list.clientWidth + 1 && !mq.matches;
      list.classList.toggle('fade-l', o && list.scrollLeft > 4);
      list.classList.toggle('fade-r', o && list.scrollLeft + list.clientWidth < list.scrollWidth - 4);
    }
    function place() {
      var top = siteHeaderBottom();
      root.style.setProperty('--apb-sticky-top', top + 'px');
      if (fixedMode) {
        var h = toc.offsetHeight, pr = ph.getBoundingClientRect(), ar = root.getBoundingClientRect();
        var on = pr.top <= top && ar.bottom > top + h;
        ph.style.height = on ? h + 'px' : '0px';
        toc.style.position = on ? 'fixed' : '';
        toc.style.top = on ? top + 'px' : '';
        toc.style.left = on ? ar.left + 'px' : '';
        toc.style.width = on ? ar.width + 'px' : '';
      }
      var r = toc.getBoundingClientRect();
      toc.classList.toggle('is-stuck', r.top <= top + 1 && root.getBoundingClientRect().top < r.top - 1);
    }
    var ticking = false;
    function onScroll() {
      if (ticking) return; ticking = true;
      requestAnimationFrame(function () { ticking = false; place(); spy(); });
    }
    document.addEventListener('scroll', onScroll, { passive: true, capture: true });
    document.addEventListener('drupalViewportOffsetChange', function () { place(); spy(); });
    window.addEventListener('resize', function () { place(); fades(); spy(); });
    list.addEventListener('scroll', fades, { passive: true });
    if (mq.addEventListener) mq.addEventListener('change', function () { setOpen(false); fades(); });
    place(); fades(); spy();
  });

  /* Sommaire : ancres fiables -------------------------------------------
     Neutralise les problèmes courants d'intégration : balise <base> du CMS,
     header fixe/sticky qui masque le titre, aperçu en iframe.
     Décalage forcé possible : <article ... data-scroll-offset="120">          */
  safe('ancres', function () {
    var EXTRA = 20; /* respiration sous le header, en px */
    function headerOffset() { return siteHeaderBottom() + tocBarHeight(); }
    function targetOf(id) {
      var sec = id ? document.getElementById(id) : null;
      if (!sec || !root.contains(sec)) return null;
      return sec.querySelector('h2') || sec;
    }
    function place(t, smooth) {
      t.style.scrollMarginTop = (headerOffset() + EXTRA) + 'px';
      t.scrollIntoView({ behavior: smooth && !RM ? 'smooth' : 'auto', block: 'start' });
    }
    function go(id, smooth) {
      var t = targetOf(id); if (!t) return false;
      place(t, smooth);
      /* Correction finale si un header devient fixe pendant le défilement */
      var fixed = false;
      function fix() {
        if (fixed) return; fixed = true;
        var want = headerOffset() + EXTRA, top = t.getBoundingClientRect().top;
        if (Math.abs(top - want) > 4) place(t, false);
      }
      if ('onscrollend' in window) window.addEventListener('scrollend', fix, { once: true });
      setTimeout(fix, smooth && !RM ? 1100 : 60);
      if (!t.hasAttribute('tabindex')) t.setAttribute('tabindex', '-1');
      t.focus({ preventScroll: true });
      try { history.replaceState(null, '', window.location.href.split('#')[0] + '#' + id); } catch (e) {}
      return true;
    }
    $$('.apb-toc a[href^="#"]').forEach(function (a) {
      a.addEventListener('click', function (e) {
        var id = decodeURIComponent(a.getAttribute('href').slice(1));
        if (go(id, true)) e.preventDefault();
      });
    });
    /* Arrivée directe par une URL avec ancre, ex. /barometre-epargne-2026#apb-fiscalite */
    var h = '';
    try { h = decodeURIComponent((window.location.hash || '').slice(1)); } catch (e) {}
    if (h && targetOf(h)) {
      var run = function () { setTimeout(function () { go(h, false); }, 80); };
      if (document.readyState === 'complete') run(); else window.addEventListener('load', run);
    }
  });

  /* Copier la mention obligatoire ---------------------------------------- */
  safe('copie', function () { $$('.apb-copy').forEach(function (b) {
    var label = b.textContent;
    b.addEventListener('click', function () {
      var txt = b.getAttribute('data-copy');
      function done() { b.textContent = 'Mention copiée'; setTimeout(function () { b.textContent = label; }, 2000); }
      if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(txt).then(done, done);
      else { var ta = document.createElement('textarea'); ta.value = txt; document.body.appendChild(ta); ta.select(); try { document.execCommand('copy'); } catch (e) {} ta.remove(); done(); }
    });
  }); });

  /* Animations des autres graphiques ------------------------------------ */
  safe('animations', function () {
    $$('.apb-anim').forEach(function (t) {
      if (t.hasAttribute('data-manual') || t._apbIn || t._apbDone || t.classList.contains('apb-pending')) return;
      whenIn(t);
    });
  });
})();