/* ===================================================================
   VISIONNEUSE DES REVUES BRODOTECH - l'habillage
   Chargée UNIQUEMENT sur la page d'une revue (njb-brodotech-lecteur.php).
   Les @font-face NJ Garamond / NJ Classico et rien d'autre sont posés en
   PHP juste avant (njb_lect_polices) : leurs fichiers vivent dans le thème
   enfant, dont l'adresse n'est connue qu'en PHP.

   ⚠ TOUT est préfixé « njb-lect » ou porté par « .njb-lecteur » (la classe de
   body). Les seules classes étrangères touchées sont celles de la
   bibliothèque (.stf__*), et uniquement à l'intérieur de #njb-lect-livre.
   =================================================================== */

.njb-lect {
  --njl-vert:      #1E3A2F;   /* le vert profond du site */
  --njl-vert-2:    #2F4A3A;
  --njl-or:        #C8A46A;   /* l'or des filets et des aplats */
  --njl-or-texte:  #A9852F;   /* l'or LISIBLE, réservé au texte (cf. charte) */
  --njl-creme:     #FCFBF3;
  --njl-encre:     #33352E;
  --njl-filet:     #E4DCC4;
  --njl-serif:     'NJ Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --njl-sans:      'NJ Classico', Optima, 'Gill Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  max-width: 1120px;
  margin: 0 auto;
  padding: 2.6rem 0 4rem;
  color: var(--njl-encre);
  font-family: var(--njl-serif);
}

/* -------------------------------------------------------------------
   L'EN-TÊTE : sur-titre, titre, introduction. Texte minimal, centré.
   ------------------------------------------------------------------- */

.njb-lect__tete { text-align: center; margin: 0 0 2.4rem; }

/* ⚠️ ALIGNÉ SUR LA RECETTE UNIQUE LE 23/08. Trois écarts au modèle ici, dont un
   qui se voyait : le POIDS manquait, donc le sur-titre sortait en 400 quand
   celui de l'espace membre et du catalogue sortait en 600 - petites capitales
   plus maigres, sur le seul écran qu'on ouvre en venant du catalogue. */
.njb-lect__sur {
  font-family: var(--njl-sans);
  font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: var(--njl-or-texte);
  margin: 0 0 .55rem;
}

/* ⚠ #njb-lect pour battre les règles de titre du Customizer Themify, qui
   visent « h1 » et « .sidebar-none .page-title » sans !important : un
   identifiant (1-0-0) passe devant sans avoir à en poser un. */
#njb-lect .njb-lect__titre {
  font-family: var(--njl-serif);
  font-weight: 400;
  font-size: clamp(1.9rem, 3.6vw, 2.9rem);
  line-height: 1.15;
  color: var(--njl-vert);
  margin: 0;
  padding: 0;
  border: 0;
  text-transform: none;
  letter-spacing: 0;
}

/* Le filet or sous le titre : la signature de la charte.
   ⚠️ 56 × 1 px DEPUIS LE 23/08, et non plus 68 × 2 : une seule valeur sur tout
   le site, celle de l'espace membre. */
#njb-lect .njb-lect__titre::after {
  content: ""; display: block;
  width: 56px; height: 1px; margin: .9rem auto 0;
  background: var(--njl-or);
}

.njb-lect__intro {
  max-width: 46ch; margin: 1.3rem auto 0;
  font-size: 1.06rem; line-height: 1.65; color: var(--njl-encre);
}
.njb-lect__intro p { margin: 0 0 .7rem; }
.njb-lect__intro p:last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------
   LA SCÈNE ET LE LIVRE
   ------------------------------------------------------------------- */

.njb-lect__scene {
  position: relative;
  padding: 0 clamp(0px, 2vw, 24px);
}

/* ⚠ La bibliothèque écrit elle-même width/max-width/min-width en style
   en ligne sur ce conteneur (réglage autoSize). On ne les redéclare donc
   PAS ici : on ne pose que le centrage, qu'elle ne touche pas. */
.njb-lect__livre { margin: 0 auto; }

