/* ============================================================
   Fiduciairecomptable.fr — Design system partagé
   Hub + 8 piliers · France–Luxembourg
   ============================================================ */

:root{
  --ink-1000:#04080F;--ink-900:#0A1628;--ink-800:#0F1E36;--ink-700:#1B365D;--ink-600:#2E4068;
  --ink-500:#4A5A78;--ink-400:#6B7891;--ink-300:#9AA4B8;--ink-200:#D5DAE3;--ink-150:#E8EBF0;--ink-100:#F1F3F7;--ink-50:#F8F9FB;
  --gold-700:#8A6B26;--gold-600:#A88A3D;--gold-500:#C5A55A;--gold-400:#D9C083;--gold-200:#E7D9AE;--gold-100:#F5EFDE;--gold-50:#FAF6EA;
  --off-white:#FCFCFD;--white:#FFFFFF;--success:#1F7A47;--alert:#9A3B2E;--alert-bg:#FBF0EE;
  --maxw:1180px;--readw:760px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Geist",system-ui,sans-serif;font-weight:450;color:var(--ink-700);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--gold-500);color:var(--ink-900)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.mono{font-family:"Geist Mono",monospace}
h1,h2,h3,h4,h5{font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--ink-900)}
.eyebrow{font-family:"Geist Mono",monospace;font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-600)}

.btn{display:inline-flex;align-items:center;gap:9px;font-weight:500;font-size:14.5px;padding:12px 20px;border-radius:8px;transition:all .18s;cursor:pointer;border:1px solid transparent}
.btn-ink{background:var(--ink-900);color:var(--white)}
.btn-ink:hover{background:var(--ink-800);transform:translateY(-1px)}
.btn-gold{background:var(--gold-500);color:var(--ink-900)}
.btn-gold:hover{background:var(--gold-600)}
.btn-ghost{border-color:var(--ink-200);color:var(--ink-700);background:var(--white)}
.btn-ghost:hover{border-color:var(--gold-500);color:var(--ink-900)}
.arr{transition:transform .18s}.btn:hover .arr{transform:translateX(3px)}

/* ---- NAV ---- */
header.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--ink-150)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:11px;font-weight:600;font-size:15px;color:var(--ink-900)}
.logo .seal{width:29px;height:29px;border-radius:8px;background:var(--ink-900);color:var(--gold-500);display:grid;place-items:center;font-family:"Geist Mono",monospace;font-size:12px;font-weight:500}
.nav-links{display:flex;gap:22px}
.nav-links a{font-size:13.5px;color:var(--ink-500);transition:color .2s}
.nav-links a:hover{color:var(--ink-900)}
.nav .btn{padding:9px 15px;font-size:13.5px}
@media(max-width:980px){.nav-links{display:none}}

/* ---- BREADCRUMB ---- */
.crumbs{background:var(--ink-50);border-bottom:1px solid var(--ink-150);font-family:"Geist Mono",monospace;font-size:11.5px}
.crumbs .wrap{display:flex;gap:9px;align-items:center;padding-top:11px;padding-bottom:11px;flex-wrap:wrap;color:var(--ink-400)}
.crumbs a{color:var(--ink-500)}.crumbs a:hover{color:var(--gold-700)}
.crumbs .sep{color:var(--ink-300)}
.crumbs [aria-current]{color:var(--gold-700)}

/* ---- SECTIONS ---- */
.sec{padding:80px 0}
.sec-tight{padding:56px 0}
.sec-white{background:var(--white)}
.sec-soft{background:var(--ink-50)}
.sec-ink{background:var(--ink-900);color:var(--ink-200)}
.sec-head{max-width:64ch}
.sec h2{font-size:clamp(28px,3.4vw,44px)}
.sec h2 em,.hero h1 em{font-style:normal;color:var(--gold-600)}
.sec .intro{margin-top:16px;color:var(--ink-500);font-size:16.5px}
.sec-ink h2{color:var(--white)}.sec-ink .intro{color:var(--ink-300)}

