/* ============================================================================
   Publications Lishan — feuille de style COMMUNE (v2)
   À inclure UNE fois sur chaque site cible (lishan, tuina, qigong, kungfu).
   Garantit un rendu PIXEL-IDENTIQUE de la typographie et de la mise en page
   sur tous les sites, car l'éditeur n'applique QUE ces classes (jamais de
   style inline non portable). Préfixe pli- pour éviter toute collision.

   Le contenu d'un article publié est enveloppé dans <div class="pli-contenu">.
   ============================================================================ */

/* ====== Conteneur racine du contenu ====== */
.pli-contenu {
  --pli-couleur-accent: #3a6b4f;
  --pli-couleur-texte: #1f2421;
  --pli-couleur-encadre: #f4f7f5;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--pli-couleur-texte);
  word-wrap: break-word;
}
.pli-contenu :where(p, ul, ol, blockquote, figure, table) { margin: 0 0 1.1rem; }

/* ====== Titres (préréglages) ====== */
.pli-contenu h1, .pli-h1 { font-size: 2.2rem;  line-height: 1.2;  font-weight: 700; margin: 1.6rem 0 0.8rem; }
.pli-contenu h2, .pli-h2 { font-size: 1.7rem;  line-height: 1.25; font-weight: 700; margin: 1.5rem 0 0.7rem; }
.pli-contenu h3, .pli-h3 { font-size: 1.35rem; line-height: 1.3;  font-weight: 700; margin: 1.3rem 0 0.6rem; }
.pli-contenu h4, .pli-h4 { font-size: 1.15rem; line-height: 1.35; font-weight: 700; margin: 1.1rem 0 0.5rem; }

/* ====== Tailles de texte préréglées (échelle nommée) ====== */
.pli-txt-xs    { font-size: 0.78rem; }
.pli-txt-s     { font-size: 0.9rem; }
.pli-txt-normal{ font-size: 1.05rem; }
.pli-txt-l     { font-size: 1.25rem; }
.pli-txt-xl    { font-size: 1.5rem; }
.pli-txt-xxl   { font-size: 2rem; }

/* ====== Tailles fines (pas de 1px de 10 à 48) ====== */
/* Générées : .pli-fs-10 … .pli-fs-48 — contrôle fin libre. */
.pli-fs-10{font-size:10px}.pli-fs-11{font-size:11px}.pli-fs-12{font-size:12px}
.pli-fs-13{font-size:13px}.pli-fs-14{font-size:14px}.pli-fs-15{font-size:15px}
.pli-fs-16{font-size:16px}.pli-fs-17{font-size:17px}.pli-fs-18{font-size:18px}
.pli-fs-19{font-size:19px}.pli-fs-20{font-size:20px}.pli-fs-21{font-size:21px}
.pli-fs-22{font-size:22px}.pli-fs-24{font-size:24px}.pli-fs-26{font-size:26px}
.pli-fs-28{font-size:28px}.pli-fs-30{font-size:30px}.pli-fs-32{font-size:32px}
.pli-fs-36{font-size:36px}.pli-fs-40{font-size:40px}.pli-fs-44{font-size:44px}
.pli-fs-48{font-size:48px}

/* ====== Graisse & style ====== */
.pli-gras       { font-weight: 700; }
.pli-semibold   { font-weight: 600; }
.pli-light      { font-weight: 300; }
.pli-italique   { font-style: italic; }
.pli-souligne   { text-decoration: underline; }
.pli-barre      { text-decoration: line-through; }
.pli-majuscules { text-transform: uppercase; letter-spacing: 0.04em; }

/* ====== Interlignage (line-height) ====== */
.pli-lh-serre   { line-height: 1.25; }
.pli-lh-normal  { line-height: 1.7; }
.pli-lh-aere    { line-height: 2.1; }

/* ====== Espacement des lettres ====== */
.pli-ls-serre  { letter-spacing: -0.02em; }
.pli-ls-large  { letter-spacing: 0.08em; }