/* ⚠ LE SEUL !important DU FICHIER, ET IL EST INDISPENSABLE.
   La bibliothèque écrit « min-width: 320px » EN LIGNE sur ce conteneur (UI.ts,
   constructeur) : sur un téléphone de 320 px, #body ajoute 4 % de marge de
   chaque côté et le livre déborde alors de la fenêtre - barre de défilement
   horizontale sur toute la page. Seul un !important bat un style en ligne.
   ⚠ Ceci ne déplace PAS le seuil de bascule vers une seule page : ce seuil est
   calculé sur la largeur RÉELLEMENT mesurée du bloc, pas sur cette valeur.
   Les deux réglages sont indépendants, c'est bien ce qu'on veut. */
.njb-lect__livre.stf__parent { min-width: 0 !important; }

/* Les images n'attrapent ni le pointeur ni le glisser : le geste de
   feuilletage appartient à la page, pas à l'image, et « enregistrer
   l'image sous » demande au moins un détour.
   ⚠ Décourager n'est pas protéger - voir le commentaire du gabarit. */
.njb-lect__img {
  display: block; width: 100%; height: 100%;
  object-fit: contain;
  -webkit-user-drag: none;
  user-select: none; -webkit-user-select: none;
  pointer-events: none;
}

/* UNE PAGE. La bibliothèque récrit le style EN LIGNE de cet élément à chaque
   image de l'animation (position, taille, découpe) : tout ce qui est écrit
   ici doit donc rester dans la feuille de style, jamais en ligne. */
.njb-lect__page {
  background: var(--njl-creme);
  /* Un liseré intérieur plutôt qu'une bordure : la page est découpée en
     biseau pendant le pli (clip-path), et une vraie bordure serait tranchée
     avec elle. Une ombre INTÉRIEURE suit la découpe. */
  box-shadow: inset 0 0 0 1px rgba(30, 58, 47, .10);
}

/* LA RELIURE. Un dégradé sur le bord INTÉRIEUR de chaque page : c'est ce qui
   creuse le pli central et fait lire les deux pages comme un seul volume.
   ⚠ En une seule page (téléphone), il n'y a pas de pli : la règle est portée
   par « njb-lect--double », que lecteur.js pose sur la racine à chaque
   changement d'orientation. La bibliothèque marque bien son enveloppe
   (.stf__wrapper.--landscape), mais on préfère notre propre marqueur : il est
   lisible, il ne dépend pas d'un nom interne à la bibliothèque, et il évite
   un sélecteur de classe commençant par deux tirets. */
.njb-lect--double .njb-lect__page::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 34px;
  pointer-events: none;
}
.njb-lect--double .njb-lect__page.--right::after {
  left: 0;
  background: linear-gradient(to right, rgba(30, 58, 47, .20), rgba(30, 58, 47, 0));
}
.njb-lect--double .njb-lect__page.--left::after {
  right: 0;
  background: linear-gradient(to left, rgba(30, 58, 47, .20), rgba(30, 58, 47, 0));
}

/* LE NUMÉRO DE PAGE, dans le coin EXTÉRIEUR - comme dans un livre.
   Discret : on doit pouvoir le chercher, pas le subir. */
.njb-lect__folio {
  position: absolute; bottom: 10px;
  font-family: var(--njl-sans);
  font-size: .64rem; letter-spacing: .12em;
  color: var(--njl-or-texte); opacity: .75;
  pointer-events: none;
}
.njb-lect__page.--right .njb-lect__folio { right: 16px; }
.njb-lect__page.--left  .njb-lect__folio { left: 16px; }
/* En une seule page, la page n'est ni gauche ni droite : on ancre à droite. */
.njb-lect--simple .njb-lect__folio { right: 16px; left: auto; }

/* L'OMBRE PORTÉE DU VOLUME.
   ⚠ Elle n'est posée QU'AU REPOS (classe njb-lect--repos, mise et retirée par
   lecteur.js sur l'événement changeState). Un drop-shadow épouse la silhouette
   réelle du livre, découpe du pli comprise - mais il se recalcule à chaque
   image : le laisser pendant l'animation ferait saccader le feuilletage sur
   une machine modeste. */