/* ---- HERO ---- */
.hero{position:relative;background:var(--white);overflow:hidden;border-bottom:1px solid var(--ink-150)}
.hero .grid{position:absolute;inset:0;background-image:linear-gradient(var(--ink-50) 1px,transparent 1px),linear-gradient(90deg,var(--ink-50) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(circle at 80% 25%,#000,transparent 68%);pointer-events:none}
.hero .wrap{position:relative;padding:78px 28px 64px;max-width:1000px}
.hero .eyebrow{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.hero .eyebrow::before{content:"";width:28px;height:1px;background:var(--gold-500)}
.hero h1{font-size:clamp(36px,5vw,68px);max-width:19ch;font-weight:600}
.hero .sub{margin-top:24px;font-size:clamp(16px,1.6vw,19px);color:var(--ink-500);max-width:62ch}
.hero .sub b{color:var(--ink-900);font-weight:500}
.hero .cta-row{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
.hero .micro{margin-top:22px;font-size:12.5px;color:var(--ink-400);display:flex;gap:8px 18px;flex-wrap:wrap}
.hero .micro b{color:var(--gold-700);font-weight:500}
.hero.pillar .wrap{padding-top:54px;padding-bottom:50px}
.hero.pillar h1{font-size:clamp(30px,4vw,52px);max-width:24ch}

/* ---- TRIGGER NAV ---- */
.triggers{background:var(--ink-50);border-bottom:1px solid var(--ink-150)}
.triggers .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-150)}
.trig{background:var(--ink-50);padding:24px 22px;transition:background .18s;display:block}
.trig:hover{background:var(--white)}
.trig .tn{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-600);letter-spacing:.06em}
.trig h3{font-size:17px;margin:10px 0 6px}
.trig p{font-size:12.5px;color:var(--ink-500)}
.trig .tc{margin-top:10px;font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-700)}
@media(max-width:880px){.triggers .wrap{grid-template-columns:1fr 1fr}}

/* ---- KPI STRIP ---- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-150);border:1px solid var(--ink-150);border-radius:12px;overflow:hidden;margin-top:36px}
.kpi{background:var(--white);padding:24px 22px}
.kpi .kn{font-size:clamp(26px,3vw,38px);font-weight:600;color:var(--ink-900);letter-spacing:-.03em}
.kpi .kn em{font-style:normal;color:var(--gold-600)}
.kpi .kl{font-size:12.5px;color:var(--ink-500);margin-top:6px;line-height:1.5}
@media(max-width:760px){.kpis{grid-template-columns:1fr 1fr}}

/* ---- HUB BANDS ---- */
.hub{scroll-margin-top:90px}
.hub-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ink-150);padding-bottom:16px;margin-bottom:24px}
.hub-head .hl{display:flex;align-items:baseline;gap:16px}
.hub-head .hnum{font-family:"Geist Mono",monospace;font-size:13px;color:var(--gold-600)}
.hub-head h3{font-size:clamp(22px,2.6vw,30px)}
.hub-head .hsub{font-size:13px;color:var(--ink-400);margin-top:5px}
.hub-head .hlink{font-family:"Geist Mono",monospace;font-size:12px;color:var(--gold-700);white-space:nowrap}
@media(max-width:640px){.hub-head{flex-direction:column}}

/* ---- CASE CARDS ---- */
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.case{border:1px solid var(--ink-150);border-radius:10px;padding:26px;background:var(--white);transition:all .18s;display:flex;flex-direction:column}
.case:hover{border-color:var(--gold-400);box-shadow:0 10px 34px rgba(10,22,40,.06)}
.case .ctag{display:inline-flex;align-items:center;gap:7px;font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-700);background:var(--gold-50);border:1px solid var(--gold-100);border-radius:6px;padding:4px 9px;align-self:flex-start}
.case h4{font-size:19px;margin:14px 0 6px;color:var(--ink-900)}
.case .cmeta{font-family:"Geist Mono",monospace;font-size:11px;color:var(--ink-400);margin-bottom:14px}
.case .crow{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--ink-100);font-size:13.5px}
.case .crow .ck{font-family:"Geist Mono",monospace;font-size:10.5px;color:var(--gold-700);text-transform:uppercase;letter-spacing:.03em;padding-top:2px}
.case .crow .cv{color:var(--ink-600)}
.case .cres{margin-top:13px;padding:11px 13px;border-radius:8px;background:var(--ink-50);font-size:12.5px;color:var(--ink-700)}
.case .cres b{color:var(--success)}
.case .clinks{margin-top:14px;padding-top:13px;border-top:1px solid var(--ink-100);display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.case .clinks .cll{font-family:"Geist Mono",monospace;font-size:10px;color:var(--ink-400);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.case .clinks a,.chip-link{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-700);background:var(--gold-50);border:1px solid var(--gold-100);border-radius:6px;padding:3px 8px;transition:all .15s}
.case .clinks a:hover,.chip-link:hover{background:var(--gold-100)}
.case .cmore{margin-top:14px}
.case .cmore a{font-family:"Geist Mono",monospace;font-size:11.5px;color:var(--ink-900);border-bottom:1px solid var(--gold-400);padding-bottom:1px}
@media(max-width:760px){.cases{grid-template-columns:1fr}}

/* ============================================================
   PILLAR / ARTICLE LAYOUT
   ============================================================ */
.article-shell{display:grid;grid-template-columns:1fr minmax(0,var(--readw)) 1fr;gap:0;padding:56px 28px 0}
.article-shell>*{grid-column:2}
.toc{grid-column:1;align-self:start;position:sticky;top:88px;justify-self:end;width:230px;margin-right:34px;font-size:13px}
.toc h4{font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-600);margin-bottom:12px}
.toc a{display:block;color:var(--ink-500);padding:5px 0;border-left:2px solid var(--ink-150);padding-left:12px;transition:all .18s;line-height:1.4}
.toc a:hover,.toc a.active{color:var(--ink-900);border-color:var(--gold-500)}
@media(max-width:1100px){.article-shell{display:block;max-width:var(--readw);margin:0 auto}.toc{display:none}}

