/* allea.ch/new · direction A « La courbe du mois » (VULCAN, 30.10.2026)
   Un thème par visiteur : jetons clairs dans :root, sombres dans [data-theme="dark"] (et sans JS : préférence du système).
   Formes : angles nets (3 px), filets fins, point rond au bout des courbes ; la pilule de l'en-tête est la seule forme ronde.
   Mouvement : --courbe ; durées --t1 160 ms, --t2 420 ms, --t3 1200 ms ; au défilement, transform et opacity seulement. */

/* Tenorite (choix de Christophe, 30.10.2026) : TTF du thème allea-2026 convertis en WOFF2 sans sous-ensemble
   (fontTools, accord de Christophe du 31.10.2026), servis depuis assets/fonts/ (adresse relative : même CSS sous /new/ et à la racine). 400 et 700 seulement. */
@font-face { font-family: "Tenorite"; src: url(../fonts/TenoriteRegular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Tenorite"; src: url(../fonts/TenoriteBold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Tenorite"; src: url(../fonts/TenoriteItalic.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Tenorite"; src: url(../fonts/TenoriteBoldItalic.woff2) format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }

:root {
  --page: #EDF0F4; --surface: #F7F9FB; --surface-2: #E4E9F0; --titre: #0F3467; --texte: #1C2738; --doux: #4E5A6D;
  --filet: rgba(15, 52, 103, .14); --filet-fort: rgba(15, 52, 103, .58); --or: #806318; --or-trait: #8A6B1E; --or-fond: rgba(179, 153, 81, .14);
  --action: #0F3467; --action-texte: #FFFFFF; --action-survol: #0B2850; --lien: #0F3467;
  --s0: #5E6979; --s1: #8A6B1E;
  --ev-CHE: #866510; --ev-USA: #B4502F; --ev-SWE: #3468AA; --ev-HKG: #1D7A66;
  --d10: #13707C; --d15: #237A62; --d20: #8A6B1E; --bande: #0F3467; --neg: #B0564A;
  --pilule: rgba(247, 249, 251, .92);
  /* néomorphisme « Nuit éclairée » : rayons, bord des surfaces (~1,5:1 contre le fond), matière, relief, creux, lumière de page */
  --neo-r: 12px; --neo-rb: 9px; --neo-bord: rgba(15, 52, 103, .24);
  --neo-mat: linear-gradient(180deg, rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 55%);
  --relief: inset 0 1px 0 #FFFFFF, inset 0 -1px 0 rgba(15, 52, 103, .06), -5px -5px 12px rgba(255, 255, 255, .85),
            0 1px 2px rgba(15, 52, 103, .12), 6px 12px 26px -8px rgba(15, 52, 103, .26);
  --relief-p: inset 0 1px 0 #FFFFFF, -3px -3px 7px rgba(255, 255, 255, .85), 0 1px 2px rgba(15, 52, 103, .16), 3px 6px 12px -4px rgba(15, 52, 103, .26);
  --creux: inset 0 2px 5px rgba(15, 52, 103, .14), inset 0 -1px 0 rgba(255, 255, 255, .9);
  --creux-p: inset 0 2px 4px rgba(15, 52, 103, .18), inset 0 -1px 0 rgba(255, 255, 255, .9);
  --creux-action: inset 0 2px 5px rgba(0, 0, 0, .45), inset 0 -1px 0 rgba(255, 255, 255, .12);
  --lumiere: radial-gradient(ellipse 70% 520px at 18% -60px, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0) 70%);
  --ombre: var(--relief);
  --courbe: cubic-bezier(.2, .7, .2, 1); --t1: 160ms; --t2: 420ms; --t3: 1200ms;
  --step--1: 14px; --step-0: 17px; --step-1: clamp(18px, 1.2vw + 13px, 20px); --step-2: clamp(21px, 1.4vw + 15px, 26px);
  --step-3: clamp(25px, 2vw + 16px, 34px); --step-4: clamp(30px, 3vw + 16px, 46px); --step-5: clamp(36px, 4.6vw + 12px, 68px);
  --police: "Tenorite", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --gouttiere: clamp(16px, 4vw, 40px); --large: 1200px; --rayon: 3px;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --page: #0B1628; --surface: #111F36; --surface-2: #081222; --titre: #F1F4F9; --texte: #D8E0EC; --doux: #A3AFC2;
  --filet: rgba(238, 242, 248, .1); --filet-fort: rgba(238, 242, 248, .38); --or: #E2BA4A; --or-trait: #E2BA4A; --or-fond: rgba(226, 186, 74, .10);
  --action: #C39B30; --action-texte: #07101E; --action-survol: #E2BA4A; --lien: #E2BA4A;
  --s0: #8D99AC; --s1: #E2BA4A;
  --ev-CHE: #E2BA4A; --ev-USA: #D47450; --ev-SWE: #5590D2; --ev-HKG: #38A888;
  --d10: #2494A2; --d15: #56BDA2; --d20: #C39B30; --bande: #4E7FBF; --neg: #D47450;
  --pilule: rgba(17, 31, 54, .9);
  --neo-bord: rgba(190, 210, 240, .18);
  --neo-mat: linear-gradient(180deg, rgba(160, 190, 235, .07), rgba(160, 190, 235, 0) 50%);
  --relief: inset 0 1px 0 rgba(200, 220, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .35), -5px -5px 14px rgba(42, 66, 108, .3),
            0 1px 1px rgba(0, 0, 0, .5), 8px 14px 30px -6px rgba(0, 0, 0, .7);
  --relief-p: inset 0 1px 0 rgba(200, 220, 255, .12), -3px -3px 8px rgba(42, 66, 108, .32), 0 1px 1px rgba(0, 0, 0, .5), 4px 7px 14px -4px rgba(0, 0, 0, .7);
  --creux: inset 0 2px 7px rgba(0, 0, 0, .55), inset 0 -1px 0 rgba(200, 220, 255, .08);
  --creux-p: inset 0 2px 5px rgba(0, 0, 0, .6), inset 0 -1px 0 rgba(200, 220, 255, .08);
  --lumiere: radial-gradient(ellipse 70% 560px at 18% -80px, rgba(78, 127, 191, .16), rgba(78, 127, 191, 0) 70%);
  color-scheme: dark;
}
/* sans JS : préférence du système (mêmes jetons) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --page: #0B1628; --surface: #111F36; --surface-2: #081222; --titre: #F1F4F9; --texte: #D8E0EC; --doux: #A3AFC2;
    --filet: rgba(238, 242, 248, .1); --filet-fort: rgba(238, 242, 248, .38); --or: #E2BA4A; --or-trait: #E2BA4A; --or-fond: rgba(226, 186, 74, .10);
    --action: #C39B30; --action-texte: #07101E; --action-survol: #E2BA4A; --lien: #E2BA4A;
    --s0: #8D99AC; --s1: #E2BA4A;
    --ev-CHE: #E2BA4A; --ev-USA: #D47450; --ev-SWE: #5590D2; --ev-HKG: #38A888;
    --d10: #2494A2; --d15: #56BDA2; --d20: #C39B30; --bande: #4E7FBF; --neg: #D47450;
    --pilule: rgba(17, 31, 54, .9);
    --neo-bord: rgba(190, 210, 240, .18);
    --neo-mat: linear-gradient(180deg, rgba(160, 190, 235, .07), rgba(160, 190, 235, 0) 50%);
    --relief: inset 0 1px 0 rgba(200, 220, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .35), -5px -5px 14px rgba(42, 66, 108, .3),
              0 1px 1px rgba(0, 0, 0, .5), 8px 14px 30px -6px rgba(0, 0, 0, .7);
    --relief-p: inset 0 1px 0 rgba(200, 220, 255, .12), -3px -3px 8px rgba(42, 66, 108, .32), 0 1px 1px rgba(0, 0, 0, .5), 4px 7px 14px -4px rgba(0, 0, 0, .7);
    --creux: inset 0 2px 7px rgba(0, 0, 0, .55), inset 0 -1px 0 rgba(200, 220, 255, .08);
    --creux-p: inset 0 2px 5px rgba(0, 0, 0, .6), inset 0 -1px 0 rgba(200, 220, 255, .08);
    --lumiere: radial-gradient(ellipse 70% 560px at 18% -80px, rgba(78, 127, 191, .16), rgba(78, 127, 191, 0) 70%);
    color-scheme: dark;
  }
  /* règles propres au sombre, aussi sans JS (même rendu qu'avec data-theme="dark") */
  :root:not([data-theme]) .marque img { box-shadow: 0 0 0 1px rgba(238, 242, 248, .28); }
  :root:not([data-theme]) .alm-legende .l90 i { opacity: .3; } :root:not([data-theme]) .alm-legende .l50 i { opacity: .55; }
  :root:not([data-theme]) .courbe-chf .g-ligne.g-s1 { filter: drop-shadow(0 0 6px rgba(226, 186, 74, .45)); }
}

/* ---------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: var(--page); color: var(--texte); font: 400 var(--step-0)/1.6 var(--police);
  -webkit-font-smoothing: antialiased; overflow-x: clip; }
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
body > .pied { margin-top: auto; }
img, svg, canvas { max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4 { color: var(--titre); margin: 0 0 .5em; line-height: 1.12; letter-spacing: -.015em; overflow-wrap: break-word; hyphens: auto; }
h1 { font-weight: 400; font-size: var(--step-4); }
h2 { font-weight: 400; font-size: var(--step-3); }
h3 { font-weight: 700; font-size: var(--step-1); letter-spacing: 0; line-height: 1.3; }
h4 { font-weight: 700; font-size: var(--step-0); }
p, ul, ol, dl, table, figure, details, blockquote { margin: 0 0 1em; }
a { color: var(--lien); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
strong, b { font-weight: 700; }
:focus-visible { outline: 2px solid var(--or-trait); outline-offset: 3px; }
.lecteur, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.saut { position: absolute; left: 16px; top: -60px; z-index: 50; background: var(--action); color: var(--action-texte); padding: 10px 14px; border-radius: var(--rayon); }
.saut:focus { top: 12px; }
.cadre { width: min(var(--large), 100% - 2 * var(--gouttiere)); margin-inline: auto; }
::selection { background: var(--or-fond); }

/* boutons : action pleine, action au trait ; WordPress (btn-gold / btn-ghost) dans la même grammaire */
.btn, .wp-block-button .wp-block-button__link, .a-ctas a.btn-gold, .a-ctas a.btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 46px; padding: 11px 20px;
  border-radius: var(--rayon); font-weight: 700; font-size: 16px; line-height: 1.2; text-decoration: none; text-align: center;
  transition: background-color var(--t1) var(--courbe), border-color var(--t1) var(--courbe), color var(--t1) var(--courbe); }
