/* ════════════════════════════════════════════
   AppBelgium — Shared Stylesheet v1.0
   Utilisé par toutes les pages du site
════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --void:   #06080C;
  --night:  #0B0E14;
  --ink:    #111620;
  --steel:  #1C2230;
  --fog:    #2A3347;
  --teal:   #3BFFE8;
  --coral:  #FF5757;
  --gold:   #FFD166;
  --violet: #A78BFA;
  --snow:   #F0F4F8;
  --mist:   #8A9BB4;
  --dim:    #445066;
  --border: rgba(255,255,255,0.06);
  --border2:rgba(255,255,255,0.12);
  --ff-d: 'Fraunces', Georgia, serif;
  --ff-b: 'Outfit', sans-serif;
  --ff-m: 'DM Mono', monospace;
  --ease-out: cubic-bezier(0.22,1,0.36,1);
  --hdr: 68px;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--ff-b);
  background: var(--void);
  color: var(--snow);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::selection { background: rgba(59,255,232,0.2); color: var(--snow); }
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--void); }
::-webkit-scrollbar-thumb { background: var(--teal); border-radius: 2px; }

/* Grain */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
  opacity: 0.4;
  animation: grain .5s steps(1) infinite;
}
@keyframes grain {
  0%,100%{transform:translate(0,0)} 10%{transform:translate(-2%,-3%)} 20%{transform:translate(3%,2%)}
  30%{transform:translate(-1%,4%)} 40%{transform:translate(2%,-1%)} 50%{transform:translate(-3%,1%)}
  60%{transform:translate(1%,3%)} 70%{transform:translate(-2%,-2%)} 80%{transform:translate(3%,1%)} 90%{transform:translate(-1%,3%)}
}

/* Scroll progress */
#prog { position:fixed; top:0; left:0; height:2px; width:0%; background:linear-gradient(90deg,var(--teal),var(--coral)); z-index:10000; transition:width .1s linear; }

/* Layout */
.wrap { max-width:1200px; margin:0 auto; padding:0 32px; }
.section { padding:100px 0; position:relative; z-index:2; }
.section-sm { padding:64px 0; position:relative; z-index:2; }

/* Typography */
.display { font-family:var(--ff-d); font-weight:900; line-height:1.02; letter-spacing:-.03em; }
.label { font-family:var(--ff-m); font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); }
.eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom:24px; }
.eyebrow::before { content:''; display:block; width:24px; height:1px; background:var(--teal); }