.njb-lect--repos .njb-lect__livre .stf__wrapper {
  filter: drop-shadow(0 16px 30px rgba(30, 58, 47, .20));
}
.njb-lect__livre .stf__wrapper { transition: filter .35s ease; }

/* Avant que la bibliothèque n'ait pris la main : les pages sont encore de
   simples blocs empilés, on ne montre rien et on annonce l'attente. */
.njb-lect__livre:not(.stf__parent) .njb-lect__page { display: none; }
.njb-lect__livre:not(.stf__parent) { min-height: 340px; }

.njb-lect__attente,
.njb-lect__sansjs {
  position: absolute; left: 0; right: 0; top: 45%;
  text-align: center;
  font-family: var(--njl-sans); font-size: .78rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--njl-or-texte);
  margin: 0;
}
/* Dès que le livre est monté, le message d'attente n'a plus lieu d'être. */
.njb-lect--pret .njb-lect__attente { display: none; }

/* -------------------------------------------------------------------
   LE REPLI : si la bibliothèque ne se charge pas (fichier absent, script
   bloqué), on ne laisse pas une page vide. Les pages s'affichent alors
   simplement les unes sous les autres, et lecteur.js sert toutes les images.
   ------------------------------------------------------------------- */

.njb-lect--brut .njb-lect__attente { display: none; }
.njb-lect--brut .njb-lect__livre { min-height: 0; }
.njb-lect--brut .njb-lect__livre .njb-lect__page {
  display: block; position: static;
  max-width: 520px; margin: 0 auto 1.4rem;
}
/* ⚠ En repli, la page n'a plus de hauteur imposée : l'image doit reprendre
   la sienne, sinon « height: 100 % » d'un parent de hauteur automatique la
   laisse à la merci du navigateur. */
.njb-lect--brut .njb-lect__img { height: auto; }
.njb-lect--brut .njb-lect__folio { position: static; display: block; text-align: right; }

/* -------------------------------------------------------------------
   LES COMMANDES
   ------------------------------------------------------------------- */

/* Masquées tant que le feuilletage n'est pas en place : deux boutons inertes
   valent moins que pas de boutons du tout. */
.njb-lect__barre { display: none; }
.njb-lect--pret .njb-lect__barre {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(14px, 3vw, 30px);
  margin: 2rem auto 0;
}

.njb-lect__fl {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; padding: 0;
  background: transparent;
  border: 2px solid var(--njl-or);   /* le 2px de la charte */
  border-radius: 0;
  color: var(--njl-vert);
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}
.njb-lect__fl svg {
  width: 20px; height: 20px;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.njb-lect__fl:hover:not(:disabled),
.njb-lect__fl:focus-visible:not(:disabled) {
  background: var(--njl-or);
  color: var(--njl-vert);            /* fond or -> texte vert foncé (charte) */
}
.njb-lect__fl:focus-visible { outline: 2px solid var(--njl-vert); outline-offset: 3px; }

/* Aux extrémités de la revue : le bouton reste EN PLACE, éteint. Le faire
   disparaître décalerait le compteur d'un demi-pas à chaque bout. */
.njb-lect__fl:disabled {
  opacity: .3; cursor: default;
  border-color: var(--njl-filet); color: var(--njl-filet);
}

.njb-lect__compteur {
  min-width: 13ch; margin: 0; text-align: center;
  font-family: var(--njl-sans);
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--njl-vert-2);
}

/* -------------------------------------------------------------------
   LE BAS DE PAGE
   ------------------------------------------------------------------- */

.njb-lect__vide {
  text-align: center; font-style: italic; color: var(--njl-vert-2);
  padding: 3rem 0;
}

.njb-lect__retour { text-align: center; margin: 3rem 0 0; }

#njb-lect .njb-lect__retour a {
  font-family: var(--njl-sans);
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--njl-or-texte);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  padding-bottom: 3px;
  transition: border-color .2s ease, color .2s ease;
}
#njb-lect .njb-lect__retour a:hover,
#njb-lect .njb-lect__retour a:focus-visible {
  color: var(--njl-vert); border-bottom-color: var(--njl-or);
}

