:root{
  --bg-0:#0a0b0c; --bg-1:#131415; --bg-2:#1b1d1e;
  --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.18);
  --ink-900:#f4f2ed; --ink-700:#c8c5bd; --ink-500:#8e8b84; --ink-300:#57544f;
  --accent:#e0824a; --accent-ink:#0a0b0c; --accent-dim:#4a3123; --accent-glow:rgba(224,130,74,.5);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
/* Deliberate single dark world — matches the referenced sites, not a fallback */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
html,body{margin:0;padding:0;}
body{
  background:var(--bg-0); color:var(--ink-900); font-family:var(--sans);
  line-height:1.5; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit;}
::selection{background:var(--accent-dim); color:var(--ink-900);}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 22px;} }

.mark{position:relative; display:inline-block; width:13px; height:13px; flex:none;}
.mark::before,.mark::after{content:""; position:absolute; background:currentColor;}
.mark::before{left:50%; top:0; width:1.4px; height:100%; transform:translateX(-50%);}
.mark::after{top:50%; left:0; height:1.4px; width:100%; transform:translateY(-50%);}

/* ---- reveal-on-scroll (generic) ---- */
[data-rise]{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
[data-rise].on{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ [data-rise]{opacity:1; transform:none; transition:none;} }

/* ---- nav ---- */
header.nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--bg-0) 78%, transparent); backdrop-filter:blur(14px); border-bottom:1px solid transparent;}
.nav-inner{display:flex; align-items:center; gap:32px; padding:22px 0;}
.logo{display:flex; align-items:center; gap:9px; font-weight:800; font-size:16px; letter-spacing:-.02em; color:var(--ink-900); text-decoration:none;}
.logo .mark{color:var(--accent);}
.navlinks{display:flex; gap:26px; margin-left:auto; font-size:13.5px;}
.navlinks a{text-decoration:none; color:var(--ink-500); font-weight:500; transition:color .15s; white-space:nowrap;}
.navlinks a:hover, .navlinks a[aria-current="page"]{color:var(--ink-900);}
.nav-cta{font-size:13px; font-weight:700; background:var(--ink-900); color:var(--bg-0); padding:11px 20px; border-radius:100px; text-decoration:none; white-space:nowrap;}
@media (max-width:900px){ .navlinks{display:none;} }

/* ---- hero with canvas (home only) ---- */
.hero{position:relative; padding:70px 0 40px; min-height:88vh; display:flex; align-items:center; overflow:hidden;}
#heroCanvas{position:absolute; inset:0; width:100%; height:100%; z-index:0;}
.hero::after{content:""; position:absolute; inset:auto 0 -10% 0; height:50%; background:radial-gradient(ellipse 60% 100% at 50% 100%, var(--accent-dim), transparent 72%); opacity:.4; pointer-events:none; z-index:0;}
.hero-inner{position:relative; z-index:1;}
.badge{display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--ink-500); border:1px solid var(--line); padding:7px 14px; border-radius:100px; margin-bottom:30px; background:color-mix(in srgb, var(--bg-0) 55%, transparent); backdrop-filter:blur(6px);}
.badge b{color:var(--accent); font-weight:700;}
h1.hero-h{font-weight:800; font-size:clamp(38px,6.4vw,80px); line-height:1.02; letter-spacing:-.03em; margin:0 0 22px; max-width:16ch; text-wrap:balance;}
h1.hero-h em{font-style:normal; color:var(--accent);}
.hero-tag{font-size:15px; font-family:var(--mono); color:var(--accent); letter-spacing:.01em; margin:0 0 22px; max-width:44ch;}
.hero-sub{font-size:19px; color:var(--ink-700); max-width:54ch; margin:0 0 40px; font-weight:400;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:60px;}
.btn{font-family:var(--sans); font-weight:700; font-size:14.5px; padding:15px 26px; border-radius:100px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:transform .15s, opacity .15s, box-shadow .2s; border:none; cursor:pointer;}
.btn:hover{transform:translateY(-1px);}
.btn.primary{background:var(--accent); color:var(--accent-ink); box-shadow:0 0 0 0 var(--accent-glow);}
.btn.primary:hover{box-shadow:0 6px 24px -4px var(--accent-glow);}
.btn.ghost{border:1px solid var(--line-strong); color:var(--ink-900); background:transparent;}
.btn.ghost:hover{background:var(--bg-1);}
.hero-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); max-width:660px;}
.hstat{padding:20px 22px 4px 0;}
.hstat .n{font-weight:800; font-size:26px; color:var(--ink-900); letter-spacing:-.02em;}
.hstat .l{font-size:12.5px; color:var(--ink-500); margin-top:3px;}
@media (max-width:640px){ .hero-stats{grid-template-columns:1fr;} .hero{min-height:auto; padding:56px 0 30px;} }