.prose{font-size:16.5px;color:var(--ink-600);line-height:1.75}
.prose h2{font-size:clamp(24px,2.8vw,32px);margin:46px 0 14px;scroll-margin-top:88px}
.prose h3{font-size:20px;margin:32px 0 10px;color:var(--ink-800);scroll-margin-top:88px}
.prose h2:first-child{margin-top:0}
.prose p{margin:0 0 18px}
.prose b,.prose strong{color:var(--ink-900);font-weight:600}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px}
.prose li{margin-bottom:8px}
.prose a.inline{color:var(--gold-700);border-bottom:1px solid var(--gold-200);font-weight:500}
.prose a.inline:hover{color:var(--ink-900)}
.lead{font-size:19px;line-height:1.65;color:var(--ink-700)}

/* ---- GEO CITABLE BLOCKS ---- */
.block{border-radius:12px;padding:24px 26px;margin:28px 0;border:1px solid var(--ink-150);background:var(--white)}
.block .bh{font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:9px;margin-bottom:13px}
.block .bh::before{content:"";width:18px;height:1px;background:var(--gold-500)}
.block p:last-child,.block li:last-child{margin-bottom:0}
.block.tldr{background:linear-gradient(180deg,var(--gold-50),var(--white));border-color:var(--gold-100)}
.block.tldr .bh{color:var(--gold-700)}
.block.tldr p{font-size:17px;color:var(--ink-800);line-height:1.6;margin-bottom:0}
.block.key{background:var(--ink-900);border-color:var(--ink-800);color:var(--ink-200)}
.block.key .bh{color:var(--gold-400)}
.block.key ul{list-style:none;padding:0;margin:0}
.block.key li{position:relative;padding-left:26px;margin-bottom:11px;font-size:15px;line-height:1.55;color:var(--ink-200)}
.block.key li::before{content:"";position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:2px;background:var(--gold-500);transform:rotate(45deg)}
.block.key li b{color:var(--white)}
.block.check ul{list-style:none;padding:0;margin:0}
.block.check li{position:relative;padding-left:30px;margin-bottom:11px;font-size:15px;color:var(--ink-600)}
.block.check li::before{content:"✓";position:absolute;left:0;top:0;color:var(--success);font-weight:700;font-family:"Geist Mono",monospace}
.block.check .bh{color:var(--success)}
.block.errors{background:var(--alert-bg);border-color:#EBD3CE}
.block.errors .bh{color:var(--alert)}
.block.errors ul{list-style:none;padding:0;margin:0}
.block.errors li{position:relative;padding-left:28px;margin-bottom:11px;font-size:15px;color:var(--ink-700)}
.block.errors li::before{content:"✕";position:absolute;left:0;top:0;color:var(--alert);font-weight:700;font-family:"Geist Mono",monospace}
.block.errors li b{color:var(--alert)}
.block.def{border-left:3px solid var(--gold-500)}
.block.def .bh{color:var(--gold-700)}
.block.def .term{font-weight:600;color:var(--ink-900)}

/* ---- COMPARISON TABLES ---- */
.tbl-wrap{margin:28px 0;border:1px solid var(--ink-150);border-radius:12px;overflow:auto}
table.cmp{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
table.cmp caption{text-align:left;font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-700);padding:16px 18px 0}
table.cmp th,table.cmp td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--ink-100);vertical-align:top}
table.cmp thead th{background:var(--ink-50);font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-700);font-weight:500}
table.cmp tbody th{font-weight:500;color:var(--ink-800);width:32%}
table.cmp tbody tr:last-child td,table.cmp tbody tr:last-child th{border-bottom:none}
table.cmp td b{color:var(--ink-900)}
table.cmp .yes{color:var(--success);font-weight:600}
table.cmp .no{color:var(--alert);font-weight:600}

/* ---- TIMELINE ---- */
.timeline{margin:30px 0;position:relative;padding-left:4px}
.tstep{position:relative;padding:0 0 26px 40px;border-left:2px solid var(--ink-150)}
.tstep:last-child{border-left-color:transparent;padding-bottom:0}
.tstep::before{content:"";position:absolute;left:-8px;top:2px;width:14px;height:14px;border-radius:50%;background:var(--white);border:2px solid var(--gold-500)}
.tstep .tt{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-700);letter-spacing:.04em}
.tstep h4{font-size:16.5px;margin:5px 0 6px}
.tstep p{font-size:14.5px;color:var(--ink-500);margin:0}

/* ---- DIAGRAM (SVG holder) ---- */
.diagram{margin:30px 0;border:1px solid var(--ink-150);border-radius:12px;background:linear-gradient(180deg,var(--ink-50),var(--white));padding:26px}
.diagram svg{width:100%;height:auto;display:block}
.diagram figcaption{margin-top:14px;font-size:12.5px;color:var(--ink-400);font-family:"Geist Mono",monospace;text-align:center}
.dg-box{fill:var(--white);stroke:var(--ink-200)}
.dg-box-ink{fill:var(--ink-900)}
.dg-box-gold{fill:var(--gold-50);stroke:var(--gold-400)}
.dg-t{font-family:"Geist",sans-serif;font-size:13px;fill:var(--ink-800);font-weight:500}
.dg-t-w{fill:var(--white)}
.dg-t-s{font-family:"Geist Mono",monospace;font-size:10px;fill:var(--ink-400)}
.dg-line{stroke:var(--gold-500);stroke-width:1.5;fill:none}
.dg-arrowhead{fill:var(--gold-500)}