/* -------------------------------------------------------------------
   TÉLÉPHONE
   ⚠ La bascule double page -> une page n'est PAS faite ici : c'est la
   bibliothèque qui la décide, sur la place réellement disponible (réglage
   minLargeur, njb_lect_reglages). Une media query s'en écarterait dès qu'une
   marge change. Ici, on n'ajuste que ce qui l'entoure.
   ------------------------------------------------------------------- */

@media (max-width: 640px) {
  .njb-lect { padding: 1.8rem 0 3rem; }
  .njb-lect__tete { margin-bottom: 1.8rem; }
  .njb-lect__intro { font-size: 1rem; }
  /* 🔑 C'EST ICI QUE SE JOUE LA MARGE DU LIVRE SUR TÉLÉPHONE, et le padding est
     bien posé sur la SCÈNE, jamais sur le livre lui-même.
     StPageFlip mesure getBlockWidth() = l'offsetWidth du conteneur qu'on lui a
     confié (#njb-lect-livre), et il lui écrit « width: 100% » EN LIGNE. Un padding
     sur ce conteneur-là serait donc compris DANS les 100 % et ne reculerait rien ;
     posé sur son parent, il réduit la boîte de contenu, donc les 100 %, donc la
     largeur que la bibliothèque mesure. La marge est réelle.
     ⚠ ELLE VALAIT « 0 » : le livre touchait les deux bords et ne se lisait plus
     comme un objet posé - la couverture surtout, qui n'avait plus de tranche.
     ⚠ La couverture profite du même geste : elle vit dans une scène elle aussi.
     ⚠ Ceci ne déplace PAS la bascule double page -> une page : la bibliothèque la
     décide sur la largeur mesurée, et sous 640 px on est déjà en une seule page. */
  .njb-lect__scene { padding: 0 clamp(16px, 5vw, 24px); }
  .njb-lect--pret .njb-lect__barre { margin-top: 1.5rem; gap: 16px; }
  .njb-lect__fl { width: 42px; height: 42px; }
  .njb-lect__compteur { font-size: .7rem; letter-spacing: .12em; }
}

/* Mouvement réduit. L'essentiel se joue dans lecteur.js, qui raccourcit la
   durée du pliage : une durée d'animation ne se règle pas en CSS ici, elle
   est passée à la bibliothèque. Ne reste que notre fondu d'ombre. */
@media (prefers-reduced-motion: reduce) {
  .njb-lect__livre .stf__wrapper { transition: none; }
}

/* ===================================================================
   ÉTAPE 3 - FREEMIUM : LE BADGE, LA COUVERTURE VOILÉE, LE FILIGRANE,
   LE MUR DE FIN D'APERÇU.

   ⚠ RIEN ICI NE PROTÈGE QUOI QUE CE SOIT. Une page à laquelle le visiteur
   n'a pas droit n'est pas cachée par ces règles : elle n'est pas dans la
   page HTML du tout (njb-brodotech-acces.php). Ce qui suit n'est que
   l'habillage de ce qui reste. Ne jamais écrire ici une règle dont
   dépendrait un droit d'accès.
   =================================================================== */

/* -------------------------------------------------------------------
   LES TROIS SIGNES (SVG en ligne, ils prennent la couleur du texte)
   ------------------------------------------------------------------- */

.njb-lect__ic { display: block; }
.njb-lect__ic--etoile  { width: 11px; height: 11px; display: inline-block;
                         vertical-align: -1px; margin-right: 7px; fill: currentColor; }
.njb-lect__ic--fleuron { width: 34px; height: 34px; margin: 0 auto 1.1rem; fill: currentColor; }
.njb-lect__ic--cadenas { width: 34px; height: 34px; margin: 0 auto 1.1rem;
                         fill: none; stroke: currentColor; stroke-width: 1.6;
                         stroke-linecap: round; stroke-linejoin: round; }
.njb-lect__ic--cadenas circle { fill: currentColor; stroke: none; }

/* -------------------------------------------------------------------
   LE BADGE « Premium » / « Gratuit »
   ------------------------------------------------------------------- */

