/* ============================================================================
   MINERYA — Tokens de design
   S3 869f13trn · relevé du 12/09/2026 sur minerya.com
   S5 v2 · resserrage de la palette et ouverture de la typographie

   RÈGLE : les codes couleurs Minerya sont conservés valeur pour valeur.
   Ce qui a changé au resserrage, ce n'est aucune valeur : c'est le NOMBRE de
   couleurs déclarées. 25 avant, 12 maintenant. Tout le reste se dérive.

   Pourquoi. Sur les 7 253 nœuds relevés :
   · 5 couleurs du thème Wix ne sont jamais rendues nulle part
     (#E2DDC9 sable, #E2D6CC beige, #20282A encre, #405155 ardoise foncé, #F6F6F6)
   · 4 blancs cassés tiennent dans un écart perceptif de 7,5 (#FFFFFF, #F6F6F6,
     #F2EAE7, #EEEEEE) : l'œil n'en voit qu'un
   · les 3 gris de texte du site SONT le noir du site, en transparence :
     #4F4F4F = noir 69 %, #949494 = noir 42 %, #EEEEEE = noir 7 %, à l'unité près
   · les 2 verts d'état que j'avais déclarés n'étaient pas des couleurs de marque,
     c'étaient des états. Ils se calculent à partir du vert Minerya.
   ========================================================================= */