/* ---- DOCS GRID ---- */
.docs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}
.doc{border:1px solid var(--ink-150);border-radius:9px;padding:15px 17px;font-size:14px;background:var(--white)}
.doc .dn{font-family:"Geist Mono",monospace;font-size:10px;color:var(--gold-600);letter-spacing:.05em}
.doc .dt{color:var(--ink-800);font-weight:500;margin-top:5px}
.doc p{font-size:12.5px;color:var(--ink-500);margin:5px 0 0}
@media(max-width:640px){.docs{grid-template-columns:1fr}}

/* ---- PULL STAT ---- */
.pull{margin:30px 0;padding:24px 28px;border-left:3px solid var(--gold-500);background:var(--ink-50);border-radius:0 10px 10px 0}
.pull .pn{font-size:34px;font-weight:600;color:var(--ink-900);letter-spacing:-.03em}
.pull .pn em{font-style:normal;color:var(--gold-600)}
.pull .pl{font-size:14px;color:var(--ink-500);margin-top:4px}

/* ---- GLOSSARY ---- */
.glossary{margin:24px 0;border-top:1px solid var(--ink-150)}
.gloss{border-bottom:1px solid var(--ink-100);padding:16px 0;display:grid;grid-template-columns:200px 1fr;gap:18px}
.gloss dt{font-weight:600;color:var(--ink-900);font-size:14.5px}
.gloss dd{font-size:14px;color:var(--ink-500);margin:0;line-height:1.6}
@media(max-width:640px){.gloss{grid-template-columns:1fr;gap:5px}}

/* ---- SOURCES ---- */
.sources{margin:22px 0 22px 20px;font-size:13.5px}
.sources li{margin-bottom:9px;color:var(--ink-500);line-height:1.5}
.sources .ref{font-family:"Geist Mono",monospace;font-size:11.5px;color:var(--gold-700)}

/* ---- RELATED ---- */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}
.rel{border:1px solid var(--ink-150);border-radius:10px;padding:20px;transition:all .18s;background:var(--white);display:block}
.rel:hover{border-color:var(--gold-400);box-shadow:0 8px 24px rgba(10,22,40,.05)}
.rel .rt{font-family:"Geist Mono",monospace;font-size:10px;color:var(--gold-600);letter-spacing:.05em;text-transform:uppercase}
.rel h4{font-size:16px;margin:9px 0 6px}
.rel p{font-size:13px;color:var(--ink-500);margin:0}
@media(max-width:760px){.related{grid-template-columns:1fr}}

/* ---- AUTHOR / EEAT ---- */
.authorbox{display:grid;grid-template-columns:84px 1fr;gap:20px;margin:36px 0;padding:24px;border:1px solid var(--ink-150);border-radius:12px;background:var(--ink-50)}
.authorbox .av{width:84px;height:84px;border-radius:10px;background:linear-gradient(160deg,var(--ink-700),var(--ink-1000));display:grid;place-items:center;color:var(--gold-500);font-weight:600;font-size:26px}
.authorbox .ameta .an{font-weight:600;color:var(--ink-900);font-size:16px}
.authorbox .ameta .ar{font-family:"Geist Mono",monospace;font-size:11.5px;color:var(--gold-700);margin:3px 0 9px}
.authorbox .ameta p{font-size:13.5px;color:var(--ink-500);margin:0;line-height:1.6}
.authorbox .ameta .acred{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.authorbox .ameta .acred span{font-family:"Geist Mono",monospace;font-size:10.5px;color:var(--ink-600);background:var(--white);border:1px solid var(--ink-150);border-radius:6px;padding:4px 9px}
@media(max-width:560px){.authorbox{grid-template-columns:1fr}}

/* ---- DISCLAIMER ---- */
.disclaimer{margin:26px 0;padding:16px 20px;border:1px dashed var(--ink-200);border-radius:8px;font-size:12.5px;color:var(--ink-500);line-height:1.65}
.disclaimer b{color:var(--ink-700)}

/* ---- METHOD FLOW ---- */
.flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:42px;justify-content:center}
.fstep{border:1px solid var(--ink-150);border-radius:10px;padding:16px 20px;background:var(--white);text-align:center;min-width:150px}
.fstep .fn{font-family:"Geist Mono",monospace;font-size:10px;color:var(--gold-600);letter-spacing:.06em}
.fstep .ft{font-size:14.5px;font-weight:500;color:var(--ink-900);margin-top:6px}
.farr{color:var(--gold-500);font-size:18px}
@media(max-width:760px){.flow{flex-direction:column}.farr{transform:rotate(90deg)}}