.btn-action, .btn-gold .wp-block-button__link, .a-ctas a.btn-gold { background: var(--action); color: var(--action-texte); border: 1px solid var(--action); }
.btn-action:hover, .btn-gold .wp-block-button__link:hover, .a-ctas a.btn-gold:hover { background: var(--action-survol); border-color: var(--action-survol); color: var(--action-texte); }
.btn-ghost .wp-block-button__link, .a-ctas a.btn-ghost { background: transparent; color: var(--titre); border: 1px solid var(--filet-fort); }
.btn-ghost .wp-block-button__link:hover, .a-ctas a.btn-ghost:hover { border-color: var(--titre); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 1em; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }
.wp-block-button { margin: 0; }
.a-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.mail-link { overflow-wrap: anywhere; }

/* surtitre : légende de règle (texte existant, posé petit, sans capitales décoratives) */
.eyebrow { font-size: var(--step--1); font-weight: 700; letter-spacing: .02em; color: var(--or); margin: 0 0 .8em; line-height: 1.4; }
h1.eyebrow { font-size: var(--step--1); font-weight: 700; letter-spacing: .02em; color: var(--or); }
.a-lead { font-size: var(--step-1); line-height: 1.55; }
.a-lead:empty, p:empty { display: none; }

/* ---------------------------------------------------------------- en-tête : bande en haut, pilule au défilement */
.tete { position: sticky; top: 0; z-index: 40; height: 84px; display: flex; align-items: center; }
/* La pilule (fond, ombre, flou) est un pseudo-élément : un backdrop-filter posé sur .tete-in en ferait le bloc conteneur
   du menu du téléphone (.nav en position: fixed), qui serait alors rogné à la hauteur de la pilule (ARGUS, 30.10.2026). */
.tete-in { position: relative; isolation: isolate; display: flex; align-items: center; gap: 24px; height: 60px; padding-inline: 0; border-radius: 999px;
  transition: padding var(--t2) var(--courbe); }
.tete-in::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  background: var(--pilule); box-shadow: var(--ombre); opacity: 0; transition: opacity var(--t2) var(--courbe);
  -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
.tete.est-posee .tete-in { padding-inline: 14px 10px; }
.tete.est-posee .tete-in::before { opacity: 1; }
@supports not (backdrop-filter: blur(1px)) { .tete-in::before { background: var(--surface); } }
.marque { display: inline-flex; align-items: center; gap: 10px; color: var(--titre); text-decoration: none; font-size: 26px; font-weight: 700; letter-spacing: 0; flex: none; }
.marque img { width: 40px; height: 40px; border-radius: 50%; }
:root[data-theme="dark"] .marque img { box-shadow: 0 0 0 1px rgba(238, 242, 248, .28); }
.nav { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.nav ul { list-style: none; margin: 0; padding: 0; }
.nav-l { display: flex; align-items: center; gap: 4px; }
.nav-l > li { position: relative; }
.nav-l > li > a { display: block; padding: 8px 10px; color: var(--texte); text-decoration: none; font-size: 15.5px; white-space: nowrap; border-radius: var(--rayon); }
.nav-l > li > a:hover, .nav-l a[aria-current="page"], .nav-l .est-ici > a { color: var(--titre); text-decoration: underline; text-decoration-color: var(--or-trait); text-underline-offset: .45em; }
.a-sous > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); opacity: .6; }
.sous { position: absolute; left: 0; top: calc(100% + 6px); min-width: 230px; padding: 8px !important; background: var(--surface); border: 1px solid var(--filet);
  border-radius: var(--rayon); box-shadow: var(--ombre); opacity: 0; transform: translateY(-4px); pointer-events: none;
  transition: opacity var(--t1) var(--courbe), transform var(--t1) var(--courbe); }
.sous::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
.a-sous:hover .sous, .a-sous:focus-within .sous { opacity: 1; transform: none; pointer-events: auto; }
.sous a { display: block; padding: 9px 12px; color: var(--texte); text-decoration: none; border-radius: var(--rayon); font-size: 15px; }
.sous a:hover, .sous a[aria-current="page"] { background: var(--or-fond); color: var(--titre); }
.nav-outils { display: flex; align-items: center; gap: 10px; }
.langues { display: flex; gap: 2px; }
.langues a { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 6px; font-size: 13px; font-weight: 700; color: var(--doux); text-decoration: none; border-radius: var(--rayon); }
.langues a:hover { color: var(--titre); background: var(--or-fond); }
.theme-btn { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--filet-fort); background: transparent; color: var(--titre); cursor: pointer; padding: 0; }
.theme-btn svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-btn .ic-lune, :root[data-theme="dark"] .theme-btn .ic-soleil { display: none; }
:root[data-theme="dark"] .theme-btn .ic-lune { display: block; }
html:not(.js) .theme-btn { display: none; }
.nav-contact { min-height: 40px; padding: 8px 16px; font-size: 15px; }
.menu-btn { display: none; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--filet-fort); border-radius: var(--rayon); background: transparent; color: var(--titre); cursor: pointer; place-items: center; padding: 0; }
.menu-btn svg path { stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; transition: transform var(--t1) var(--courbe), opacity var(--t1); transform-origin: 12px 12px; }
.tete.ouvert .menu-btn .m1 { transform: translateY(5px) rotate(45deg); }
.tete.ouvert .menu-btn .m2 { opacity: 0; }
.tete.ouvert .menu-btn .m3 { transform: translateY(-5px) rotate(-45deg); }

@media (max-width: 1080px) {
  html.js .menu-btn { display: grid; }
  html.js .nav { position: fixed; inset: 84px 0 0 0; z-index: 39; display: block; padding: 8px var(--gouttiere) 32px; background: var(--page);
    overflow-y: auto; overscroll-behavior: contain; opacity: 0; transform: translateY(-8px); pointer-events: none; visibility: hidden;
    transition: opacity var(--t1) var(--courbe), transform var(--t1) var(--courbe), visibility 0s linear var(--t1); }
  /* menu ouvert : la bande de l'en-tête prend le fond du panneau, aucune ligne de page entre pilule et menu */
  html.js .tete { transition: background-color var(--t1) var(--courbe); }
  html.js .tete.ouvert { background: var(--page); }
  html.js .tete.ouvert .nav { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
  .nav-l { display: block; }
  .nav-l > li { border-bottom: 1px solid var(--filet); }
  .nav-l > li > a { padding: 14px 0; font-size: 19px; }
  .a-sous > a::after { display: none; }
  .sous { position: static; opacity: 1; transform: none; pointer-events: auto; box-shadow: none; border: 0; background: none; padding: 0 0 12px 14px !important; min-width: 0; }
  .sous a { padding: 8px 0; color: var(--doux); }
  .nav-outils { margin-top: 22px; flex-wrap: wrap; gap: 14px; }
  .nav-contact { flex: 1 1 100%; min-height: 48px; font-size: 16px; }
  /* menu ouvert : langues, thème et Contact restent collés au bas de l'écran, les rubriques défilent au-dessus (Christophe, 31.10.2026) */
  html.js .nav { padding-bottom: 0; }
  html.js .nav-outils { position: sticky; bottom: 0; z-index: 1; padding: 14px 0 calc(16px + env(safe-area-inset-bottom)); background: var(--page); border-top: 1px solid var(--filet); }
  html:not(.js) .nav { flex-wrap: wrap; }
  html:not(.js) .tete { position: static; height: auto; padding: 12px 0; }
  html:not(.js) .tete-in { flex-wrap: wrap; height: auto; }
  html:not(.js) .nav { margin-left: 0; display: block; width: 100%; }
}
@media (max-width: 1080px) { body.menu-ouvert { overflow: hidden; } }
@media (max-width: 600px) { .tete { height: 72px; } html.js .nav { inset: 72px 0 0 0; } .marque { font-size: 24px; } .marque img { width: 36px; height: 36px; } }

/* ---------------------------------------------------------------- graphiques SVG (tracés au build) */
.g-svg { display: none; width: 100%; height: auto; overflow: visible; font-family: var(--police); }
.g-s { display: block; }
@media (min-width: 601px) { .g-s { display: none; } .courbe-chf .g-m { display: block; } .esperance-vie .g-l { display: block; } }
@media (min-width: 1001px) { .courbe-chf .g-m { display: none; } .courbe-chf .g-l { display: block; } }
.g-grille { stroke: var(--filet); stroke-width: 1; }
.g-axe { stroke: var(--filet-fort); stroke-width: 1; }
.g-tic { fill: var(--doux); font-size: 12px; font-variant-numeric: tabular-nums; }
.g-ligne { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.g-renvoi { stroke: var(--filet-fort); stroke-width: 1; }
.g-etq { font-weight: 700; font-size: 15px; fill: var(--titre); }
.g-etq-d { font-size: 12px; fill: var(--doux); font-variant-numeric: tabular-nums; }
.g-val { font-weight: 400; fill: var(--doux); }
.g-source { font-size: 13px; color: var(--doux); line-height: 1.5; margin-top: 10px; }
.g-titre { font-weight: 700; color: var(--titre); font-size: var(--step-1); margin: 0 0 2px; }
.g-sous { color: var(--doux); font-size: 15px; margin: 0 0 14px; }
/* lecture au pointeur, au doigt et au clavier (nouveau.js, lecture()) : repère, points mis en valeur, bulle.
   Apparition en opacité ; d'une abscisse à l'autre, glissement en transform (classe g-glisse) ; rien en mouvement réduit. */
.g-hote { touch-action: pan-y; border-radius: 4px; --fond-g: var(--page); }
.g-hote:focus { outline: none; }
.g-hote:focus-visible { outline: 2px solid var(--or); outline-offset: 6px; }
.g-curseur { stroke: var(--filet-fort); stroke-width: 1; stroke-dasharray: 3 3; }
.g-lecture .g-curseur, .g-lecture .g-mq { opacity: 0; transition: opacity var(--t1) var(--courbe); }
.g-actif .g-lecture .g-curseur, .g-actif .g-lecture .g-mq { opacity: 1; }
.g-actif .g-lecture .g-mq.g-mq-off { opacity: 0; }
.g-glisse .g-lecture .g-curseur, .g-glisse .g-lecture .g-mq, .g-glisse > .g-bulle {
  transition: transform 140ms var(--courbe), opacity var(--t1) var(--courbe); }
.g-lecture circle.g-mq { stroke: var(--fond-g); stroke-width: 2.5; animation: none; }
.g-lecture .g-mq.ev-fwd { fill: var(--or-trait); stroke-dasharray: none; }
.g-lecture .g-mq.ev-histo { fill: var(--d10); }
.g-bulle { position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none; background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon);
  box-shadow: var(--ombre); padding: 8px 12px; font-size: 13px; line-height: 1.5; color: var(--texte); white-space: nowrap;
  font-variant-numeric: tabular-nums; opacity: 0; transition: opacity var(--t1) var(--courbe); }
.g-actif > .g-bulle { opacity: 1; }
.g-hote > .g-bulle-mesure { visibility: hidden; opacity: 0; transform: none; transition: none; }
.g-bulle .g-ecart { display: block; margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--filet); color: var(--doux); }
.g-bulle b { display: block; color: var(--titre); }
.g-bulle i { display: inline-block; width: 10px; height: 3px; margin-right: 6px; vertical-align: middle; font-style: normal; }

