/* Article 15 — styles. Polices et sobriété héritées de Precious Trade ; format réseau social, mobile d'abord. */
html,body{margin:0}
:root{padding-top:env(safe-area-inset-top,0px)}
/* Layout: a phone-first social feed. One centred column of posts, topic bubbles on top, a tab bar at the bottom on phones. */
:root{
  --bg:#f3f3f1; --card:#ffffff; --paper:#fbfaf6; --chip:#ebe9e3; --ink:#141414; --ink-2:#4a4a4a; --muted:#8c8c8c; --line:#e6e6e3;
  --pour:#2f6b4f; --pour-soft:#e4efe9; --contre:#9b3a2e; --contre-soft:#f5e5e2; --wait:#8a6a1f; --wait-soft:#f4ecd9;
  --font:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif; --serif:"Cormorant Garamond",Garamond,"Times New Roman",serif;
  --tabh:64px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c0c0c; --card:#161616; --paper:#111111; --chip:#262626; --ink:#ededed; --ink-2:#bdbdbd; --muted:#7d7d7d; --line:#262626;
  --pour:#86c5a5; --pour-soft:#18291f; --contre:#e8907f; --contre-soft:#2e1a17; --wait:#d9b765; --wait-soft:#2b2412; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0c0c0c; --card:#161616; --paper:#111111; --chip:#262626; --ink:#ededed; --ink-2:#bdbdbd; --muted:#7d7d7d; --line:#262626;
  --pour:#86c5a5; --pour-soft:#18291f; --contre:#e8907f; --contre-soft:#2e1a17; --wait:#d9b765; --wait-soft:#2b2412; color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased}
body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--font);padding-bottom:calc(var(--tabh) + env(safe-area-inset-bottom,0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--card)}
button{font-family:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.col{max-width:620px;margin:0 auto;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}

/* top bar */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;background:var(--card);border-bottom:1px solid var(--line)}
.top .col{display:flex;align-items:center;gap:16px;padding-block:12px}
.logo{font-size:14px;letter-spacing:2.5px;text-transform:uppercase;font-weight:500}
.logo span{color:var(--muted)}
.toptabs{margin-left:auto;display:flex;gap:4px}
.toptabs button{background:none;border:0;padding:8px 10px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;border-radius:8px}
.toptabs button[aria-pressed="true"]{color:var(--ink);background:var(--bg)}
@media (max-width:700px){.toptabs{display:none}}

/* bottom tab bar (phones) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--card);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));display:none;grid-template-columns:repeat(4,1fr)}
.tabbar button{background:none;border:0;display:grid;justify-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:500;color:var(--muted);cursor:pointer}
.tabbar button svg{width:22px;height:22px}
.tabbar button[aria-pressed="true"]{color:var(--ink)}
@media (max-width:700px){.tabbar{display:grid}}
@media (min-width:701px){body{padding-bottom:0}}

/* topic bubbles */
.topics{display:flex;gap:14px;overflow-x:auto;padding:16px 2px 6px;scrollbar-width:none}
.topics::-webkit-scrollbar{display:none}
.topic{flex:none;display:grid;justify-items:center;gap:6px;background:none;border:0;cursor:pointer;width:68px}
.topic .ring{width:60px;height:60px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;background:var(--card);font:600 20px/1 var(--serif)}
.topic.hot .ring{border-color:var(--ink)}
.topic[aria-pressed="true"] .ring{background:var(--ink);color:var(--card);border-color:var(--ink)}
.topic span{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68px}

