@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(/statique/polices/newsreader-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:500;font-display:swap;src:url(/statique/polices/newsreader-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/statique/polices/ibm-plex-sans-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/statique/polices/ibm-plex-sans-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/statique/polices/ibm-plex-sans-greek-500-normal.woff2) format('woff2');unicode-range:U+0370-03FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/statique/polices/ibm-plex-mono-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/statique/polices/ibm-plex-mono-latin-500-normal.woff2) format('woff2');}
:root{--fond:#F5F6F8;--surface:#FFFFFF;--encre:#12161D;--encre-2:#525B69;--filet:#D6DAE0;--cadran:#EEF0F3;--theme-sciences:#2B4FB5;--theme-sciences-doux:#E8EDFA;--theme-economie:#8F5E0E;--theme-economie-doux:#F6EEDF;--theme-ecologie:#1B7154;--theme-ecologie-doux:#E2F1EA;--theme-geopolitique:#7A3E9D;--theme-geopolitique-doux:#F1E8F6;--esp-1:4px;--esp-2:8px;--esp-3:12px;--esp-4:16px;--esp-6:24px;--esp-8:32px;--esp-12:48px;--rayon-0:0;--rayon-1:2px;--rayon-2:4px;--font-titre:Newsreader, Georgia, 'Times New Roman', serif;--font-texte:'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;--font-donnees:'IBM Plex Mono', 'Cascadia Mono', Consolas, monospace;}
@media (prefers-color-scheme: dark){:root{--fond:#0F1217;--surface:#171B22;--encre:#E9ECF1;--encre-2:#A3ACBA;--filet:#2A303A;--cadran:#1D222B;--theme-sciences:#8EA6F0;--theme-sciences-doux:#1C2540;--theme-economie:#E0B060;--theme-economie-doux:#33280F;--theme-ecologie:#6FCBA6;--theme-ecologie-doux:#12302A;--theme-geopolitique:#C39BE0;--theme-geopolitique-doux:#2C1D38;color-scheme:dark}}

/* Horizon Ω — composants du rapport et du visuel de post.
   Le thème d'un rapport se choisit avec une classe sur le conteneur :
   hz-t-sciences, hz-t-economie, hz-t-ecologie, hz-t-geopolitique. */

.hz { font-family: var(--font-texte); color: var(--encre); background: var(--fond); font-size: 16px; line-height: 26px; }
.hz *, .hz *::before, .hz *::after { box-sizing: border-box; }

.hz-t-sciences     { --theme: var(--theme-sciences);     --theme-doux: var(--theme-sciences-doux); }
.hz-t-economie     { --theme: var(--theme-economie);     --theme-doux: var(--theme-economie-doux); }
.hz-t-ecologie     { --theme: var(--theme-ecologie);     --theme-doux: var(--theme-ecologie-doux); }
.hz-t-geopolitique { --theme: var(--theme-geopolitique); --theme-doux: var(--theme-geopolitique-doux); }

/* Signature : le Ω posé sur la ligne d'horizon */
.hz-mark { display: block; color: var(--encre); }
.hz-mark path { fill: none; stroke: currentColor; }
.hz-num { font-family: var(--font-donnees); font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.hz-etiquette { font-family: var(--font-texte); font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }

/* Pastille de thème */
.hz-pastille { display: inline-flex; align-items: center; gap: var(--esp-2); padding: 2px var(--esp-2); border-radius: var(--rayon-1); background: var(--theme-doux); color: var(--theme); }
.hz-pastille::before { content: ""; width: 8px; height: 8px; background: var(--theme); }

/* En-tête de rapport */
.hz-entete { display: grid; gap: var(--esp-3); padding-bottom: var(--esp-6); }
.hz-entete__haut { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-3); color: var(--encre-2); }
.hz-entete__haut .hz-num { color: var(--encre); }
.hz-entete h1 { margin: 0; font-family: var(--font-titre); font-size: 40px; line-height: 44px; font-weight: 500; letter-spacing: -.01em; text-wrap: balance; max-width: 22ch; }
.hz-horizon { height: 3px; background: var(--theme, var(--encre)); border-radius: 0; }

/* Échelle de probabilité : 6 crans, verbale + fourchette */
.hz-proba { display: inline-grid; grid-template-columns: auto auto; align-items: center; column-gap: var(--esp-2); row-gap: 2px; }
.hz-proba__jauge { display: flex; gap: 2px; grid-row: span 2; }
.hz-proba__jauge i { width: 6px; height: 18px; background: var(--filet); }
.hz-proba__jauge i.on { background: var(--encre); }
.hz-proba__mot { font-size: 13px; line-height: 16px; font-weight: 500; }
.hz-proba__val { font-family: var(--font-donnees); font-size: 12px; line-height: 14px; color: var(--encre-2); font-variant-numeric: tabular-nums; }
.hz-origine { font-size: 12px; line-height: 16px; color: var(--encre-2); border: 1px solid var(--filet); border-radius: var(--rayon-1); padding: 0 6px; }

/* Ligne de conséquence */
.hz-csq { display: grid; grid-template-columns: 7rem 1fr auto; gap: var(--esp-4); align-items: start; padding: var(--esp-4) 0; border-top: 1px solid var(--filet); }
.hz-csq__horizon { color: var(--encre-2); padding-top: 4px; }
.hz-csq__domaine { color: var(--theme); display: block; margin-bottom: 2px; }
.hz-csq__texte { margin: 0; min-width: 0; }
.hz-csq__droite { display: grid; justify-items: end; gap: var(--esp-2); }
@media (max-width: 560px) { .hz-csq { grid-template-columns: 1fr; } .hz-csq__droite { justify-items: start; } }

/* Les 5 cadrans politiques */
.hz-cadrans__titre { display: flex; justify-content: space-between; align-items: baseline; gap: var(--esp-4); flex-wrap: wrap; margin-bottom: var(--esp-3); }
.hz-cadrans__titre p { margin: 0; color: var(--encre-2); font-size: 14px; line-height: 22px; }
.hz-cadrans { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--esp-2); }
@media (max-width: 720px) { .hz-cadrans { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } }
.hz-cadran { background: var(--cadran); border-radius: var(--rayon-2); padding: var(--esp-3); display: grid; align-content: start; gap: var(--esp-2); min-width: 0; }
.hz-cadran__sigle { width: 32px; height: 32px; border: 1px solid var(--encre-2); color: var(--encre); display: grid; place-items: center; font-family: var(--font-donnees); font-size: 12px; font-weight: 500; letter-spacing: .04em; }
.hz-cadran h3 { margin: 0; font-family: var(--font-titre); font-size: 18px; line-height: 24px; font-weight: 500; }
.hz-cadran p { margin: 0; font-size: 14px; line-height: 21px; color: var(--encre); }
.hz-cadran dl { margin: 0; display: grid; gap: var(--esp-2); }
.hz-cadran dt { font-size: 11px; line-height: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--encre-2); }
.hz-cadran dd { margin: 0; font-size: 13px; line-height: 19px; }

/* Encart de fin : sources et discussion */
.hz-encart { border: 1px solid var(--filet); border-radius: var(--rayon-2); background: var(--surface); padding: var(--esp-4); display: grid; gap: var(--esp-3); }
.hz-encart ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--esp-1); }
.hz-encart a { color: var(--encre); text-underline-offset: 3px; text-decoration-color: var(--theme, var(--encre-2)); }