/* courbe CHF du premier écran */
.courbe-chf { position: relative; margin: 0; }
.cc-tete { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 32px; align-items: end; padding-bottom: 12px; border-bottom: 1px solid var(--filet); margin-bottom: 18px; }
.cc-carte h2 { font-size: var(--step-0); font-weight: 700; letter-spacing: 0; line-height: 1.3; margin: 0 0 2px; } /* h2 pour l'ordre des titres, apparence du h3 d'origine */
.cc-carte p { margin: 0; font-size: 15px; color: var(--doux); }
.cc-carte p:last-child { margin-top: 2px; }
.cc-carte p:last-child a { font-weight: 700; }
.cc-carte .chips { display: none; }
.cc-legende { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 20px; font-size: 14px; font-variant-numeric: tabular-nums; }
.cc-legende li { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.cc-legende a { color: var(--texte); }
.cc-legende i { width: 22px; height: 3px; border-radius: 2px; background: var(--s0); }
.cc-legende .cc-l1 i { background: var(--s1); height: 3.5px; }
.cc-legende .cc-l1 a { font-weight: 700; color: var(--titre); }
.cc-dessin { position: relative; }
.courbe-chf .g-s0 { stroke: var(--s0); stroke-width: 1.75; }
.courbe-chf .g-s1 { stroke: var(--s1); stroke-width: 3; }
.courbe-chf circle.g-s0 { fill: var(--s0); stroke: none; }
.courbe-chf circle.g-s1 { fill: var(--s1); stroke: var(--page); stroke-width: 2; }
.courbe-chf .g-e1 { fill: var(--or); }
.courbe-chf .g-ligne { stroke-dasharray: 1; stroke-dashoffset: 0; animation: trace var(--t3) var(--courbe) both; }
.courbe-chf .g-ligne.g-s1 { animation-delay: 250ms; }
.courbe-chf .g-point, .courbe-chf .g-etq, .courbe-chf .g-etq-d { animation: apparait var(--t2) var(--courbe) both; animation-delay: 1150ms; }
/* un point par année de durée, posé à mesure que la courbe se trace */
.courbe-chf circle.g-pt { stroke: none; animation: apparait var(--t1) var(--courbe) both; animation-delay: calc(var(--i) * 95ms + 100ms); }
.courbe-chf circle.g-pt.g-s1 { animation-delay: calc(var(--i) * 95ms + 350ms); }
.g-axe-fin { opacity: .7; }
@keyframes trace { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes apparait { from { opacity: 0; } to { opacity: 1; } }

/* espérance de vie */
.esperance-vie { margin: 0; position: relative; }
.esperance-vie .g-dessin { position: relative; }
.ev-CHE { stroke: var(--ev-CHE); } .ev-USA { stroke: var(--ev-USA); } .ev-SWE { stroke: var(--ev-SWE); } .ev-HKG { stroke: var(--ev-HKG); }
circle.ev-CHE { fill: var(--ev-CHE); stroke: none; } circle.ev-USA { fill: var(--ev-USA); stroke: none; } circle.ev-SWE { fill: var(--ev-SWE); stroke: none; } circle.ev-HKG { fill: var(--ev-HKG); stroke: none; }
.esperance-vie .g-ligne { stroke-width: 1.5; }
.esperance-vie .g-ligne.ev-CHE { stroke-width: 2.75; }
.ev-t-CHE { fill: var(--titre); }
.esperance-vie .ev-t { font-size: 14px; }
.esperance-vie .g-s .ev-t { font-size: 12px; }

/* ---------------------------------------------------------------- accueil */
.accueil section { position: relative; }
.ac-hero { padding: clamp(20px, 4vh, 48px) 0 0; }
.ac-hero-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 56px; align-items: end; margin-bottom: clamp(24px, 4.5vh, 44px); }
.ac-titre h1 { margin-bottom: 14px; }
.a-hero-title { hyphens: auto; overflow-wrap: break-word; font-size: var(--step-5); font-weight: 400; line-height: 1.04; letter-spacing: -.028em; color: var(--titre); margin: 0; text-wrap: balance; }
.a-hero-title strong { font-weight: 700; }
.ac-appui .a-lead { font-size: var(--step-0); margin-bottom: 20px; }
.ac-appui .wp-block-buttons { margin: 0; }
.ac-hero .courbe-chf { padding-bottom: 8px; }
@media (min-width: 1001px) and (max-height: 860px) {
  .ac-hero { padding-top: 12px; }
  .a-hero-title { font-size: clamp(40px, 6.6vh, 68px); }
  .ac-hero-grille { margin-bottom: 22px; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 20px 48px; }
  .cc-tete { margin-bottom: 10px; padding-bottom: 10px; }
}
.ac-citation .has-text-align-center { text-align: left; }

.ac-axe { position: relative; margin-top: clamp(28px, 5vw, 56px); }
.a-norms { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 18px; padding: 14px 0 0; border-top: 1px solid var(--filet-fort); position: relative; font-size: 14px; font-weight: 700; color: var(--doux); }
.a-norms span { position: relative; white-space: nowrap; }
.a-norms span::before { content: ""; position: absolute; left: 50%; top: -15px; width: 1px; height: 7px; background: var(--filet-fort); }

.ac-services { padding: clamp(56px, 8vw, 104px) 0 clamp(48px, 7vw, 88px); }
.ac-entete { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0 56px; align-items: end; margin-bottom: 30px; }
.ac-entete .eyebrow { grid-column: 1 / -1; }
.ac-entete h2 { margin: 0; }
.ac-entete .a-lead { margin: 0; font-size: var(--step-0); color: var(--doux); }
@media (max-width: 1000px) { .ac-entete .a-lead { margin-top: 14px; } }
.sv-liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filet-fort); counter-reset: sv; }
.sv { position: relative; display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); gap: 8px 40px; padding: 26px 0 28px; border-bottom: 1px solid var(--filet); }
.sv-tag .a-tag { text-wrap: balance; margin: 0; font-size: var(--step-2); font-weight: 700; color: var(--titre); line-height: 1.15; letter-spacing: -.005em; }
.sv-corps h3 { margin-bottom: 6px; }
.sv-corps p { margin: 0; color: var(--texte); }
.sv-plus .a-plus { margin: 0; }
.a-plus { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 1em 0 0; }
.a-plus a { position: relative; font-weight: 700; text-decoration: none; padding-right: 18px; color: var(--lien); }
.a-plus a::after { content: "→"; position: absolute; right: 0; transition: transform var(--t1) var(--courbe); }
.a-plus a:hover::after { transform: translateX(3px); }
.a-plus a:hover { text-decoration: underline; }
.sv-plus .a-plus { flex-direction: column; gap: 8px; padding-top: 4px; }
.a-voir span { width: 100%; font-size: var(--step--1); color: var(--doux); }

.ac-nnar { background: var(--surface-2); padding: clamp(56px, 8vw, 100px) 0 clamp(48px, 7vw, 84px); }
.ac-nnar-tete { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 16px 56px; align-items: end; margin-bottom: 26px; }
.ac-nnar-tete h2 { margin-bottom: 8px; }
.ac-chip { margin: 0; font-size: 14px; color: var(--doux); font-variant-numeric: tabular-nums; }
.ac-nnar-tete .a-lead { font-size: 16px; margin-bottom: 8px; }
.ac-nnar .a-chart-note { font-size: 13.5px; color: var(--doux); margin: 0; }
.eventail { margin: 0; position: relative; }
.ev-dessin { position: relative; min-height: 220px; }
.ev-dessin svg { display: block; width: 100%; height: auto; overflow: visible; }
.ev-dessin noscript img, .ev-dessin picture img { display: block; width: 100%; height: auto; }
.ev-histo { fill: none; stroke: var(--d10); stroke-width: 2; stroke-linejoin: round; }
.ev-med { fill: none; stroke: var(--d10); stroke-width: 2; stroke-dasharray: 0; }
.ev-bande { fill: var(--d10); }
.ev-fwd { fill: none; stroke: var(--or-trait); stroke-width: 1.5; stroke-dasharray: 5 4; }
.ev-zone { fill: var(--filet); opacity: .35; }
.ev-cache { transform-origin: left center; }
.ev-legende { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 12px; font-size: 13.5px; color: var(--doux); }
.ev-legende span { display: inline-flex; align-items: center; gap: 8px; }
.ev-legende i { display: inline-block; width: 20px; height: 9px; border-radius: 2px; }
.eventail figcaption .a-chart-note { margin-top: 12px; }
.ac-nnar .a-plus { margin-top: 18px; }
.ev-cache { transform-box: fill-box; transform-origin: 0 0; transition: transform var(--t3) var(--courbe); }
html.js .eventail.attend .ev-cache { transform: scaleX(0); }
.ev-fin { fill: var(--d10); stroke: var(--surface-2); stroke-width: 2; transition: opacity var(--t2) var(--courbe) 1000ms; }
html.js .eventail.attend .ev-fin { opacity: 0; }
.ev-fan-g { transition: opacity var(--t2) var(--courbe) 900ms; }
html.js .eventail.attend .ev-fan-g { opacity: 0; }

