/*
 * iD4Connect, ajustements pour l'arabe
 *
 * Chargee uniquement sur les pages arabes, apres style.css.
 * Voir functions.php : enqueue conditionne par id4_is_arabic().
 *
 * PARTI PRIS : la mise en page N'EST PAS mise en miroir.
 * Logo, menu, colonnes, fleches et illustrations restent exactement ou ils
 * sont dans les autres langues. Le document garde dir="ltr". Seul le texte
 * s'aligne a droite, sens de lecture de l'arabe.
 *
 * Ce fichier ne contient donc que deux choses : l'alignement du texte, et
 * les reglages typographiques sans lesquels de l'arabe est mal rendu, quelle
 * que soit la mise en page.
 */

/* ───────── Alignement du texte ───────── */

/* text-align est une propriete heritee : la poser sur le corps de page suffit
   pour tout ce qui n'a pas de regle explicite. Les blocs deliberement centres
   dans le theme gardent leur centrage, une regle explicite l'emportant
   toujours sur une valeur heritee. */
html[lang="ar"] body {
  text-align: right;
}

/* direction:rtl sur les balises de texte, MAIS SANS text-align.
   direction sert a placer la ponctuation finale du bon cote : sans lui, un
   point ou un deux-points en fin de phrase arabe se retrouve visuellement a
   gauche, detache de sa phrase.
   On ne force PAS l'alignement ici, volontairement : le forcer ecrasait les
   titres que le theme centre a dessein, qui doivent rester centres en arabe
   comme dans les autres langues. L'alignement a droite vient de l'heritage
   depuis body, qui ne s'applique qu'a defaut de regle explicite. */
html[lang="ar"] p,
html[lang="ar"] li,
html[lang="ar"] dd,
html[lang="ar"] dt,
html[lang="ar"] h1,
html[lang="ar"] h2,
html[lang="ar"] h3,
html[lang="ar"] h4,
html[lang="ar"] h5,
html[lang="ar"] h6,
html[lang="ar"] blockquote,
html[lang="ar"] figcaption,
html[lang="ar"] label,
html[lang="ar"] th,
html[lang="ar"] td {
  direction: rtl;
}

/* Les gabarits partages (entete, pied de page, banniere cookies) alignent
   certains blocs au debut de ligne, ce qui vaut "a gauche" dans une mise en
   page non miroir. En arabe, ces blocs doivent suivre le texte, donc partir
   de la droite. Les gabarits propres a l'arabe, eux, sont deja ecrits ainsi. */
html[lang="ar"] .mega-cat,
html[lang="ar"] .mob-fcat,
html[lang="ar"] .mob-fsub a,
html[lang="ar"] .mega-panel-h,
html[lang="ar"] .lang-drop-item,
html[lang="ar"] .mega19 .mega-item {
  text-align: right;
}

/* Les champs de formulaire recoivent de la saisie arabe. */
html[lang="ar"] input,
html[lang="ar"] textarea,
html[lang="ar"] select {
  direction: rtl;
  text-align: right;
}

/* ───────── Typographie arabe ───────── */

/* L'ECART ENTRE LETTRES EST INTERDIT EN ARABE.
   Contrairement au latin, les lettres arabes se lient entre elles a
   l'interieur d'un mot. Un letter-spacing, meme d'un pixel, brise ces
   liaisons : le mot se disloque en caracteres isoles et devient penible a
   lire. Ce n'est pas une preference esthetique.
   Le theme pose des letter-spacing dans des dizaines de composants, en ligne
   dans les templates, donc apres cette feuille dans le document. D'ou la
   regle universelle et le !important : c'est le seul moyen de tous les
   couvrir sans enumerer une liste qui evoluerait a chaque composant. */
html[lang="ar"] * {
  letter-spacing: normal !important;
}

/* L'arabe empile ses signes diacritiques au-dessus et au-dessous de la ligne
   de base : il lui faut plus d'air que le latin. Limite au texte courant, les
   composants a hauteur calibree gardent leur interligne. */
html[lang="ar"] p,
html[lang="ar"] li,
html[lang="ar"] dd,
html[lang="ar"] blockquote,
html[lang="ar"] figcaption {
  line-height: 1.85;
}

/* L'arabe n'a pas de capitales : text-transform ne fait rien sur ses
   caracteres, mais deforme les sigles latins melanges au texte
   (iD4Connect, ETL, API). La nuance visuelle passe par la graisse. */
html[lang="ar"] [class*="kicker"],
html[lang="ar"] [class*="eyebrow"],
html[lang="ar"] [class*="-tag"],
html[lang="ar"] [class*="badge"],
html[lang="ar"] [class*="pill"],
html[lang="ar"] [class*="label"],
html[lang="ar"] [class*="lbl"] {
  text-transform: none;
}

/* Chiffres, versions, mesures et fragments de code se lisent de gauche a
   droite, meme dans une phrase arabe. On les isole pour que l'algorithme
   bidirectionnel ne reordonne pas un "8.1" ou un "2026". */
html[lang="ar"] time,
html[lang="ar"] code,
html[lang="ar"] kbd,
html[lang="ar"] samp,
html[lang="ar"] [class*="stat-val"],
html[lang="ar"] [class*="-num"],
html[lang="ar"] [class*="kpi"] b {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: inherit;
}

/* JetBrains Mono, la police a chasse fixe du site, ne contient aucun glyphe
   arabe : sans repli, la page 404 et les blocs de code afficheraient des
   rectangles vides. Inter prend le relais pour ces caracteres uniquement,
   sa declaration @font-face arabe s'en charge. Le latin reste en chasse
   fixe, ce qui preserve l'effet terminal. */
html[lang="ar"] {
  --mono: 'JetBrains Mono', 'Inter', ui-monospace, monospace;
}