/* Header */
.hdr { position:fixed; inset:0 0 auto; height:var(--hdr); z-index:200; transition:background .4s,border-color .4s; border-bottom:1px solid transparent; }
.hdr.stuck { background:rgba(6,8,12,.92); backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%); border-color:var(--border); }
.hdr__in { display:flex; align-items:center; justify-content:space-between; height:100%; max-width:1200px; margin:0 auto; padding:0 32px; }
.logo { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--snow); }
.logo__mark { position:relative; width:36px; height:36px; border-radius:8px; background:var(--void); border:1px solid rgba(59,255,232,.3); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.logo__mark::after { content:'A'; font-family:var(--ff-d); font-size:20px; font-weight:900; color:var(--teal); line-height:1; }
.logo__name { font-family:var(--ff-d); font-size:17px; font-weight:700; letter-spacing:-.02em; line-height:1; }
.logo__name em { font-style:normal; color:var(--teal); }
.nav-links { display:flex; gap:2px; }
.nav-links a { padding:7px 14px; color:var(--mist); text-decoration:none; font-size:14px; font-weight:500; border-radius:4px; transition:all .2s; }
.nav-links a:hover,.nav-links a.active { color:var(--snow); background:rgba(255,255,255,.05); }
.hdr__right { display:flex; align-items:center; gap:12px; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--ff-b); font-size:15px; font-weight:600; text-decoration:none; border:none; border-radius:4px; padding:14px 28px; position:relative; overflow:hidden; transition:all .3s var(--ease-out); white-space:nowrap; cursor:pointer; }
.btn-primary { background:var(--coral); color:#fff; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(255,87,87,.4); }
.btn-ghost { background:transparent; color:var(--snow); border:1px solid var(--border2); }
.btn-ghost:hover { border-color:rgba(59,255,232,.4); color:var(--teal); background:rgba(59,255,232,.05); }
.btn-outline-teal { background:transparent; color:var(--teal); border:1px solid rgba(59,255,232,.35); }
.btn-outline-teal:hover { background:rgba(59,255,232,.07); }
.btn-lg { padding:17px 36px; font-size:16px; border-radius:6px; }
.btn-sm { padding:9px 18px; font-size:13px; }

/* Hamburger */
.ham { display:none; flex-direction:column; gap:5px; background:none; border:none; width:38px; height:38px; padding:7px; justify-content:center; cursor:pointer; }
.ham span { display:block; width:100%; height:1.5px; background:var(--snow); border-radius:2px; transition:all .3s var(--ease-out); transform-origin:center; }
.ham.open span:first-child { transform:translateY(6.5px) rotate(45deg); }
.ham.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.ham.open span:last-child { transform:translateY(-6.5px) rotate(-45deg); }
.mob-nav { display:none; position:fixed; top:var(--hdr); left:0; right:0; background:rgba(6,8,12,.97); backdrop-filter:blur(24px); border-bottom:1px solid var(--border); padding:20px 32px 28px; flex-direction:column; gap:6px; z-index:199; }
.mob-nav.open { display:flex; }
.mob-nav a { padding:12px 14px; color:var(--mist); text-decoration:none; font-size:16px; font-weight:500; border-radius:4px; transition:all .2s; }
.mob-nav a:hover { color:var(--snow); background:rgba(255,255,255,.05); }
.mob-nav .btn { margin-top:8px; text-align:center; }

/* Breadcrumb */
.breadcrumb { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13px; color:var(--dim); margin-bottom:28px; }
.breadcrumb a { color:var(--dim); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:var(--teal); }
.breadcrumb span { color:var(--fog); }

/* Section header */
.sh { margin-bottom:64px; }
.sh h2 { font-family:var(--ff-d); font-size:clamp(34px,5vw,52px); font-weight:900; line-height:1.05; letter-spacing:-.03em; margin-bottom:16px; }
.sh p { font-size:18px; color:var(--mist); max-width:580px; line-height:1.7; margin-top:12px; }

/* Cards */
.card { background:var(--night); border:1px solid var(--border); border-radius:16px; padding:36px; transition:all .35s var(--ease-out); }
.card:hover { border-color:var(--border2); transform:translateY(-4px); box-shadow:0 20px 48px rgba(0,0,0,.5); }

/* Feature list */
.feat-list { display:flex; flex-direction:column; gap:16px; }
.feat-item { display:flex; align-items:flex-start; gap:16px; padding:22px; background:var(--night); border:1px solid var(--border); border-radius:12px; transition:background .3s; }
.feat-item:hover { background:var(--ink); border-color:var(--border2); }
.feat-ic { width:44px; height:44px; border-radius:10px; background:rgba(59,255,232,.07); border:1px solid rgba(59,255,232,.15); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; margin-top:2px; }
.feat-item h3 { font-size:16px; font-weight:700; margin-bottom:6px; letter-spacing:-.01em; }
.feat-item p { font-size:14px; color:var(--mist); line-height:1.7; }

/* Stats row */
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.stat-cell { background:var(--night); padding:32px 24px; text-align:center; }
.stat-cell__num { font-family:var(--ff-m); font-size:clamp(28px,4vw,44px); color:var(--teal); letter-spacing:-.03em; line-height:1; margin-bottom:8px; }
.stat-cell__label { font-size:13px; color:var(--dim); line-height:1.4; }

/* FAQ */
.faq-list { display:flex; flex-direction:column; gap:4px; }
.fi { border:1px solid var(--border); border-radius:10px; overflow:hidden; transition:border-color .3s; }
.fi.open { border-color:rgba(59,255,232,.25); background:rgba(59,255,232,.02); }
.fq { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; font-size:15px; font-weight:600; cursor:pointer; user-select:none; background:none; border:none; color:var(--snow); width:100%; text-align:left; transition:color .2s; }
.fq:hover { color:var(--teal); }
.fq__icon { width:26px; height:26px; border:1px solid var(--border2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:300; flex-shrink:0; transition:all .35s var(--ease-out); color:var(--mist); }
.fi.open .fq__icon { background:var(--teal); border-color:var(--teal); color:var(--void); transform:rotate(45deg); }
.fa { max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.65,0,.35,1); }
.fa-in { padding:0 22px 22px; font-size:14px; color:var(--mist); line-height:1.8; }

/* Related pages */
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.rel-card { display:flex; flex-direction:column; gap:10px; padding:24px; background:var(--night); border:1px solid var(--border); border-radius:12px; text-decoration:none; color:var(--snow); transition:all .3s var(--ease-out); }
.rel-card:hover { border-color:rgba(59,255,232,.3); transform:translateY(-3px); background:var(--ink); }
.rel-card__icon { font-size:24px; }
.rel-card__title { font-size:15px; font-weight:700; letter-spacing:-.01em; }
.rel-card__desc { font-size:13px; color:var(--mist); line-height:1.6; }
.rel-card__link { font-family:var(--ff-m); font-size:11px; color:var(--teal); letter-spacing:.08em; text-transform:uppercase; margin-top:auto; }

/* CTA banner */
.cta-banner { background:var(--night); border:1px solid var(--border); border-radius:20px; padding:64px; text-align:center; position:relative; overflow:hidden; }
.cta-banner::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--teal),var(--coral),transparent); }
.cta-banner h2 { font-family:var(--ff-d); font-size:clamp(28px,4vw,44px); font-weight:900; letter-spacing:-.03em; margin-bottom:16px; }
.cta-banner p { font-size:17px; color:var(--mist); margin-bottom:32px; max-width:520px; margin-left:auto; margin-right:auto; }
.cta-banner__btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* Footer */
.footer { border-top:1px solid var(--border); padding:64px 0 32px; position:relative; z-index:2; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
.ft-brand > p { font-size:14px; color:var(--mist); line-height:1.75; margin-top:18px; margin-bottom:24px; max-width:300px; }
.ft-socials { display:flex; gap:8px; }
.social-btn { width:38px; height:38px; border-radius:8px; border:1px solid var(--border); background:var(--night); display:flex; align-items:center; justify-content:center; font-size:15px; text-decoration:none; color:var(--mist); transition:all .25s var(--ease-out); }
.social-btn:hover { border-color:rgba(59,255,232,.35); color:var(--teal); background:rgba(59,255,232,.06); transform:translateY(-2px); }
.ft-col h4 { font-family:var(--ff-m); font-size:10px; font-weight:500; color:var(--dim); letter-spacing:.12em; text-transform:uppercase; margin-bottom:20px; }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.ft-col ul a { font-size:14px; color:var(--mist); text-decoration:none; transition:color .2s; }
.ft-col ul a:hover { color:var(--snow); }
.footer-bottom { padding-top:28px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-bottom p { font-size:13px; color:var(--dim); }
.footer-bottom a { font-size:13px; color:var(--dim); text-decoration:none; transition:color .2s; }
.footer-bottom a:hover { color:var(--mist); }
.footer-bottom .links { display:flex; gap:24px; flex-wrap:wrap; }

/* Reveal animations */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); }
.reveal.up { opacity:1; transform:none; }
.reveal-d1 { transition-delay:.1s; }
.reveal-d2 { transition-delay:.2s; }
.reveal-d3 { transition-delay:.3s; }
.reveal-d4 { transition-delay:.4s; }

