/* ============================================================
   LKS · jetons et composants de base
   Copier tel quel en tête de tout support LKS.
   Les valeurs sont fixes : ne pas les redéfinir au cas par cas.
   ============================================================ */

:root {
  /* --- palette --- */
  --encre:   #0D1512;   /* fond principal, noir vert */
  --vert:    #162420;   /* surface élevée sur fond encre */
  --bronze:  #8A7256;   /* neutre chaud, filets secondaires */
  --sable:   #CDBFA9;   /* filets, petits aplats. jamais en champ plein */
  --ivoire:  #F2EFE6;   /* texte sur encre, fond des documents longs */
  --cuivre:  #BE6B3C;   /* accent unique */

  /* Sur fond clair, le cuivre s'assombrit sinon il disparaît. */
  --cuivre-clair: #8A5A34;

  /* --- typographie --- */
  /* Assistant couvre latin ET hébreu : c'est ce qui garantit qu'un support
     hébreu et un support anglais se ressemblent vraiment. */
  --sans: Assistant, "Segoe UI", ui-sans-serif, system-ui, -apple-system, Arial, sans-serif;
  /* Plex Mono n'a ni hébreu ni signe shekel. Assistant placée juste derrière
     fait tomber ces glyphes sur la fonte de marque au lieu d'une fonte système :
     le repli se fait glyphe par glyphe, les chiffres latins restent en Plex. */
  --mono: "IBM Plex Mono", Assistant, ui-monospace, Consolas, "SF Mono", Menlo, monospace;

  --tracking-caps: 0.16em;  /* le caractère du système vient de là, pas de la police */
}

/* --- la ligne de niveau : le dispositif récurrent --- */
.lks-datum      { border-top: 1px solid var(--sable); }
.lks-datum-seuil{ border-top: 2px solid var(--cuivre); }  /* couverture, prix, décision */

/* --- titres --- */
.lks-h1 {
  font-family: var(--sans); font-weight: 300;
  letter-spacing: var(--tracking-caps); text-transform: uppercase; line-height: 1.4;
}
.lks-h2 { font-family: var(--sans); font-weight: 300; letter-spacing: -0.02em; line-height: 1.2; }
.lks-body { font-family: var(--sans); font-weight: 400; line-height: 1.6; }
.lks-accroche { font-family: var(--sans); font-weight: 600; letter-spacing: -0.01em; }

/* Chiffres, dates, références, libellés techniques. Toujours tabulaires. */
.lks-mono {
  font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: 0.02em;
}
.lks-label {
  font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--bronze);
}

/* --- lockup : la baseline est ferrée sur la largeur exacte du logo --- */
/* space-between plutôt que justification typographique : c'est exact par
   construction, à toutes les tailles, sans résidu à droite. */
.lks-lockup { display: flex; flex-direction: column; gap: 0.45rem; }
.lks-lockup > svg { display: block; width: 100%; height: auto; }
/* direction:ltr n'est pas négociable : la baseline est ferrée en space-between,
   donc une page hébraïque en poserait les mots à l'envers. Le lockup est une
   marque, pas une phrase, il reste LTR comme les trois primitives. */
.lks-baseline {
  display: flex; justify-content: space-between; direction: ltr;
  border-top: 1px solid var(--sable); padding-top: 0.34rem;
  font-family: var(--mono); color: var(--cuivre);
}

/* --- tracé d'architecte --- */
/* Le parent doit être position:relative + overflow:hidden,
   et ses enfants position:relative + z-index:1. */
.scr { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }

/* --- bascule hébraïque --- */
/* Les séparateurs passent en propriétés logiques pour suivre le sens de lecture.
   L'en-tête garde un flux LTR : c'est ce qui maintient la marque à gauche
   sans avoir à la forcer avec un order, qui produit l'effet inverse en RTL. */
.he { direction: rtl; }
.he .lks-entete { direction: ltr; }
.he .lks-entete .lks-texte { direction: rtl; text-align: right; }
.he .lks-sep { border-right: 0; border-inline-end: 1px solid var(--vert); }
.he .lks-sep:last-child { border-inline-end: 0; }
.he .lks-cite { border-left: 0; border-inline-start: 2px solid var(--cuivre);
                padding-left: 0; padding-inline-start: 1rem; }
/* Les trois primitives suivent l'ordre des lettres L, K, S : jamais inversées. */
.he .lks-primitives { direction: ltr; }
.he .lks-primitives .lks-legende { direction: rtl; }
/* Un libellé hébreu ne peut pas rester en mono : Plex Mono n'a pas d'hébreu.
   Il repasse en Assistant, et son interlettrage tombe de moitié - 0,16 em est
   une valeur de capitales latines, elle disloque un mot hébreu. text-transform
   ne sert à rien ici : l'hébreu n'a pas de casse. */
.he .lks-label {
  font-family: var(--sans); font-weight: 400;
  letter-spacing: 0.10em; text-transform: none;
}