/* ---- page header (subpages, no canvas) ---- */
.page-hero{padding:64px 0 20px;}
.page-hero .eyebrow{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:16px; font-weight:700;}
.page-hero h1{font-weight:800; font-size:clamp(32px,5.2vw,56px); line-height:1.05; letter-spacing:-.02em; margin:0 0 20px; max-width:20ch; text-wrap:balance;}
.page-hero .lede{font-size:18px; color:var(--ink-700); max-width:60ch; margin:0 0 28px;}
.breadcrumb{font-family:var(--mono); font-size:11.5px; color:var(--ink-500); margin:0 0 18px; display:flex; gap:8px; flex-wrap:wrap;}
.breadcrumb a{text-decoration:none; color:var(--ink-500);}
.breadcrumb a:hover{color:var(--ink-900);}
.breadcrumb span{color:var(--ink-300);}

/* ---- quick-answer callout (GEO) ---- */
.qa{border:1px solid var(--line-strong); border-left:3px solid var(--accent); background:var(--bg-1); border-radius:8px; padding:22px 26px; margin:8px 0 40px; max-width:70ch;}
.qa .qa-label{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); display:block; margin-bottom:8px; font-weight:700;}
.qa p{margin:0; font-size:16px; color:var(--ink-900); line-height:1.55;}

/* ---- scroll reveal statement ---- */
.reveal-sec{padding:50px 0 100px; text-align:left;}
.reveal-word{font-weight:800; font-size:clamp(30px,7vw,88px); line-height:1.06; letter-spacing:-.03em; margin:0; color:var(--ink-300); transition:color .5s ease;}
.reveal-word.on{color:var(--ink-900);}
.reveal-word .accent{color:var(--accent);}

/* ---- sections ---- */
section{padding:90px 0; border-top:1px solid var(--line);}
section.tight{padding:56px 0;}
.sec-label{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin:0 0 16px; font-weight:700;}
h2.sec-h{font-weight:800; font-size:clamp(26px,4vw,42px); margin:0 0 20px; letter-spacing:-.02em; max-width:22ch; text-wrap:balance;}
h3.sub-h{font-weight:800; font-size:clamp(20px,2.6vw,26px); margin:0 0 14px; letter-spacing:-.01em;}
.sec-sub{color:var(--ink-700); font-size:16.5px; max-width:62ch; margin:0 0 48px;}
p{color:var(--ink-700);}
.prose{max-width:70ch; font-size:16px; line-height:1.7;}
.prose p{margin:0 0 20px;}
.prose b{color:var(--ink-900);}
.prose a{color:var(--accent); text-decoration:underline; text-decoration-color:var(--accent-dim); text-underline-offset:3px;}
.dateline{font-family:var(--mono); font-size:12px; color:var(--ink-500); margin:0 0 40px;}

/* ---- differentiation ---- */
.diff-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px; background:var(--line);}
@media (max-width:860px){ .diff-grid{grid-template-columns:1fr;} }
.diff-card{background:var(--bg-0); padding:32px 30px; transition:background .25s;}
.diff-card:hover{background:var(--bg-1);}
.diff-card.hi{background:var(--bg-1); position:relative;}
.diff-card.hi::before{content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--accent);}
.diff-card .tag{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-500); margin-bottom:16px; display:block;}
.diff-card.hi .tag{color:var(--accent);}
.diff-card h3{font-size:18px; margin:0 0 10px; font-weight:700;}
.diff-card p{font-size:14.5px; margin:0; color:var(--ink-500);}

/* ---- modules ---- */
.mod-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1px; background:var(--line);}
.mod-card{background:var(--bg-0); padding:30px 26px; transition:background .25s; scroll-margin-top:90px;}
.mod-card:hover{background:var(--bg-1);}
.mod-card .num{font-family:var(--mono); font-size:11px; color:var(--accent); margin-bottom:16px; display:block;}
.mod-card h3{font-size:16.5px; margin:0 0 9px; font-weight:700;}
.mod-card p{font-size:14px; margin:0 0 10px; color:var(--ink-500);}
.mod-card .more{font-size:13px; color:var(--ink-700);}
.mod-full{padding:64px 0; border-top:1px solid var(--line); scroll-margin-top:90px;}
.mod-full .num{font-family:var(--mono); font-size:12px; color:var(--accent); display:block; margin-bottom:14px;}
.mod-full h2{font-size:clamp(22px,3vw,32px); margin:0 0 16px;}

/* ---- blog ---- */
.blog-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px; background:var(--line); margin-top:8px;}
.blog-card{background:var(--bg-0); padding:28px 26px; transition:background .25s; text-decoration:none; color:inherit; display:block;}
.blog-card:hover{background:var(--bg-1);}
.blog-card .cat{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); display:block; margin-bottom:12px;}
.blog-card h3{font-size:17px; margin:0 0 8px; font-weight:700; line-height:1.3;}
.blog-card p{font-size:14px; margin:0; color:var(--ink-500);}
.blog-empty{padding:60px 0; text-align:left; color:var(--ink-500); font-size:15px; max-width:60ch;}