.ac-inter { padding: clamp(64px, 9vw, 112px) 0 clamp(40px, 6vw, 72px); }
.ac-inter-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 40px 72px; align-items: start; }
.ac-inter-texte > .eyebrow { margin-bottom: .8em; }
.intl-list { list-style: none; padding: 0; margin: 1.5em 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.intl-list li { display: block; padding: 14px 0 16px; border-top: 1px solid var(--filet-fort); font-weight: 700; color: var(--titre); }
.intl-list small { display: block; margin-top: 4px; font-size: 15px; font-weight: 400; color: var(--doux); }
.ac-etude { position: relative; padding: 30px 0 0; margin-top: 8px; }
.ac-etude::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--or-trait); transform-origin: 0 50%;
  transition: transform var(--t3) var(--courbe) 150ms; }
.tool-big { font-size: clamp(64px, 8vw, 112px); font-weight: 400; line-height: .95; letter-spacing: -.04em; color: var(--titre); margin: 0 0 6px; font-feature-settings: "lnum"; }
.ac-etude h3 { font-size: var(--step-2); font-weight: 400; margin-bottom: 12px; }
.ac-etude p:not(.tool-big) { color: var(--doux); margin: 0; }

.ac-indep { padding: clamp(24px, 4vw, 56px) 0 clamp(56px, 8vw, 104px); }
.ac-indep-grille { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px 72px; align-items: start; }
.a-quote { font-size: var(--step-4); font-weight: 400; line-height: 1.12; letter-spacing: -.022em; text-wrap: balance; }
.a-quote strong { font-weight: 700; color: var(--or); }
.a-attrib { color: var(--doux); font-size: var(--step-1); margin: 0; }
.chiffres { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filet-fort); }
.chiffres li { display: grid; grid-template-columns: 5.2em minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--filet); }
.chiffres b { font-size: var(--step-3); font-weight: 700; color: var(--titre); line-height: 1; letter-spacing: -.01em; white-space: nowrap; }
.chiffres span { font-size: 15px; color: var(--texte); line-height: 1.5; }
.valeurs { list-style: none; margin: clamp(40px, 6vw, 72px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 32px; }
.valeurs li { border-top: 1px solid var(--filet-fort); padding-top: 16px; }
.valeurs li::before { content: ""; display: block; width: 7px; height: 7px; border-radius: 50%; background: var(--or-trait); margin: -20px 0 16px; }
.valeurs h3 { margin-bottom: 6px; }
.valeurs p { margin: 0; color: var(--doux); font-size: 15.5px; }

.ac-contact { background: var(--surface); padding: clamp(56px, 8vw, 104px) 0; border-top: 1px solid var(--filet); }
.ac-contact-grille { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 48px 72px; align-items: start; }
.ac-appel .has-text-align-center { text-align: left; }
.ac-appel h2 { font-size: var(--step-4); }
.ac-appel .wp-block-buttons { justify-content: flex-start; margin-top: 24px; }
.ac-bureaux h2 { font-size: var(--step-2); margin-bottom: 20px; }
.bureaux { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--filet-fort); }
.bureau { padding: 18px 24px 4px 0; }
.bureau + .bureau { padding-left: 24px; border-left: 1px solid var(--filet); }
.bureau .eyebrow { margin-bottom: .3em; }
.bureau h3 { font-size: var(--step-3); font-weight: 400; margin-bottom: 4px; }
.bureau .firm { font-weight: 700; margin-bottom: .4em; }
.bureau p { margin-bottom: .6em; font-size: 16px; }