/* Visuel de post unique, format 4:5 (1080 × 1350), dessiné à 432 × 540 */
.hz-post { width: 432px; height: 540px; background: var(--fond); color: var(--encre); display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; padding: 32px; position: relative; overflow: hidden; border: 1px solid var(--filet); }
.hz-post__haut { display: flex; justify-content: space-between; align-items: center; }
.hz-post__milieu { align-self: center; display: grid; gap: var(--esp-3); }
.hz-post__chiffre { font-family: var(--font-donnees); font-size: 64px; line-height: 64px; font-weight: 500; letter-spacing: -.03em; color: var(--theme); }
.hz-post__titre { margin: 0; font-family: var(--font-titre); font-size: 26px; line-height: 31px; font-weight: 500; text-wrap: balance; }
.hz-post__constat { margin: 0; font-size: 14px; line-height: 21px; color: var(--encre-2); }
.hz-post__bandeau { display: flex; align-items: center; gap: var(--esp-2); font-size: 12px; line-height: 16px; color: var(--encre-2); }
.hz-post__bandeau i { display: inline-flex; gap: 2px; }
.hz-post__bandeau i b { width: 8px; height: 8px; border: 1px solid var(--encre-2); }
.hz-post__bas { display: grid; gap: var(--esp-3); }
.hz-post__sig { display: flex; align-items: end; gap: var(--esp-3); }
.hz-post__sig svg { flex: none; width: 34px; height: 28px; }
.hz-post__sig svg path { stroke: var(--theme); }
.hz-post__ligne { flex: 1 1 0; min-width: 0; height: 2.5px; background: var(--theme); margin: 0 0 0 -1px; align-self: end; }
.hz-post__sig { gap: 0; }
.hz-post__lien { margin-left: var(--esp-3); }
.hz-qr { margin-left: var(--esp-3); }
.hz-post__lien { font-family: var(--font-donnees); font-size: 12px; line-height: 16px; color: var(--encre); white-space: nowrap; }
.hz-qr { width: 44px; height: 44px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; padding: 3px; background: var(--surface); border: 1px solid var(--filet); }
.hz-qr b { background: var(--encre); }
.hz-qr b.o { background: transparent; }