/* ---- FOUNDER ---- */
.founder{display:grid;grid-template-columns:.78fr 1.22fr;gap:46px;margin-top:44px;align-items:center}
.founder .photo{aspect-ratio:4/5;border-radius:12px;background:linear-gradient(160deg,var(--ink-700),var(--ink-1000));border:1px solid var(--ink-200);display:grid;place-items:center;position:relative;overflow:hidden}
.founder .photo .ph-init{font-size:62px;font-weight:600;color:var(--gold-500)}
.founder .photo .ph-cap{position:absolute;bottom:0;left:0;right:0;padding:18px;background:linear-gradient(transparent,rgba(4,8,15,.85));color:var(--white)}
.founder .photo .ph-cap .nm{font-weight:600;font-size:16px}
.founder .photo .ph-cap .rl{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-400);margin-top:3px}
.founder .fbody h3{font-size:23px;margin-bottom:8px}
.founder .fbody .frole{font-family:"Geist Mono",monospace;font-size:12px;color:var(--gold-600);margin-bottom:16px}
.founder .fbody p{font-size:15px;color:var(--ink-600);margin-bottom:16px}
.fcreds{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fcred{font-family:"Geist Mono",monospace;font-size:11px;color:var(--ink-700);background:var(--ink-100);border-radius:6px;padding:6px 11px}
.fcred b{color:var(--gold-700)}
.authority{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}
.auth{border:1px solid var(--ink-150);border-radius:10px;padding:18px;background:var(--white)}
.auth .ah{font-family:"Geist Mono",monospace;font-size:10px;color:var(--gold-600);letter-spacing:.07em;text-transform:uppercase}
.auth ul{list-style:none;padding:0;margin:9px 0 0}
.auth li{font-size:13px;color:var(--ink-600);padding:5px 0;border-top:1px solid var(--ink-100)}
.auth li:first-child{border-top:none}
@media(max-width:780px){.founder{grid-template-columns:1fr;gap:26px}.founder .photo{max-width:270px}.authority{grid-template-columns:1fr}}
.compliance{margin-top:28px;padding:16px 20px;border:1px dashed var(--ink-200);border-radius:8px;font-size:12.5px;color:var(--ink-500);max-width:80ch}
.compliance b{color:var(--ink-700)}

/* ---- RESOURCES ---- */
.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.res{border:1px solid var(--ink-150);border-radius:11px;padding:22px;background:var(--white);transition:all .18s;display:block}
.res:hover{border-color:var(--gold-400);box-shadow:0 8px 24px rgba(10,22,40,.05)}
.res .ri{width:38px;height:38px;border-radius:9px;background:var(--gold-50);border:1px solid var(--gold-100);display:grid;place-items:center;color:var(--gold-700);font-family:"Geist Mono",monospace;font-size:13px;margin-bottom:14px}
.res h4{font-size:16px;margin-bottom:6px}
.res p{font-size:13px;color:var(--ink-500);margin:0 0 12px}
.res .rcta{font-family:"Geist Mono",monospace;font-size:11.5px;color:var(--gold-700)}
@media(max-width:760px){.resources{grid-template-columns:1fr}}

/* ---- FAQ ---- */
.faq-list{margin-top:34px;border-top:1px solid var(--ink-150)}
.faq-cat{font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-700);margin:30px 0 4px;padding-top:8px}
.qa{border-bottom:1px solid var(--ink-150)}
.qa summary{list-style:none;cursor:pointer;padding:18px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}
.qa summary::-webkit-details-marker{display:none}
.qa h3{font-size:16.5px;font-weight:500;color:var(--ink-900)}
.qa .plus{flex:none;width:20px;height:20px;position:relative}
.qa .plus::before,.qa .plus::after{content:"";position:absolute;background:var(--gold-600);transition:transform .25s}
.qa .plus::before{top:9px;left:1px;width:18px;height:2px}
.qa .plus::after{top:1px;left:9px;width:2px;height:18px}
.qa[open] .plus::after{transform:rotate(90deg);opacity:0}
.qa .ans{padding:0 0 22px;max-width:82ch;color:var(--ink-600);font-size:14.5px;line-height:1.7}
.qa .ans b{color:var(--ink-900);font-weight:500}
.qa .ans a{color:var(--gold-700);border-bottom:1px solid var(--gold-200)}

/* ---- CTA ---- */
.ctaband{background:var(--ink-900);border-radius:14px;padding:54px;text-align:center;position:relative;overflow:hidden}
.ctaband .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(197,165,90,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(197,165,90,.06) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at 50% 50%,#000,transparent 72%)}
.ctaband>*{position:relative}
.ctaband .eyebrow{color:var(--gold-400);margin-bottom:16px}
.ctaband h2{color:var(--white);font-size:clamp(26px,3.4vw,42px);max-width:22ch;margin:0 auto}
.ctaband p{color:var(--ink-300);max-width:60ch;margin:18px auto 28px;font-size:16px}
.ctaband .selnote{margin-top:18px;font-family:"Geist Mono",monospace;font-size:11.5px;color:var(--ink-400)}
@media(max-width:680px){.ctaband{padding:38px 24px}}

/* ---- FOOTER ---- */
footer.site{background:var(--ink-1000);color:var(--ink-300);padding:56px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
.foot h4{font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-500);margin-bottom:16px}
.foot a{display:block;font-size:13px;color:var(--ink-300);padding:5px 0;transition:color .2s}
.foot a:hover{color:var(--white)}
.foot .about{font-size:13px;color:var(--ink-400);max-width:34ch;line-height:1.7}
.foot .legal{margin-top:14px;font-family:"Geist Mono",monospace;font-size:11px;color:var(--ink-500);line-height:1.8}
.foot-bottom{margin-top:42px;padding-top:22px;border-top:1px solid var(--ink-800);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--ink-500)}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px}