.intro{margin:10px 0 4px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.intro p{margin:0;font:500 19px/1.35 var(--serif)}
.intro small{display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.intro button{margin-top:10px;background:none;border:0;padding:0;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* posts */
.feed{display:grid;gap:12px;padding-block:12px 32px}
.post{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.post-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
.av{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:12px;font-weight:600;letter-spacing:.5px;background:var(--bg);border:1px solid var(--line)}
.who{min-width:0;line-height:1.25}
.who b{display:block;font-weight:600;font-size:15px}
.who span{font-size:13px;color:var(--muted)}
.pill{margin-left:auto;flex:none;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--bg);white-space:nowrap}
.pill.annonce{background:var(--wait-soft);color:var(--wait)}
.pill.texte{background:var(--bg);color:var(--ink)}
.pill.applique{background:var(--pour-soft);color:var(--pour)}
.pill.abandonne{background:var(--contre-soft);color:var(--contre)}
.pill.avenir{background:var(--ink);color:var(--card)}
.post-body{padding:12px 16px 4px}
.post-body h2{font:600 clamp(23px,5.4vw,27px)/1.18 var(--serif);margin:0 0 8px;text-wrap:balance}
.post-body p{margin:0;color:var(--ink-2);font-size:16px}
.big{margin:14px 0 4px;padding:18px;border-radius:12px;background:var(--bg);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.big b{font:600 clamp(40px,11vw,56px)/1 var(--font);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.big span{font-size:15px;color:var(--ink-2);min-width:0}
.promise{margin:12px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;display:grid;gap:8px}
.promise .t{font-size:13px;font-weight:600}
.dots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dots div{font-size:12px;color:var(--muted);border-top:3px solid var(--line);padding-top:6px}
.dots div.on{color:var(--ink);border-top-color:var(--ink)}
.dots div.now{font-weight:600}
.promise .chk{font-size:14px;color:var(--ink-2)}
.promise .due{font-size:13px;color:var(--wait);font-weight:600}
.promise .due.late{color:var(--contre)}
.track{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:14px}
.track i{height:4px;border-radius:2px;background:var(--line)}
.track i.on{background:var(--ink)}
.stage{margin-top:6px;font-size:13px;color:var(--ink-2)}
.stage b{font-weight:600;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chips button{font-size:13px;font-weight:500;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srcline{margin-top:12px;font-size:13px;color:var(--muted)}
.srcline a{color:var(--ink-2)}
.tally{display:flex;gap:10px;align-items:center;padding:10px 16px 0;font-size:13px;color:var(--muted)}
.tally .bar{flex:1;height:4px;border-radius:2px;background:var(--line);display:flex;overflow:hidden;max-width:160px}
.tally .bar i{display:block;height:100%}
.actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);margin-top:12px}
.actions button{background:none;border:0;padding:12px 4px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--ink-2)}
.actions button svg{width:19px;height:19px;flex:none}
.actions button[aria-pressed="true"][data-act="pour"]{color:var(--pour)}
.actions button[aria-pressed="true"][data-act="contre"]{color:var(--contre)}
.actions button[aria-pressed="true"][data-act="follow"]{color:var(--ink)}
.actions button[disabled]{opacity:.45;cursor:not-allowed}
.actions button span.n{font-variant-numeric:tabular-nums}

/* comments */
.thread{border-top:1px solid var(--line);padding:12px 16px 14px;display:grid;gap:12px;background:var(--card)}
.cm{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px}
.cm img{width:30px;height:30px;border-radius:50%}
.cm .bubble{background:var(--bg);border-radius:12px;padding:8px 12px}
.cm .bubble b{font-size:13px;font-weight:600}
.cm .bubble p{margin:2px 0 0;font-size:15px;overflow-wrap:anywhere;white-space:pre-wrap}
.cm .meta{font-size:12px;color:var(--muted);margin:4px 0 0 12px}
.cm .meta button{background:none;border:0;padding:0;font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline}
.compose{display:flex;gap:8px;align-items:flex-end}
.compose textarea{flex:1;min-width:0;font:inherit;font-size:15px;min-height:42px;max-height:160px;padding:10px 14px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--ink);resize:vertical}
.compose button{flex:none;background:var(--ink);color:var(--card);border:0;border-radius:20px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer}
.none{font-size:14px;color:var(--muted)}

/* instagram-style carousel */
.car-wrap{position:relative;margin-top:12px}
.car{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.car::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:start;aspect-ratio:4/5;max-height:78vh;position:relative;padding:clamp(22px,7vw,40px);display:flex;flex-direction:column;justify-content:center;gap:14px;background:var(--paper);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;overflow:hidden}
.slide .count{position:absolute;top:12px;right:12px;font-size:13px;font-weight:500;padding:4px 10px;border-radius:999px;background:var(--chip);color:var(--ink)}
.slide .tag{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:500}
.slide h3{font:600 clamp(26px,7.4vw,38px)/1.12 var(--font);letter-spacing:-.015em;margin:0;text-wrap:balance}
.slide p{margin:0;font-size:clamp(18px,4.8vw,22px);line-height:1.38;color:var(--ink-2);text-wrap:pretty}
.slide .note2{font-size:16px;color:var(--muted)}
.hook b{display:block;font:600 clamp(58px,17vw,96px)/.98 var(--font);letter-spacing:-.035em;border-bottom:5px solid var(--ink);padding-bottom:10px;margin-bottom:16px}
.hook span{display:block;font-size:clamp(22px,6vw,30px);line-height:1.25;font-weight:500}
.hook .hint{position:absolute;right:18px;bottom:14px;font-style:normal;font-size:34px;font-weight:600}
.fig b{font:600 clamp(64px,19vw,110px)/1 var(--font);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.vote .vgrid{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:18px;align-items:center}
.donut{width:100%;height:auto}
.vote ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:clamp(16px,4.4vw,20px)}
.vote li{display:flex;align-items:center;gap:8px}
.vote li i{width:14px;height:14px;border-radius:50%;flex:none}
.vote li b{font-weight:600;margin-left:auto;font-variant-numeric:tabular-nums}
.vote .out{font-size:clamp(18px,5vw,22px);font-weight:600}
.vote .out.adopté{color:var(--pour)} .vote .out.rejeté{color:var(--contre)}
.list ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.list li{display:grid;grid-template-columns:minmax(78px,auto) minmax(0,1fr);gap:14px;font-size:clamp(16px,4.4vw,19px);border-top:1px solid var(--line);padding-top:10px}
.list li b{font-weight:600}
.src ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.src a{font-size:clamp(16px,4.4vw,19px);font-weight:500}
.src p{font-size:15px;color:var(--muted)}
.prom .promise{border:0;padding:0;gap:14px}
.prom .promise .t{font:600 clamp(22px,6vw,30px)/1.15 var(--font)}
.prom .dots div{font-size:14px}
.prom .promise .chk{font-size:clamp(16px,4.4vw,19px)}
.mini{align-self:flex-start;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--chip)}
.mini.annonce{background:var(--wait-soft);color:var(--wait)} .mini.texte{background:var(--chip)} .mini.applique{background:var(--pour-soft);color:var(--pour)}
.slide-link{align-self:flex-start;background:none;border:0;padding:0;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.18);font-size:22px;line-height:1;cursor:pointer;display:none}
.nav.prev{left:10px} .nav.next{right:10px}
@media (hover:hover){.car-wrap:hover .nav{display:block}}
.dotsbar{display:flex;justify-content:center;gap:5px;padding-top:10px}
.dotsbar i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.dotsbar i.on{background:var(--ink)}
.caption{padding:4px 16px 4px;font-size:15px}
.caption b{font-weight:600}
.more{background:none;border:0;padding:0;color:var(--muted);cursor:pointer;font-size:15px}
.cap-chips{padding:0 16px 14px;margin-top:8px}
.post .actions{border-top:0;margin-top:2px}

/* carousel post */
.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:86%;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px 16px 4px;scrollbar-width:thin}
.slide{scroll-snap-align:start;background:var(--bg);border-radius:12px;padding:16px;min-width:0}
.slide .n{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:1px;text-transform:uppercase}
.slide h3{font:600 22px/1.2 var(--serif);margin:6px 0 6px}
.slide p{margin:0;font-size:15px;color:var(--ink-2)}
.swipe{padding:4px 16px 0;font-size:12px;color:var(--muted)}