/* Pill tags */
.pill { padding:4px 11px; border:1px solid var(--border); border-radius:100px; font-size:11px; font-weight:600; color:var(--dim); background:rgba(255,255,255,.02); text-transform:uppercase; letter-spacing:.06em; }
.pill-teal { border-color:rgba(59,255,232,.25); color:var(--teal); background:rgba(59,255,232,.06); }

/* 2-col layout */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.three-col { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

/* Process steps inline */
.steps-inline { display:flex; flex-direction:column; gap:0; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.step-inline { display:flex; align-items:flex-start; gap:20px; padding:28px 32px; border-bottom:1px solid var(--border); background:var(--night); transition:background .3s; position:relative; }
.step-inline:last-child { border-bottom:none; }
.step-inline:hover { background:var(--ink); }
.step-inline__num { font-family:var(--ff-m); font-size:11px; color:var(--teal); letter-spacing:.1em; flex-shrink:0; padding-top:3px; min-width:32px; }
.step-inline h3 { font-size:16px; font-weight:700; margin-bottom:6px; letter-spacing:-.01em; }
.step-inline p { font-size:14px; color:var(--mist); line-height:1.7; }
.step-inline__accent { position:absolute; left:0; top:0; bottom:0; width:2px; opacity:0; transition:opacity .3s; }
.step-inline:hover .step-inline__accent { opacity:1; }

/* Responsive */
@media (max-width:900px) {
  .nav-links,.hdr__right .btn-ghost { display:none; }
  .ham { display:flex; }
  .two-col { grid-template-columns:1fr; gap:40px; }
  .three-col { grid-template-columns:1fr; }
  .related-grid { grid-template-columns:1fr 1fr; }
  .stats-row { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .cta-banner { padding:44px 28px; }
}
@media (max-width:600px) {
  :root { --hdr:60px; }
  .wrap { padding:0 20px; }
  .section { padding:70px 0; }
  .related-grid { grid-template-columns:1fr; }
  .stats-row { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr; }
  .cta-banner__btns { flex-direction:column; }
  .cta-banner__btns .btn { width:100%; justify-content:center; }
}