.center{text-align:center}
.mt0{margin-top:0}.mt48{margin-top:48px}.mt56{margin-top:56px}
.note-inline{font-size:12.5px;color:var(--ink-400)}

/* ============================================================
   ADDITIONS — bleu, verbes forts, séparateur, justification
   ============================================================ */
:root{--blue-700:#153E7E;--blue-600:#1B4F9C;--blue-500:#2C63B0;--blue-100:#E7EEF8}

/* chiffres KPI en une seule couleur bleue */
.kpis .kpi .kn em{color:var(--blue-600)}
.kpis .kpi .kn{color:var(--blue-700)}

/* texte justifié */
.hero .sub,.sec .intro,.prose p,.lead,.block.tldr p,.qa .ans,.gloss dd,.bank .bd{text-align:justify;-webkit-hyphens:auto;hyphens:auto}
@media(max-width:640px){.hero .sub,.sec .intro,.prose p,.lead{text-align:left}}

/* rotateur de hooks (hero) */
.hooks{margin-top:18px;min-height:26px;font-size:clamp(15px,1.6vw,18px);color:var(--ink-600);font-weight:500}
.hooks .rot{display:inline-block;transition:opacity .5s ease,transform .5s ease}
.hooks .rot.out{opacity:0;transform:translateY(-6px)}
.hooks .rot b{color:var(--blue-600);font-weight:600}
@media(prefers-reduced-motion:reduce){.hooks .rot{transition:none}}

/* section verbes forts (intentions) */
.verbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}
.verb{border:1px solid var(--ink-150);border-radius:12px;padding:22px 20px;background:var(--white);transition:all .18s;display:flex;flex-direction:column;min-height:150px}
.verb:hover{border-color:var(--blue-500);box-shadow:0 12px 30px rgba(21,62,126,.08);transform:translateY(-2px)}
.verb .vk{font-size:22px;font-weight:600;color:var(--ink-900);letter-spacing:-.02em}
.verb .vk em{font-style:normal;color:var(--blue-600)}
.verb p{font-size:12.5px;color:var(--ink-500);margin:8px 0 0;text-align:left}
.verb .vgo{margin-top:auto;padding-top:12px;font-family:"Geist Mono",monospace;font-size:11px;color:var(--blue-600)}
@media(max-width:860px){.verbs{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.verbs{grid-template-columns:1fr}}

/* bande séparateur */
.sep-band{background:var(--ink-900);color:var(--ink-100);position:relative;overflow:hidden}
.sep-band .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(44,99,176,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(44,99,176,.08) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at 50% 50%,#000,transparent 72%)}
.sep-band .wrap{position:relative;padding:56px 28px;text-align:center;max-width:900px}
.sep-band .se{font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-500);margin-bottom:14px}
.sep-band p{font-size:clamp(20px,2.6vw,30px);font-weight:600;color:var(--white);letter-spacing:-.02em;line-height:1.35;max-width:24ch;margin:0 auto}
.sep-band p em{font-style:normal;color:var(--blue-500)}

/* section financialservices.lu */
.fslu{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;margin-top:14px}
.fslu .fslu-card{border:1px solid var(--ink-150);border-radius:14px;padding:28px;background:linear-gradient(180deg,var(--blue-100),var(--white))}
.fslu img.logo-fs{max-width:260px;height:auto;margin-bottom:14px}
.fslu .fslu-body h2{font-size:clamp(24px,3vw,34px)}
.fslu .fslu-body p{font-size:15.5px;color:var(--ink-600);margin:14px 0}
.fslu .fslu-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
@media(max-width:780px){.fslu{grid-template-columns:1fr;gap:24px}}

/* photo fondateur (image réelle avec repli) */
.founder .photo img.ph-img,.profile .pphoto img.pp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.authorbox .av img.av-img{width:100%;height:100%;object-fit:cover;border-radius:10px}

/* ============================================================
   SIMULATEUR D'ÉLIGIBILITÉ
   ============================================================ */
.sim{max-width:760px;margin:36px auto 0;border:1px solid var(--ink-150);border-radius:16px;background:var(--white);box-shadow:0 16px 50px rgba(10,22,40,.07);overflow:hidden}
.sim-top{background:var(--ink-900);color:var(--ink-200);padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.sim-top .st-l .se{font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-400)}
.sim-top .st-l h3{color:var(--white);font-size:18px;margin-top:4px}
.sim-prog{flex:none;font-family:"Geist Mono",monospace;font-size:12px;color:var(--gold-400)}
.sim-bar{height:3px;background:var(--ink-800)}
.sim-bar i{display:block;height:100%;background:var(--gold-500);width:0;transition:width .3s}
.sim-body{padding:30px 28px}
.sim-step{display:none}
.sim-step.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sim-q{font-size:20px;font-weight:600;color:var(--ink-900);margin-bottom:6px;letter-spacing:-.02em}
.sim-h{font-size:13.5px;color:var(--ink-500);margin-bottom:20px}
.sim-opts{display:grid;gap:10px}
.sim-opt{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--ink-200);border-radius:10px;padding:15px 17px;cursor:pointer;transition:all .15s;background:var(--white);text-align:left;width:100%;font:inherit;color:inherit}
.sim-opt:hover{border-color:var(--gold-400);background:var(--gold-50)}
.sim-opt[aria-pressed="true"]{border-color:var(--gold-500);background:var(--gold-50);box-shadow:inset 0 0 0 1px var(--gold-500)}
.sim-opt .dot{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--ink-300);margin-top:2px;display:grid;place-items:center;transition:all .15s}
.sim-opt[aria-pressed="true"] .dot{border-color:var(--gold-600)}
.sim-opt[aria-pressed="true"] .dot::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold-600)}
.sim-opt .ot{font-weight:500;color:var(--ink-900);font-size:15px}
.sim-opt .od{font-size:12.5px;color:var(--ink-500);margin-top:3px}
.sim-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
.sim-back{background:none;border:none;font-family:"Geist Mono",monospace;font-size:12.5px;color:var(--ink-500);cursor:pointer;padding:8px 4px}
.sim-back:hover{color:var(--ink-900)}
.sim-back[disabled]{opacity:.35;cursor:not-allowed}
.sim-res{padding:30px 28px;display:none}
.sim-res.on{display:block}
.sim-res .rk{font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-700)}
.sim-res h3{font-size:clamp(22px,3vw,30px);margin:8px 0 6px}
.sim-res .rprof{display:inline-flex;align-items:center;gap:8px;font-family:"Geist Mono",monospace;font-size:12px;color:var(--gold-700);background:var(--gold-50);border:1px solid var(--gold-100);border-radius:6px;padding:5px 11px;margin-bottom:16px}
.sim-res p{font-size:15px;color:var(--ink-600);line-height:1.65;margin-bottom:14px}
.sim-res .rgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.sim-res .rc{border:1px solid var(--ink-150);border-radius:10px;padding:16px}
.sim-res .rc .rl{font-family:"Geist Mono",monospace;font-size:10px;color:var(--gold-600);letter-spacing:.06em;text-transform:uppercase}
.sim-res .rc .rv{font-size:14.5px;color:var(--ink-800);font-weight:500;margin-top:5px}
.sim-res .rmatch{margin:16px 0;padding:16px 18px;border-left:3px solid var(--gold-500);background:var(--ink-50);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink-700)}
.sim-res .rcta{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.sim-res .rdis{margin-top:16px;font-size:11.5px;color:var(--ink-400);line-height:1.55}
@media(max-width:560px){.sim-res .rgrid{grid-template-columns:1fr}}

/* ============================================================
   LISTE DES BANQUES PRIVÉES
   ============================================================ */
.bank-region{margin:30px 0 10px;display:flex;align-items:baseline;gap:12px}
.bank-region h3{font-size:20px}
.bank-region .bcount{font-family:"Geist Mono",monospace;font-size:11px;color:var(--ink-400)}
.bank-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.bank{border:1px solid var(--ink-150);border-radius:10px;padding:16px 18px;background:var(--white);transition:all .15s}
.bank:hover{border-color:var(--gold-300,#E2D4A8);box-shadow:0 8px 22px rgba(10,22,40,.05)}
.bank .bn{font-weight:600;color:var(--ink-900);font-size:15.5px}
.bank .bg{font-family:"Geist Mono",monospace;font-size:10.5px;color:var(--ink-400);margin-top:2px}
.bank .bd{font-size:12.5px;color:var(--ink-500);margin-top:8px;line-height:1.5}
.bank .balt{margin-top:11px;padding-top:10px;border-top:1px dashed var(--ink-200)}
.bank .balt a{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-700);display:inline-flex;align-items:center;gap:6px}
.bank .balt a:hover{color:var(--ink-900)}
.bank .balt .bx{color:var(--ink-300)}
@media(max-width:680px){.bank-grid{grid-template-columns:1fr}}

/* ============================================================
   CALCULATEURS
   ============================================================ */
.calc{border:1px solid var(--ink-150);border-radius:14px;background:var(--white);box-shadow:0 12px 40px rgba(10,22,40,.06);margin:26px 0;overflow:hidden}
.calc-top{background:var(--ink-900);color:var(--ink-200);padding:18px 24px}
.calc-top .ce{font-family:"Geist Mono",monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-400)}
.calc-top h3{color:var(--white);font-size:18px;margin-top:4px}
.calc-body{padding:22px 24px}
.calc-field{margin-bottom:16px}
.calc-field label{display:block;font-size:13.5px;color:var(--ink-700);font-weight:500;margin-bottom:6px}
.calc-field .hint{font-size:12px;color:var(--ink-400);margin-top:4px}
.calc-input{display:flex;align-items:center;border:1px solid var(--ink-200);border-radius:9px;overflow:hidden;transition:border-color .15s}
.calc-input:focus-within{border-color:var(--gold-500)}
.calc-input input,.calc-input select{flex:1;border:none;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink-900);background:var(--white);outline:none;width:100%}
.calc-input .unit{padding:0 14px;font-family:"Geist Mono",monospace;font-size:13px;color:var(--ink-400);background:var(--ink-50);align-self:stretch;display:flex;align-items:center;border-left:1px solid var(--ink-150)}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.calc-row{grid-template-columns:1fr}}
.calc-out{margin-top:18px;border-top:1px solid var(--ink-150);padding-top:18px}
.calc-out .or{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--ink-100);font-size:14px}
.calc-out .or:last-child{border-bottom:none}
.calc-out .or .ol{color:var(--ink-500)}
.calc-out .or .ov{font-weight:600;color:var(--ink-900);font-family:"Geist Mono",monospace}
.calc-out .or.big .ov{font-size:22px;color:var(--gold-700)}
.calc-note{margin-top:14px;font-size:11.5px;color:var(--ink-400);line-height:1.55}
/* ---- Restauration composants (profil auteur, index A-Z, solutions) ---- */
.profile{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:start;margin-top:8px}
.profile .pphoto{aspect-ratio:1/1;border-radius:14px;background:linear-gradient(160deg,var(--ink-700),var(--ink-1000));display:grid;place-items:center;color:var(--gold-500);font-size:64px;font-weight:600;position:relative;overflow:hidden}
.profile .pmeta h2{font-size:clamp(24px,3vw,34px)}
.profile .prole{font-family:"Geist Mono",monospace;font-size:12.5px;color:var(--gold-700);margin:6px 0 16px}
.profile .pstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.profile .pstat{border:1px solid var(--ink-150);border-radius:10px;padding:14px}
.profile .pstat .n{font-size:22px;font-weight:600;color:var(--ink-900)}
.profile .pstat .l{font-size:11.5px;color:var(--ink-500);margin-top:3px}
@media(max-width:740px){.profile{grid-template-columns:1fr;gap:22px}.profile .pphoto{max-width:220px}}
.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
@media(max-width:640px){.exp-grid{grid-template-columns:1fr}}