/* Mise en page du site Horizon Ω */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre)}
.page{min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
.page>header,.page>main,.page>footer{padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
.col{max-width:720px;margin:0 auto}
.large{max-width:1080px;margin:0 auto}
a{color:inherit}
a:focus-visible{outline:2px solid var(--theme, var(--encre));outline-offset:2px}

.barre__in{display:flex;align-items:end;justify-content:space-between;gap:16px;padding-block:20px 12px;border-bottom:1px solid var(--filet)}
.sig{display:flex;align-items:end;gap:8px;text-decoration:none;color:var(--encre)}
.sig span{font-family:var(--font-titre);font-size:22px;line-height:24px;font-weight:500;padding-bottom:5px}
.sig .hz-mark{width:36px;height:36px}
.barre nav{display:flex;gap:20px;font-size:14px;line-height:20px;padding-bottom:6px}
.barre nav a{text-decoration:none;color:var(--encre-2)}
.barre nav a:hover{color:var(--encre)}

.pied__in{margin-top:64px;padding-block:20px 32px;border-top:1px solid var(--filet);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;color:var(--encre-2);font-size:13px;line-height:20px}
.pied a{color:var(--encre-2)}

/* Accueil */
.intro{padding-top:48px}
.intro__accroche{margin:0;font-family:var(--font-titre);font-size:24px;line-height:33px;max-width:40ch;text-wrap:pretty}
.intro__themes{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.une{margin-top:40px;background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon-2);padding:28px 28px 0}
.une__haut{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--encre-2)}
.une__haut .hz-num{color:var(--encre)}
.une__haut .dernier{margin-left:auto}
.une__corps{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:24px 40px;align-items:start;padding:24px 0 28px}
.une .hz-post__chiffre{font-size:96px;line-height:92px}
.une h2{margin:0 0 12px;font-family:var(--font-titre);font-size:32px;line-height:38px;font-weight:500;text-wrap:balance}
.une h2 a{text-decoration:none}
.une h2 a:hover{text-decoration:underline;text-decoration-color:var(--theme);text-underline-offset:4px}
.une p{margin:0 0 12px;font-size:16px;line-height:25px;max-width:60ch}
.une__legende{color:var(--encre-2)}
.bouton{display:inline-block;margin-top:8px;padding:10px 16px;background:var(--encre);color:var(--fond);text-decoration:none;font-size:14px;line-height:20px;font-weight:500;border-radius:var(--rayon-1)}
.bouton:hover{background:var(--theme)}
.une .hz-horizon{margin:0 -28px}
@media (max-width:640px){.une__corps{grid-template-columns:1fr}.une .hz-post__chiffre{font-size:72px;line-height:70px}.une__haut .dernier{margin-left:0}}
#rapports{padding-top:48px}
.liste{list-style:none;margin:0;padding:0;border-top:1px solid var(--filet)}
.ligne a{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;gap:8px 20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--filet);text-decoration:none}
.ligne__titre{font-family:var(--font-titre);font-size:20px;line-height:26px}
.ligne a:hover .ligne__titre{text-decoration:underline;text-decoration-color:var(--theme);text-underline-offset:4px}
.ligne__date{font-size:13px;color:var(--encre-2);white-space:nowrap}
@media (max-width:640px){.ligne a{grid-template-columns:56px minmax(0,1fr)}.ligne .hz-pastille,.ligne__date{grid-column:2;justify-self:start}}