@media (max-width: 1000px) {
  .ac-hero-grille, .ac-entete, .ac-nnar-tete, .ac-inter-grille, .ac-indep-grille, .ac-contact-grille { grid-template-columns: minmax(0, 1fr); }
  .sv { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .sv-plus { grid-column: 2; }
  .sv-plus .a-plus { flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
  .valeurs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ac-hero { padding-top: 8px; display: flex; flex-direction: column; }
  .ac-hero-grille { display: contents; }
  .ac-titre, .ac-appui { width: calc(100% - 2 * var(--gouttiere)); margin-inline: auto; }
  .ac-titre { order: 1; margin-bottom: 18px; }
  .ac-hero > .cadre { order: 2; }
  .ac-appui { order: 3; margin-top: 18px; }
  .ac-appui .a-lead { font-size: 16px; margin-bottom: 16px; }
  .ac-appui .wp-block-buttons .wp-block-button { flex: 1 1 auto; }
  .ac-appui .wp-block-buttons .wp-block-button__link { width: 100%; }
  .cc-tete { grid-template-columns: minmax(0, 1fr); }
  .cc-carte p:not(:last-child) { font-size: 14px; line-height: 1.45; margin-bottom: 2px; } /* textes inchangés : la phrase reste au téléphone */
  .a-norms { justify-content: flex-start; font-size: 13px; }
  .a-norms span::before { display: none; }
  .sv { grid-template-columns: minmax(0, 1fr); padding: 22px 0; }
  .sv-plus { grid-column: 1; }
  .valeurs { grid-template-columns: minmax(0, 1fr); }
  .bureaux { grid-template-columns: minmax(0, 1fr); }
  .bureau + .bureau { padding-left: 0; border-left: 0; border-top: 1px solid var(--filet); }
  .intl-list { grid-template-columns: minmax(0, 1fr); }
  .chiffres li { grid-template-columns: 4.4em minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- pages intérieures (contenu WordPress repris tel quel) */
.site, .site-content, .content-area, .site-main, .inside-article, .entry-content { display: block; margin: 0; padding: 0; width: auto; max-width: none; }
.site { width: min(var(--large), 100% - 2 * var(--gouttiere)); margin-inline: auto; }
.allea-dark-page > .wp-block-group__inner-container { display: block; }
.a-section { padding: clamp(36px, 5vw, 64px) 0; border-top: 1px solid var(--filet); }
.a-section.a-tete { border-top: 0; padding-top: clamp(16px, 4vh, 48px); padding-bottom: 0; }
.a-section.a-tete > .wp-block-group__inner-container { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 20px 56px; align-items: end; }
.tp-titre h1 { font-size: var(--step-5); font-weight: 400; line-height: 1.05; letter-spacing: -.028em; margin: 0; text-wrap: balance; }
.tp-titre h1 strong { font-weight: 700; }
.tp-appui > :last-child { margin-bottom: 0; }
.tp-appui .a-lead { font-size: var(--step-0); }
.tp-appui .wp-block-list { padding-left: 1.1em; }
.tp-appui .chips { margin-top: 12px; }
.regle { grid-column: 1 / -1; height: 18px; margin-top: clamp(28px, 5vw, 52px); border-top: 1px solid var(--filet-fort);
  background: repeating-linear-gradient(90deg, var(--filet-fort) 0 1px, transparent 1px calc(100% / 12)) top left / 100% 6px no-repeat; }
.a-tete + .a-section { border-top: 0; }
.sec-rail > .wp-block-group__inner-container { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 16px 56px; align-items: start; }
.sec-titre { position: sticky; top: 100px; }
.sec-titre h2 { font-size: var(--step-3); margin: 0; }
.sec-corps { max-width: 72ch; }
.sec-corps > :last-child, .sec-large > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.sec-corps > figure, .sec-corps > .chart-card, .sec-corps > .a-sens, .sec-corps > .a-puc, .sec-corps > .a-wf, .sec-corps > .a-chmap, .sec-corps > .a-wmap { max-width: none; }
.sec-large > .wp-block-group__inner-container > h2 { max-width: 30ch; }
.sec-large > .wp-block-group__inner-container > p, .sec-large > .wp-block-group__inner-container > ul, .sec-large > .wp-block-group__inner-container > ol,
.sec-large > .wp-block-group__inner-container > details, .sec-large > .wp-block-group__inner-container > h3 { max-width: 72ch; }
.sec-ev { border-top: 0; padding-top: 8px; }
.sec-ev .esperance-vie .g-hote { --fond-g: var(--surface); }
.ac-nnar .g-hote { --fond-g: var(--surface-2); }
.sec-ev .esperance-vie { padding: clamp(20px, 3vw, 32px); background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); }
.entry-content ul.wp-block-list, .entry-content ol.wp-block-list { padding-left: 1.2em; }
.entry-content li { margin-bottom: .45em; }
.entry-content li::marker { color: var(--or-trait); }
/* listes ordonnées : parcours numéroté sur un filet */
.sec-corps ol.wp-block-list { list-style: none; padding: 0; counter-reset: etape; border-left: 1px solid var(--filet-fort); margin-left: 14px; }
.sec-corps ol.wp-block-list > li { counter-increment: etape; position: relative; padding: 0 0 18px 30px; }
.sec-corps ol.wp-block-list > li::before { content: counter(etape); position: absolute; left: -14px; top: 0; width: 28px; height: 28px; display: grid; place-items: center;
  border-radius: 50%; background: var(--page); border: 1px solid var(--or-trait); color: var(--or); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.sec-corps ol.wp-block-list > li:last-child { padding-bottom: 0; }
.a-h2 { font-weight: 400; }
.has-text-align-center { text-align: center; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chips span { font-size: 13px; font-weight: 700; padding: 3px 9px; border: 1px solid var(--filet-fort); border-radius: var(--rayon); color: var(--titre); }

/* FAQ : lignes à filet */
details.a-faq { border-top: 1px solid var(--filet); margin: 0; padding: 0; }
details.a-faq:last-of-type { border-bottom: 1px solid var(--filet); }
details.a-faq + :not(details) { margin-top: 1.6em; }
details.a-faq summary { list-style: none; cursor: pointer; padding: 16px 40px 16px 0; position: relative; font-weight: 700; color: var(--titre); line-height: 1.4; }
details.a-faq summary::-webkit-details-marker { display: none; }
details.a-faq summary::after { content: ""; position: absolute; right: 6px; top: 22px; width: 12px; height: 12px;
  background: linear-gradient(var(--or-trait), var(--or-trait)) center / 12px 1.5px no-repeat, linear-gradient(var(--or-trait), var(--or-trait)) center / 1.5px 12px no-repeat;
  transition: transform var(--t1) var(--courbe); }
details.a-faq[open] summary::after { transform: rotate(45deg); }
details.a-faq > :not(summary) { margin-top: 0; }
details.a-faq > :last-child { padding-bottom: 18px; }

/* encadré d'appel final (a-center) */
.a-section.a-center { border-top: 0; text-align: center; }
.a-center .a-card { background: var(--surface); border: 1px solid var(--filet); border-top: 3px solid var(--or-trait); border-radius: var(--rayon); padding: clamp(28px, 5vw, 56px); text-align: left;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 40px; align-items: center; }
.a-center .a-card > .wp-block-group__inner-container { display: contents; }
.a-center .a-card h2 { font-size: var(--step-3); margin: 0; grid-column: 1; }
.a-center .a-card p:not(.a-ctas) { grid-column: 1; margin: 0; color: var(--doux); }
.a-center .a-card .a-ctas { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
.a-center > .wp-block-group__inner-container > h2 { margin-inline: auto; max-width: 30ch; }
.a-center .a-quote { margin-inline: auto; max-width: 26ch; }
.a-center .a-attrib { margin-bottom: 1.5em; }
@media (max-width: 760px) { .a-center .a-card { grid-template-columns: minmax(0, 1fr); } .a-center .a-card .a-ctas { grid-column: 1; grid-row: auto; } }

/* cartes génériques (pages À propos, experts, carrière) */
.wp-block-columns { display: flex; gap: 28px; margin: 1.2em 0; }
.wp-block-column { flex: 1 1 0; min-width: 0; }
@media (max-width: 760px) { .wp-block-columns { flex-direction: column; } .wp-block-column { flex-basis: auto !important; } }
.a-card { background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); padding: clamp(20px, 3vw, 30px); }
.wp-block-group.a-card + .wp-block-group.a-card { margin-top: 20px; }
.a-card .a-tag { font-size: 13px; font-weight: 700; color: var(--or); margin-bottom: .6em; }
.a-card > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.a-card img { border-radius: var(--rayon); }
.a-stat b { display: block; font-size: var(--step-4); font-weight: 700; color: var(--titre); line-height: 1; margin-bottom: 8px; }
.a-stat span { font-size: 15px; color: var(--doux); }
/* chiffres de la page À propos : 2 × 2 (en 4 colonnes dans le corps de texte, les cartes faisaient 140 px et « 1998 » touchait le bord) */
.wp-block-columns:has(> .a-stat) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.a-stat span { display: block; hyphens: auto; }
@media (max-width: 480px) { .wp-block-columns:has(> .a-stat) { grid-template-columns: minmax(0, 1fr); } }
.a-value { border-top: 1px solid var(--filet-fort); padding-top: 16px; }
.a-value p { color: var(--doux); font-size: 15.5px; }
.office .firm { font-weight: 700; }
.wp-block-image img, figure img { display: block; }
.wp-block-image { margin: 0 0 1em; }
.wp-block-verse { font-family: inherit; white-space: pre-wrap; }

/* tableaux et listes de fichiers (blocs @taux, @fichiers, NNAR) */
.allea-rates-wrap { overflow-x: auto; margin: 22px 0 8px; }
table.allea-rates { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 15px; }
table.allea-rates caption { caption-side: bottom; text-align: left; font-size: 13px; color: var(--doux); padding-top: 12px; }
table.allea-rates th, table.allea-rates td { padding: 9px 12px; border-bottom: 1px solid var(--filet); }
table.allea-rates thead th { font-size: 13px; font-weight: 700; color: var(--or); text-align: right; border-bottom-color: var(--filet-fort); }
table.allea-rates thead th:first-child { text-align: left; }
table.allea-rates tbody th { font-weight: 700; color: var(--titre); text-align: left; }
table.allea-rates tbody td { text-align: right; }
table.allea-rates tbody tr:first-child th, table.allea-rates tbody tr:first-child td { color: var(--or); font-weight: 700; }
@media (max-width: 600px) { table.allea-rates { font-size: 13.5px; } table.allea-rates th, table.allea-rates td { padding: 8px; } }
ul.allea-files { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--filet-fort); }
ul.allea-files li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-bottom: 1px solid var(--filet); padding: 11px 2px; margin: 0; }
ul.allea-files a { color: var(--titre); text-decoration: none; font-size: 15.5px; overflow-wrap: anywhere; }
ul.allea-files a:hover { text-decoration: underline; }
ul.allea-files span { color: var(--doux); font-size: 13px; white-space: nowrap; font-variant-numeric: tabular-nums; }
ul.nnar-archive li { flex-wrap: wrap; }
ul.nnar-archive .nnar-arch-m { color: var(--titre); font-size: 15.5px; }
ul.nnar-archive .nnar-arch-f { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13.5px; }
ul.nnar-archive .nnar-arch-f a { font-size: 13.5px; color: var(--doux); }
.nnar-table { margin-top: 18px; }
.nnar-valid { margin-top: 14px; } .nnar-valid table { font-size: 14px; }
.nnar-track { margin-top: 14px; } .nnar-track td.is-out { color: #B4513F; }
:root[data-theme="dark"] .nnar-track td.is-out { color: #D98C80; }
.nnar-table td.nnar-prob { color: var(--doux); } .nnar-table td.nnar-fwd { color: var(--or); }
.nnar-formula { background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); padding: 14px 18px; color: var(--doux); font-size: 15px; line-height: 1.65; margin: 18px 0 0; }
.nnar-formula b { color: var(--or); }
.a-aside { font-size: 14px; color: var(--doux); border-left: 2px solid var(--or-trait); padding-left: 14px; }

/* graphiques existants (main.js, canvas) : cadres de même rôle, même fond */
.chart-card, .a-sens, .dr-card, .a-puc, .a-wf { background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); transform: none !important; }
.chart-card { padding: 20px 22px 16px; margin: 0 0 1em; position: relative; }
.chart-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.chart-title { font-size: 15px; font-weight: 700; color: var(--titre); }
.chart-chip { font-size: 13px; color: var(--doux); }
.chart-card canvas { width: 100%; height: 300px; display: block; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 12px; margin-top: 6px; border-top: 1px solid var(--filet); font-size: 13px; color: var(--doux); }
.chart-legend i { display: inline-block; width: 16px; height: 3px; border-radius: 2px; margin-right: 7px; vertical-align: middle; }
:root:not([data-theme="dark"]) .chart-legend i[style*="#C39B30"] { background: #A98730 !important; }
:root:not([data-theme="dark"]) .chart-legend i[style*="#56BDA2"] { background: #2E8F73 !important; }
:root:not([data-theme="dark"]) .chart-legend i[style*="#2494A2"] { background: #15717D !important; }
.a-chart-note { font-size: 13.5px; color: var(--doux); margin: 10px 0 0; line-height: 1.5; }
.a-chart-kicker { font-size: var(--step--1); font-weight: 700; color: var(--or); margin: 0 0 10px; }
#dr-chart { width: 100%; height: 340px; display: block; }
.dr-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; }
.dr-card { padding: 16px 18px 12px; }
.dr-card-l { color: var(--doux); font-size: 13px; font-weight: 700; }
.dr-card-v { font-size: 30px; font-weight: 700; margin: 2px 0 0; font-variant-numeric: tabular-nums; }
.dr-card-s { color: var(--doux); font-size: 12.5px; margin-bottom: 8px; }
.dr-card-c { display: block; width: 100%; height: 44px; }
@media (max-width: 680px) { .dr-cards, .nnar-kpis { grid-template-columns: minmax(0, 1fr); } }
.dr-tip { position: absolute; pointer-events: none; background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); padding: 8px 12px; font-size: 12.5px; line-height: 1.5;
  color: var(--doux); display: none; white-space: nowrap; z-index: 3; box-shadow: var(--ombre); }
.dr-tip b { color: var(--titre); display: block; margin-bottom: 2px; }
.nnar-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 26px; }
.nnar-kpi .dr-card-s { min-height: 2.6em; }
@media (max-width: 680px) { .nnar-kpis { grid-template-columns: minmax(0, 1fr); } }
.nnar-asof { color: var(--doux); font-size: 13.5px; }
.nnar-chart { margin: 0 0 8px; }
.nnar-wrap { position: relative; }
.nnar-chart canvas.nnar-c { width: 100%; height: 360px; display: block; touch-action: pan-y; }
@media (max-width: 680px) { .nnar-chart canvas.nnar-c { height: 270px; } .nnar-chart .chart-chip { display: none; } }
.nnar-err { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--doux); font-size: 14px; margin: 0; }
.nnar-tip { max-width: 240px; } @media (max-width: 480px) { .nnar-tip { white-space: normal; } }
.nnar-y10 { --s: #2494A2; --sr: 36, 148, 162; } .nnar-frp4 { --s: #C39B30; --sr: 195, 155, 48; } .nnar-cpi_yoy { --s: #56BDA2; --sr: 86, 189, 162; }
:root:not([data-theme="dark"]) .nnar-y10 { --s: #13707C; --sr: 19, 112, 124; }
:root:not([data-theme="dark"]) .nnar-frp4 { --s: #8A6B1E; --sr: 138, 107, 30; }
:root:not([data-theme="dark"]) .nnar-cpi_yoy { --s: #237A62; --sr: 35, 122, 98; }
.nnar-kpi-v.nnar-y10, .nnar-kpi-v.nnar-frp4, .nnar-kpi-v.nnar-cpi_yoy, .nnar-tip .nnar-t { color: var(--s); }
.nnar-tip span { display: block; }
.chart-legend.nnar-legend { margin-top: 12px; }
.nnar-sw { display: inline-block; width: 18px; height: 8px; border-radius: 2px; margin-right: 7px; vertical-align: middle; }
.nnar-sw-line { height: 2px; background: var(--s); } .nnar-sw-med { height: 3px; }
.nnar-sw-fan { background: linear-gradient(90deg, rgba(var(--sr), .10), rgba(var(--sr), .58)); }
.nnar-sw-ref { height: 0; border-top: 2px dashed var(--doux); } .nnar-sw-fwd { height: 0; border-top: 2px dashed var(--or); }
.nnar-tip .nnar-t-fwd { color: var(--or); }
.a-sens { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; padding: 26px; margin: 28px 0 8px; }
.a-sens label { display: flex; justify-content: space-between; color: var(--doux); font-size: 14px; margin-bottom: 8px; }
.a-sens output { color: var(--or); font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; }
.a-sens input[type=range] { width: 100%; accent-color: var(--or-trait); cursor: pointer; margin: 0; }
.a-sens-scale { display: flex; justify-content: space-between; color: var(--doux); font-size: 12px; margin-top: 4px; }
.a-sens-note { color: var(--doux); font-size: 13px; margin: 14px 0 0; }
.a-sens-kicker { color: var(--doux); font-size: 13px; font-weight: 700; }
.a-sens-value { font-size: clamp(36px, 4.5vw, 52px); font-weight: 700; line-height: 1.1; margin: 4px 0 2px; font-variant-numeric: tabular-nums; color: var(--titre); }
.a-sens-delta { font-size: 14.5px; color: var(--doux); }
.a-sens-d { font-weight: 700; font-variant-numeric: tabular-nums; }
.a-sens-gauge { margin-top: 16px; height: 10px; border-radius: 2px; background: var(--surface-2); position: relative; }
.a-sens-mark { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--filet-fort); left: 50%; }
.a-sens-bar { position: absolute; top: 0; bottom: 0; background: var(--or-trait); border-radius: 2px; transition: left .2s, width .2s; }
@media (max-width: 680px) { .a-sens { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 20px; } }
.a-puc, .a-wf { padding: 20px 22px 16px; margin: 28px 0 8px; }
.a-wf-c { display: block; width: 100%; height: 340px; }
.a-puc-c { display: block; width: 100%; height: 360px; }
.a-steps { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.a-step-btn { font: inherit; font-size: 14px; font-weight: 700; padding: 8px 14px; border-radius: var(--rayon); border: 1px solid var(--filet-fort); background: transparent; color: var(--titre); cursor: pointer; }
.a-step-btn.on { background: var(--action); color: var(--action-texte); border-color: var(--action); }
.a-chmap { margin: 28px 0 8px; } .a-chmap canvas { display: block; width: 100%; height: clamp(240px, 45vw, 420px); }
.a-wmap { margin-top: 40px; } .a-wmap canvas { display: block; width: 100%; } .a-wmap .a-wmap-note { text-align: center; margin-top: 12px; }
.a-wmap-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--or-trait); margin-right: 8px; }

/* apparition : seulement avec JS, état final sans JS et en mouvement réduit */
.reveal { transition: opacity var(--t2) var(--courbe), translate var(--t2) var(--courbe); }
html.js .reveal:not(.in) { opacity: 0; translate: 0 14px; }

/* ---------------------------------------------------------------- articles, listes, archives, 404 */
.p-article .site, .p-simple .site { padding-top: clamp(16px, 4vh, 40px); padding-bottom: clamp(48px, 7vw, 88px); }
.p-article .inside-article { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr) minmax(0, 1fr); gap: 0 48px; }
.p-article .entry-header { grid-column: 1 / -1; padding-bottom: clamp(24px, 4vw, 40px); margin-bottom: clamp(24px, 4vw, 40px); border-bottom: 1px solid var(--filet-fort); }
.p-article .entry-title { font-size: var(--step-4); font-weight: 400; max-width: 26ch; text-wrap: balance; }
.entry-meta { font-size: 14px; color: var(--doux); }
.posted-on .updated, time.updated:not(.published) { display: none; }
.entry-meta a { color: var(--doux); }
.p-article .entry-content { grid-column: 2; max-width: 70ch; }
.p-article footer.entry-meta { grid-column: 2; margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--filet); display: flex; flex-direction: column; gap: 10px; }
.gp-icon svg { width: 1em; height: 1em; fill: currentColor; vertical-align: -.12em; margin-right: .35em; }
.post-navigation, .nav-links { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.nav-previous, .nav-next { font-size: 15px; }
.p-article .entry-content h2 { font-size: var(--step-2); margin-top: 1.6em; }
.p-article .entry-content h3 { margin-top: 1.4em; }
.entry-content blockquote { border-left: 2px solid var(--or-trait); padding-left: 16px; color: var(--doux); }
.entry-content table { border-collapse: collapse; width: 100%; font-size: 15px; }
.entry-content td, .entry-content th { border-bottom: 1px solid var(--filet); padding: 8px; text-align: left; }
.p-simple .page-header { padding-bottom: 20px; margin-bottom: 24px; border-bottom: 1px solid var(--filet-fort); }
.page-title { font-size: var(--step-4); font-weight: 400; }
.p-simple article.post { padding: 22px 0; border-bottom: 1px solid var(--filet); }
.p-simple article.post .inside-article { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 4px 40px; }
.p-simple article.post .entry-header { grid-column: 1 / -1; }
.p-simple article.post .entry-title { font-size: var(--step-2); font-weight: 400; margin-bottom: 4px; }
.p-simple article.post .entry-title a { color: var(--titre); text-decoration: none; }
.p-simple article.post .entry-title a:hover { text-decoration: underline; }
.p-simple article.post .entry-summary, .p-simple article.post footer { grid-column: 1 / -1; }
.p-simple .entry-summary p { margin: 0; color: var(--texte); }
.p-simple footer.entry-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.p-simple .no-results .page-header { border: 0; }
.p-simple .inside-article > .entry-header .entry-title { font-size: var(--step-4); font-weight: 400; }
/* publications (bloc Query Loop) : liste datée */
.wp-block-post-template { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--filet-fort); }
.wp-block-post { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 4px 40px; padding: 22px 0; border-bottom: 1px solid var(--filet); margin: 0; }
.wp-block-post-date { font-size: 14px; color: var(--doux); font-variant-numeric: tabular-nums; padding-top: 4px; }
.wp-block-post-title { font-size: var(--step-2); font-weight: 400; margin: 0 0 6px; grid-column: 2; }
.wp-block-post-title a { color: var(--titre); text-decoration: none; }
.wp-block-post-title a:hover { text-decoration: underline; }
.wp-block-post-excerpt { grid-column: 2; }
.wp-block-post-excerpt__excerpt { margin: 0 0 6px; }
.wp-block-post-excerpt__more-text { margin: 0; }
.wp-block-post-excerpt__more-link { font-weight: 700; text-decoration: none; }
@media (max-width: 760px) {
  .wp-block-post, .p-simple article.post .inside-article { grid-template-columns: minmax(0, 1fr); }
  .wp-block-post-title, .wp-block-post-excerpt { grid-column: 1; }
  .p-article .inside-article { grid-template-columns: minmax(0, 1fr); }
  .p-article .entry-content, .p-article footer.entry-meta { grid-column: 1; }
}

@media (max-width: 1000px) {
  .a-section.a-tete > .wp-block-group__inner-container, .sec-rail > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1fr); }
  .sec-titre { position: static; }
}
@media (max-width: 600px) {
  .a-section.a-tete > .wp-block-group__inner-container { gap: 14px; }
  .tp-titre h1 { font-size: var(--step-4); }
  .sec-ev .esperance-vie { padding: 18px 10px 14px; }
  .sec-ev .g-titre, .sec-ev .g-sous, .sec-ev .g-source { padding-inline: 6px; }
  .a-ctas a { flex: 1 1 auto; }
}