.az-nav{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0;position:sticky;top:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);padding:10px 0;z-index:10}
.az-nav a{font-family:"Geist Mono",monospace;font-size:12px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--ink-150);border-radius:7px;color:var(--ink-600);transition:all .15s}
.az-nav a:hover{border-color:var(--gold-500);color:var(--gold-700);background:var(--gold-50)}
.az-group{margin:28px 0;scroll-margin-top:130px}
.az-letter{font-family:"Geist Mono",monospace;font-size:13px;color:var(--gold-700);border-bottom:1px solid var(--gold-200);padding-bottom:6px;margin-bottom:8px}

.solgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.sol{border:1px solid var(--ink-150);border-radius:12px;padding:22px;background:var(--white)}
.sol .si{font-family:"Geist Mono",monospace;font-size:11px;color:var(--gold-600);letter-spacing:.06em}
.sol h4{font-size:16px;margin:10px 0 7px}
.sol p{font-size:13px;color:var(--ink-500);margin:0;line-height:1.6}
@media(max-width:760px){.solgrid{grid-template-columns:1fr}}

/* ============================================================
   CHARTE FINANCIALSERVICES.LU (V5) — surcouche premium
   Appliquée aux composants existants, contenu inchangé
   ============================================================ */
:root{
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:24px; --r-pill:999px;
  --ease:cubic-bezier(0.22,1,0.36,1);
  --sh-1:0 4px 14px -4px rgba(10,22,40,.14);
  --sh-2:0 14px 34px -10px rgba(10,22,40,.16);
}