.njb-lect__badge {
  display: inline-flex; align-items: center;
  margin: 0 0 1.1rem;
  padding: 5px 15px;
  border: 2px solid var(--njl-or);   /* le 2px de la charte */
  font-family: var(--njl-sans);
  font-size: .64rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--njl-or-texte);
}
/* Une revue offerte ne s'annonce pas en or : le vert, plus sobre, dit
   « ouvert » sans réclamer l'attention que mérite le premium. */
.njb-lect__badge--gratuit {
  border-color: var(--njl-filet);
  color: var(--njl-vert-2);
}

/* -------------------------------------------------------------------
   LA COUVERTURE VOILÉE (visiteur de passage, et revue sans aperçu)
   ------------------------------------------------------------------- */

.njb-lect__scene--couv { display: flex; justify-content: center; }

.njb-lect__couv {
  position: relative;
  width: 100%; max-width: 430px;
  box-shadow: 0 16px 34px rgba(30, 58, 47, .22);
}

.njb-lect__couv-img {
  display: block; width: 100%; height: auto;
  -webkit-user-drag: none; user-select: none; -webkit-user-select: none;
}

/* Pas d'image mise en avant : un rectangle crème plutôt qu'un trou. */
.njb-lect__couv-vide {
  aspect-ratio: 3 / 4; background: var(--njl-creme);
  border: 2px dashed var(--njl-or);
}

/* Le voile. Transparent en haut - on doit VOIR la couverture, c'est elle qui
   donne envie - et franc en bas, là où se lit l'invitation. */
.njb-lect__voile {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 4.5rem 1.6rem 2rem;
  text-align: center;
  color: var(--njl-creme);
  background: linear-gradient(to bottom,
              rgba(30, 58, 47, 0) 0%,
              rgba(30, 58, 47, .72) 38%,
              rgba(30, 58, 47, .95) 100%);
}
.njb-lect__voile .njb-lect__ic { color: var(--njl-or); }

.njb-lect__voile-titre {
  font-family: var(--njl-serif);
  font-size: 1.32rem; line-height: 1.25; color: var(--njl-creme);
  margin: 0 0 .55rem;
}
.njb-lect__voile-texte {
  font-family: var(--njl-serif);
  font-size: .92rem; line-height: 1.5; color: #E7E0D2;
  margin: 0 auto 1.3rem; max-width: 30ch;
}

/* -------------------------------------------------------------------
   LE BOUTON D'ACTION
   ⚠ Fond or, texte VERT FONCÉ : c'est la charte, et elle est arbitrée.
   Ne pas reproposer du crème sur or pour une question de contraste.
   ------------------------------------------------------------------- */

#njb-lect .njb-lect__bouton {
  display: inline-block;
  padding: 13px 30px;
  background: var(--njl-or);
  border: 2px solid var(--njl-or);
  color: var(--njl-vert);
  font-family: var(--njl-sans);
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
#njb-lect .njb-lect__bouton:hover,
#njb-lect .njb-lect__bouton:focus-visible {
  background: transparent;
  color: var(--njl-or);
}
#njb-lect .njb-lect__bouton:focus-visible { outline: 2px solid var(--njl-creme); outline-offset: 3px; }

/* -------------------------------------------------------------------
   L'ENCART DE SECOND RECOURS (« Déjà membre ? », « Découvrir l'abonnement »)
   ------------------------------------------------------------------- */

.njb-lect__encart {
  max-width: 430px;
  margin: 1.6rem auto 0;
  padding: 14px 20px;
  border: 2px solid var(--njl-filet);
  background: var(--njl-creme);
  text-align: center;
  font-family: var(--njl-serif);
  font-size: .95rem; color: var(--njl-vert-2);
}
#njb-lect .njb-lect__encart a {
  color: var(--njl-or-texte);
  text-decoration: none;
  border-bottom: 2px solid var(--njl-or);
  padding-bottom: 2px;
  transition: color .2s ease;
}
#njb-lect .njb-lect__encart a:hover,
#njb-lect .njb-lect__encart a:focus-visible { color: var(--njl-vert); }