.sectionhead{display:flex;align-items:baseline;gap:12px;padding-top:18px}
.sectionhead h1{font:600 28px/1.1 var(--serif);margin:0}
.sectionhead span{font-size:13px;color:var(--muted)}
.counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.counts button{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:left;cursor:pointer}
.counts button[aria-pressed="true"]{border-color:var(--ink)}
.counts b{display:block;font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.counts span{font-size:12px;color:var(--muted)}
.empty{background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:24px;text-align:center;color:var(--ink-2)}
.legal{font-size:12px;color:var(--muted);padding:8px 4px 24px;line-height:1.5}
.explain{margin-top:12px;padding:12px 14px;border-left:3px solid var(--ink);background:var(--bg);border-radius:0 12px 12px 0;white-space:pre-wrap;font-size:15px}
.linkbtn{background:none;border:0;padding:0;font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;margin-top:12px}
.toast{position:fixed;left:50%;bottom:calc(var(--tabh) + 16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:999px;font-size:14px;z-index:30;max-width:calc(100% - 32px)}
@media (min-width:701px){.toast{bottom:24px}}
.actions.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.post{scroll-margin-top:calc(64px + env(safe-area-inset-top,0px))}

/* ministries */
.topic.quiet .ring{color:var(--muted)}
.topic .ring{font:600 15px/1 var(--font)}
.minhead{display:flex;align-items:baseline;gap:12px;padding:8px 2px 0}
.minhead b{font:600 24px/1.2 var(--serif)}
.minhead button{background:none;border:0;padding:0;font-size:13px;color:var(--muted);text-decoration:underline;cursor:pointer}
.minchips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 0}
.minchips button{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:600;padding:4px 9px;border-radius:999px;border:0;background:var(--chip);color:var(--ink);cursor:pointer}
/* official text button */
.actions.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.actions .act{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 4px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;cursor:pointer;list-style:none}
.actions .act svg{width:19px;height:19px;flex:none}
.actions .act::-webkit-details-marker{display:none}
.srcmenu{position:relative}
.srcmenu .menu{position:absolute;left:8px;bottom:calc(100% + 6px);z-index:5;width:min(320px,calc(100vw - 48px));background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:6px;display:grid}
.srcmenu .menu a{padding:10px 12px;border-radius:8px;font-size:14px;text-decoration:none;color:var(--ink)}
.srcmenu .menu a:hover{background:var(--bg)}
@media (max-width:400px){.actions button span,.actions .act span{font-size:13px}}
.topic{width:74px}
.topic span{white-space:normal;max-width:74px;font-size:11px;line-height:1.2;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}

/* sources sheet: slides up from the bottom over a dimmed page */
.srcmenu[open]::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20}
.srcmenu .menu{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;max-width:620px;margin:0 auto;z-index:21;border-radius:18px 18px 0 0;padding:8px 8px calc(16px + env(safe-area-inset-bottom,0px));gap:2px;box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.menu-head{display:flex;align-items:center;gap:12px;padding:10px 12px 8px}
.menu-head b{font-size:15px;font-weight:600;flex:1}
.menu-close{background:var(--bg);border:0;border-radius:50%;width:32px;height:32px;font-size:15px;cursor:pointer;color:var(--ink)}
.srcmenu .menu a{display:grid;gap:2px;padding:12px;border-top:1px solid var(--line);border-radius:0}
.srcmenu .menu a b{font-weight:600;font-size:15px}
.srcmenu .menu a span{font-size:13px;color:var(--muted)}

/* how to read a post */
.lire{padding:2px 16px 0}
.lire-btn{list-style:none;cursor:pointer;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px;color:var(--ink);display:inline-block;padding:4px 0}
.lire-btn::-webkit-details-marker{display:none}
.lire .menu{max-height:80vh;overflow-y:auto}
.lire-row{display:grid;gap:3px;padding:12px;border-top:1px solid var(--line)}
.lire-row b{font-weight:600;font-size:16px}
.lire-row span{font-size:15px;color:var(--ink-2);line-height:1.45}
.lire-row.legend span{line-height:2.1}
.lire-row i.mini{font-style:normal;display:inline-block;line-height:1.3;margin-right:4px}
.mini.abandonne{background:var(--contre-soft);color:var(--contre)}

/* "per 100 €" bars */
.bars{justify-content:flex-start;gap:10px}
.bars h3{font-size:clamp(21px,5.6vw,27px)}
.bars ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:baseline;font-size:clamp(13px,3.5vw,15px);line-height:1.2}
.bars li b{font-weight:600;font-variant-numeric:tabular-nums}
.bars li i{grid-column:1/-1;height:6px;border-radius:3px;background:var(--ink);margin-top:3px;min-width:4px}
.bars li:last-child i{background:var(--muted)}
.bars .note2{font-size:13px;margin-top:auto}
.bars h3{font-family:var(--font);font-weight:600;letter-spacing:-.01em}
/* arrows sit in the bottom corners, clear of the text */
.nav{top:auto;bottom:14px;transform:none}
.minhead{align-items:center}
.minhead > div{display:grid;gap:2px;flex:1;min-width:0}
.minhead > div span{font-size:13px;color:var(--muted);line-height:1.35}
.who b em{font-style:normal;font-weight:400;color:var(--ink-2)}

