:root {
  --site-primary: #d93c2f;
  --site-on-primary: #ffffff;
  --site-secondary: #f2c94c;
  --site-on-secondary: #241e18;
  --site-background: #f8f3e9;
  --site-on-background: #201f1b;
  --site-font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --site-font-heading: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  --site-heading-scale: 1;
  --site-spacing-scale: 1;
  --site-radius-scale: 1;
  --site-decoration-opacity: 1;
  color-scheme: light dark;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--site-font-body); background: var(--site-background); color: var(--site-on-background); }
.app { min-height: 100vh; background-color: light-dark(var(--site-background), #171715); color: light-dark(var(--site-on-background), #f6f0e5); overflow: hidden; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding: 18px clamp(18px,5vw,72px); border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); gap: 16px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:950; letter-spacing:-.05em; font-size:19px; }
.stamp { background:var(--site-primary); color:var(--site-on-primary); padding:7px 10px; border-radius:5px; transform:rotate(-4deg); font-size:12px; letter-spacing:.08em; }
.topnote { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; opacity:.7; }
.hero { padding: clamp(42px,7vw,86px) clamp(18px,5vw,72px) 44px; display:grid; grid-template-columns: 1.2fr .8fr; gap:40px; align-items:center; background: var(--site-primary); color:var(--site-on-primary); position:relative; }
.hero:after { content:'€'; position:absolute; right:7%; top:-35%; font-size:clamp(220px,40vw,540px); font-weight:1000; opacity:.07; pointer-events:none; transform:rotate(14deg); }
.kicker { font-size:12px; text-transform:uppercase; letter-spacing:.18em; font-weight:900; margin-bottom:17px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(clamp(54px,8.5vw,112px) * var(--site-heading-scale)); line-height:.86; letter-spacing:-.035em; max-width:780px; margin-bottom:24px; }
.hero p { max-width:610px; font-size:clamp(16px,2vw,20px); line-height:1.55; margin-bottom:0; }
.hero-card { z-index:1; background:var(--site-secondary); color:var(--site-on-secondary); padding:26px; border:2px solid currentColor; box-shadow:8px 8px 0 rgba(0,0,0,.22); transform:rotate(2deg); max-width:360px; justify-self:end; width:100%; }
.hero-card .mini { font-size:11px; text-transform:uppercase; letter-spacing:.15em; font-weight:900; }
.hero-card .big { font-family:var(--site-font-heading); font-size:clamp(43px,5vw,66px); line-height:1; margin:13px 0 8px; }
.hero-card p { font-size:13px; line-height:1.45; }
main { padding: 36px clamp(18px,5vw,72px) 70px; }
.intro-row { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.intro-row h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(34px * var(--site-heading-scale)); letter-spacing:-.02em; margin-bottom:8px; }
.intro-row p { margin:0; opacity:.72; }
.reset { border:2px solid currentColor; background:transparent; color:inherit; font:inherit; font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:900; padding:12px 15px; cursor:pointer; }
.tax-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.tax-card { border:1px solid color-mix(in srgb, currentColor 18%, transparent); background:light-dark(#fffdf8,#232320); padding:21px; border-radius:calc(10px * var(--site-radius-scale)); display:flex; flex-direction:column; min-height:286px; transition:transform .18s,border-color .18s; }
.tax-card:hover { transform:translateY(-3px); border-color:var(--site-primary); }
.tax-top { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.emoji { font-size:27px; line-height:1; }
.switch { appearance:none; width:44px; height:26px; border-radius:20px; background:#c8c3b9; position:relative; cursor:pointer; flex-shrink:0; transition:background .2s; }
.switch:before { content:''; width:18px; height:18px; border-radius:50%; background:white; position:absolute; left:4px; top:4px; transition:transform .2s; box-shadow:0 1px 4px #0003; }
.switch:checked { background:var(--site-primary); }
.switch:checked:before { transform:translateX(18px); }
.tax-card h3 { font-size:20px; letter-spacing:-.04em; margin:19px 0 8px; line-height:1.08; }
.tax-card .desc { font-size:13px; line-height:1.5; opacity:.75; margin-bottom:17px; }
.formula { border-top:1px dashed color-mix(in srgb, currentColor 22%, transparent); padding-top:13px; margin-top:auto; font-size:11px; line-height:1.5; }
.formula b { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:4px; opacity:.65; }
.yield { font-size:21px; font-weight:950; letter-spacing:-.04em; margin-top:10px; color:var(--site-primary); }
.bottom { display:grid; grid-template-columns:1.1fr .9fr; gap:18px; margin-top:28px; }
.total-panel { background:var(--site-on-background); color:var(--site-background); padding:clamp(24px,4vw,38px); }
.total-panel .label { font-size:11px; text-transform:uppercase; letter-spacing:.16em; font-weight:900; opacity:.7; }
.total { font-family:var(--site-font-heading); font-size:clamp(48px,7vw,84px); letter-spacing:-.03em; line-height:1; margin:13px 0 12px; }
.total-panel p { font-size:13px; line-height:1.5; max-width:500px; opacity:.78; }
.cta { background:var(--site-secondary); color:var(--site-on-secondary); padding:28px; display:flex; flex-direction:column; justify-content:space-between; }
.cta h3 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:33px; line-height:.95; margin-bottom:14px; }
.cta p { font-size:13px; line-height:1.5; }
.share { background:var(--site-primary); color:var(--site-on-primary); border:0; padding:15px 18px; font:inherit; font-size:12px; font-weight:950; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; width:100%; margin-top:10px; }
.fineprint { font-size:11px; line-height:1.5; opacity:.65; margin-top:25px; max-width:850px; }
.creator { margin:28px 0; padding:clamp(22px,4vw,34px); border:2px solid var(--site-on-background); background:light-dark(#fffdf8,#232320); }
.creator-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.creator h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(34px * var(--site-heading-scale)); line-height:.95; margin-bottom:8px; }
.creator p { font-size:13px; opacity:.75; margin-bottom:0; }
.creator-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.field { display:flex; flex-direction:column; gap:7px; font-size:12px; font-weight:850; }
.field input { width:100%; padding:13px; border:1px solid color-mix(in srgb,currentColor 25%,transparent); background:light-dark(#fff,#171715); color:inherit; font:inherit; border-radius:4px; }
.create-btn { grid-column:1/-1; border:0; background:var(--site-primary); color:var(--site-on-primary); padding:15px; font:inherit; font-size:12px; font-weight:950; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.custom-tag { display:inline-block; margin-top:7px; padding:4px 7px; background:var(--site-secondary); color:var(--site-on-secondary); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.community { margin:28px 0; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.community-panel { padding:clamp(20px,3vw,30px); border:1px solid color-mix(in srgb,currentColor 20%,transparent); background:light-dark(#fffdf8,#232320); }
.section-kicker { font-size:10px; text-transform:uppercase; letter-spacing:.15em; font-weight:950; opacity:.65; margin-bottom:9px; }
.community h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(32px * var(--site-heading-scale)); line-height:.95; margin-bottom:10px; }
.community-intro { font-size:13px; opacity:.72; line-height:1.5; margin-bottom:18px; }
.rank-list { display:flex; flex-direction:column; gap:9px; }
.rank-item { display:grid; grid-template-columns:34px 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid color-mix(in srgb,currentColor 14%,transparent); }
.rank-number { font-family:var(--site-font-heading); font-size:25px; }
.rank-name { font-size:13px; font-weight:900; line-height:1.25; }
.rank-meta { font-size:10px; opacity:.65; margin-top:4px; }
.rank-vote { background:var(--site-secondary); color:var(--site-on-secondary); border:0; padding:8px 10px; font:inherit; font-size:11px; font-weight:950; cursor:pointer; }
.rank-vote:disabled { opacity:.6; cursor:default; }
.poll-note { margin-top:12px; font-size:10px; line-height:1.5; opacity:.62; }
.idea-card { border:2px dashed color-mix(in srgb,currentColor 25%,transparent); padding:17px; margin-top:16px; }
.idea-card h3 { font-size:18px; margin-bottom:7px; }
.idea-card p { font-size:12px; line-height:1.5; opacity:.75; margin-bottom:12px; }
.idea-actions { display:flex; flex-wrap:wrap; gap:8px; }
.small-btn { background:var(--site-primary); color:var(--site-on-primary); border:0; padding:10px 12px; font:inherit; font-size:11px; font-weight:900; cursor:pointer; }
.small-btn.secondary { background:transparent; border:1px solid currentColor; color:inherit; }
.programs { margin:28px 0; padding:clamp(22px,4vw,34px); background:var(--site-secondary); color:var(--site-on-secondary); }
.programs-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:20px; }
.programs h2 { font-family:var(--site-font-heading); font-size:calc(36px * var(--site-heading-scale)); text-transform:uppercase; line-height:.92; margin-bottom:8px; }
.programs-head p { font-size:13px; line-height:1.5; max-width:530px; margin:0; opacity:.8; }
.program-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.program-form .field input { background:light-dark(#fffdf8,#232320); color:light-dark(#201f1b,#f6f0e5); }
.program-form .create-btn { background:var(--site-primary); color:var(--site-on-primary); }
.program-result { display:none; margin-top:22px; padding:22px; background:light-dark(#fffdf8,#232320); color:light-dark(#201f1b,#f6f0e5); border:2px solid currentColor; }
.program-result.visible { display:block; }
.program-result h3 { font-family:var(--site-font-heading); font-size:30px; text-transform:uppercase; margin-bottom:5px; }
.program-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0; }
.program-stat { padding:12px; background:color-mix(in srgb,currentColor 7%,transparent); }
.program-stat b { display:block; font-size:19px; margin-bottom:3px; }
.program-stat span { font-size:10px; opacity:.7; }
.manifesto { font-size:13px; line-height:1.6; white-space:pre-line; border-top:1px dashed color-mix(in srgb,currentColor 25%,transparent); padding-top:14px; }
.toast { position:fixed; bottom:18px; left:50%; transform:translate(-50%,20px); background:#201f1b; color:#fff; padding:12px 18px; font-size:13px; opacity:0; pointer-events:none; transition:.25s; z-index:5; }
.toast.show { opacity:1; transform:translate(-50%,0); }
@media(max-width:900px) { .hero { grid-template-columns:1fr; } .hero-card { justify-self:start; max-width:330px; } .tax-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .topnote { display:none; } .hero { gap:28px; } .intro-row { align-items:start; flex-direction:column; } .tax-grid { grid-template-columns:1fr; } .tax-card { min-height:250px; } .bottom,.community { grid-template-columns:1fr; } .creator-head,.programs-head { align-items:start; flex-direction:column; } .creator-form,.program-form { grid-template-columns:1fr; } .create-btn { grid-column:auto; } .program-stats { grid-template-columns:1fr; } }

/* ---------- Ajouts France Taxe (version PHP/MySQL) ---------- */
a { color: inherit; }
.brand { text-decoration:none; color:inherit; }
.tax-card .tax-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.remove-tax { background:transparent; border:0; color:inherit; opacity:.55; font:inherit; font-size:11px; text-decoration:underline; cursor:pointer; padding:0; }
.remove-tax:hover { opacity:1; }
.empty-state { grid-column:1/-1; padding:28px; border:2px dashed color-mix(in srgb,currentColor 25%,transparent); text-align:center; font-size:14px; line-height:1.5; }
.share-box { margin-top:16px; display:flex; gap:8px; flex-wrap:wrap; align-items:stretch; }
.share-box input { flex:1 1 240px; min-width:0; padding:10px 12px; border:1px solid currentColor; background:transparent; color:inherit; font:inherit; font-size:13px; }
.share-status { font-size:11px; opacity:.7; margin-top:8px; }
.measure-list { list-style:none; padding:0; margin:18px 0; display:flex; flex-direction:column; gap:8px; }
.measure-list li { display:grid; grid-template-columns:32px 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid color-mix(in srgb,currentColor 16%,transparent); background:light-dark(#fffdf8,#232320); }
.measure-list .m-emoji { font-size:22px; }
.measure-list .m-name { font-weight:900; font-size:14px; line-height:1.25; }
.measure-list .m-formula { font-size:11px; opacity:.65; margin-top:3px; }
.measure-list .m-amount { font-weight:950; color:var(--site-primary); white-space:nowrap; font-size:14px; }
.program-page { max-width:900px; margin:0 auto; }
.program-page .program-result { display:block; margin-top:0; }
.cta-link { display:inline-block; text-decoration:none; text-align:center; }
.site-footer { padding:24px clamp(18px,5vw,72px); border-top:1px solid color-mix(in srgb,currentColor 15%,transparent); font-size:11px; opacity:.7; display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; }
.notfound { padding:90px clamp(18px,5vw,72px); text-align:center; }
.notfound h1 { margin:0 auto 20px; }
@media(max-width:620px) { .measure-list li { grid-template-columns:28px 1fr; } .measure-list .m-amount { grid-column:2; } }
.hero-links { margin-top:20px !important; }
.hero-link { color:inherit; font-weight:900; font-size:14px; text-transform:uppercase; letter-spacing:.08em; }
.tabs { display:flex; flex-wrap:wrap; gap:6px; }
.tab { border:2px solid currentColor; background:transparent; color:inherit; font:inherit; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; padding:9px 12px; cursor:pointer; }
.tab.active { background:var(--site-on-background); color:var(--site-background); border-color:var(--site-on-background); }
.tax-card h3 a { text-decoration:none; }
.tax-card h3 a:hover { text-decoration:underline; }
.tax-card.highlight, .idea-card.highlight { border-color:var(--site-primary); box-shadow:0 0 0 4px color-mix(in srgb,var(--site-primary) 30%,transparent); }
.rank-vote.is-voted, .small-btn.is-voted { background:var(--site-on-background); color:var(--site-background); }
.small-btn:disabled { opacity:.55; cursor:default; }
.field select { width:100%; padding:12px; border:1px solid color-mix(in srgb,currentColor 25%,transparent); background:light-dark(#fff,#171715); color:inherit; font:inherit; font-size:18px; border-radius:4px; }
.similar-warning { grid-column:1/-1; padding:16px; border:2px solid var(--site-secondary); background:color-mix(in srgb,var(--site-secondary) 18%,transparent); font-size:13px; line-height:1.5; }
.similar-warning ul { margin:8px 0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
.similar-warning li { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.similar-warning p { margin:6px 0 10px; }
.activity-list { display:flex; flex-direction:column; gap:9px; }
.activity-item { display:grid; grid-template-columns:34px 1fr auto; gap:12px; align-items:center; padding:12px; border:1px solid color-mix(in srgb,currentColor 14%,transparent); }
.activity-item .emoji { font-size:24px; }
.activity-item .idea-actions { justify-content:flex-end; }
.badge { display:inline-block; margin-left:6px; padding:2px 6px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; vertical-align:middle; border-radius:3px; }
.badge-ok { background:#2f9e5b; color:#fff; }
.badge-warn { background:var(--site-secondary); color:var(--site-on-secondary); }
.badge-ko { background:var(--site-primary); color:var(--site-on-primary); }
.modal { border:2px solid currentColor; padding:clamp(18px,4vw,28px); max-width:min(560px, calc(100vw - 32px)); width:100%; background:light-dark(#fffdf8,#232320); color:light-dark(#201f1b,#f6f0e5); }
.modal::backdrop { background:rgba(20,18,15,.6); }
.modal h3 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:28px; margin-bottom:6px; }
.modal-sub { font-size:13px; opacity:.75; line-height:1.5; }
.modal .creator-form { margin-top:10px; }
.radio-list { display:flex; flex-direction:column; gap:8px; margin:12px 0; font-size:13px; }
.radio { display:flex; gap:8px; align-items:center; cursor:pointer; }
.share-text { width:100%; padding:12px; font:inherit; font-size:13px; line-height:1.45; border:1px solid color-mix(in srgb,currentColor 25%,transparent); background:light-dark(#fff,#171715); color:inherit; resize:vertical; }
.share-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.share-net { display:block; text-align:center; text-decoration:none; padding:12px; font:inherit; font-size:13px; font-weight:900; border:2px solid currentColor; background:transparent; color:inherit; cursor:pointer; }
.share-net[data-net="x"] { background:#000; color:#fff; border-color:#000; }
.share-net:hover { background:var(--site-primary); color:var(--site-on-primary); border-color:var(--site-primary); }
.toast.interactive { pointer-events:auto; }
.toast-btn { margin-left:10px; background:var(--site-secondary); color:var(--site-on-secondary); border:0; padding:6px 10px; font:inherit; font-size:12px; font-weight:900; cursor:pointer; }
.tax-page-title { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(clamp(34px,6vw,58px) * var(--site-heading-scale)); line-height:.95; margin:18px 0 12px; }
.tax-page-card { min-height:0; }
@media(max-width:620px) { .activity-item { grid-template-columns:28px 1fr; } .activity-item .idea-actions { grid-column:1/-1; justify-content:flex-start; } .share-grid { grid-template-columns:1fr; } }
/* Compteur de dette */
.debt { display:grid; grid-template-columns:1fr 1fr; gap:0; background:#141311; color:#f6f0e5; }
.debt-col { padding:26px clamp(18px,5vw,72px); }
.debt-col-after { background:#1f2a22; }
.debt .label { font-size:11px; text-transform:uppercase; letter-spacing:.14em; font-weight:900; opacity:.75; }
.debt-number { font-family:var(--site-font-heading); font-size:clamp(28px,4.4vw,56px); line-height:1.05; margin:10px 0 6px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; word-break:break-word; }
.debt-col:first-child .debt-number { color:#ff6b5e; }
.debt-col-after .debt-number { color:#7ee2a2; }
.debt-rate { font-size:13px; font-weight:800; opacity:.85; }
.debt-savings { margin-top:8px; font-size:13px; }
.debt-savings b { color:#7ee2a2; }
.debt-thanks { grid-column:1/-1; padding:16px clamp(18px,5vw,72px) 20px; border-top:1px solid #ffffff22; font-size:13px; line-height:1.5; }
.debt-thanks p { margin:0 0 8px; }
.debt-adopted { list-style:none; padding:0; margin:8px 0; display:flex; flex-wrap:wrap; gap:8px; }
.debt-adopted li { display:flex; gap:8px; align-items:center; padding:6px 10px; background:#ffffff12; font-size:12px; }
.debt-adopted li span { color:#7ee2a2; font-weight:900; }
.debt-adopted a { color:inherit; }
.debt-source { font-size:10px; opacity:.55; }
.vote-pair { display:inline-flex; gap:4px; flex-wrap:nowrap; }
.vote-against:not(.is-voted) { background:transparent; border:1px solid currentColor; color:inherit; }
.vote-against.is-voted { background:var(--site-primary) !important; color:var(--site-on-primary) !important; }
.field-hint { font-weight:400; font-size:11px; opacity:.6; }
@media(max-width:760px) { .debt { grid-template-columns:1fr; } }

/* ============================================================
   V3 : navigation, pages, cartes simplifiées
   ============================================================ */
.topbar { position:sticky; top:0; z-index:20; background:light-dark(var(--site-background), #171715); flex-wrap:nowrap; padding:12px clamp(16px,4vw,48px); }
.brand-name { white-space:nowrap; }
.mainnav { display:flex; gap:4px; margin-left:auto; }
.mainnav a { text-decoration:none; font-size:13px; font-weight:900; padding:9px 12px; border-radius:999px; display:flex; gap:6px; align-items:center; white-space:nowrap; }
.mainnav a:hover { background:color-mix(in srgb,currentColor 8%,transparent); }
.mainnav a.active { background:var(--site-on-background); color:var(--site-background); }
.nav-cta { text-decoration:none; background:var(--site-primary); color:var(--site-on-primary); font-weight:950; font-size:12px; text-transform:uppercase; letter-spacing:.06em; padding:11px 14px; white-space:nowrap; transform:rotate(-1deg); box-shadow:3px 3px 0 color-mix(in srgb,currentColor 25%,transparent); }
.nav-cta:hover { transform:rotate(0); }
.tabbar { display:none; }
@media(max-width:1020px) { .mainnav .nav-icon { display:none; } .mainnav a { padding:8px 9px; } }
@media(max-width:860px) {
  .mainnav { display:none; }
  .nav-cta { margin-left:auto; padding:9px 11px; font-size:11px; }
  .brand-name { display:none; }
  .tabbar { display:grid; grid-template-columns:repeat(5,1fr); position:fixed; bottom:0; left:0; right:0; z-index:30; background:light-dark(#fffdf8,#232320); border-top:2px solid var(--site-on-background); padding-bottom:env(safe-area-inset-bottom); }
  .tabbar a { text-decoration:none; display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 2px 7px; font-size:20px; line-height:1; }
  .tabbar small { font-size:10px; font-weight:900; }
  .tabbar a.active { background:var(--site-secondary); color:var(--site-on-secondary); }
  body { padding-bottom:64px; }
  .toast { bottom:80px; }
}

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; font:inherit; font-weight:950; font-size:15px; text-transform:uppercase; letter-spacing:.05em; padding:17px 24px; border:2px solid currentColor; cursor:pointer; transition:transform .15s; }
.btn:hover { transform:translate(-2px,-2px); box-shadow:4px 4px 0 currentColor; }
.btn-primary { background:var(--site-secondary); color:var(--site-on-secondary); border-color:var(--site-on-secondary); }
.btn-ghost { background:transparent; color:inherit; }

/* Accueil */
.home-hero { background:var(--site-primary); color:var(--site-on-primary); padding:clamp(48px,9vw,110px) clamp(16px,5vw,72px) clamp(40px,7vw,80px); position:relative; overflow:hidden; text-align:center; }
.home-hero:after { content:"€"; position:absolute; right:-4%; top:-30%; font-size:clamp(260px,45vw,620px); font-weight:1000; opacity:.08; transform:rotate(14deg); pointer-events:none; }
.home-hero h1 { font-size:calc(clamp(48px,9vw,120px) * var(--site-heading-scale)); max-width:none; margin:0 auto 18px; }
.home-hero .lead { font-size:clamp(22px,3.4vw,38px); font-weight:950; letter-spacing:-.03em; margin:0 0 14px; }
.home-hero .sub { font-size:clamp(16px,2vw,20px); line-height:1.5; max-width:640px; margin:0 auto 32px; opacity:.95; }
.home-ctas { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }
.home-ctas .btn-ghost { color:var(--site-on-primary); }
.republic { padding:34px clamp(16px,5vw,72px); text-align:center; }
.republic h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(clamp(26px,4vw,40px) * var(--site-heading-scale)); margin-bottom:22px; }
.stat-row { display:flex; justify-content:center; gap:clamp(18px,6vw,80px); flex-wrap:wrap; }
.stat b { display:block; font-family:var(--site-font-heading); font-size:clamp(46px,8vw,92px); line-height:1; color:var(--site-primary); font-variant-numeric:tabular-nums; }
.stat span { font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.14em; opacity:.7; }
.section { padding:clamp(28px,5vw,56px) clamp(16px,5vw,72px); }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.section-head h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:calc(clamp(28px,4vw,42px) * var(--site-heading-scale)); line-height:.95; margin:0; }
.section-head p { margin:6px 0 0; opacity:.72; font-size:14px; }
.link-more { font-weight:900; font-size:13px; text-transform:uppercase; letter-spacing:.06em; }
.page-title { padding:clamp(28px,5vw,52px) clamp(16px,5vw,72px) 8px; }
.page-title h1 { font-size:calc(clamp(40px,7vw,84px) * var(--site-heading-scale)); margin-bottom:8px; }
.page-title p { font-size:16px; opacity:.75; max-width:640px; margin:0; }

/* Cartes de taxe */
.tgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.tcard { border:2px solid var(--site-on-background); background:light-dark(#fffdf8,#232320); padding:20px; display:flex; flex-direction:column; gap:10px; position:relative; transition:transform .15s, box-shadow .15s; }
.tcard:hover { transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--site-on-background); }
.tcard.highlight { box-shadow:0 0 0 4px var(--site-primary); }
.tcard-top { display:flex; align-items:center; gap:8px; justify-content:space-between; padding-right:90px; }
.tcard .emoji { font-size:34px; line-height:1; }
.tag { font-size:9px; font-weight:950; text-transform:uppercase; letter-spacing:.1em; padding:4px 7px; background:color-mix(in srgb,currentColor 9%,transparent); }
.tag-community { background:var(--site-secondary); color:var(--site-on-secondary); }
.tcard h3 { font-size:21px; letter-spacing:-.03em; line-height:1.1; margin:0; }
.tcard h3 a { text-decoration:none; }
.tcard h3 a:hover { text-decoration:underline; }
.byline { font-size:12px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; opacity:.85; }
.byline a { font-weight:900; text-decoration:none; }
.tcard .desc { font-size:13px; line-height:1.5; opacity:.75; margin:0; }
.tcard .yield { margin-top:auto; font-size:24px; }
.tcard .yield small { font-size:10px; font-weight:800; letter-spacing:0; color:var(--site-on-background); opacity:.6; text-transform:uppercase; }
.approval { font-size:11px; font-weight:800; }
.bar { height:8px; background:color-mix(in srgb,var(--site-primary) 25%,transparent); margin-bottom:5px; position:relative; overflow:hidden; }
.bar span { position:absolute; inset:0 auto 0 0; background:#2f9e5b; }
.bar i { position:absolute; top:0; bottom:0; width:2px; background:var(--site-on-background); opacity:.5; }
.tcard-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.icon-btn { background:transparent; border:0; color:inherit; font:inherit; font-size:12px; font-weight:800; cursor:pointer; opacity:.6; padding:6px 4px; text-decoration:underline; }
.icon-btn:hover { opacity:1; }
.stamp-verdict { position:absolute; top:14px; right:14px; font-family:var(--site-font-heading); text-transform:uppercase; font-size:15px; padding:4px 8px; border:3px solid currentColor; transform:rotate(8deg); }
.stamp-verdict.ok { color:#2f9e5b; }
.stamp-verdict.ko { color:var(--site-primary); }

/* Vote express */
.express { max-width:620px; margin:0 auto; }
.express-card { border:3px solid var(--site-on-background); background:light-dark(#fffdf8,#232320); padding:clamp(22px,4vw,36px); text-align:center; box-shadow:8px 8px 0 var(--site-on-background); transition:transform .25s, opacity .25s; }
.express-card.out-left { transform:translateX(-60px) rotate(-6deg); opacity:0; }
.express-card.out-right { transform:translateX(60px) rotate(6deg); opacity:0; }
.express-card .emoji { font-size:64px; }
.express-card h3 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:clamp(28px,5vw,44px); line-height:.95; margin:12px 0; }
.express-card .desc { font-size:15px; line-height:1.5; opacity:.8; }
.express-card .yield { font-size:30px; }
.express-card .byline { justify-content:center; }
.express-buttons { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.express-buttons button { font:inherit; font-size:18px; font-weight:950; padding:18px; border:3px solid var(--site-on-background); cursor:pointer; transition:transform .1s; }
.express-buttons button:active { transform:scale(.96); }
.express-no { background:#9e2f2f; color:#fff; }
.express-yes { background:#2f9e5b; color:#fff; }
.express-skip { margin-top:12px; background:none; border:0; color:inherit; font:inherit; font-weight:800; font-size:13px; text-decoration:underline; cursor:pointer; opacity:.7; }
.express-count { font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; opacity:.6; margin-bottom:10px; text-align:center; }

/* Classements */
.board { display:flex; flex-direction:column; gap:8px; }
.board-row { display:grid; grid-template-columns:48px 1fr auto; gap:12px; align-items:center; padding:14px; border:2px solid color-mix(in srgb,currentColor 15%,transparent); background:light-dark(#fffdf8,#232320); }
.board-row.me { border-color:var(--site-primary); box-shadow:4px 4px 0 var(--site-primary); }
.board-row.top1 { background:linear-gradient(90deg, color-mix(in srgb,var(--site-secondary) 45%,transparent), transparent); }
.board-rank { font-family:var(--site-font-heading); font-size:28px; text-align:center; }
.board-name { font-weight:950; font-size:15px; line-height:1.25; }
.board-name a { text-decoration:none; }
.board-meta { font-size:11px; opacity:.7; margin-top:3px; }
.board-score { text-align:right; font-weight:950; font-size:18px; white-space:nowrap; }
.board-score small { display:block; font-size:10px; opacity:.6; font-weight:800; text-transform:uppercase; }
.avatar { display:inline-grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--site-secondary); font-size:21px; flex-shrink:0; }
.avatar.sm { width:22px; height:22px; font-size:13px; }
.avatar.lg { width:96px; height:96px; font-size:54px; border:3px solid var(--site-on-background); }
.who { display:flex; align-items:center; gap:10px; }
.socials { display:inline-flex; gap:4px; flex-wrap:wrap; }
.soc { display:inline-grid; place-items:center; min-width:24px; height:24px; padding:0 7px; border-radius:12px; font-size:10px; font-weight:950; text-decoration:none; color:#fff; }
.soc-x { background:#000; } .soc-instagram { background:#d62976; } .soc-tiktok { background:#111; box-shadow:inset 0 0 0 1px #25f4ee; }
.soc-bluesky { background:#1185fe; } .soc-linkedin { background:#0a66c2; } .soc-youtube { background:#e00; }
.podium { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; align-items:end; }
.podium-step { border:2px solid var(--site-on-background); background:light-dark(#fffdf8,#232320); padding:18px; text-align:center; }
.podium-step.p1 { order:2; padding-top:30px; background:var(--site-secondary); color:var(--site-on-secondary); }
.podium-step.p2 { order:1; } .podium-step.p3 { order:3; }
.podium-medal { font-size:36px; }
.podium-step h3 { font-size:16px; margin:8px 0 4px; line-height:1.2; }
.podium-step h3 a { text-decoration:none; }
.podium-step .yield { font-size:16px; margin:0; }

/* Hall of shame */
.shame-hero { background:#201f1b; color:#f6f0e5; padding:clamp(30px,6vw,64px) clamp(16px,5vw,72px); }
.shame-hero h1 { color:#ff6b5e; font-size:calc(clamp(44px,8vw,96px) * var(--site-heading-scale)); margin-bottom:10px; }
.shame-hero p { max-width:620px; opacity:.85; font-size:16px; margin:0; }
.shame-top { margin-top:26px; border:3px dashed #ff6b5e; padding:22px; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; }
.shame-top .emoji { font-size:68px; }
.shame-top h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:clamp(26px,4vw,40px); margin:4px 0 6px; line-height:.95; }
.shame-top a { color:inherit; }

/* Profil */
.profile-head { display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.profile-head h1 { margin:0 0 6px; font-size:calc(clamp(34px,6vw,64px) * var(--site-heading-scale)); }
.profile-stats { display:flex; gap:22px; flex-wrap:wrap; margin-top:10px; }
.profile-stats div b { display:block; font-family:var(--site-font-heading); font-size:28px; color:var(--site-primary); }
.profile-stats div span { font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; opacity:.65; }
.panel { border:2px solid var(--site-on-background); background:light-dark(#fffdf8,#232320); padding:clamp(18px,3vw,28px); }
.panel + .panel { margin-top:18px; }
.panel h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:28px; margin-bottom:6px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.form-grid .full { grid-column:1/-1; }
.field textarea { width:100%; padding:12px; border:1px solid color-mix(in srgb,currentColor 25%,transparent); background:light-dark(#fff,#171715); color:inherit; font:inherit; border-radius:4px; resize:vertical; }
.avatar-pick { display:flex; flex-wrap:wrap; gap:6px; }
.avatar-pick label { cursor:pointer; position:relative; }
.avatar-pick input { position:absolute; opacity:0; pointer-events:none; }
.avatar-pick span { display:grid; place-items:center; width:42px; height:42px; font-size:24px; border:2px solid transparent; border-radius:50%; background:color-mix(in srgb,currentColor 6%,transparent); }
.avatar-pick input:checked + span { border-color:var(--site-primary); background:var(--site-secondary); }
.avatar-pick input:focus-visible + span { outline:2px solid var(--site-primary); }
.prefix-input { display:flex; align-items:stretch; }
.prefix-input span { padding:12px 10px; background:color-mix(in srgb,currentColor 8%,transparent); font-size:12px; font-weight:900; border:1px solid color-mix(in srgb,currentColor 25%,transparent); border-right:0; border-radius:4px 0 0 4px; white-space:nowrap; }
.prefix-input input { border-radius:0 4px 4px 0 !important; }
.notice { padding:14px 16px; background:color-mix(in srgb,var(--site-secondary) 25%,transparent); border-left:4px solid var(--site-secondary); font-size:13px; line-height:1.5; }
.wrap { max-width:1100px; margin:0 auto; }

/* Pied de page */
.site-footer { display:block; padding:clamp(28px,5vw,48px) clamp(16px,5vw,72px); background:var(--site-on-background); color:var(--site-background); opacity:1; font-size:13px; margin-top:30px; }
.footer-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(24px,5vw,60px); }
.footer-about p { line-height:1.6; opacity:.8; margin:14px 0 0; }
.footer-links a { color:inherit; font-weight:800; }
.contact-form h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:26px; margin:0 0 4px; }
.contact-sub { opacity:.75; margin:0 0 12px; line-height:1.5; }
.contact-form .field { margin-bottom:10px; }
.contact-form .field input, .contact-form .field select, .contact-form .field textarea { background:#2b2a26; color:#f6f0e5; border-color:#ffffff33; font-size:14px; }
.contact-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.contact-note { font-size:11px; opacity:.6; margin:10px 0 0; }
.contact-note a { color:inherit; }
.hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.legal h2 { font-family:var(--site-font-heading); text-transform:uppercase; font-size:28px; margin:28px 0 8px; }
.legal p, .legal li { line-height:1.65; font-size:15px; max-width:780px; }
.legal .todo { background:#ffe58a; color:#241e18; padding:0 4px; }

@media(max-width:760px) {
  .footer-grid, .contact-row, .form-grid { grid-template-columns:1fr; }
  .podium { grid-template-columns:1fr; }
  .podium-step.p1, .podium-step.p2, .podium-step.p3 { order:0; }
  .board-row { grid-template-columns:36px 1fr; }
  .board-score { grid-column:2; text-align:left; }
  .shame-top { grid-template-columns:1fr; text-align:center; }
}
@media(max-width:1200px) and (min-width:861px) { .brand-name { display:none; } .topbar { gap:10px; } }

/* ============================================================
   Typographie lisible : police système, titres en casse normale,
   tailles modérées (remplace l'Impact tout en majuscules)
   ============================================================ */
:root { --site-font-heading: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }

h1, .home-hero h1, .page-title h1, .shame-hero h1, .profile-head h1, .tax-page-title, .notfound h1,
.section-head h2, .republic h2, .panel h2, .contact-form h2, .legal h2, .modal h3, .express-card h3,
.shame-top h2, .cta h3, .program-result h3, .programs h2, .creator h2, .community h2, .intro-row h2 {
  text-transform:none; font-weight:800; letter-spacing:-.02em; line-height:1.12;
}
.home-hero h1 { font-size:clamp(34px,5.4vw,58px); margin-bottom:12px; }
.page-title h1, .shame-hero h1, .tax-page-title { font-size:clamp(30px,4.4vw,44px); }
.profile-head h1 { font-size:clamp(26px,3.6vw,38px); }
.notfound h1 { font-size:clamp(32px,5vw,50px); }
.section-head h2 { font-size:clamp(22px,2.6vw,28px); }
.republic h2 { font-size:clamp(19px,2.4vw,24px); font-weight:700; margin-bottom:16px; }
.panel h2, .legal h2, .cta h3 { font-size:22px; }
.contact-form h2 { font-size:20px; }
.modal h3 { font-size:21px; }
.express-card h3 { font-size:clamp(22px,3.2vw,28px); }
.shame-top h2 { font-size:clamp(22px,3vw,28px); }

.home-hero .lead { font-size:clamp(19px,2.4vw,26px); font-weight:700; letter-spacing:-.01em; }
.home-hero .sub { font-size:17px; }
.kicker, .section-kicker, .label, .stat span, .express-count { letter-spacing:.08em; }

.stat b { font-size:clamp(36px,5.6vw,56px); font-weight:800; letter-spacing:-.02em; }
.debt-number { font-size:clamp(22px,3.2vw,36px); font-weight:800; letter-spacing:-.01em; }
.board-rank { font-size:22px; font-weight:800; }
.profile-stats div b { font-size:24px; font-weight:800; }
.stamp-verdict { font-size:12px; font-weight:900; letter-spacing:.06em; }
.rank-number { font-size:20px; font-weight:800; }

.btn, .nav-cta, .tab, .link-more, .create-btn, .share, .reset, .hero-link { text-transform:none; letter-spacing:0; }
.btn { font-size:16px; font-weight:800; padding:15px 22px; }
.nav-cta { font-size:13px; font-weight:800; }
.tab { font-size:13px; font-weight:700; }
.create-btn, .share, .reset { font-size:14px; font-weight:800; }
.link-more { font-size:14px; font-weight:700; }

.brand { font-size:16px; letter-spacing:-.02em; }
.tcard h3 { font-size:18px; font-weight:800; }
.tcard .yield { font-size:20px; font-weight:800; }
.tcard .emoji { font-size:28px; }
.express-card .emoji { font-size:52px; }
.express-card .yield { font-size:24px; }
.express-buttons button { font-size:16px; padding:15px; }
.board-name { font-size:15px; font-weight:800; }
.mainnav a { font-weight:700; }

/* Champs de formulaire homogènes : même hauteur pour input / select, chevron dessiné avec marge */
.field input, .field select { box-sizing:border-box; height:48px; padding:0 14px; font-size:16px; line-height:1.2; border-radius:4px; }
.field textarea { box-sizing:border-box; padding:12px 14px; font-size:16px; }
.field select {
  appearance:none; -webkit-appearance:none; -moz-appearance:none; cursor:pointer; padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:12px 8px;
}
.prefix-input span { display:flex; align-items:center; padding:0 10px; }
.prefix-input input { min-width:0; }

/* Encart « une taxe à la fois » (au-dessus du pied de page) */
.carousel-section { background:#ece2cc; border-top:2px solid var(--site-on-background); padding:clamp(32px,5vw,56px) clamp(16px,5vw,72px); margin-top:30px; }
.carousel-head { text-align:center; margin-bottom:22px; }
.carousel-head h2 { font-size:clamp(22px,2.8vw,28px); font-weight:800; letter-spacing:-.02em; margin:0 0 6px; }
.carousel-head p { margin:0; opacity:.75; }
.carousel { display:grid; grid-template-columns:56px minmax(0,620px) 56px; justify-content:center; align-items:center; gap:16px; outline:none; }
.car-nav { width:56px; height:56px; border-radius:50%; border:2px solid var(--site-on-background); background:#fffdf8; color:#201f1b; font:inherit; font-size:30px; line-height:1; cursor:pointer; display:grid; place-items:center; padding-bottom:4px; transition:transform .15s, box-shadow .15s; }
.car-nav:hover { transform:translate(-2px,-2px); box-shadow:3px 3px 0 var(--site-on-background); }
.car-nav:focus-visible { outline:3px solid var(--site-primary); outline-offset:2px; }
.carousel-card { width:100%; box-sizing:border-box; }
.carousel-card h3 a { color:inherit; text-decoration:none; }
.carousel-card h3 a:hover { text-decoration:underline; }
.carousel-card .car-approval { max-width:360px; margin:12px auto 0; text-align:left; }
.carousel-card .express-buttons span { font-weight:600; opacity:.75; margin-left:4px; font-size:14px; }
.carousel-card .express-no.is-voted { background:var(--site-primary); color:#fff; }
.carousel-card .express-yes.is-voted { background:#1f7a45; box-shadow:inset 0 0 0 3px #fff; }
.car-hint, .car-mine { font-size:13px; opacity:.75; margin:10px 0 0; }
.carousel-pos { text-align:center; margin-top:16px; font-size:14px; font-weight:600; opacity:.75; }
.carousel-pos b { font-size:18px; color:var(--site-primary); }
.car-empty .car-nav { visibility:hidden; }
.carousel-section + .site-footer { margin-top:0; }
.slide-left { animation:car-in-left .25s ease-out; }
.slide-right { animation:car-in-right .25s ease-out; }
@keyframes car-in-left { from { transform:translateX(30px); opacity:0; } to { transform:none; opacity:1; } }
@keyframes car-in-right { from { transform:translateX(-30px); opacity:0; } to { transform:none; opacity:1; } }
@media (prefers-reduced-motion: reduce) { .slide-left, .slide-right { animation:none; } }
@media(max-width:620px) {
  .carousel { grid-template-columns:1fr 1fr; gap:12px; }
  .carousel-card { grid-column:1/-1; grid-row:1; }
  .car-nav { grid-row:2; width:100%; border-radius:0; height:48px; }
}

/* Classement : onglets + période */
.board-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.segmented { display:inline-flex; border:2px solid var(--site-on-background); }
.segmented button { border:0; background:transparent; color:inherit; font:inherit; font-size:13px; font-weight:700; padding:8px 12px; cursor:pointer; }
.segmented button + button { border-left:2px solid var(--site-on-background); }
.segmented button.active { background:var(--site-on-background); color:var(--site-background); }

/* Panthéon fiscal */
.pantheon-hero { background:linear-gradient(160deg, #241e18, #3a2f22); color:#f6f0e5; padding:clamp(30px,6vw,60px) clamp(16px,5vw,72px); }
.pantheon-hero h1 { color:var(--site-secondary); font-size:clamp(30px,4.4vw,44px); text-transform:none; letter-spacing:-.02em; line-height:1.1; margin:0 0 10px; }
.pantheon-hero p { max-width:640px; opacity:.85; margin:0; }
.pantheon-top { margin-top:24px; border:2px solid var(--site-secondary); padding:22px; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; background:#ffffff0d; }
.pantheon-top .emoji { font-size:60px; }
.pantheon-top .label { color:var(--site-secondary); }
.pantheon-top h2 { font-size:clamp(22px,3vw,28px); margin:4px 0 6px; line-height:1.15; letter-spacing:-.02em; }
.pantheon-top a { color:inherit; }
.pantheon-top p { margin:8px 0 12px; }
@media(max-width:760px) { .pantheon-top { grid-template-columns:1fr; text-align:center; } .pantheon-top .byline { justify-content:center; } }
.board-row.worst.top1 { background:linear-gradient(90deg, color-mix(in srgb,var(--site-primary) 22%,transparent), transparent); }

/* Logo : France Taxe + slogan */
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit; transform:none; }
.brand-logo { display:grid; place-items:center; width:38px; height:38px; background:var(--site-primary); border-radius:8px; font-size:20px; transform:rotate(-6deg); flex-shrink:0; box-shadow:2px 2px 0 color-mix(in srgb,currentColor 30%,transparent); }
.brand-text { display:flex; flex-direction:column; line-height:1.1; }
.brand-text b { font-size:18px; font-weight:850; letter-spacing:-.03em; white-space:nowrap; }
.brand-text small { font-size:11px; font-weight:600; opacity:.65; white-space:nowrap; letter-spacing:0; text-transform:none; }
.site-footer .brand-logo { box-shadow:none; }
.site-footer .brand-text small { opacity:.75; }
/* Le nom reste toujours visible ; seul le slogan disparaît quand la place manque */
@media(max-width:1200px) and (min-width:861px) { .brand-name { display:none !important; } }
@media(max-width:860px) { .brand-name { display:block !important; } }
@media(max-width:400px) { .brand-name { display:none !important; } }
.pantheon-lead { font-size:clamp(17px,2vw,20px); font-weight:700; color:var(--site-secondary); margin:0 0 8px !important; opacity:1 !important; }
.pantheon-hero p + p { margin-top:0; }
.section-head p + p { margin-top:4px; }

/* Grades : citoyen reconnu / parlementaire reconnu */
.rank-badge { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:800; padding:3px 8px; border-radius:999px; vertical-align:middle; white-space:nowrap; letter-spacing:0; }
.rank-badge.lg { font-size:14px; padding:5px 12px; }
.rank-badge.rank-citizen { background:#e3ecf9; color:#1d4f91; }
.rank-badge.rank-parliament { background:linear-gradient(90deg,#f2c94c,#f7dd8a); color:#5a3d00; box-shadow:0 0 0 1px #c99a1a inset; }
.rank-badge.rank-anonymous { background:color-mix(in srgb,currentColor 10%,transparent); }
.rank-mini { font-size:13px; line-height:1; }
.rank-card { border:2px solid var(--site-on-background); padding:18px; background:light-dark(#fff,#1d1d1a); }
.rank-card.rank-citizen { background:linear-gradient(135deg,#eef4fc,#fffdf8); color:#201f1b; }
.rank-card.rank-parliament { background:linear-gradient(135deg,#fdf1c8,#fffdf8); border-color:#c99a1a; color:#201f1b; }
.rank-card-head { display:flex; align-items:center; gap:14px; }
.rank-card-icon { font-size:46px; line-height:1; }
.rank-card-title { font-size:clamp(22px,3vw,28px); font-weight:850; letter-spacing:-.02em; }
.rank-next { margin:12px 0 8px; font-size:14px; line-height:1.5; }
.rank-bar { height:10px; margin:0; }
.rank-bar span { background:linear-gradient(90deg,#1d4f91,#f2c94c); }
.rank-progress { font-size:12px; opacity:.7; }
.ladder { list-style:none; padding:0; margin:14px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.ladder-step { display:flex; gap:8px; align-items:flex-start; padding:10px; border:1px solid color-mix(in srgb,currentColor 15%,transparent); background:color-mix(in srgb,currentColor 3%,transparent); font-size:13px; opacity:.65; }
.ladder-step b { display:block; font-size:13px; }
.ladder-step small { display:block; font-size:11px; line-height:1.4; opacity:.8; margin-top:2px; }
.ladder-step.done { opacity:.9; }
.ladder-step.done .ladder-icon { background:#2f9e5b; color:#fff; }
.ladder-step.current { opacity:1; border:2px solid var(--site-on-background); background:#fffdf8; }
.ladder-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:color-mix(in srgb,currentColor 8%,transparent); flex-shrink:0; font-size:16px; font-weight:800; }
@media(max-width:620px) { .ladder { grid-template-columns:1fr; } }

/* Drapeau français (dessiné en CSS : les emojis drapeaux ne s'affichent pas sous Windows) */
.flag-fr { display:inline-block; width:24px; height:16px; margin-right:9px; vertical-align:-3px; border-radius:2px;
  background:linear-gradient(90deg, #002395 0 33.33%, #ffffff 33.33% 66.66%, #ed2939 66.66% 100%);
  box-shadow:0 0 0 1px rgba(0,0,0,.25), 0 1px 3px rgba(0,0,0,.25); }

/* ============================================================
   Bloc-marque parodique façon site gouvernemental
   (pastiche volontaire : pas de Marianne ni de « République française »)
   ============================================================ */
.brand { gap:14px; }
.bloc-marque { display:flex; flex-direction:column; gap:5px; color:#000; flex-shrink:0; }
.bm-flag { display:block; width:30px; height:11px; background:linear-gradient(90deg,#000091 0 33.33%,#fff 33.33% 66.66%,#e1000f 66.66% 100%); box-shadow:0 0 0 1px #00000026; }
.bm-text { display:flex; flex-direction:column; gap:4px; }
.bm-name { font-family:Arial, "Helvetica Neue", Helvetica, sans-serif; font-weight:700; font-size:12.5px; line-height:1.02; text-transform:uppercase; letter-spacing:.01em; }
.bm-motto { font-family:Georgia, "Times New Roman", serif; font-style:italic; font-size:8px; line-height:1.05; color:#3a3a3a; }
.brand .brand-text { padding-left:14px; border-left:1px solid #00000033; }
.brand .brand-text b { font-family:Arial, "Helvetica Neue", Helvetica, sans-serif; font-weight:700; font-size:18px; letter-spacing:0; color:#161616; }
.brand .brand-text small { font-family:Arial, "Helvetica Neue", Helvetica, sans-serif; font-size:12px; color:#3a3a3a; opacity:1; }
.topbar { background:#fff; border-bottom:1px solid #ddd; box-shadow:0 2px 6px -4px #0003; }
.brand-logo { display:none; }
/* Pied de page (fond sombre) : bloc-marque sur fond blanc, comme sur les sites officiels */
.brand-footer { background:#fff; padding:12px 16px; display:inline-flex; }
.site-footer .brand-text small { opacity:1; }
@media(max-width:860px) {
  .bm-motto { display:none; }
  .bm-name { font-size:11px; }
  .brand .brand-text { padding-left:10px; }
  .brand .brand-text b { font-size:16px; }
}
@media(max-width:420px) { .brand .brand-text small { display:none; } }
.topbar { color:#161616; }
.topbar .mainnav a.active { background:#161616; color:#fff; }

/* Compte */
.auth-box { margin-top:20px; }
.auth-box h2 { margin-bottom:6px; }
.auth-intro { font-size:15px; line-height:1.5; margin:0 0 14px; }
.auth-tabs { margin-bottom:14px; }
.auth-form .form-grid { margin-top:4px; }
.account-box { margin-top:20px; padding-top:16px; border-top:1px dashed color-mix(in srgb,currentColor 25%,transparent); }
.account-box h3 { font-size:18px; margin:0 0 6px; }
.account-line { margin:0 0 10px; font-size:14px; }
.propose-account { margin-top:18px; text-align:left; border:2px dashed var(--site-on-background); padding:18px; background:#fffdf8; }

/* Logo v2 : devise seule sous le drapeau, nom « France Taxe » + slogan soignés */
.bloc-marque { gap:6px; }
.bm-flag { width:34px; height:12px; }
.bm-motto { font-family:Georgia, "Times New Roman", serif; font-style:italic; font-size:11px; line-height:1.2; color:#161616; letter-spacing:.01em; }
.brand .brand-text { padding-left:16px; gap:2px; }
.brand .brand-text b.brand-title { font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size:23px; font-weight:800; letter-spacing:-.035em; line-height:1; color:#161616; }
.brand-accent { color:#000091; }
.brand .brand-text small.brand-slogan { font-family:Georgia, "Times New Roman", serif; font-style:italic; font-size:13.5px; color:#555; letter-spacing:.005em; margin-top:3px; }
.brand .brand-text small.brand-slogan::before { content:"« "; color:#999; }
.brand .brand-text small.brand-slogan::after { content:" »"; color:#999; }
@media(max-width:860px) {
  .bm-motto { display:block; font-size:9.5px; }
  .brand .brand-text b.brand-title { font-size:20px; }
  .brand .brand-text small.brand-slogan { font-size:12px; }
}
@media(max-width:420px) { .bm-motto { display:none; } }

/* Pas de bande claire entre le compteur de dette et l encart de vote */
.carousel-section { margin-top:0; }
.debt + .carousel-section { border-top:0; }