/* -------------------------------------------------------------------
   LE FILIGRANE
   Il TRACE, il ne protège pas : une page recopiée porte le nom de qui
   l'avait sous les yeux.
   ⚠ Il doit rester lisible de près et invisible à la lecture. .07 d'opacité
   est le réglage : au-dessus il gêne, en dessous il ne trace plus rien.
   ------------------------------------------------------------------- */

.njb-lect__filigrane {
  position: absolute; inset: 0;
  overflow: hidden;          /* la diagonale ne doit pas dépasser de la page */
  pointer-events: none;
  user-select: none; -webkit-user-select: none;
}
.njb-lect__filigrane-i {
  position: absolute; inset: -25%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: space-around;
  transform: rotate(-24deg);
}
.njb-lect__filigrane span {
  font-family: var(--njl-serif);
  font-size: clamp(.7rem, 1.5vw, 1rem);
  letter-spacing: .18em;
  white-space: nowrap;
  color: rgba(30, 58, 47, .07);
}

/* -------------------------------------------------------------------
   LE MUR DE FIN D'APERÇU - une vraie page du livre, la dernière.
   ⚠ Le fond est la DERNIÈRE PAGE AUTORISÉE, floutée : le visiteur l'a déjà,
   aucune adresse nouvelle n'est envoyée. On ne floute pas ce qu'on refuse
   de montrer, on floute ce qui a déjà été vu.
   ------------------------------------------------------------------- */

.njb-lect__page--mur {
  background: var(--njl-vert);
  color: var(--njl-creme);
  box-shadow: none;
}

/* ⚠ « overflow:hidden » est porté par CE div, jamais par la page elle-même :
   la page est un élément que la bibliothèque fait pivoter en 3D, et lui poser
   un débordement caché aplatirait son pliage. Le halo du flou est donc coupé
   ici, une couche plus bas, sans toucher à la mécanique du livre. */
.njb-lect__mur-fond { position: absolute; inset: 0; overflow: hidden; }
.njb-lect__mur-fond::after {
  content: ""; position: absolute; inset: -12%;
  background-image: var(--njb-mur-fond);
  background-size: cover; background-position: center;
  filter: blur(18px) saturate(.65);
  opacity: .4;
}

/* Le voile vert par-dessus le flou : c'est lui qui rend le texte lisible. */
.njb-lect__page--mur::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(165deg, rgba(30, 58, 47, .82), rgba(30, 58, 47, .97));
}

.njb-lect__mur-corps {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  padding: 8%;
}
.njb-lect__mur-corps .njb-lect__ic { color: var(--njl-or); }

.njb-lect__mur-titre {
  font-family: var(--njl-serif);
  font-size: clamp(1.15rem, 2.6vw, 1.7rem); line-height: 1.25;
  color: var(--njl-creme);
  margin: 0 0 .7rem;
}
.njb-lect__mur-texte {
  font-family: var(--njl-serif);
  font-size: clamp(.82rem, 1.6vw, 1rem); line-height: 1.55;
  color: #E7E0D2;
  margin: 0 auto 1.5rem; max-width: 28ch;
}

/* Un filet or de part et d'autre du fleuron : la signature de la charte,
   reprise ici pour que le mur reste une page de la revue et pas une réclame. */
.njb-lect__mur-corps::after {
  content: ""; position: absolute; left: 50%; bottom: 8%;
  width: 54px; height: 2px; margin-left: -27px;
  background: var(--njl-or); opacity: .55;
}

/* -------------------------------------------------------------------
   TÉLÉPHONE
   ------------------------------------------------------------------- */

@media (max-width: 640px) {
  .njb-lect__couv { max-width: 100%; }
  .njb-lect__voile { padding: 3.4rem 1.1rem 1.6rem; }
  .njb-lect__voile-titre { font-size: 1.16rem; }
  #njb-lect .njb-lect__bouton { padding: 12px 22px; font-size: .7rem; letter-spacing: .12em; }
  .njb-lect__encart { font-size: .9rem; }
  .njb-lect__mur-texte { margin-bottom: 1.1rem; }
}

/* Mouvement réduit : le flou du mur est un rendu statique, il ne bouge pas.
   Rien à neutraliser ici - la note est là pour qu'on ne le cherche pas. */