/* law sheet */
body.noscroll{overflow:hidden}
#lawsheet{position:fixed;inset:0;z-index:40}
.ls-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.ls-panel{position:absolute;left:0;right:0;bottom:0;max-width:620px;margin:0 auto;max-height:92vh;overflow-y:auto;background:var(--card);border-radius:18px 18px 0 0;padding:14px 18px calc(18px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.ls-top{display:flex;align-items:center;justify-content:space-between}
.ls-panel .minchips{padding:10px 0 0}
.ls-panel h2{font:600 clamp(24px,6vw,30px)/1.15 var(--font);letter-spacing:-.01em;margin:12px 0 4px;text-wrap:balance}
.ls-type{margin:0;color:var(--muted);font-size:14px}
.ls-now,.ls-next{margin-top:16px;padding:14px 16px;border-radius:12px;background:var(--bg);display:grid;gap:4px}
.ls-now b,.ls-next b{font-size:20px;font-weight:600}
.ls-now p,.ls-next p{margin:0;color:var(--ink-2);font-size:15px}
.ls-next{background:var(--ink);color:var(--card)}
.ls-next .label,.ls-next p{color:var(--card);opacity:.8}
.ls-steps{list-style:none;margin:18px 0 6px;padding:0;display:grid}
.ls-steps li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.ls-steps li i{width:12px;height:12px;border-radius:50%;border:2px solid var(--line)}
.ls-steps li.done{color:var(--ink)} .ls-steps li.done i{background:var(--ink);border-color:var(--ink)}
.ls-steps li.now{color:var(--ink);font-weight:600} .ls-steps li.now i{border-color:var(--ink);box-shadow:0 0 0 3px var(--chip)}
.ls-steps li em{font-style:normal;font-size:13px;color:var(--ink-2);font-weight:400}
.ls-panel .actions{margin:8px -6px 0}
.ls-src{font-size:12px;color:var(--muted);margin:8px 0 0}

/* links slide: one button per subject */
.links{gap:14px}
.links ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.links button{width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font:500 clamp(16px,4.4vw,19px)/1.3 var(--font);color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.links button span{font-weight:600}
.links h3{font-family:var(--font);font-weight:600;letter-spacing:-.01em}

/* law state, inline on a slide */
.lawin{display:grid;gap:6px;margin-top:6px;cursor:pointer}
.lawin .track{margin-top:0;max-width:none}
.lawin .track i{height:5px}
.lawin-now{font-size:clamp(16px,4.4vw,19px)}
.lawin-now b{font-weight:600}
.lawin-txt{font-size:clamp(14px,3.8vw,16px);color:var(--ink-2);line-height:1.4}
.slide.steps{justify-content:flex-start;gap:10px}
.slide.steps h3{font:600 clamp(19px,5vw,24px)/1.2 var(--font)}
.slide.steps .ls-steps{margin:4px 0 0}
.slide.steps .ls-steps li{font-size:clamp(14px,3.8vw,16px);padding:8px 0}

/* a list of bills on one slide */
.slide.bills{justify-content:flex-start;gap:12px}
.slide.bills h3{font:600 clamp(22px,6vw,28px)/1.1 var(--font)}
.slide.bills ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.slide.bills button{width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:9px 0 0;display:grid;gap:3px;color:var(--ink);cursor:pointer}
.slide.bills b{font-size:clamp(14px,3.9vw,16px);font-weight:600;line-height:1.25}
.slide.bills span{font-size:clamp(12px,3.3vw,13px);color:var(--ink-2);line-height:1.3}
.slide.bills{gap:8px}.slide.bills ul{gap:6px}

/* the bar under a hook stops where the words stop */
.hook b{width:fit-content;max-width:100%}
/* last slide: a question to readers */
.slide.question h3{font:600 clamp(26px,7vw,36px)/1.15 var(--font);letter-spacing:-.02em}
.q-insta{display:none}

/* long figures (« 2 737 Md€ ») stay on one line */
.hook.long b{font-size:clamp(44px,13vw,70px)}
.fig.long b{font-size:clamp(46px,13.5vw,74px)}
.hook b,.fig b{white-space:nowrap}
/* text slides: same sans titles as the rest */
.slide.txt h3{font:600 clamp(24px,6.4vw,32px)/1.15 var(--font);letter-spacing:-.015em}

/* what a law contains */
.slide.contenu{justify-content:flex-start;gap:10px}
.slide.contenu h3{font:600 clamp(18px,4.8vw,22px)/1.2 var(--font);letter-spacing:-.01em}
.slide.contenu ul{margin:0;padding:0 0 0 18px;display:grid;gap:7px}
.slide.contenu li{font-size:clamp(14px,3.8vw,16px);line-height:1.35;color:var(--ink-2)}
.lawlinks{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;margin-top:auto}
.lawlinks a{font-size:14px;font-weight:600;color:var(--ink)}
.lawlinks span{font-size:12px;color:var(--muted);flex-basis:100%}
.ls-content{margin-top:16px;display:grid;gap:8px}
.ls-content ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:15px;color:var(--ink-2)}
.slide.contenu.dense{gap:7px;padding-top:30px;padding-bottom:30px}
.slide.contenu.dense h3{font-size:clamp(16px,4.3vw,19px)}
.slide.contenu.dense li{font-size:clamp(12.5px,3.4vw,14.5px);line-height:1.3}
.slide.contenu.dense ul{gap:5px}

/* black and white slides alternate inside a carousel: .inv swaps the palette for that slide only */
.slide.inv{--paper:#141414;--ink:#ededed;--ink-2:#c4c4c4;--muted:#8c8c8c;--line:#353535;--chip:#2a2a2a;--card:#141414;--pour:#86c5a5;--contre:#e8907f;--wait:#d9b765;--wait-soft:#2b2412;--pour-soft:#18291f;background:var(--paper);color:var(--ink);border-color:#141414}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .slide.inv{--paper:#fbfaf6;--ink:#141414;--ink-2:#4a4a4a;--muted:#8c8c8c;--line:#e6e6e3;--chip:#ebe9e3;--card:#ffffff;--pour:#2f6b4f;--contre:#9b3a2e;--wait:#8a6a1f;--wait-soft:#f4ecd9;--pour-soft:#e4efe9;border-color:#fbfaf6}}
:root[data-theme="dark"] .slide.inv{--paper:#fbfaf6;--ink:#141414;--ink-2:#4a4a4a;--muted:#8c8c8c;--line:#e6e6e3;--chip:#ebe9e3;--card:#ffffff;--pour:#2f6b4f;--contre:#9b3a2e;--wait:#8a6a1f;--wait-soft:#f4ecd9;--pour-soft:#e4efe9;border-color:#fbfaf6}
.slide.inv a,.slide.inv button{color:var(--ink)}
