:root{
  --bg:#0a0a09;
  --bg-alt:#121110;
  --panel:#16150f;
  --panel-line: rgba(198,163,96,0.16);
  --gold:#c6a360;
  --gold-soft: rgba(198,163,96,0.5);
  --gold-deep:#8b6f32;
  --ink:#ece7da;
  --ink-dim:#a39c8a;
  --ink-faint:#6e6858;
  --serif: "Fraunces", Georgia, serif;
  --sans: "Inter", -apple-system, sans-serif;
  --mono: "IBM Plex Mono", monospace;
  --maxw: 1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{ background:var(--gold-deep); color:#0a0a09; }
[data-lang="en"] .fr{ display:none; }
[data-lang="fr"] .en{ display:none; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }
.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:10px; margin-bottom:22px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--gold-soft); display:inline-block; }
h1,h2,h3{ font-family:var(--serif); font-weight:400; color:var(--ink); letter-spacing:-0.01em; }
.ref{ font-family:var(--mono); font-size:11px; color:var(--ink-faint); letter-spacing:.08em; }

/* NAV */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(10,10,9,0.86); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--panel-line);
}
nav.wrap{ display:flex; align-items:center; justify-content:space-between; height:74px; }
.brand{ font-family:var(--serif); font-size:19px; letter-spacing:.04em; color:var(--ink); }
.brand small{ display:block; font-family:var(--mono); font-size:9px; letter-spacing:.2em; color:var(--ink-faint); margin-top:2px; }
.nav-links{ display:flex; align-items:center; gap:26px; }
.nav-links a{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-dim); position:relative; padding-bottom:4px; transition:color .2s;
}
.nav-links a:hover, .nav-links a.active{ color:var(--gold); }
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition:width .25s;
}
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-right{ display:flex; align-items:center; gap:18px; }
.lang-toggle{ display:flex; font-family:var(--mono); font-size:11px; letter-spacing:.06em; border:1px solid var(--panel-line); border-radius:20px; overflow:hidden; }
.lang-toggle button{ background:none; border:none; color:var(--ink-faint); padding:6px 12px; cursor:pointer; font-family:var(--mono); font-size:11px; letter-spacing:.06em; }
.lang-toggle button.active{ background:var(--gold); color:#100e08; }
.btn-outline{
  border:1px solid var(--gold-soft); color:var(--gold); font-family:var(--mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; padding:9px 18px; border-radius:2px; transition:all .2s; white-space:nowrap;
}
.btn-outline:hover{ background:var(--gold); color:#100e08; }

/* PAGE HERO (smaller, for sub-pages) */
.page-hero{
  min-height:46vh; display:flex; align-items:flex-end; position:relative; overflow:hidden;
  padding:74px 0 60px;
  background:
    radial-gradient(ellipse 900px 500px at 80% 0%, rgba(198,163,96,0.08), transparent 60%),
    linear-gradient(180deg, #0a0a09, #0d0c0a 60%, var(--bg-alt));
  border-bottom:1px solid var(--panel-line);
}
.page-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image: linear-gradient(var(--panel-line) 1px, transparent 1px), linear-gradient(90deg, var(--panel-line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 700px 500px at 70% 30%, black, transparent 70%);
}
.page-hero .wrap{ position:relative; }
.page-hero h1{ font-size:clamp(30px,4.5vw,50px); max-width:14ch; }
.page-hero p.lede{ font-size:15px; color:var(--ink-dim); max-width:52ch; margin-top:18px; }

/* MAIN HOME HERO (full) */
.hero{
  min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden;
  padding-top:74px;
  background:
    radial-gradient(ellipse 900px 500px at 80% 0%, rgba(198,163,96,0.08), transparent 60%),
    linear-gradient(180deg, #0a0a09, #0d0c0a 60%, var(--bg-alt));
}
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image: linear-gradient(var(--panel-line) 1px, transparent 1px), linear-gradient(90deg, var(--panel-line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 700px 500px at 70% 30%, black, transparent 70%);
}
.hero-inner{ position:relative; max-width:800px; padding:60px 0 100px; }
.corner{ position:absolute; width:26px; height:26px; border-color:var(--gold-soft); border-style:solid; }
.corner.tl{ top:20px; left:-10px; border-width:1px 0 0 1px; }
.corner.br{ bottom:20px; right:-10px; border-width:0 1px 1px 0; }
.hero h1{ font-size:clamp(34px, 5.2vw, 62px); line-height:1.08; margin-bottom:26px; max-width:11.5ch; }
.hero h1 em{ font-style:italic; color:var(--gold); font-weight:300; }
.hero p.lede{ font-size:16px; color:var(--ink-dim); max-width:52ch; margin-bottom:40px; }
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }
.btn-solid{
  background:var(--gold); color:#100e08; font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; padding:14px 26px; border-radius:2px; display:inline-block; transition:opacity .2s;
}
.btn-solid:hover{ opacity:.85; }
.hero-meta{
  position:absolute; right:0; bottom:60px; display:flex; flex-direction:column; gap:14px;
  font-family:var(--mono); font-size:11px; color:var(--ink-faint); text-align:right;
}
.hero-meta span{ color:var(--gold); }

/* SECTION GENERIC */
section{ padding:110px 0; position:relative; border-bottom:1px solid var(--panel-line); }
section:last-of-type{ border-bottom:none; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:60px; flex-wrap:wrap; }
.section-head h2{ font-size:clamp(28px,3.2vw,42px); max-width:14ch; }
.section-head .desc{ max-width:34ch; color:var(--ink-dim); font-size:14.5px; }

/* ABOUT */
.about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:start; }
.about-lead{ font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--ink); font-weight:400; margin-bottom:26px; }
.about-body p{ color:var(--ink-dim); font-size:15px; margin-bottom:18px; max-width:60ch; }
.fact-panel{ border:1px solid var(--panel-line); border-radius:2px; padding:30px; background:var(--panel); }
.fact-row{ display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--panel-line); font-size:13.5px; gap:20px; }
.fact-row:last-child{ border-bottom:none; }
.fact-row .k{ color:var(--ink-faint); font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
.fact-row .v{ color:var(--ink); text-align:right; }

/* ACTIVITIES */
.act-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--panel-line); border:1px solid var(--panel-line); max-width:var(--maxw); margin:0 auto; }
.act-card{ background:var(--bg); padding:36px 28px; transition:background .25s; }
.act-card:hover{ background:var(--panel); }
.act-card .num{ font-family:var(--mono); font-size:11px; color:var(--gold); margin-bottom:24px; display:block; }
.act-card svg{ width:30px; height:30px; margin-bottom:22px; stroke:var(--gold); }
.act-card h3{ font-size:18px; margin-bottom:10px; }
.act-card p{ font-size:13.5px; color:var(--ink-dim); }

