/* =========================================================================
   JLP Décryptage — page Avis : la parole de celles et ceux avec qui j'ai travaillé
   -------------------------------------------------------------------------
   Même famille éditoriale que les autres bibliothèques (papier, encre,
   filets, bandeau noir, serif). Les avis sont des captures authentiques :
   elles restent intactes, posées comme des pièces de dossier sur le papier ;
   une citation n'est mise en exergue que lorsqu'elle figure déjà dans le
   texte alternatif. L'agrandissement reste celui de js/avis-galerie.js.
   ========================================================================= */
.avb-vue{--avb-papier:#FBF9F5;--avb-encre:#0A0A0A;--avb-gris:#5C5953;--avb-pale:#8E8A84;--avb-filet:#DAD6D0;
  --avb-serif:'Cormorant Garamond',Garamond,'Times New Roman',serif;
  --avb-didone:'Playfair Display','Bodoni Moda',Didot,'Times New Roman',serif;background:var(--avb-papier);color:var(--avb-encre)}
.jlpn-vue.avb-vue{background:var(--avb-papier)}
.avi-defile.avb{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overflow-anchor:none;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;background:var(--avb-papier);color:var(--avb-encre);font-family:var(--avb-serif);-webkit-font-smoothing:antialiased}
.avb *,.avb *::before,.avb *::after{box-sizing:border-box}
.avb a{color:inherit}
.avb ul{list-style:none;margin:0;padding:0}
.avb button{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;line-height:inherit;letter-spacing:inherit;
  color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.avb :focus-visible{outline:2px solid var(--avb-encre);outline-offset:3px}

.avb-barre{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:24px;
  min-height:calc(46px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) clamp(18px,3.4vw,52px) 0;background:#000;color:#fff}
.avb-marque{font-weight:500;font-size:13.5px;letter-spacing:.42em;text-decoration:none;color:#fff;white-space:nowrap}
.avb .avi-retour-zone{position:static;top:auto;left:auto;z-index:auto}
.avb .avi-retour{display:inline-flex;align-items:center;gap:6px;color:#fff;text-decoration:none;min-height:44px;transform:none}
.avb .avi-retour-rond{width:18px;height:18px;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
.avb .avi-retour-anneau{stroke:none}
.avb .avi-retour-fleche{stroke:#fff;stroke-width:1.6}
.avb .avi-retour-mot{display:inline;font-family:var(--avb-serif);font-weight:500;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;text-shadow:none;color:#fff}
@media (hover:hover){.avb .avi-retour:hover .avi-retour-mot{text-decoration:underline;text-underline-offset:5px}}
.avb-barre :focus-visible{outline-color:#fff}

.avb-page{max-width:1500px;margin:0 auto;padding:0 clamp(18px,4.4vw,72px) calc(110px + env(safe-area-inset-bottom,0px))}

/* AVIS ——— ● ———   42 AVIS  /  CE QUE DISENT… */
.avb-entete{padding-top:clamp(24px,3.4vh,40px);margin:0 0 clamp(26px,3.6vh,40px)}
.avb-entete-ligne{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px)}
.avb-h1{margin:0;font-family:var(--avb-didone);font-weight:400;text-transform:uppercase;font-size:clamp(64px,8.6vw,140px);line-height:.84;letter-spacing:-.02em}
.avb-entete-filet{flex:1 1 auto;position:relative;height:1px;background:var(--avb-encre);min-width:40px}
.avb-entete-filet i{position:absolute;left:50%;top:-3px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--avb-encre);box-shadow:0 0 0 8px var(--avb-papier)}
.avb-total{margin:0;flex:0 0 auto;font-family:var(--avb-didone);font-size:clamp(24px,2.2vw,36px);text-transform:uppercase;letter-spacing:.02em;
  padding-bottom:10px;border-bottom:1px solid var(--avb-encre)}
.avb-devise{margin:16px 0 0;font-size:clamp(13px,1.2vw,18px);font-weight:500;letter-spacing:.3em;text-transform:uppercase}

.avb-haut{display:grid;grid-template-columns:minmax(0,1fr) 1px clamp(250px,21vw,330px);column-gap:clamp(28px,3.2vw,52px)}
.avb-principal{min-width:0}
.avb-filet-v{background:var(--avb-encre)}

/* avis à la une : la capture authentique et sa citation */
.avb-une{position:relative;padding:0 0 8px}
.avb-diapo{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);column-gap:clamp(24px,3vw,48px);align-items:center}
.avb-diapo[hidden]{display:none}
.avb .avb-une-photo{display:block;width:100%;aspect-ratio:4/3.2;overflow:hidden;background:#ECE8E1;cursor:zoom-in}
.avb-une-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform .9s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.avb-une-photo:hover img{transform:scale(1.025)}}
.avb-citation{margin:0;font-family:var(--avb-didone);font-weight:400;font-size:clamp(24px,2.35vw,40px);line-height:1.16;letter-spacing:-.005em}
.avb-citation p{margin:0}
.avb-trait{display:block;width:62px;height:2px;background:var(--avb-encre);margin:24px 0 16px}
.avb-une-nom{margin:0;font-family:var(--avb-didone);font-size:clamp(18px,1.4vw,22px)}
.avb-une-fonction{margin:4px 0 0;font-size:17px;color:var(--avb-gris)}
.avb-une-fonction::first-letter{text-transform:uppercase}
.avb-une-cat{margin:10px 0 0;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--avb-gris)}
.avb .avb-fl{position:absolute;top:calc(50% - 22px);width:44px;height:44px;border-radius:50%;background:rgba(251,249,245,.92);
  box-shadow:0 0 0 1px rgba(10,10,10,.18);display:grid;place-items:center;z-index:2}
.avb-fl svg{width:20px;height:20px;fill:none;stroke:var(--avb-encre);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.avb .avb-fl-g{left:12px}
.avb .avb-fl-d{right:0}
@media (hover:hover){.avb .avb-fl:hover{background:#fff;box-shadow:0 0 0 1px var(--avb-encre)}}
.avb-une-compteur{margin:14px 0 0;font-size:14px;letter-spacing:.14em;color:var(--avb-gris)}

/* index droit */
.avb-index{display:flex;flex-direction:column;min-width:0;padding-bottom:clamp(30px,4vh,46px)}
.avb .avb-f{display:flex;justify-content:space-between;align-items:baseline;width:100%;text-align:left;text-transform:uppercase;font-weight:400;
  font-size:clamp(19px,1.55vw,26px);line-height:1.3;padding:2px 0}
.avb-filtres li:first-child .avb-f{padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--avb-encre)}
.avb-f-n{font-size:15px;letter-spacing:.04em;color:var(--avb-gris)}
.avb .avb-f[aria-pressed="true"]>span:first-child{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em}
@media (hover:hover){.avb .avb-f:hover{color:var(--avb-gris)}}
.avb-recherche{margin-top:28px;padding-top:24px;border-top:1px solid var(--avb-encre)}
.avb-etiquette{display:block;margin:0 0 10px;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.avb-champ{position:relative}
.avb-champ svg{position:absolute;left:14px;top:50%;width:18px;height:18px;margin-top:-9px;fill:none;stroke:var(--avb-encre);stroke-width:1.7;stroke-linecap:round;pointer-events:none}
.avb-q{width:100%;height:46px;margin:0;padding:0 12px 0 44px;border:1px solid #C8C3BC;border-radius:0;background:#fff;color:var(--avb-encre);
  font-family:var(--avb-serif);font-size:17px;-webkit-appearance:none;appearance:none}
.avb-q::placeholder{font-style:italic;color:var(--avb-pale);opacity:1}
.avb-q:focus{outline:none;border-color:var(--avb-encre)}
.avb-q:focus-visible{outline:2px solid var(--avb-encre);outline-offset:2px}
.avb-q::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.avb-q-retour{margin:10px 0 0;font-size:15px;font-style:italic;color:var(--avb-gris)}
.avb-q-retour[hidden]{display:none}
.avb .avb-q-voir{font-style:normal;font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;margin-left:6px;padding:6px 0}
.avb-consigne{display:flex;align-items:center;gap:14px;margin:26px 0 0;padding:16px 18px;background:#EFEBE4;font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.avb-consigne svg{flex:0 0 26px;width:26px;height:26px;fill:none;stroke:var(--avb-encre);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* tous les avis : galerie en colonnes, chaque capture avec sa signature */
.avb-tous{margin-top:clamp(50px,8vh,90px)}
.avb-ouverture{display:flex;align-items:center;gap:clamp(16px,2vw,30px);margin:0 0 clamp(24px,3.4vh,36px)}
.avb-ouverture-titre{margin:0;font-family:var(--avb-didone);font-weight:400;text-transform:uppercase;font-size:clamp(28px,3vw,50px);letter-spacing:.02em;line-height:1}
.avb-filet{flex:1 1 auto;position:relative;height:1px;background:var(--avb-encre);min-width:60px}
.avb-filet i{position:absolute;left:50%;top:-3px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--avb-encre);box-shadow:0 0 0 10px var(--avb-papier)}
.avb-compte{margin:0;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.avb .avb-tout{font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;padding:10px 0}
.avb-tout[hidden],.avb-vide[hidden],.avb-avis[hidden]{display:none}
.avb-vide{margin:40px 0;font-style:italic;font-size:22px;color:var(--avb-gris)}
/* grille à rangées : l'ordre de lecture reste celui des avis (plus récents
   en tête) ; chaque capture est montrée entière, sans recadrage */
.avi-galerie.avb-galerie{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(26px,3.6vh,40px) clamp(16px,1.8vw,26px);
  margin:0;padding:0;max-width:none;columns:auto}
.avb-avis{margin:0;display:block;min-width:0}
.avb .avb-galerie .avi-vignette{display:block;width:100%;padding:10px;background:#EFEBE4;border:0;border-radius:0;cursor:zoom-in;
  box-shadow:none;transform:none;transition:background .3s ease}
.avb .avb-galerie .avi-vignette{aspect-ratio:4/5}
.avb .avb-galerie .avi-vignette img{display:block;width:100%;height:100%;object-fit:contain;border:0;border-radius:0}
@media (hover:hover){.avb .avb-galerie .avi-vignette:hover{background:#E4DED4}}
.avb-legende{margin:10px 0 0;line-height:1.3}
.avb-nom{display:block;font-family:var(--avb-didone);font-size:17px}
.avb-fonction{display:block;margin-top:2px;font-size:15.5px;color:var(--avb-gris)}
.avb-fonction::first-letter{text-transform:uppercase}

/* agrandissement : même couche, mise en page de lecture, navigation 3 / 42 */
.avb-zoom.avi-zoom{background:rgba(10,10,10,.86)}
.avb-zoom .avi-zoom-fond{background:transparent}
.avb-zoom .avi-zoom-barre{display:flex;align-items:center;justify-content:space-between}
.avb-zoom-n{margin:0;color:rgba(255,255,255,.82);font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;letter-spacing:.14em}
.avb-zfl{position:absolute;top:calc(50% - 24px);width:48px;height:48px;border-radius:50%;background:#FBF9F5;border:0;display:grid;place-items:center;cursor:pointer;z-index:3}
.avb-zfl svg{width:22px;height:22px;fill:none;stroke:#0A0A0A;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.avb-zfl-g{left:clamp(10px,3vw,40px)}
.avb-zfl-d{right:clamp(10px,3vw,40px)}
.avb-zfl:focus-visible{outline:2px solid #fff;outline-offset:3px}

@media (max-width:1180px){.avi-galerie.avb-galerie{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1020px) and (min-width:821px){.avb-diapo{grid-template-columns:1fr;row-gap:20px}}
/* mobile : bandeau, titre, avis à la une, recherche, filtres, tous les avis */
@media (max-width:820px){
  .avb-marque{font-size:12px;letter-spacing:.34em}
  .avb .avi-retour-mot{font-size:12px;letter-spacing:.16em}
  .avb-page{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
  .avb-entete-ligne{flex-wrap:wrap;gap:12px 16px}
  .avb-h1{font-size:clamp(64px,20vw,96px)}
  .avb-total{font-size:22px;padding-bottom:6px}
  .avb-devise{font-size:11px;letter-spacing:.2em;line-height:1.6}
  .avb-haut{display:flex;flex-direction:column}
  .avb-filet-v{display:none}
  .avb-diapo{display:block}
  .avb .avb-une-photo{aspect-ratio:4/3.6;margin:0 -4px;width:calc(100% + 8px)}
  .avb-une-texte{padding-top:20px}
  .avb-citation{font-size:clamp(23px,6.6vw,29px)}
  .avb .avb-fl{top:calc((100vw - 28px) * .45 - 22px)}
  .avb .avb-fl-g{left:8px}.avb .avb-fl-d{right:8px}
  .avb-index{margin-top:30px;padding-top:28px;border-top:1px solid var(--avb-encre)}
  .avb-recherche{order:1;margin-top:0;padding-top:0;border-top:0}
  .avb-filtres{order:2;margin-top:24px}
  .avb .avb-f{min-height:44px;align-items:center;font-size:19px}
  .avb-consigne{order:3}
  .avb-q{height:50px}
  .avi-galerie.avb-galerie{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
  .avb .avb-galerie .avi-vignette{padding:6px}
  .avb-nom{font-size:15.5px}.avb-fonction{font-size:14px}
  .avb-ouverture{flex-wrap:wrap;gap:8px 14px}
  .avb-ouverture-titre{flex:1 0 100%;font-size:clamp(26px,7.6vw,34px)}
  .avb-zfl{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:reduce){.avb-une-photo img{transition:none}}

.avb-vue.avb-attente{visibility:hidden}
.avb-vue.avb-entree .avb-h1{opacity:0}
.avb-vue.avb-entree.avb-revele .avb-h1{opacity:1;transition:opacity .55s ease}
.avb-blocs{position:fixed;inset:0;z-index:90;width:100vw;height:100vh;height:100dvh;overflow:hidden;pointer-events:none;background:transparent;contain:strict}
.avb-blocs[hidden]{display:none}
.avb-bloc{position:absolute;overflow:hidden;will-change:transform,opacity;backface-visibility:hidden;transform:translate3d(0,0,0)}
.avb-bloc i,.avb-bloc b{position:absolute;display:block;background-repeat:no-repeat}
.avb-bloc b{transform-origin:0 0;height:1px}
.avb-blocs.avb-ouvre .avb-bloc{transition:transform 1050ms cubic-bezier(.65,0,.25,1),opacity 420ms ease}

/* ---- Distinction éditoriale extérieure (au-dessus des avis, hors compteur, sans agrandissement) */
.avb-dist{margin:0 0 clamp(34px,5vh,60px)}
.avb-dist-tete{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.avb-dist-titre{margin:0;font-family:var(--avb-didone);font-weight:400;text-transform:uppercase;font-size:clamp(24px,2.6vw,42px);line-height:1.05;letter-spacing:.02em}
.avb-dist-tete .avb-filet{flex:1 1 auto;min-width:32px}
.avb-dist-sous{margin:12px 0 0;font-size:clamp(12px,1vw,15px);font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--avb-gris)}
.avb-dist-figure{margin:clamp(22px,3.4vh,36px) auto 0;max-width:1180px}
.avb .avb-dist-image{display:block;border-radius:10px;overflow:hidden;line-height:0;
  box-shadow:0 1px 0 rgba(10,10,10,.06),0 22px 48px -28px rgba(10,10,10,.42);transition:box-shadow .35s ease,transform .35s ease}
.avb-dist-image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff}
@media (hover:hover){.avb .avb-dist-image:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(10,10,10,.06),0 30px 60px -30px rgba(10,10,10,.5)}}
.avb .avb-dist-image:focus-visible{outline:2px solid var(--avb-encre);outline-offset:4px}
.avb-dist-source{margin:14px 0 0;text-align:center}
.avb .avb-dist-source a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;font-size:clamp(13px,1vw,15px);
  letter-spacing:.08em;color:var(--avb-gris);text-decoration:underline;text-decoration-color:var(--avb-filet);text-underline-offset:5px}
@media (hover:hover){.avb .avb-dist-source a:hover{color:var(--avb-encre);text-decoration-color:var(--avb-encre)}}
.avb-dist-fl{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5}
.avb-dist-sep{display:flex;align-items:center;gap:14px;margin:clamp(34px,5vh,56px) auto 0;max-width:420px}
.avb-dist-sep span{flex:1;height:1px;background:var(--avb-filet)}
.avb-dist-sep i{width:7px;height:7px;border-radius:50%;background:var(--avb-encre)}
@media (max-width:820px){
  .avb-dist-figure{max-width:none;margin-left:calc(-1 * max(18px,env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(18px,env(safe-area-inset-right,0px)))}
  .avb .avb-dist-image{border-radius:0;box-shadow:0 18px 36px -26px rgba(10,10,10,.4)}
  .avb-dist-sous{letter-spacing:.16em}
}
@media (prefers-reduced-motion:reduce){.avb .avb-dist-image{transition:none}}
