/* ════════════════════════════════════════════════════════════
   NEOFY — Jetons de marque
   Charte Graphique v1.0 — avril 2026
   Coller ce bloc dans tout fichier HTML/CSS produit pour Neofy.
   Ne jamais écrire une couleur en dur : toujours passer par un jeton.
═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Funnel+Display:wght@300..800&family=Funnel+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root{
  /* — Signature — */
  --neofy-blue:       #1B4FA8;  /* primaire */
  --neofy-navy:       #0F2756;
  --neofy-vivid:      #2D7FF9;
  --neofy-white:      #FFFFFF;

  /* — Support — */
  --neofy-blue-soft:  #5B85D6;
  --neofy-blue-pale:  #EBF3FF;
  --neofy-paper:      #F5F8FF;
  --neofy-line:       #D1DCF0;
  --neofy-grey:       #6B7A93;
  --neofy-grey-2:     #94A3B8;
  --neofy-ink:        #0A1628;

  /* — Typographie — */
  --neofy-display: 'Funnel Display', Poppins, 'Century Gothic', 'Segoe UI', sans-serif;
  --neofy-sans:    'Funnel Sans', Inter, 'Segoe UI', Calibri, sans-serif;

  /* — Rythme — */
  --neofy-radius: 2px;          /* angles quasi vifs, jamais arrondis mous */
  /* — Rôles (changent selon le thème) — */
  --neofy-heading: var(--neofy-navy);
  --neofy-accent:  var(--neofy-blue);
  --neofy-stripe:  var(--neofy-blue-pale);

  --neofy-gutter: 38px;         /* marge latérale de référence */
  --neofy-radius-lg: 6px;       /* maxi, pour grandes surfaces (feuilles, modales) */

  /* — Espacements (échelle de 4 px) — */
  --neofy-space-1: 4px;
  --neofy-space-2: 8px;
  --neofy-space-3: 12px;
  --neofy-space-4: 16px;
  --neofy-space-5: 24px;
  --neofy-space-6: 32px;
  --neofy-space-7: 48px;
  --neofy-space-8: 64px;
}

/* Thème sombre : la marque bascule sur navy, jamais sur du gris neutre */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --neofy-paper: #0F2756;
    --neofy-white: #0A1628;
    --neofy-ink:   #F5F8FF;
    --neofy-line:  rgba(245,248,255,.18);
    --neofy-grey:  #94A3B8;
    --neofy-heading: #F5F8FF;
    --neofy-accent:  #5B85D6;
    --neofy-stripe:  rgba(245,248,255,.06);
  }
}
:root[data-theme="dark"]{
  --neofy-paper: #0F2756;
  --neofy-white: #0A1628;
  --neofy-ink:   #F5F8FF;
  --neofy-line:  rgba(245,248,255,.18);
  --neofy-grey:  #94A3B8;
  --neofy-heading: #F5F8FF;
  --neofy-accent:  #5B85D6;
  --neofy-stripe:  rgba(245,248,255,.06);
}

/* ── Socle ── */
body{
  font-family: var(--neofy-sans);
  background: var(--neofy-white);
  color: var(--neofy-ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01","ss02";
}

h1, h2, h3, .neofy-display{
  font-family: var(--neofy-display);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.05;
  color: var(--neofy-heading);
}
h1{ font-size: clamp(40px, 6vw, 88px); letter-spacing: -.04em; font-weight: 400; }
h2{ font-size: clamp(28px, 3.6vw, 48px); }
h3{ font-size: clamp(20px, 2.2vw, 28px); font-weight: 500; }

/* Sur-titre : petites capitales très espacées — signature typographique Neofy */
.neofy-eyebrow{
  font-size: 10px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--neofy-accent);
  font-weight: 500;
}

/* Légende, mention, pied de page */
.neofy-caption{
  font-size: 11px;
  letter-spacing: .06em;
  color: var(--neofy-grey);
}

a{ color: var(--neofy-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover{ color: var(--neofy-vivid); }

hr, .neofy-rule{ border: 0; border-top: 1px solid var(--neofy-line); }

/* ── Composants ── */
.neofy-btn{
  font-family: var(--neofy-sans);
  font-size: 13px;
  letter-spacing: .04em;
  padding: 12px 26px;
  border-radius: var(--neofy-radius);
  background: var(--neofy-blue);
  color: #FFFFFF;
  border: 1px solid var(--neofy-blue);
  cursor: pointer;
}
.neofy-btn:hover{ background: var(--neofy-navy); border-color: var(--neofy-navy); }
.neofy-btn--ghost{ background: transparent; color: var(--neofy-accent); }
.neofy-btn--ghost:hover{ color: #FFFFFF; }

.neofy-card{
  background: var(--neofy-white);
  border: 1px solid var(--neofy-line);
  border-radius: var(--neofy-radius);
  padding: 28px;
}

.neofy-band{                       /* bandeau pleine largeur, fond de signature */
  background: var(--neofy-blue);
  color: #FFFFFF;
}
.neofy-band--deep{ background: var(--neofy-navy); }

table{ border-collapse: collapse; width: 100%; font-size: 14px; }
th{
  text-align: left;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--neofy-grey);
  font-weight: 500;
  border-bottom: 1px solid var(--neofy-blue);
  padding: 10px 12px;
}
td{ padding: 10px 12px; border-bottom: 1px solid var(--neofy-line); }
tbody tr:nth-child(even){ background: var(--neofy-stripe); }