/* ---------------------------------------------------------------- pied */
.pied { background: var(--surface-2); padding: 40px 0 32px; font-size: 14.5px; }
.pied-in { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px 48px; align-items: start; }
.pied .marque { font-size: 22px; } .pied .marque img { width: 32px; height: 32px; }
.pied-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; justify-content: flex-end; }
.pied-nav a { color: var(--texte); text-decoration: none; }
.pied-nav a:hover { text-decoration: underline; }
.pied-ligne { grid-column: 1 / -1; margin: 8px 0 0; padding-top: 16px; border-top: 1px solid var(--filet-fort); color: var(--doux); font-size: 13.5px; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .pied-in { grid-template-columns: minmax(0, 1fr); } .pied-nav { justify-content: flex-start; } }

/* ================================================================ 30.10.2026 : entrées à comparer, courbe CHF descendue, site plus vivant
   Entrée du premier écran tirée au hasard à chaque visite (31.10.2026) : le script du <head> pose data-entree = a|b|c
   avant l'affichage (gardé en sessionStorage, ?entree= force). Le HTML servi est celui de b (éventail NNAR sous le titre) ;
   a et c sont des <template> insérés par un script en ligne pendant la lecture de la page (aucun saut).
   Même hauteur de tracé réservée pour les trois : --h-entree. */
.accueil { --h-entree: min(440px, max(250px, 100vh - 420px)); --h-entree: min(440px, max(250px, 100svh - 420px)); }

/* -- entrée a : étude ALM en grand (simulation d'illustration, nouveau.js dessine le canvas) */
.alm-mc { margin: 0; position: relative; }
.alm-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 28px; padding-bottom: 12px; border-bottom: 1px solid var(--filet); margin-bottom: 10px; }
.alm-titre { margin: 0; font-weight: 700; color: var(--titre); font-size: var(--step-0); line-height: 1.35; }
.alm-puce { display: inline-block; margin-left: 10px; padding: 1px 8px 2px; border: 1px solid var(--filet-fort); border-radius: var(--rayon);
  font-size: 12.5px; font-weight: 400; color: var(--doux); vertical-align: 2px; letter-spacing: .02em; }
.alm-legende { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 13.5px; color: var(--doux); }
.alm-legende li { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.alm-legende i { display: inline-block; width: 20px; height: 9px; border-radius: 2px; background: var(--bande); opacity: .16; }
.alm-legende .l50 i { opacity: .32; }
.alm-legende .lmed i { height: 3px; background: var(--or-trait); opacity: 1; }
[data-theme="dark"] .alm-legende .l90 i { opacity: .3; } [data-theme="dark"] .alm-legende .l50 i { opacity: .55; }
.alm-dessin { position: relative; height: var(--h-entree); }
.alm-dessin canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: pan-y; }
.alm-mc .g-hote { --fond-g: var(--page); }

/* -- entrée b : l'éventail NNAR sous le titre (ordre visuel dès le premier rendu ; nouveau.js le remonte aussi dans le DOM) */
/* a et c : l'éventail reprend sa place après les services (ordre visuel dès le premier rendu ; nouveau.js le déplace aussi
   dans le DOM pour le clavier et le lecteur d'écran) */