/* BUSINESS MODEL FLOW */
.flow-wrap{ overflow-x:auto; padding-bottom:10px; }
.flow{ display:flex; align-items:flex-start; min-width:920px; position:relative; padding-top:10px; }
.flow-line{ position:absolute; top:37px; left:0; right:0; height:1px; background:var(--panel-line); overflow:hidden; }
.flow-line::after{
  content:""; position:absolute; top:0; left:-30%; width:30%; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  animation: travel 5s linear infinite;
}
@keyframes travel{ from{ left:-30%; } to{ left:100%; } }
.flow-node{ flex:1; text-align:center; position:relative; padding:0 10px; }
.flow-dot{ width:12px; height:12px; border-radius:50%; background:var(--bg); border:1px solid var(--gold); margin:0 auto 22px; position:relative; z-index:2; }
.flow-node:first-child .flow-dot, .flow-node:last-child .flow-dot{ background:var(--gold); }
.flow-node h4{ font-family:var(--serif); font-size:16px; color:var(--ink); margin-bottom:8px; font-weight:400; }
.flow-node p{ font-size:12.5px; color:var(--ink-dim); max-width:22ch; margin:0 auto; }
.flow-node .step{ font-family:var(--mono); font-size:10px; color:var(--ink-faint); display:block; margin-bottom:6px; }