/* ---- proof ---- */
.proof-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:start;}
@media (max-width:860px){ .proof-grid{grid-template-columns:1fr; gap:36px;} }
.proof-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0;}
.proof-list li{display:flex; gap:20px; align-items:baseline; border-top:1px solid var(--line); padding:22px 0;}
.proof-list li:first-child{border-top:none; padding-top:0;}
.proof-list .n{font-weight:800; font-size:28px; color:var(--ink-900); min-width:150px; letter-spacing:-.01em;}
.proof-list .d{font-size:14.5px; color:var(--ink-500);}
.lab-note{border:1px solid var(--line); border-radius:16px; padding:28px; font-size:14.5px; color:var(--ink-500); background:var(--bg-1);}
.lab-note b{color:var(--ink-900);}

/* ---- offer ---- */
.stages{display:flex; flex-direction:column;}
.stage{display:grid; grid-template-columns:56px 210px 1fr; gap:26px; padding:32px 0; border-top:1px solid var(--line); align-items:start;}
.stage:first-child{border-top:none;}
@media (max-width:760px){ .stage{grid-template-columns:36px 1fr;} .stage .price{grid-column:2;} }
.stage .idx{font-family:var(--mono); font-size:13px; color:var(--accent); font-weight:700;}
.stage .price{font-weight:800; font-size:16px; color:var(--ink-900);}
.stage .price small{display:block; font-family:var(--sans); font-weight:400; font-size:12.5px; color:var(--ink-500); margin-top:4px;}
.stage h3{margin:0 0 9px; font-size:17.5px;}
.stage p{margin:0; font-size:14.5px;}

/* ---- audience ---- */
.aud-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line);}
@media (max-width:760px){ .aud-grid{grid-template-columns:1fr;} }
.aud-card{background:var(--bg-0); padding:34px 30px;}
.aud-card h3{font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.05em; margin:0 0 16px; color:var(--accent);}
.aud-card ul{margin:0; padding-left:18px; font-size:15px; color:var(--ink-700);}
.aud-card li{margin-bottom:9px;}

/* ---- profession sub-cards (professions réglementées page) ---- */
.prof-card{padding:36px 0; border-top:1px solid var(--line); scroll-margin-top:90px;}
.prof-card:first-child{border-top:none;}
.prof-card h3{font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.05em; margin:0 0 14px; color:var(--accent);}
.prof-card h4{font-size:19px; margin:0 0 12px; font-weight:700;}

/* ---- checklist ---- */
.checklist{list-style:none; padding:0; margin:16px 0;}
.checklist li{display:flex; gap:10px; align-items:flex-start; padding:10px 0; border-top:1px solid var(--line); font-size:15px; color:var(--ink-700);}
.checklist li:first-child{border-top:none;}
.checklist li::before{content:"—"; color:var(--accent); font-family:var(--mono); flex:none;}

/* ---- FAQ ---- */
.faq{margin:0;}
.faq details{border-top:1px solid var(--line); padding:18px 0;}
.faq details:first-child{border-top:none;}
.faq summary{font-weight:700; font-size:16px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px; align-items:center; color:var(--ink-900);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; font-family:var(--mono); color:var(--accent); font-size:20px; flex:none;}
.faq details[open] summary::after{content:"–";}
.faq p{margin:12px 0 0; font-size:14.5px; max-width:68ch;}

/* ---- table ---- */
.table-wrap{overflow-x:auto; margin:20px 0; border:1px solid var(--line); border-radius:8px;}
table{border-collapse:collapse; width:100%; min-width:480px; font-size:14px;}
thead th{text-align:left; font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-500); background:var(--bg-1); padding:12px 16px; border-bottom:1px solid var(--line);}
tbody td{padding:13px 16px; border-bottom:1px solid var(--line); color:var(--ink-700); vertical-align:top;}
tbody tr:last-child td{border-bottom:none;}
tbody td:first-child{color:var(--ink-900); font-weight:600;}

/* ---- cta / footer ---- */
.cta{text-align:left; padding:100px 0;}
.cta h2{font-weight:800; font-size:clamp(28px,5vw,48px); margin:0 0 18px; max-width:20ch; letter-spacing:-.02em; text-wrap:balance;}
.cta p{font-size:17px; max-width:52ch; margin:0 0 34px;}
footer.site-footer{padding:44px 0 56px; border-top:1px solid var(--line);}
.footer-grid{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; margin-bottom:28px;}
.footer-col h4{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-500); margin:0 0 14px;}
.footer-col a{display:block; font-size:13.5px; color:var(--ink-700); text-decoration:none; margin-bottom:9px;}
.footer-col a:hover{color:var(--ink-900);}
.footer-bottom{font-family:var(--mono); font-size:11.5px; color:var(--ink-300); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid var(--line); padding-top:24px;}

::-webkit-scrollbar{width:10px;height:10px;} ::-webkit-scrollbar-thumb{background:var(--bg-2); border-radius:5px;}