/* Titres : plus fins, tracking serré (signature V5) */
h1,h2,h3,h4,h5{font-weight:500;letter-spacing:-.03em}
.hero h1,.sec h2,.section-title{font-weight:500;letter-spacing:-.035em}

/* Boutons : pill, easing, primaire relevé */
.btn{border-radius:var(--r-pill);transition:all .3s var(--ease);font-weight:500;letter-spacing:-.005em}
.btn-ink{background:var(--ink-900);color:var(--white);box-shadow:0 1px 0 rgba(255,255,255,.1) inset,0 4px 14px -4px rgba(10,22,40,.4)}
.btn-ink:hover{background:var(--ink-700);transform:translateY(-1px);box-shadow:0 8px 22px -6px rgba(10,22,40,.5)}
.btn-gold{border-radius:var(--r-pill)}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 8px 22px -6px rgba(138,107,38,.4)}
.btn-ghost{border-radius:var(--r-pill)}
.btn-ghost:hover{background:var(--ink-100);border-color:var(--ink-200);color:var(--ink-900)}

/* Nav : liens en pill */
.nav-links a{padding:8px 14px;border-radius:var(--r-pill);transition:all .25s var(--ease)}
.nav-links a:hover{background:var(--ink-100);color:var(--ink-900)}
.logo .seal{border-radius:10px}

/* Rayons souples + hover premium sur les cartes */
.case,.rel,.sol,.verb,.bank,.doc,.res,.auth,.pstat,.rc,
.block,.tbl-wrap,.calc,.sim,.authorbox,.