/* PILLARS */
.pillars{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:1px; background:var(--panel-line); border:1px solid var(--panel-line); }
.pillar{ background:var(--bg); padding:56px 48px; position:relative; }
.pillar .tag{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--gold); text-transform:uppercase; margin-bottom:20px; display:block; }
.pillar h3{ font-size:26px; margin-bottom:18px; }
.pillar p{ color:var(--ink-dim); font-size:14.5px; margin-bottom:14px; max-width:42ch; }
.pillar .subdomain{ font-family:var(--mono); font-size:11.5px; color:var(--ink-faint); margin-top:24px; border-top:1px solid var(--panel-line); padding-top:18px; display:inline-block; }
.pillar .subdomain a{ color:var(--gold); }

/* COMPLIANCE */
.compliance-panel{
  border:1px solid var(--panel-line); background:
    repeating-linear-gradient(135deg, var(--panel), var(--panel) 22px, var(--bg-alt) 22px, var(--bg-alt) 44px);
  padding:2px;
}
.compliance-inner{ background:var(--bg); padding:56px; }
.compliance-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:40px; }
.compliance-item .label{ font-family:var(--mono); font-size:11px; color:var(--gold); letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; display:block; }
.compliance-item p{ font-size:13.5px; color:var(--ink-dim); }
.compliance-lead{ font-family:var(--serif); font-size:19px; color:var(--ink); max-width:64ch; font-weight:400; }

/* INSIGHTS / PARTNERS */
.insight-note{ border:1px dashed var(--panel-line); padding:40px; text-align:center; color:var(--ink-faint); font-size:13.5px; max-width:var(--maxw); margin:0 auto; }
.partner-row{ display:flex; gap:50px; flex-wrap:wrap; margin-top:36px; opacity:.6; max-width:var(--maxw); margin-left:auto; margin-right:auto; }
.partner-row span{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--ink-faint); border:1px solid var(--panel-line); padding:10px 16px; }

/* CONTACT */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.office{ margin-bottom:30px; }
.office .tag{ font-family:var(--mono); font-size:11px; color:var(--gold); letter-spacing:.1em; text-transform:uppercase; display:block; margin-bottom:8px; }
.office p{ font-size:14px; color:var(--ink-dim); }
form{ display:flex; flex-direction:column; gap:20px; }
.field label{ display:block; font-family:var(--mono); font-size:11px; color:var(--ink-faint); letter-spacing:.05em; text-transform:uppercase; margin-bottom:8px; }
.field input, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--panel-line); color:var(--ink);
  font-family:var(--sans); font-size:14.5px; padding:10px 2px; transition:border-color .2s;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:90px; }
.submit-btn{
  align-self:flex-start; background:var(--gold); color:#100e08; font-family:var(--mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; padding:14px 30px; border:none; border-radius:2px; cursor:pointer; margin-top:10px;
}

/* FOOTER */
footer{ padding:60px 0 40px; }
.footer-grid{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px; margin-bottom:40px; }
.footer-links{ display:flex; gap:26px; flex-wrap:wrap; }
.footer-links a{ font-family:var(--mono); font-size:11px; color:var(--ink-faint); letter-spacing:.05em; }
.footer-links a:hover{ color:var(--gold); }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; border-top:1px solid var(--panel-line); padding-top:24px; }
.footer-bottom p{ font-size:11.5px; color:var(--ink-faint); }

/* RESPONSIVE */
@media (max-width: 900px){
  .nav-links{ display:none; }
  .about-grid, .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .act-grid{ grid-template-columns:1fr 1fr; }
  .pillars{ grid-template-columns:1fr; }
  .compliance-grid{ grid-template-columns:1fr; }
  .compliance-inner{ padding:32px; }
  .hero-meta{ position:static; margin-top:50px; text-align:left; }
  .wrap{ padding:0 22px; }
  section{ padding:80px 0; }
}
@media (max-width:560px){ .act-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce){ .flow-line::after{ animation:none; } html{ scroll-behavior:auto; } }