[data-entree="a"] main.accueil, [data-entree="c"] main.accueil { display: flex; flex-direction: column; }
[data-entree="a"] main.accueil > *, [data-entree="c"] main.accueil > * { order: 5; }
[data-entree="a"] main.accueil > .ac-hero, [data-entree="c"] main.accueil > .ac-hero { order: 1; }
[data-entree="a"] main.accueil > .ac-axe, [data-entree="c"] main.accueil > .ac-axe { order: 2; }
[data-entree="a"] main.accueil > .ac-services, [data-entree="c"] main.accueil > .ac-services { order: 3; }
[data-entree="a"] main.accueil > .ac-nnar, [data-entree="c"] main.accueil > .ac-nnar { order: 4; }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar { background: transparent; padding: 0 0 clamp(8px, 2vw, 24px); }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 6px 32px; margin-bottom: 8px;
  padding-bottom: 12px; border-bottom: 1px solid var(--filet); }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete .eyebrow, :root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete .a-lead { display: none; }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete h2 { font-size: var(--step-0); font-weight: 700; letter-spacing: 0; line-height: 1.35; margin: 0; }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete .ac-chip { display: inline; }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar .g-hote { --fond-g: var(--page); }
html.js:not([data-entree="a"]):not([data-entree="c"]) .accueil .ev-dessin { min-height: 0; height: var(--h-entree); } /* place du tracé réservée avant l'arrivée de nnar.json */
html.js:not([data-entree="a"]):not([data-entree="c"]) .accueil .ev-legende { min-height: 2.9em; }
:root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar .ev-fin { stroke: var(--page); }
@media (max-width: 1000px) { :root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar-tete { grid-template-columns: minmax(0, 1fr); } }
/* pouls unique sur la dernière valeur observée (toutes entrées) : la donnée est vivante, elle change chaque mois ;
   une seule fois, fini avant 5 s (WCAG 2.2.2) */
.ev-pouls { fill: none; stroke: var(--d10); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; opacity: 0; }
html.js .eventail:not(.attend) .ev-pouls { animation: pouls 2.6s var(--courbe) 1.6s 1; }
@keyframes pouls { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(3.4); opacity: 0; } }
/* l'éventail s'ouvre depuis le dernier point observé */
.ev-fan-g { transition: opacity var(--t2) var(--courbe) 900ms, transform 1100ms var(--courbe) 900ms; }
html.js .eventail.attend .ev-fan-g { transform: scaleX(0); }

/* -- entrée c : espérance de vie en grand */
.ac-ev .esperance-vie { padding-top: 4px; }
/* tracé chargé à la demande (assets/entrees/ev-<langue>.json) : sa boîte est réservée au rapport du dessin, bornée à --h-entree */
.ac-ev .g-dessin { aspect-ratio: 6 / 5; max-height: var(--h-entree); }
.ac-ev .g-dessin .g-svg { width: auto; max-width: 100%; height: 100%; }
@media (min-width: 601px) { .ac-ev .g-dessin { aspect-ratio: 5 / 2; } .ac-ev .g-dessin .g-svg { margin-left: auto; } } /* calé sur le bord droit du cadre */
@media (min-width: 1001px) { /* titre et source à gauche, tracé à droite : le dessin tient dans le premier écran */
  .ac-ev .esperance-vie { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); grid-template-rows: auto auto minmax(0, 1fr); gap: 0 40px; }
  .ac-ev .g-titre { grid-column: 1; grid-row: 1; }
  .ac-ev .g-sous { grid-column: 1; grid-row: 2; }
  .ac-ev .g-source { grid-column: 1; grid-row: 3; align-self: end; margin: 0 0 30px; }
  .ac-ev .g-dessin { grid-column: 2; grid-row: 1 / span 3; }
}
.ac-ev .g-titre { font-size: var(--step-0); }
.ac-ev .g-sous { font-size: 14.5px; margin-bottom: 8px; }
/* tracé des lignes à l'entrée dans l'écran (toutes les figures d'espérance de vie) */
.esperance-vie .g-ligne { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1800ms var(--courbe); }
.esperance-vie .g-ligne.ev-CHE { transition-duration: 2200ms; transition-delay: 250ms; }
.esperance-vie .g-point, .esperance-vie .g-etq, .esperance-vie .g-renvoi { transition: opacity var(--t2) var(--courbe) 1700ms; }
html.js .esperance-vie:not(.vu) .g-ligne { stroke-dashoffset: 1; }
html.js .esperance-vie:not(.vu) .g-point, html.js .esperance-vie:not(.vu) .g-etq, html.js .esperance-vie:not(.vu) .g-renvoi { opacity: 0; }

/* -- courbe CHF dans « Expertise internationale » : panneau, zone de l'écart, tracé à l'entrée dans l'écran */
.ac-taux { margin-top: clamp(40px, 6vw, 72px); }
.ac-taux .courbe-chf { background: var(--surface); border: 1px solid var(--filet); border-radius: var(--rayon); padding: clamp(18px, 2.6vw, 32px) clamp(16px, 2.8vw, 36px) clamp(14px, 2vw, 24px); box-shadow: var(--ombre); }
.ac-taux .g-hote { --fond-g: var(--surface); }
.ac-taux .courbe-chf circle.g-s1 { stroke: var(--surface); }
.cc-carte h3 { font-size: var(--step-1); font-weight: 700; letter-spacing: 0; line-height: 1.3; margin: 0 0 4px; }
.g-ecart-zone { fill: var(--or-fond); stroke: none; animation: apparait var(--t3) var(--courbe) both; animation-delay: 1300ms; }
[data-theme="dark"] .courbe-chf .g-ligne.g-s1 { filter: drop-shadow(0 0 6px rgba(226, 186, 74, .45)); }
html.js .ac-taux .courbe-chf:not(.vu) *, html.js .ac-taux .courbe-chf:not(.vu) *::before { animation-play-state: paused; }

/* -- apparitions au défilement (nouveau.js pose .app sur ce qui est sous le premier écran, puis .vu) */
.app { transition: opacity 700ms var(--courbe) var(--d, 0ms), transform 700ms var(--courbe) var(--d, 0ms); }
html.js .app:not(.vu) { opacity: 0; transform: translateY(18px); }
html.js .ac-etude.app:not(.vu)::before { transform: scaleX(0); }
.valeurs li::before { transition: transform var(--t2) var(--courbe) calc(var(--d, 0ms) + 350ms); }
html.js .valeurs li.app:not(.vu)::before { transform: scale(.4); }
.a-norms span::before { transition: transform var(--t2) var(--courbe) var(--d, 0ms); transform-origin: 50% 100%; }
html.js .a-norms.app:not(.vu) span::before { transform: scaleY(0); }

/* -- survols : un filet doré se trace sous la ligne de service (aucun changement de graisse) */
.sv::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--or-trait);
  transform: scaleX(0); transform-origin: 0 50%; transition: transform 520ms var(--courbe); }
@media (hover: hover) { .sv:hover::after { transform: scaleX(1); } .sv:hover .a-tag { color: var(--or); } }
.sv-tag .a-tag { transition: color var(--t2) var(--courbe); }
.intl-list li { position: relative; }
.intl-list li::before { content: ""; position: absolute; left: 0; top: -1px; width: 100%; height: 1px; background: var(--or-trait);
  transform: scaleX(0); transform-origin: 0 50%; transition: transform 520ms var(--courbe); }
@media (hover: hover) { .intl-list li:hover::before { transform: scaleX(1); } }