/* ====== Couleurs de texte (palette école) ====== */
.pli-c-defaut    { color: var(--pli-couleur-texte); }
.pli-c-accent    { color: var(--pli-couleur-accent); }
.pli-c-vert      { color: #3a6b4f; }
.pli-c-vertfonce { color: #2c5240; }
.pli-c-or        { color: #b08a2e; }
.pli-c-rouge     { color: #b3261e; }
.pli-c-gris      { color: #6b7280; }
.pli-c-noir      { color: #111111; }
.pli-c-blanc     { color: #ffffff; }

/* ====== Surlignage / fond de texte ====== */
.pli-bg-jaune { background: #fff3bf; padding: 0.05em 0.25em; border-radius: 3px; }
.pli-bg-vert  { background: #d8efe0; padding: 0.05em 0.25em; border-radius: 3px; }
.pli-bg-gris  { background: #eef0ee; padding: 0.05em 0.25em; border-radius: 3px; }

/* ====== Alignement & justification ====== */
.pli-text-gauche  { text-align: left; }
.pli-text-centre  { text-align: center; }
.pli-text-droite  { text-align: right; }
.pli-text-justifie{ text-align: justify; }

/* ====== Retraits ====== */
.pli-retrait-1 { padding-left: 1.5rem; }
.pli-retrait-2 { padding-left: 3rem; }
.pli-retrait-3 { padding-left: 4.5rem; }

/* ====== Espacements verticaux (marges contrôlées) ====== */
.pli-mt-0{margin-top:0}.pli-mt-s{margin-top:0.5rem}.pli-mt-m{margin-top:1.2rem}.pli-mt-l{margin-top:2.4rem}
.pli-mb-0{margin-bottom:0}.pli-mb-s{margin-bottom:0.5rem}.pli-mb-m{margin-bottom:1.2rem}.pli-mb-l{margin-bottom:2.4rem}

/* ====== Listes ====== */
.pli-contenu ul { list-style: disc;    padding-left: 1.5rem; }
.pli-contenu ol { list-style: decimal; padding-left: 1.5rem; }
.pli-contenu li { margin: 0.25rem 0; }
.pli-liste-aucune { list-style: none; padding-left: 0; }

/* ====== Citations ====== */
.pli-contenu blockquote, .pli-citation {
  border-left: 4px solid var(--pli-couleur-accent);
  margin: 1.4rem 0; padding: 0.6rem 1.2rem;
  color: #4a4a4a; font-style: italic; background: #fafbfa;
}

/* ====== Liens ====== */
.pli-contenu a { color: var(--pli-couleur-accent); text-decoration: underline; }
.pli-contenu a:hover { text-decoration: none; }

/* ====== Encadrés / callouts ====== */
.pli-encadre {
  border: 1px solid #e0e5e1; border-radius: 10px;
  padding: 1rem 1.2rem; margin: 1.4rem 0; background: var(--pli-couleur-encadre);
}
.pli-encadre-info    { border-color: #b7d8e8; background: #eef7fb; }
.pli-encadre-attention{ border-color: #ecd9a6; background: #fdf6e3; }
.pli-encadre-succes  { border-color: #b9e2c8; background: #e9f7ee; }
.pli-encadre-accent  { border-left: 4px solid var(--pli-couleur-accent); border-radius: 0 10px 10px 0; background: #f4f7f5; }

/* ====== Séparateur ====== */
.pli-contenu hr, .pli-separateur {
  border: none; border-top: 2px solid #e0e5e1; margin: 2rem 0;
}
.pli-separateur-points { border: none; text-align: center; margin: 2rem 0; }
.pli-separateur-points::before { content: "• • •"; color: #b0b8b2; letter-spacing: 0.5em; }

/* ====== Colonnes (mise en page) ====== */
.pli-colonnes { display: grid; gap: 1.5rem; margin: 1.4rem 0; }
.pli-colonnes-2 { grid-template-columns: 1fr 1fr; }
.pli-colonnes-3 { grid-template-columns: 1fr 1fr 1fr; }
.pli-colonnes-2-1 { grid-template-columns: 2fr 1fr; }
.pli-colonnes-1-2 { grid-template-columns: 1fr 2fr; }
.pli-colonne { min-width: 0; }
@media (max-width: 680px) {
  .pli-colonnes-2, .pli-colonnes-3, .pli-colonnes-2-1, .pli-colonnes-1-2 {
    grid-template-columns: 1fr;
  }
}

/* ====== Tableaux ====== */
.pli-contenu table { width: 100%; border-collapse: collapse; margin: 1.4rem 0; font-size: 0.95rem; }
.pli-contenu th, .pli-contenu td { border: 1px solid #dfe4e0; padding: 0.5rem 0.7rem; text-align: left; }
.pli-contenu thead th { background: #f1f4f2; font-weight: 700; }

/* ====== Lettrine ====== */
.pli-lettrine::first-letter {
  float: left; font-size: 3.2rem; line-height: 0.8; padding: 0.1rem 0.5rem 0 0;
  color: var(--pli-couleur-accent); font-weight: 700;
}

/* ============================================================================
   IMAGES (conservé de la v1 — inchangé)
   ============================================================================ */
.pli-img { display: block; max-width: 100%; height: auto; margin: 1.2rem 0; }
.pli-img img { display: block; max-width: 100%; height: auto; }

.pli-forme-carre img   { border-radius: 0; }
.pli-forme-arrondi img { border-radius: 12px; }
.pli-forme-rond img    { border-radius: 50%; aspect-ratio: 1 / 1; object-fit: cover; }

.pli-nb img      { filter: grayscale(100%); }
.pli-couleur img { filter: none; }
.pli-sepia img   { filter: sepia(60%); }

.pli-taille-s { max-width: 240px; }
.pli-taille-m { max-width: 480px; }
.pli-taille-l { max-width: 760px; }
.pli-taille-full { max-width: 100%; }

.pli-align-gauche  { margin-right: auto; margin-left: 0; }
.pli-align-centre  { margin-left: auto;  margin-right: auto; }
.pli-align-droite  { margin-left: auto;  margin-right: 0; }

.pli-float-gauche { float: left;  margin: 0.4rem 1.2rem 0.8rem 0; max-width: 50%; }
.pli-float-droite { float: right; margin: 0.4rem 0 0.8rem 1.2rem; max-width: 50%; }

.pli-img figcaption {
  margin-top: 0.4rem; font-size: 0.85rem; line-height: 1.4;
  color: #666; text-align: center; font-style: italic;
}

.pli-galerie { display: grid; gap: 0.6rem; margin: 1.4rem 0; }
.pli-galerie img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; aspect-ratio: 4 / 3; }
.pli-galerie-2 { grid-template-columns: repeat(2, 1fr); }
.pli-galerie-3 { grid-template-columns: repeat(3, 1fr); }
.pli-galerie-4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .pli-galerie-4 { grid-template-columns: repeat(4, 1fr); } }

@media (max-width: 600px) {
  .pli-float-gauche, .pli-float-droite { float: none; max-width: 100%; margin: 1.2rem 0; }
  .pli-taille-s, .pli-taille-m, .pli-taille-l { max-width: 100%; }
}