:root {

  /* =====================================================================
     1. PALETTE — 12 couleurs déclarées, aucune modifiée   [relevé]
     ================================================================== */

  /* L'encre et le papier. Toute la grisaille du site en dérive. */
  --encre:  #000000;
  --papier: #FFFFFF;

  /* Le seul fond doux. Remplace #F6F6F6, un gris par défaut de Wix hors
     palette, que rien ne distinguait de lui à l'œil. (color_26) */
  --blanc-casse: #F2EAE7;

  /* Le pied de page, seule surface brune du site. (color_25) */
  --brun: #312C28;

  /* Le vert Minerya : la couleur d'action. 43 fonds de bouton, 38 bordures,
     51 libellés. Un seul token, ses états se calculent. (color_35) */
  --vert: #008C76;

  /* Les 4 gammes. Une couleur par gamme, elles ne s'échangent pas. */
  --purecontact: #B0E2CA;   /* color_22 */
  --eternel:     #E6007E;   /* color_27 */
  --heritage:    #CBB175;   /* color_28 */
  --sanctuaire:  #1F506E;   /* color_29 */

  /* Le territoire réglementaire européen. */
  --bleu-eu:  #0544D0;      /* color_30 */
  --jaune-eu: #FFD900;      /* posé à la main dans Wix, hors thème */

  /* Panibag. Un seul orange : #FA854F ne passait aucun seuil de lisibilité
     sur le fond chaud, et 6 nœuds ne justifiaient pas un second ton. (color_34) */
  --orange: #EA6020;


  /* =====================================================================
     2. RÔLES — tout ce qui suit se dérive de la palette. Un composant
     appelle un rôle, jamais une couleur.
     ================================================================== */

  /* Fonds : 4 registres, pas 5. Le fond doux et le territoire Panibag
     étaient deux blancs cassés à écart perceptif 4,9. C'est le même. */
  --fond:        var(--papier);
  --fond-doux:   var(--blanc-casse);
  --fond-sombre: var(--encre);
  --fond-pied:   var(--brun);

  /* Textes : une seule encre, trois intensités. Sur fond clair, ces trois
     valeurs rendent exactement les gris relevés sur le site. */
  --texte:         rgb(0 0 0 / 1);
  --texte-doux:    rgb(0 0 0 / .69);   /* = #4F4F4F sur blanc */
  --texte-mention: rgb(0 0 0 / .42);   /* = #949494 sur blanc */
  --texte-inverse:      rgb(255 255 255 / 1);
  --texte-inverse-doux: rgb(255 255 255 / .78);
  --texte-accent:  var(--vert);

  /* Action et ses états. Calculés, jamais déclarés. */
  --action:        var(--vert);
  --action-texte:  var(--papier);
  --action-survol: color-mix(in srgb, var(--vert) 84%, black);
  --action-actif:  color-mix(in srgb, var(--vert) 68%, black);
  --action-focus:  color-mix(in srgb, var(--vert) 52%, white);

  /* Filets. Le #EEEEEE relevé est du noir à 7 %, et une transparence
     fonctionne sur n'importe quel fond, ce que la valeur fixe ne faisait pas. */
  --ligne:         rgb(0 0 0 / .07);   /* = #EEEEEE sur blanc */
  --ligne-appuyee: rgb(0 0 0 / .16);
  --ligne-inverse: rgb(255 255 255 / .18);
  --surface:       var(--papier);

  /* Le seul état système que le site appellera : l'erreur de formulaire.
     Dérivée de l'orange, elle reste dans la palette. */
  --erreur: color-mix(in srgb, var(--orange) 78%, var(--encre));


  /* =====================================================================
     3. TYPOGRAPHIE
     Romain, 12/09 : les couleurs sont gelées, la typographie ne l'est pas.
     Roboto était la police par défaut de Wix, pas un choix Minerya.

     Archivo pour les titres : grotesque industrielle américaine, dessinée
     pour les gros corps, large et posée. IBM Plex Sans pour la lecture.
     IBM Plex Mono pour les chiffres et les surtitres : c'est lui qui donne
     le registre instrument de mesure plutôt que brochure.
     ================================================================== */

  --titre: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --texte-police: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --gr-normal: 400;
  --gr-moyen:  500;
  --gr-appuye: 600;
  --gr-gras:   700;

  /* Échelle ouverte. Le display monte à 136 px sur grand écran ; il plafonnait
     à 70 px, le registre « site correct ». Les paliers bas restent ceux du
     relevé : rien ne change pour le corps de texte. */
  /* Échelle recalibrée. 136 px prenait la place sans rien apporter : la
     présence vient de la composition et du blanc, pas du corps. Le display
     plafonne à 88 px, ce qui reste très au-dessus des 70 px de Wix. */
  --t-display: clamp(2.5rem, 1.25rem + 5.2vw, 5.5rem);      /*  40 →  88 */
  --t-h1:      clamp(2.125rem, 1.35rem + 3.2vw, 4rem);      /*  34 →  64 */
  --t-h2:      clamp(1.75rem, 1.25rem + 2.1vw, 3rem);       /*  28 →  48 */
  --t-h3:      clamp(1.375rem, 1.10rem + 1.15vw, 2.125rem); /*  22 →  34 */
  --t-h4:      clamp(1.1875rem, 1.06rem + 0.52vw, 1.5rem);  /*  19 →  24 */
  --t-lead:    clamp(1.0625rem, 1.00rem + 0.30vw, 1.1875rem); /* 17 → 19 */
  --t-corps:   1.0625rem;   /* 17 */
  --t-petit:   0.9375rem;   /* 15 */
  --t-mention: 0.8125rem;   /* 13 */
  --t-etiquette: 0.6875rem; /* 11, en mono capitales très espacées */

  /* Le chiffre garde de l'avance sur le reste : c'est le seul moment
     d'échelle de la page. */
  --t-chiffre: clamp(3.5rem, 1.6rem + 7.8vw, 7rem);         /*  56 → 112 */

  --lh-serre: 0.98;
  --lh-titre: 1.08;
  --lh-sous:  1.25;
  --lh-corps: 1.55;

  --ls-display: -0.035em;
  --ls-titre:   -0.02em;
  --ls-corps:    0;
  --ls-etiquette: 0.14em;


  /* =====================================================================
     4. ESPACEMENT   [posé]
     Wix positionne en absolu : ses paddings sont un ratio de viewport, pas
     des paliers. Rien à relever, échelle posée sur base 4.
     ================================================================== */

  --e-1:  0.25rem;  --e-2: 0.5rem;   --e-3: 0.75rem;  --e-4: 1rem;
  --e-5:  1.5rem;   --e-6: 2rem;     --e-7: 3rem;     --e-8: 4rem;
  --e-9:  6rem;     --e-10: 8rem;    --e-11: 10rem;   --e-12: 14rem;

  /* Trois respirations, pour que toutes les sections n'aient pas le même
     souffle. La rupture de rythme se joue ici. */
  --souffle-court: clamp(3rem, 2.0rem + 4.0vw, 5rem);      /*  48 →  80 */
  --souffle:       clamp(5rem, 3.0rem + 8.0vw, 9rem);      /*  80 → 144 */
  --souffle-ample: clamp(7rem, 3.5rem + 14vw, 14rem);      /* 112 → 224 */

  /* Rails, relevés sur le site */
  --rail-large: 1280px;
  --rail:       1080px;
  --rail-texte:  760px;
  --gouttiere:  clamp(1.25rem, 0.6rem + 2.6vw, 3rem);      /*  20 →  48 */


  /* =====================================================================
     5. RAYONS, OMBRE, MOUVEMENT
     ================================================================== */

  /* Le rayon est réservé à ce qu'on touche. Les grandes surfaces sont vives :
     un angle arrondi sur une photo pleine largeur lit « application web »,
     un angle vif lit « planche technique ». La pilule reste sur les boutons,
     parce que c'est la forme relevée sur 100 % des CTA du site. */
  --r-pilule: 999px;
  --r-carte:  0;
  --r-bloc:   0;
  --r-champ:  2px;

  /* Une seule ombre portée sur 7 253 nœuds. Le site est plat, il le reste :
     la profondeur passe par le contraste de fond. */
  --ombre-flottante: 0 1px 0 rgb(0 0 0 / .06), 0 8px 28px rgb(0 0 0 / .07);

  /* Courbe relevée sur le site actuel : elle porte déjà 41 transitions. */
  --courbe:      cubic-bezier(0.3, 0.13, 0.12, 1);
  --courbe-sort: cubic-bezier(0.65, 0, 0.35, 1);
  --d-court: 200ms;   /* relevé : opacity 0.2s */
  --d-moyen: 400ms;   /* relevé : transform 0.4s */
  --d-long:  700ms;
  --d-recit: 1100ms;  /* révélations au défilement */

  --z-collant: 50;
  --z-entete: 100;
}

/* Toute animation posée dans le site passe par ce filtre. */
@media (prefers-reduced-motion: reduce) {
  :root { --d-court: 1ms; --d-moyen: 1ms; --d-long: 1ms; --d-recit: 1ms; }
}