/* -- sélecteur de comparaison (seulement si l'adresse porte ?entree=) */
.choix-entree { position: fixed; left: 16px; bottom: 16px; z-index: 40; display: flex; align-items: center; gap: 4px; padding: 6px 8px 6px 14px;
  background: var(--pilule); border: 1px solid var(--filet-fort); border-radius: 999px; box-shadow: var(--ombre); font-size: 14px; color: var(--doux);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.choix-entree a { display: inline-grid; place-items: center; min-width: 34px; height: 34px; border-radius: 999px; color: var(--titre); text-decoration: none; font-weight: 700; }
.choix-entree a[aria-current] { background: var(--action); color: var(--action-texte); }

@media (max-width: 600px) {
  /* téléphone : titre, chapeau et boutons d'abord (entiers dans le premier écran à 390 × 700), l'entrée ensuite */
  .ac-hero > .entree { order: 4; margin-top: 34px; }
  :root:not([data-entree="a"]):not([data-entree="c"]) .ac-nnar { padding-top: 34px; }
  .accueil { --h-entree: 280px; }
  .alm-tete { padding-bottom: 8px; }
  .alm-legende { font-size: 12.5px; gap: 2px 14px; }
  .alm-puce { margin-left: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-delay: 0ms !important; transition-duration: 1ms !important; transition-delay: 0ms !important; scroll-behavior: auto !important; }
  html.js .reveal:not(.in) { opacity: 1; translate: none; }
  html.js .eventail.attend .ev-cache { transform: none; }
  html.js .eventail.attend .ev-fin { opacity: 1; }
  html.js .eventail.attend .ev-fan-g { opacity: 1; transform: none; }
  html.js .app:not(.vu) { opacity: 1; transform: none; }
  html.js .ac-etude.app:not(.vu)::before, html.js .valeurs li.app:not(.vu)::before, html.js .a-norms.app:not(.vu) span::before { transform: none; }
  html.js .esperance-vie:not(.vu) .g-ligne { stroke-dashoffset: 0; }
  html.js .esperance-vie:not(.vu) .g-point, html.js .esperance-vie:not(.vu) .g-etq, html.js .esperance-vie:not(.vu) .g-renvoi { opacity: 1; }
  html.js .ac-taux .courbe-chf:not(.vu) * { animation-play-state: running; }
  .ev-pouls { animation: none !important; opacity: 0; }
}
@media print {
  .tete, .pied, .saut, .choix-entree { display: none; }
  /* impression sans avoir défilé : état final de tout ce qui attend son entrée dans l'écran (comme en mouvement réduit) */
  *, *::before, *::after { transition: none !important; animation-delay: 0ms !important; animation-duration: 1ms !important; }
  html.js .reveal:not(.in) { opacity: 1; translate: none; }
  html.js .eventail.attend .ev-cache { transform: none; }
  html.js .eventail.attend .ev-fin { opacity: 1; }
  html.js .eventail.attend .ev-fan-g { opacity: 1; transform: none; }
  html.js .app:not(.vu) { opacity: 1; transform: none; }
  html.js .ac-etude.app:not(.vu)::before, html.js .valeurs li.app:not(.vu)::before, html.js .a-norms.app:not(.vu) span::before { transform: none; }
  html.js .esperance-vie:not(.vu) .g-ligne { stroke-dashoffset: 0; }
  html.js .esperance-vie:not(.vu) .g-point, html.js .esperance-vie:not(.vu) .g-etq, html.js .esperance-vie:not(.vu) .g-renvoi { opacity: 1; }
  html.js .ac-taux .courbe-chf:not(.vu) * { animation-play-state: running; }
  .ev-pouls { display: none; }
}

/* ---------------------------------------------------------------- néomorphisme « Nuit éclairée » (choix de Christophe, 31.10.2026)
   Une seule lumière, en haut à gauche. Les surfaces (pilule de l'en-tête, boutons, bouton de thème, panneaux des graphiques,
   cartes, encadré d'appel, questions fréquentes, bulles) sont en relief ; ce qui est pressé, ouvert ou à lire dedans se creuse.
   Chaque surface garde un bord de 1 px (--neo-bord, ~1,5:1), le focus reste le contour doré. Proposition : _direction/neomorphisme.html. */
body { background: var(--page) var(--lumiere, none) no-repeat; }
/* surfaces en relief : cartes, panneaux des graphiques, encadrés */
:root :is(.a-card, .chart-card, .a-sens, .dr-card, .a-puc, .a-wf, .nnar-formula, .sec-ev .esperance-vie, .ac-taux .courbe-chf),
:root:is([data-entree="a"], [data-entree="c"]) .accueil .ac-nnar .eventail, :root:not([data-entree="a"]):not([data-entree="c"]) .accueil .ac-nnar > .cadre {
  background: var(--surface) var(--neo-mat); border: 1px solid var(--neo-bord); border-radius: var(--neo-r); box-shadow: var(--relief); }
:root .a-center .a-card { border-top: 3px solid var(--or-trait); }
:root .a-card img { border-radius: calc(var(--neo-r) - 8px); }
/* le graphique du premier écran (entrée b) devient un panneau qui porte aussi son titre ; hauteur du tracé réduite d'autant
   pour que la légende reste dans le premier écran ; ses détourages suivent sa surface. Entrées a et c : panneau sur la figure. */
:root .accueil { --h-entree: min(400px, max(240px, 100vh - 480px)); --h-entree: min(400px, max(240px, 100svh - 480px)); }
:root:not([data-entree="a"]):not([data-entree="c"]) .accueil .ac-nnar > .cadre { padding: clamp(16px, 2.2vw, 28px) clamp(14px, 2.2vw, 28px) clamp(4px, 1vw, 12px); }
:root:not([data-entree="a"]):not([data-entree="c"]) .accueil .ac-nnar-tete { border-bottom-color: var(--neo-bord); }
:root:is([data-entree="a"], [data-entree="c"]) .accueil .ac-nnar .eventail { padding: clamp(14px, 2vw, 26px) clamp(12px, 2vw, 26px) clamp(6px, 1vw, 12px); }
:root .accueil .ac-nnar .eventail .g-hote, :root:not([data-entree="a"]):not([data-entree="c"]) .accueil .ac-nnar .eventail .g-hote { --fond-g: var(--fond-panneau, var(--surface)); }
:root .accueil .ac-nnar .eventail .ev-fin, :root:not([data-entree="a"]):not([data-entree="c"]) .accueil .ac-nnar .eventail .ev-fin { stroke: var(--fond-panneau, var(--surface)); }
:root .sec-ev .esperance-vie .g-hote, :root .ac-taux .g-hote { --fond-g: var(--surface); }

/* dans son panneau, le graphique est un écran en creux (un instrument qu'on lit), un ton plus profond */
:root .accueil .ac-nnar .ev-dessin, :root .sec-ev .esperance-vie .g-dessin {
  background: var(--surface-2); border-radius: 8px; box-shadow: var(--creux); padding: 6px 4px 0; }
:root { --fond-panneau: var(--surface-2); }
:root .sec-ev .esperance-vie .g-hote { --fond-g: var(--surface-2); }

/* en-tête : la pilule est de la matière du fond, en relief */
:root .tete-in::before { background: var(--pilule) var(--neo-mat); box-shadow: var(--relief-p); border: 1px solid var(--neo-bord); }
:root :is(.sous, .g-bulle, .dr-tip) { background: var(--surface) var(--neo-mat); border-color: var(--neo-bord); border-radius: 12px; box-shadow: var(--relief-p); }
:root .choix-entree { background: var(--pilule); box-shadow: var(--relief-p); border-color: var(--neo-bord); }

/* boutons : en relief au repos, en creux quand on appuie */
:root :is(.btn, .wp-block-button .wp-block-button__link, .a-ctas a.btn-gold, .a-ctas a.btn-ghost) {
  border-radius: var(--neo-rb); box-shadow: var(--relief-p);
  transition: background-color var(--t1) var(--courbe), border-color var(--t1) var(--courbe), color var(--t1) var(--courbe), box-shadow var(--t1) var(--courbe); }
:root :is(.btn-ghost .wp-block-button__link, .a-ctas a.btn-ghost) { background: var(--surface) var(--neo-mat); }
:root :is(.btn-ghost .wp-block-button__link, .a-ctas a.btn-ghost):active { box-shadow: var(--creux-p); }
:root :is(.btn-action, .btn-gold .wp-block-button__link, .a-ctas a.btn-gold):active { box-shadow: var(--creux-action); }
:root :is(.theme-btn, .menu-btn) { background: var(--surface) var(--neo-mat); border-color: var(--neo-bord); box-shadow: var(--relief-p);
  transition: box-shadow var(--t1) var(--courbe); }
:root .menu-btn { border-radius: min(var(--neo-rb), 14px); }
:root :is(.theme-btn, .menu-btn):active, :root .menu-btn[aria-expanded="true"] { box-shadow: var(--creux-p); }
:root .a-step-btn { border-radius: var(--neo-rb); background: var(--surface); box-shadow: var(--relief-p); }
:root .a-step-btn:active, :root .a-step-btn[aria-pressed="true"] { box-shadow: var(--creux-p); }
:root .a-step-btn.on { background: var(--action); color: var(--action-texte); border-color: var(--action); box-shadow: var(--creux-action); } /* étape choisie : pressée, texte lisible (7,3 à 12,3:1) */

/* pastilles et jauges : en creux (on lit dedans) */
:root :is(.chips span, .alm-puce) { border-color: var(--neo-bord); border-radius: 999px; box-shadow: var(--creux-p); background: var(--page); }
:root .a-sens-gauge { border-radius: 999px; box-shadow: var(--creux-p); }
:root .a-sens-bar { border-radius: 999px; }

/* étapes numérotées : petits boutons de matière */
:root .sec-corps ol.wp-block-list > li::before { background: var(--surface); box-shadow: var(--relief-p); }

/* questions fréquentes : chaque question est une tuile ; ouverte, elle se creuse */
:root details.a-faq { border: 1px solid var(--neo-bord); border-radius: calc(var(--neo-r) - 6px); background: var(--surface) var(--neo-mat);
  box-shadow: var(--relief-p); padding: 0 20px; margin: 0 0 14px; transition: box-shadow var(--t2) var(--courbe); }
:root details.a-faq:last-of-type { border-bottom: 1px solid var(--neo-bord); }
:root details.a-faq[open] { box-shadow: var(--creux); background: var(--page); }
:root details.a-faq summary { padding-right: 36px; }

/* champs : en creux */
:root :is(input[type="text"], input[type="email"], input[type="tel"], input[type="search"], textarea, select) {
  background: var(--page); border: 1px solid var(--filet-fort); border-radius: min(var(--neo-rb), 12px); box-shadow: var(--creux-p); }

@media (prefers-reduced-motion: reduce) {
  :root :is(details.a-faq, .theme-btn, .menu-btn, .btn, .wp-block-button__link) { transition: none; }
}
@media print { /* papier : ni relief, ni matière, ni lumière de page */
  *, *::before, *::after { box-shadow: none !important; }
  /* le papier est clair : jetons du thème clair quel que soit le thème choisi à l'écran (sinon texte pâle, courbes claires sur blanc) */
  :root, :root[data-theme="dark"], :root:not([data-theme]) {
    --page: #FFFFFF; --surface: #FFFFFF; --surface-2: #FFFFFF; --titre: #0F3467; --texte: #1C2738; --doux: #4E5A6D;
    --filet: rgba(15, 52, 103, .14); --filet-fort: rgba(15, 52, 103, .58); --or: #806318; --or-trait: #8A6B1E; --or-fond: rgba(179, 153, 81, .14);
    --action: #0F3467; --action-texte: #FFFFFF; --lien: #0F3467;
    --s0: #5E6979; --s1: #8A6B1E; --ev-CHE: #866510; --ev-USA: #B4502F; --ev-SWE: #3468AA; --ev-HKG: #1D7A66;
    --d10: #13707C; --d15: #237A62; --d20: #8A6B1E; --bande: #0F3467; --neg: #B0564A; --neo-bord: rgba(15, 52, 103, .24);
    color-scheme: light; }
  .nnar-y10 { --s: #13707C; --sr: 19, 112, 124; } .nnar-frp4 { --s: #8A6B1E; --sr: 138, 107, 30; } .nnar-cpi_yoy { --s: #237A62; --sr: 35, 122, 98; }
  :root .nnar-track td.is-out { color: var(--neg); }
  .courbe-chf .g-ligne.g-s1 { filter: none !important; }
  /* l'impression ne fait pas avancer une animation reprise : tracés et points posés à leur état final */
  .courbe-chf .g-ligne, .courbe-chf .g-point, .courbe-chf .g-etq, .courbe-chf .g-etq-d, .courbe-chf circle.g-pt, .g-ecart-zone { animation: none !important; }
  /* les fonds ne s'impriment pas par défaut : bouton plein en contour */
  :root :is(.btn-action, .btn-gold .wp-block-button__link, .a-ctas a.btn-gold, .a-step-btn.on) { background: none; color: var(--titre); border-color: var(--titre); }
  /* tracé de l'éventail : hauteur de son dessin à la largeur du papier (la boîte réservée à l'écran laisserait un vide) */
  html.js .accueil .ev-dessin { height: auto !important; }
  body, :root :is(.a-card, .chart-card, .a-sens, .dr-card, .a-puc, .a-wf, .nnar-formula, .sec-ev .esperance-vie, .ac-taux .courbe-chf, .ac-nnar > .cadre, .eventail, details.a-faq, .wp-block-button__link) { background-image: none !important; }
}
