/* =========================================================
   DataEdgePro · feuille de style commune
   Direction "Synthèse" : typographie Ledger (Playfair Display,
   DM Sans, DM Mono) + couleurs Signal (bleu nuit, turquoise, ambre)
   ========================================================= */

/* ---------- Polices hébergées localement (nLPD / RGPD) ---------- */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/playfair-display-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 900;font-display:swap;src:url(../fonts/playfair-display-latin-wght-italic.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:100 1000;font-display:swap;src:url(../fonts/dm-sans-latin-opsz-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:italic;font-weight:100 1000;font-display:swap;src:url(../fonts/dm-sans-latin-opsz-italic.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-mono-latin-500-normal.woff2) format("woff2")}

/* ---------- Tokens ---------- */
:root{
  color-scheme: dark;
  /* Fonds et surfaces */
  --ink: #0B1220;            /* fond de page, bleu nuit */
  --ink-deep: #080E19;       /* bandes alternées */
  --panel: #111A2B;          /* cartes, blocs */
  --panel-2: #16223A;        /* surface au survol */
  --line: #1E2A40;           /* filets, bordures */
  --line-strong: #2C3C58;
  /* Texte */
  --fg: #E8EDF4;
  --muted: #94A2B8;
  --faint: #5E6B82;
  /* Accents */
  --accent: #3DD6C6;         /* turquoise Signal */
  --accent-strong: #2BB8A9;
  --accent-soft: rgba(61,214,198,.12);
  --on-accent: #04201D;
  --signal: #F2B544;         /* ambre : priorités, écarts */
  --signal-soft: rgba(242,181,68,.14);
  --ok: #5FD08A;
  /* Typographie */
  --f-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --f-body: "DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --f-mono: "DM Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  /* Mise en page */
  --maxw: 1200px;
  --measure: 68ch;
  --radius: 12px;
  --gutter-l: max(20px, env(safe-area-inset-left, 0px));
  --gutter-r: max(20px, env(safe-area-inset-right, 0px));
  --ease: cubic-bezier(.2,.7,.2,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--fg);font-family:var(--f-body);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent);color:var(--on-accent)}

h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.12;letter-spacing:-.01em;margin:0;text-wrap:balance}
h2{font-size:clamp(30px,3.8vw,46px)}
h3{font-size:20px;line-height:1.25}
h1 em,h2 em{font-style:italic;color:var(--accent)}

.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter-l);padding-right:var(--gutter-r)}
.mono{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.03em}
.eyebrow{font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.muted{color:var(--muted)}

.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--accent);color:var(--on-accent);padding:8px 14px;border-radius:6px;font-weight:600}
.skip:focus{left:12px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:8px;font-weight:600;font-size:15px;line-height:1.2;border:1px solid transparent;white-space:nowrap;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 28px -8px rgba(61,214,198,.6)}
.btn-ghost{border-color:var(--line-strong);color:var(--fg)}
.btn-ghost:hover{border-color:var(--accent);background:var(--accent-soft)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}

/* ---------- En-tête ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,18,32,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:66px}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:700;font-size:19px;color:var(--fg)}
.brand-mark{width:28px;height:28px;flex:none}
.brand b{color:var(--accent);font-weight:700}
.links{display:flex;gap:24px;margin-left:auto;font-size:14.5px;color:var(--muted)}
.links a{position:relative;padding-block:6px;transition:color .2s}
.links a:hover,.links a[aria-current]{color:var(--fg)}
.links a[aria-current]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--accent)}
.menu{display:none;margin-left:auto;position:relative}
.menu summary{list-style:none;cursor:pointer;font-family:var(--f-mono);font-size:13px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:6px}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{border-color:var(--accent)}
.menu nav{position:absolute;right:0;top:46px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;display:grid;min-width:220px;box-shadow:0 20px 50px -20px rgba(0,0,0,.8)}
.menu nav a{padding:11px 12px;border-radius:6px;font-size:15px}
.menu nav a:hover,.menu nav a[aria-current]{background:var(--accent-soft)}
.menu .menu-cta{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 6px 6px;color:var(--accent);font-weight:600}
@media (max-width:1020px){.links{display:none}.menu{display:block}.nav .cta{display:none}}

/* ---------- Sections ---------- */
.section{padding-block:104px}
.band{background:linear-gradient(180deg,var(--ink),var(--ink-deep) 50%,var(--ink));border-block:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:48px}
.sec-head h2{margin-top:14px}
.sec-head p{color:var(--muted);font-size:17px;max-width:52ch}
@media (max-width:1000px){.sec-head{grid-template-columns:minmax(0,1fr);gap:16px}}
@media (max-width:640px){.section{padding-block:72px}}

/* ---------- Pied de page ---------- */
.site-footer{border-top:1px solid var(--line);padding-block:56px 32px;color:var(--muted);font-size:14.5px}
.site-footer .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 48px}
.foot-brand p{margin-top:12px;max-width:40ch}
.foot-nav{display:grid;grid-template-columns:repeat(2,auto);gap:10px 40px;align-content:start}
.foot-nav a:hover,.foot-meta a:hover{color:var(--fg)}
.foot-meta{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;padding-top:24px;border-top:1px solid var(--line);font-size:13.5px}
.foot-meta nav{display:flex;flex-wrap:wrap;gap:20px}
@media (max-width:640px){.site-footer .wrap{grid-template-columns:minmax(0,1fr)}}

/* ---------- Animations ---------- */
.load{animation:rise .8s var(--ease) both}
.d1{animation-delay:.05s}.d2{animation-delay:.15s}.d3{animation-delay:.25s}.d4{animation-delay:.35s}.d5{animation-delay:.5s}
@keyframes rise{from{transform:translateY(16px);opacity:.01}to{transform:none;opacity:1}}

/* Apparition au défilement : uniquement si le navigateur sait le faire, le contenu reste visible sinon */
@supports (animation-timeline: view()){
  .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
  @keyframes reveal{from{opacity:.25;transform:translateY(28px)}to{opacity:1;transform:none}}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