/* Rapport */
.hz-entete{padding-top:40px}
.cle{display:grid;grid-template-columns:auto 1fr;gap:8px 24px;align-items:end;padding:28px 0 8px}
.cle .hz-post__chiffre{font-size:72px;line-height:72px}
.hz-post__chiffre .u{font-size:.5em;margin-left:.15em;letter-spacing:0}
.cle p{margin:0;color:var(--encre-2);font-size:15px;line-height:23px;max-width:46ch}
@media (max-width:560px){.cle{grid-template-columns:1fr}.cle .hz-post__chiffre{font-size:56px;line-height:56px}.hz-entete h1{font-size:32px;line-height:37px}}
.sommaire{display:flex;flex-wrap:wrap;gap:6px 18px;margin:20px 0 0;padding:12px 0;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);font-size:13px;line-height:18px}
.sommaire a{color:var(--encre-2);text-decoration:none}
.sommaire a:hover,.sommaire a:focus-visible{color:var(--theme)}
article section{padding-top:40px;scroll-margin-top:16px}
.titre-s{font-family:var(--font-titre);font-size:28px;line-height:34px;font-weight:500;margin:0 0 16px;text-wrap:balance}
.titre-s .n{font-family:var(--font-donnees);font-size:14px;color:var(--theme);margin-right:10px;vertical-align:4px}
.prose h3{font-family:var(--font-titre);font-size:20px;line-height:26px;font-weight:500;margin:28px 0 8px}
.prose h2{font-family:var(--font-titre);font-size:26px;line-height:32px;font-weight:500;margin:36px 0 12px}
.prose p,.prose li{font-size:16px;line-height:26px}
.prose p{margin:0 0 14px}
.prose ul,.prose ol{margin:0 0 14px;padding-left:22px}
.prose li{margin-bottom:8px}
.prose li::marker{color:var(--theme)}
.prose strong{font-weight:500}
.prose table{border-collapse:collapse;margin:8px 0 16px;font-size:14px;line-height:20px}
.prose th,.prose td{border-bottom:1px solid var(--filet);padding:8px 16px 8px 0;text-align:left}
.prose th{font-weight:500}
.refs{font-family:var(--font-donnees);font-size:11px;line-height:0;color:var(--theme);margin-left:1px}
.ref{color:var(--theme);text-decoration:none}
.ref:hover{text-decoration:underline}
.csq-box{background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon-2);padding:0 20px}
.csq-box .hz-csq:first-child{border-top:0}
.echelle{margin:14px 0 0;font-size:13px;line-height:20px;color:var(--encre-2)}
.sep{margin:48px 0 0;border:0;border-top:3px solid var(--encre)}
.hz-cadrans__titre .titre-s{margin:0}
.fin{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}
@media (max-width:760px){.fin{grid-template-columns:1fr}}
.hz-encart>.hz-etiquette{color:var(--encre-2)}
.sources ol{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px;line-height:20px}
.sources li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;scroll-margin-top:24px}
.sources li:target{background:var(--theme-doux)}
.sources .num{font-family:var(--font-donnees);color:var(--encre-2)}
.sources a{text-decoration-color:var(--theme);text-underline-offset:3px;overflow-wrap:anywhere}
.discuter p{margin:0;font-size:14px;line-height:21px;color:var(--encre-2)}
.discuter .court{margin-top:8px;font-family:var(--font-donnees);font-size:12px}

/* Pages simples */
.page-simple{padding-top:40px}
.simple-entete h1{margin:0;font-family:var(--font-titre);font-size:40px;line-height:44px;font-weight:500}
.chapo{margin:12px 0 20px;color:var(--encre-2);font-size:17px;line-height:27px}
.simple-entete .hz-horizon{margin-bottom:12px}
.initiales{margin:20px 0 0;text-align:right;font-family:var(--font-donnees);font-size:12px;line-height:16px;letter-spacing:.08em;color:var(--encre-2)}
