/* ==========================================================
   TEST — Grammaire Seed appliquée aux couleurs LIVLAB
   Structure/typo : principes du DESIGN.md fourni
   Couleurs : palette LIVLAB uniquement
   ========================================================== */
/* polices chargées via <link> non-bloquant dans le <head> (perf : plus d'@import render-blocking) */

:root{
  /* --- couleurs LIVLAB (rôles calqués sur la grammaire Seed) --- */
  --dg:#002B14;            /* dark section + encre primaire */
  --dg-soft:#0a3f22;
  --canvas:#F4F6F2;        /* page canvas — beige LIVLAB éclairci */
  --stone:#EBEFE8;         /* surface secondaire (beige LIVLAB) */
  --bgreen:#76DB5D;        /* accent : badges + petites emphases UNIQUEMENT */
  --orange:#FE581B;
  --ink-60:rgba(0,43,20,.66);
  --ink-45:rgba(0,43,20,.7);        /* texte secondaire — 4,5:1 minimum sur canvas */
  --line:rgba(0,43,20,.14);
  --line-light:rgba(244,246,242,.24);

  --font-sans:'IBM Plex Sans',ui-sans-serif,system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;

  --w-light:300;--w-350:350;--w-reg:400;--w-med:500;

  --s-8:8px;--s-16:16px;--s-24:24px;--s-32:32px;--s-40:40px;
  --s-48:48px;--s-56:56px;--s-64:64px;--s-80:80px;--s-96:96px;--s-128:128px;

  --maxw:1200px;
  --r-card:16px;--r-large:32px;--r-input:8px;--r-full:1000px;
}

*{box-sizing:border-box;}
html{overflow-x:clip;}
body{margin:0;background:var(--canvas);color:var(--dg);
  font-family:var(--font-sans);font-size:16px;font-weight:var(--w-reg);line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{max-width:100%;display:block;}
a{color:var(--dg);}
a:hover{color:var(--dg-soft);}

/* ---------- primitives typographiques ---------- */
/* signature Seed : graisse 300–350 aux grandes tailles, tracking resserré */
.display{font-size:clamp(38px,5.6vw,66px);font-weight:var(--w-light);line-height:1.04;letter-spacing:-.028em;margin:0;text-wrap:balance;}
.h-lg{font-size:clamp(30px,3.8vw,44px);font-weight:var(--w-light);line-height:1.08;letter-spacing:-.022em;margin:0;text-wrap:balance;}
.h-xl{font-size:clamp(36px,6.4vw,82px);font-weight:var(--w-light);line-height:1.0;letter-spacing:-.036em;margin:0;text-wrap:balance;}
/* titre isolé : les mots se posent un à un à l'approche */
.nine-h{max-width:12em;margin-inline:auto;}
#nine .sec-head{max-width:none;}
.nine-h .w{display:inline-block;opacity:.12;transform:translateY(.16em);
  transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1);}
.nine-h.lit .w{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.nine-h .w{opacity:1;transform:none;transition:none;}}
.h-md{font-size:clamp(24px,2.6vw,32px);font-weight:var(--w-light);line-height:1.14;letter-spacing:-.018em;margin:0;}
.h-sm{font-size:22px;font-weight:var(--w-350);line-height:1.2;letter-spacing:-.014em;margin:0;}
.lead{font-size:clamp(17px,1.5vw,20px);font-weight:var(--w-reg);line-height:1.55;color:var(--ink-60);margin:0;}
.body{font-size:16px;line-height:1.6;color:var(--ink-60);margin:0;}
.caption{font-size:14px;line-height:1.45;color:var(--ink-45);margin:0;}
/* mono = codes produit, listes d'ingrédients, données (rôle Seed Sans Mono) */
.mono{font-family:var(--font-mono);font-size:12px;font-weight:var(--w-reg);letter-spacing:.015em;}
.eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:var(--w-reg);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}

/* ---------- structure : bandes pleine largeur alternées ---------- */
.band{padding:clamp(56px,9vh,96px) 0;}
.band-canvas{background:var(--canvas);}
.band-stone{background:var(--stone);}
.band-dark{background:var(--dg);color:var(--canvas);}
.band-dark .lead,.band-dark .body{color:rgba(244,246,242,.74);}
.band-dark .caption,.band-dark .eyebrow{color:rgba(244,246,242,.6);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);}

/* ---------- boutons : pilule, aucune ombre ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-8);
  font-family:var(--font-sans);font-size:16px;font-weight:var(--w-reg);
  border:none;border-radius:var(--r-full);padding:16px 24px;cursor:pointer;
  text-decoration:none;white-space:nowrap;transition:background .18s ease,color .18s ease;}
.btn-fill{background:var(--dg);color:var(--canvas);}
.btn-fill:hover{background:var(--dg-soft);color:var(--canvas);}
.btn-ghost{background:transparent;color:var(--canvas);border:1.5px solid var(--canvas);}
.btn-accent{background:var(--bgreen);color:var(--dg);font-weight:var(--w-med);padding:18px 32px;}
.btn-accent:hover{background:color-mix(in oklab,var(--bgreen) 82%,white);color:var(--dg);}
.btn-ghost:hover{background:var(--canvas);color:var(--dg);}
.btn-invert{background:var(--canvas);color:var(--dg);border:1.5px solid var(--dg);}
.btn-invert:hover{background:var(--dg);color:var(--canvas);}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-size:16px;
  text-decoration:none;border-bottom:1.5px solid currentColor;padding:7px 0;color:inherit;}
.link-arrow:hover{opacity:.7;}

/* ---------- badges / pilules ---------- */
.badge{display:inline-block;background:var(--bgreen);color:var(--dg);
  border-radius:var(--r-full);padding:6px 12px;font-size:12px;font-weight:var(--w-med);letter-spacing:.01em;}
.pill-code{display:inline-block;border:1.5px solid currentColor;border-radius:var(--r-full);
  padding:5px 12px;font-family:var(--font-mono);font-size:12px;font-weight:var(--w-reg);letter-spacing:.05em;}

/* ---------- barre d'annonce + navigation ---------- */
.promo{background:var(--stone);color:var(--dg);height:40px;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:var(--w-med);letter-spacing:.06em;text-transform:uppercase;gap:10px;padding:0 16px;text-align:center;}
.promo .dot{width:6px;height:6px;border-radius:50%;background:var(--bgreen);flex:0 0 auto;}
.nav{position:sticky;top:0;z-index:60;background:var(--canvas);border-bottom:1px solid var(--line);}
.nav-in{max-width:var(--maxw);margin:0 auto;height:72px;padding:0 var(--s-24);display:flex;align-items:center;gap:var(--s-32);}
.nav-mark{display:flex;align-items:center;text-decoration:none;}
.nav-mark img{height:22px;width:auto;}
.nav-links{display:flex;gap:var(--s-24);margin-left:var(--s-16);}
.nav-links a{font-size:15px;text-decoration:none;color:var(--ink-60);}
.nav-links a:hover{color:var(--dg);}
.nav-act{margin-left:auto;display:flex;align-items:center;gap:12px;}
.nav-act .btn{padding:11px 20px;font-size:14px;}
@media(max-width:820px){.nav-links{display:none;}}

/* ---------- hero : 50/50 texte gauche / produit droite ---------- */
.hero{background:var(--canvas);padding:clamp(40px,7vh,72px) 0 0;}
.hero-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);
  display:grid;grid-template-columns:.72fr 1.28fr;gap:var(--s-40);align-items:end;min-height:min(82vh,780px);}
.hero-copy{padding-bottom:clamp(40px,8vh,88px);}
.hero-copy .badge{margin-bottom:var(--s-24);}
.hero-copy .lead{margin-top:var(--s-24);max-width:34ch;}
.hero-actions{margin-top:var(--s-32);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-16) var(--s-24);}
.hero-meta{margin-top:var(--s-24);display:flex;flex-wrap:wrap;gap:8px 20px;}
/* preuve sociale : la présentation Trustpilot, en sobre */
.tp{margin-top:var(--s-32);display:flex;flex-direction:column;gap:9px;align-items:flex-start;}
.tp-stars{display:flex;gap:3px;}
.tp-star{width:26px;height:26px;background:#00B67A;display:grid;place-items:center;}
.tp-star::after{content:"";width:17px;height:17px;background:#fff;
  clip-path:polygon(50% 0%,61.8% 35.5%,100% 35.5%,69% 57.5%,80.9% 100%,50% 73.5%,19.1% 100%,31% 57.5%,0% 35.5%,38.2% 35.5%);}
.tp-star-half{background:linear-gradient(90deg,#00B67A 0 58%,rgba(0,43,20,.14) 58% 100%);}
.tp-line{margin:0;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.015em;color:var(--ink-60);}
.tp-line strong{font-weight:var(--w-med);color:#006B48;}
.hero-meta span{font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);}
.hero-shot{align-self:end;display:flex;justify-content:center;align-items:flex-end;}
.hero-shot img{width:100%;max-width:100%;height:auto;max-height:min(82vh,760px);object-fit:contain;object-position:bottom center;}
@media(max-width:900px){
  .hero-in{grid-template-columns:1fr;gap:var(--s-24);min-height:0;}
  .hero-copy{padding-bottom:var(--s-16);}
  .hero-shot img{max-height:none;width:100%;}
}

/* ---------- grille de cartes produit (section sombre) ---------- */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-16);}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-16);}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-16);}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr;}}

/* carte posée à même la surface, sans conteneur visible */
.card{background:transparent;border-radius:var(--r-card);padding:var(--s-16);}
.card-figure{border-radius:var(--r-card);overflow:hidden;background:rgba(244,246,242,.06);aspect-ratio:4/3;}
.card-figure img{width:100%;height:100%;object-fit:cover;}
.card .pill-code{margin-bottom:12px;}
.card-name{font-size:24px;font-weight:var(--w-350);line-height:1.18;letter-spacing:-.02em;margin:14px 0 8px;}
.card-note{font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:rgba(244,246,242,.6);margin:0;}
.band-canvas .card-figure,.band-stone .card-figure{background:rgba(0,43,20,.05);}
.band-canvas .card-note,.band-stone .card-note{color:var(--ink-45);}

/* ---------- section deux colonnes 40/60 ---------- */
.split{display:grid;grid-template-columns:36% 1fr;gap:clamp(32px,5vw,72px);align-items:center;}
.split-rev{display:grid;grid-template-columns:1fr 36%;gap:clamp(32px,5vw,72px);align-items:center;}
.split .fig-cap img,.split-rev .fig-cap img{border-radius:var(--r-large);}
@media(max-width:900px){.split,.split-rev{grid-template-columns:1fr;gap:var(--s-32);}}
.figure-lg{border-radius:0;overflow:visible;background:transparent;}
.figure-lg img{width:100%;height:auto;}
.fig-duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px);
  margin-top:clamp(28px,4vw,52px);align-items:start;}
.fig-duo img{border-radius:var(--r-large);}
@media(max-width:820px){.fig-duo{grid-template-columns:1fr;}}

/* ---------- liste de spécifications ---------- */
.spec-list{margin:var(--s-32) 0 0;padding:0;list-style:none;border-top:1px solid var(--line);}
.band-dark .spec-list{border-color:var(--line-light);}
.spec-list li{display:grid;grid-template-columns:auto 1fr;gap:var(--s-24);
  padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.band-dark .spec-list li{border-color:var(--line-light);}
.spec-list .k{font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);white-space:nowrap;}
.band-dark .spec-list .k{color:rgba(244,246,242,.6);}
.spec-list .v{font-size:16px;line-height:1.5;}

/* ---------- bloc tarif ---------- */
.price-row{display:flex;align-items:baseline;gap:12px;margin-top:var(--s-24);}
.price-now{font-size:clamp(40px,5vw,60px);font-weight:var(--w-light);letter-spacing:-.03em;line-height:1;}
.price-now.accent{color:var(--bgreen);}
.price-unit{font-size:16px;color:rgba(244,246,242,.7);}
.price-was{font-size:17px;color:rgba(244,246,242,.5);text-decoration:line-through;}
.fine{font-size:14px;line-height:1.6;color:rgba(244,246,242,.62);max-width:56ch;margin:var(--s-24) 0 0;}

/* ---------- tableau comparatif ---------- */
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cmp{width:100%;min-width:520px;border-collapse:collapse;text-align:left;}
.cmp th,.cmp td{padding:18px var(--s-16);border-bottom:1px solid var(--line);vertical-align:top;}
.cmp thead th{font-family:var(--font-mono);font-size:12px;font-weight:var(--w-reg);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-45);border-bottom:1px solid var(--dg);}
.cmp td:first-child{font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);white-space:nowrap;}
.cmp td:nth-child(2){color:var(--ink-45);}
.cmp td:last-child{font-weight:var(--w-med);}
.cmp tbody tr:last-child td{border-bottom:none;}
@media(max-width:700px){
  .cmp thead{display:none;}
  .cmp tbody tr{display:grid;grid-template-columns:1fr;padding:16px 0;border-bottom:1px solid var(--line);}
  .cmp td{border:none;padding:2px 0;white-space:normal;}
  .cmp td:nth-child(2)::before{content:"Le marché : ";color:var(--ink-45);}
  .cmp td:last-child::before{content:"Mix Longévité : ";font-weight:var(--w-reg);color:var(--ink-45);}
}

/* ---------- liste « ce qu'il n'y a pas dedans » ---------- */
.nolist{list-style:none;margin:var(--s-32) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.nolist li{background:var(--stone);padding:20px var(--s-16);font-size:15px;line-height:1.4;position:relative;padding-left:44px;}
.nolist li::before{content:"✕";position:absolute;left:16px;top:20px;font-size:13px;color:var(--ink-45);}
.band-canvas .nolist li{background:var(--canvas);}
@media(max-width:820px){.nolist{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.nolist{grid-template-columns:1fr;}}

/* ---------- addition au défilement ---------- */
.val-track{position:relative;height:270vh;}
.val-hold{position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:clamp(12px,2.2vh,28px);
  max-width:var(--maxw);margin:0 auto;padding:clamp(20px,4vh,56px) var(--s-24);}
.val-sum{text-align:center;}
.val-sum-num{display:block;font-family:var(--font-sans);font-weight:var(--w-350);
  font-size:clamp(46px,8vw,116px);line-height:1;letter-spacing:-.035em;
  color:var(--canvas);font-variant-numeric:tabular-nums;}
.val-sum-lbl{display:block;margin-top:10px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(244,246,242,.6);}
.val-list{list-style:none;margin:0;padding:0;width:100%;max-width:640px;}
.val-list li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-24);
  padding:clamp(4px,.95vh,11px) 0;border-bottom:1px solid rgba(244,246,242,.12);
  font-size:clamp(13px,1.4vw,16px);color:rgba(244,246,242,.34);
  transform:translateY(6px);transition:color .3s ease,transform .3s ease,opacity .3s ease;}
.val-list li.on{color:var(--canvas);transform:none;}
.vl-price{font-family:var(--font-mono);font-size:clamp(11px,1.15vw,13px);letter-spacing:.015em;
  white-space:nowrap;color:rgba(244,246,242,.5);transition:color .3s ease;}
.val-list li.on .vl-price{color:var(--bgreen);}
.val-final{width:100%;max-width:640px;display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--s-24);padding-top:clamp(10px,1.6vh,18px);
  opacity:0;transform:translateY(10px);transition:opacity .4s ease,transform .4s ease;}
.val-final.on{opacity:1;transform:none;}
.vf-name{font-size:clamp(15px,1.7vw,19px);color:var(--canvas);}
.vf-price{font-family:var(--font-sans);font-size:clamp(26px,3.1vw,38px);font-weight:var(--w-350);
  letter-spacing:-.02em;color:var(--bgreen);white-space:nowrap;}
.vf-price s{font-size:.5em;color:rgba(244,246,242,.45);margin-right:10px;}
@media(max-width:680px){.val-track{height:250vh;}}

/* ramené à la journée : la conclusion de l'addition */
.perday{display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:clamp(10px,1.4vh,18px);
  padding:clamp(40px,6vh,72px) var(--s-24) clamp(56px,8vh,96px);}
.pd-num{font-family:var(--font-sans);font-weight:var(--w-light);
  font-size:clamp(56px,9vw,124px);line-height:.85;letter-spacing:-.04em;
  color:var(--bgreen);font-variant-numeric:tabular-nums;white-space:nowrap;}
.pd-copy{max-width:38ch;}
.pd-label{display:block;font-family:var(--font-mono);font-size:clamp(14px,1.6vw,19px);
  letter-spacing:.2em;text-transform:uppercase;color:var(--canvas);}
.pd-line{margin:14px 0 0;font-size:clamp(16px,1.9vw,22px);line-height:1.45;
  letter-spacing:-.015em;color:var(--canvas);}

/* ---------- bandeau photo pleine largeur : la formulatrice ---------- */
.band-bleed{background:var(--canvas);}
.fm-shot{position:relative;margin:0;overflow:hidden;
  min-height:clamp(380px,58vh,620px);display:grid;}
.fm-shot img{grid-area:1/1;width:100%;height:100%;object-fit:cover;object-position:50% 62%;}
.fm-over{grid-area:1/1;position:relative;display:flex;align-items:flex-start;
  padding:clamp(32px,6vh,72px) var(--s-24);
  background:linear-gradient(180deg,rgba(0,43,20,.82) 0%,rgba(0,43,20,.58) 44%,rgba(0,43,20,0) 82%);}
.fm-quote{max-width:var(--maxw);margin:0 auto;width:100%;}
.fm-quote p{margin:0;max-width:26ch;font-family:var(--font-sans);font-weight:var(--w-light);
  font-size:clamp(24px,3.6vw,50px);line-height:1.14;letter-spacing:-.026em;color:var(--canvas);}
.fm-quote cite{display:block;margin-top:clamp(16px,2.4vh,26px);font-family:var(--font-mono);
  font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--bgreen);}
.fm-under{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);align-items:start;
  padding-top:clamp(32px,5vh,56px);padding-bottom:clamp(48px,7vh,88px);}
.fm-id-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--s-16);
  align-items:center;margin-top:16px;}
.fm-name{margin:0;font-size:clamp(20px,2.2vw,26px);font-weight:var(--w-350);letter-spacing:-.02em;line-height:1.15;}
.fm-under .body{max-width:52ch;}
@media(max-width:820px){
  .fm-shot{min-height:clamp(340px,64vh,520px);}
  .fm-shot img{object-position:56% 62%;}
  .fm-under{grid-template-columns:1fr;}
}

/* ---------- bandeau presse défilant ---------- */
.press-band{background:var(--dg);border:none;
  padding:clamp(18px,2.4vw,26px) 0;overflow:hidden;}
.press-band-label{display:block;max-width:var(--maxw);margin:0 auto clamp(12px,1.4vw,18px);
  padding:0 var(--s-24);font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(244,246,242,.6);}
.press-band-mask{overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.press-band-run{display:flex;width:max-content;animation:press-scroll 78s linear infinite;}
.press-band:hover .press-band-run{animation-play-state:paused;}
.press-band-set{display:flex;align-items:center;flex:0 0 auto;}
.press-band-set span{font-family:var(--font-sans);font-weight:var(--w-350);
  font-size:clamp(17px,1.9vw,25px);letter-spacing:-.015em;color:var(--canvas);
  padding:0 clamp(20px,2.6vw,40px);white-space:nowrap;line-height:1.2;
  border-right:1px solid rgba(244,246,242,.22);}
@keyframes press-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.press-band-run{animation:none;}}

/* ---------- citation + statistiques ---------- */
.pull{margin:0;font-size:clamp(20px,2.4vw,28px);font-weight:var(--w-light);line-height:1.32;
  letter-spacing:-.018em;max-width:34ch;}
.pull cite{display:block;margin-top:var(--s-16);font-family:var(--font-mono);font-size:12px;
  font-style:normal;letter-spacing:.015em;color:var(--ink-45);}
.stat-row{margin-top:clamp(40px,6vh,64px);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-24);
  border-top:1px solid var(--line);padding-top:var(--s-32);}
.stat-n{display:block;font-size:clamp(28px,3.4vw,40px);font-weight:var(--w-light);letter-spacing:-.028em;line-height:1;}
.stat-k{display:block;margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);}
@media(max-width:640px){.stat-row{grid-template-columns:1fr;gap:var(--s-24);}}

/* ---------- figures légendées ---------- */
.fig-cap{margin:0;}
.fig-cap figcaption{margin-top:14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;
  line-height:1.5;color:var(--ink-45);}
.band-dark .fig-cap figcaption{color:rgba(244,246,242,.66);}
.figure-lg img{border-radius:var(--r-large);}
.figure-lg .fig-cap img{border-radius:var(--r-large);}
.fig-cap img{display:block;width:100%;height:auto;}

/* ---------- liste des laboratoires (avec vignettes) ---------- */
.lab-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.lab-list li{display:grid;grid-template-columns:56px 1fr;gap:var(--s-16);align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line);}
.lab-list img{width:56px;height:56px;border-radius:var(--r-input);object-fit:cover;}
.lab-n{display:block;font-size:16px;font-weight:var(--w-med);letter-spacing:-.01em;}
.lab-d{display:block;margin-top:3px;font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);}

/* ---------- fondateurs ---------- */
.founders{margin-top:var(--s-32);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-32);}
.founders>div{display:grid;grid-template-columns:64px 1fr;gap:var(--s-16);align-items:start;}
.founders img{width:64px;height:64px;border-radius:50%;object-fit:cover;}
.f-n{display:block;font-size:16px;font-weight:var(--w-med);letter-spacing:-.01em;}
.f-r{display:block;margin-top:2px;font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:var(--ink-45);}
.f-q{margin:10px 0 0;font-size:14px;line-height:1.5;color:var(--ink-60);font-style:italic;}
@media(max-width:880px){.founders{grid-template-columns:1fr;gap:var(--s-24);}}
.f-n.sm{font-size:15px;}

.lv-map{
  --lv-forest:#002B14;
  --lv-green:#76DB5D;
  --lv-snow:#F4F6F2;
  --lv-stone:#E7EAE2;
  --lv-frost:rgba(0,43,20,.18);
  --lv-pewter:rgba(0,43,20,.6);
  --lv-sans:var(--font-sans);
  --lv-mono:var(--font-mono);
  --lv-ease:cubic-bezier(.22,.61,.36,1);

  color:var(--lv-forest);
  font-family:var(--lv-sans);
}
.lv-map *{box-sizing:border-box;}

.lv-inner{max-width:100%;margin:0;padding:0;}
.lv-eyebrow{
  font-family:var(--lv-mono);font-size:12px;letter-spacing:.015em;
  text-transform:uppercase;color:var(--lv-pewter);margin:0;
}
.lv-title{
  font-size:clamp(26px,3.2vw,44px);line-height:1.1;letter-spacing:-.02em;
  font-weight:350;margin:16px 0 0;max-width:20ch;
}
.lv-lede{
  font-size:17px;line-height:1.55;letter-spacing:-.18px;color:var(--lv-pewter);
  max-width:46ch;margin:16px 0 0;
}

/* ---------- Cadre ---------- */
.lv-frame{
  position:relative;margin-top:40px;
  border:1.5px solid var(--lv-frost);
  border-radius:16px;overflow:hidden;
  background:var(--lv-snow);
  aspect-ratio:1024 / 496;
  background:var(--lv-snow);border:1px solid var(--lv-frost);border-radius:16px;
}
.lv-frame svg{display:block;width:100%;height:100%;}
/* encart : site hors cadre (page Nektium) */
.lv-inset{position:absolute;left:16px;bottom:16px;z-index:2;display:flex;align-items:center;gap:12px;
  max-width:300px;padding:10px 14px 10px 10px;background:var(--lv-snow);
  border:1px solid var(--lv-frost);border-radius:10px;}
.lv-frame svg.lv-inset__map{width:62px;height:auto;flex:none;overflow:visible;}
.lv-inset__txt{display:grid;gap:3px;min-width:0;}
.lv-inset__txt p{margin:0;}
.lv-inset__name{font-family:var(--lv-mono);font-size:12px;font-weight:500;letter-spacing:.015em;text-transform:uppercase;color:var(--lv-forest);}
.lv-inset__sub{font-family:var(--lv-sans);font-size:12.5px;color:var(--lv-forest);}
.lv-inset__addr{font-family:var(--lv-mono);font-size:10px;line-height:1.45;letter-spacing:.015em;text-transform:uppercase;color:var(--lv-pewter);}
@media(max-width:900px){
  .lv-frame:has(.lv-inset){overflow:visible;margin-bottom:calc(var(--inset-h,96px) + 12px);}
  .lv-inset{left:0;right:0;bottom:auto;top:calc(100% + 12px);max-width:none;}
}

.lv-land{fill:var(--lv-stone);stroke:var(--lv-frost);stroke-width:.8;vector-effect:non-scaling-stroke;}

.lv-leader{stroke:var(--lv-forest);stroke-width:1;vector-effect:non-scaling-stroke;fill:none;opacity:.26;stroke-linejoin:miter;}
.lv-lab{pointer-events:none;}
.lv-lab__name{
  font-family:var(--lv-mono);font-size:12px;font-weight:500;
  letter-spacing:.015em;text-transform:uppercase;
  fill:var(--lv-forest);
}
.lv-lab__sub{
  font-family:var(--lv-sans);font-size:11.5px;
  fill:var(--lv-forest);
}
.lv-lab__city{
  font-family:var(--lv-mono);font-size:10px;letter-spacing:.015em;
  text-transform:uppercase;fill:var(--lv-pewter);
}
.lv-labels{transition:opacity .3s var(--lv-ease);}

.lv-pin{cursor:pointer;}
.lv-pin__halo{fill:var(--lv-green);opacity:.18;transition:opacity .3s var(--lv-ease);}
.lv-pin__dot{fill:var(--lv-green);stroke:var(--lv-forest);stroke-width:1.4;vector-effect:non-scaling-stroke;}
.lv-pin__sq{fill:var(--lv-forest);stroke:var(--lv-green);stroke-width:1.6;vector-effect:non-scaling-stroke;}
.lv-pin.is-active .lv-pin__sq{fill:var(--lv-green);stroke:var(--lv-forest);}
.lv-pin.is-active .lv-pin__halo{opacity:.45;}
.lv-pin.is-active .lv-pin__dot{fill:var(--lv-forest);stroke:var(--lv-green);}

/* ---------- Fiche ---------- */
.lv-card{
  position:absolute;z-index:3;pointer-events:none;
  background:var(--lv-snow);
  border:1.5px solid var(--lv-forest);
  border-radius:12px;padding:12px 14px;
  min-width:190px;max-width:250px;
  opacity:0;transform:translate(-50%,calc(-100% - 16px)) scale(.97);
  transition:opacity .22s var(--lv-ease),transform .22s var(--lv-ease);
}
.lv-card.is-on{opacity:1;transform:translate(-50%,calc(-100% - 16px)) scale(1);}
.lv-card__name{font-size:15px;font-weight:500;line-height:1.3;margin:0;}
.lv-card__active{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.015em;
  line-height:1.4;margin:6px 0 0;
}
.lv-card__place{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.015em;
  text-transform:uppercase;margin:8px 0 0;color:var(--lv-pewter);
}

/* ---------- Légende mobile ---------- */
.lv-legend{display:none;list-style:none;margin:20px 0 0;padding:0;}
.lv-legend li{border-top:1px solid var(--lv-frost);}
.lv-legend button{
  width:100%;display:flex;align-items:baseline;gap:10px;
  background:none;border:0;padding:11px 0;text-align:left;cursor:pointer;
  font-family:var(--lv-sans);color:var(--lv-forest);
}
.lv-legend .dot{
  width:8px;height:8px;border-radius:1000px;flex:0 0 8px;
  background:var(--lv-green);border:1px solid var(--lv-forest);
  transform:translateY(-1px);
}
.lv-legend .nm{font-family:var(--lv-mono);font-size:11px;letter-spacing:.015em;text-transform:uppercase;font-weight:500;}
.lv-legend .sb{font-size:12px;color:var(--lv-pewter);margin-left:auto;text-align:right;}

.lv-key{
  display:flex;gap:24px;margin-top:14px;
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.015em;
  text-transform:uppercase;color:var(--lv-pewter);
}
.lv-key span{display:flex;align-items:center;gap:8px;}
.lv-key i{width:9px;height:9px;display:block;}
.lv-key .k-dot{border-radius:1000px;background:var(--lv-green);border:1px solid var(--lv-forest);}
.lv-key .k-sq{background:var(--lv-forest);border:1px solid var(--lv-green);}
.lv-foot{
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:20px;font-family:var(--lv-mono);font-size:11px;
  letter-spacing:.015em;text-transform:uppercase;color:var(--lv-pewter);
}

@media (max-width:860px){
  .lv-title{font-size:22px;}
  .lv-lede{font-size:15px;}
  .lv-frame{margin-top:24px;}
  .lv-labels{display:none;}
  .lv-pin__halo{opacity:.3;}
  .lv-card{min-width:160px;max-width:200px;padding:10px 12px;}
  .lv-card__name{font-size:13px;}
}
@media (prefers-reduced-motion:reduce){
  .lv-card,.lv-pin__halo,.lv-pin__dot,.lv-labels{transition:none;}
}

/* ---------- l'alliance des neuf ---------- */
.lv-nine{position:relative;padding-bottom:clamp(48px,8vh,96px);}
.lv-rail{position:sticky;top:0;height:0;z-index:2;pointer-events:none;}
.lv-rail__in{position:relative;max-width:var(--maxw);margin:0 auto;
  padding:0 var(--s-24);transform:translateY(50vh);}
.lv-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  color:var(--ink-45);opacity:0;transition:opacity .5s cubic-bezier(.22,.61,.36,1);}
.lv-count.is-on{opacity:1;}
.lv-count b{color:var(--dg);font-weight:var(--w-med);}
.lv-item{min-height:82vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,40%);
  gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(32px,6vh,56px) 0;}
.lv-flag{display:inline-block;vertical-align:baseline;margin-right:9px;
  width:15px;height:10px;border-radius:1px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,43,20,.14);}
.lv-flag svg{display:block;width:100%;height:100%;}
.lv-lab{margin:0 0 clamp(14px,1.6vw,22px);padding-left:96px;
  font-family:var(--font-mono);font-size:clamp(11px,1.05vw,13px);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-60);line-height:1.5;}
.lv-punch{position:relative;margin:0;padding-left:96px;max-width:22ch;
  font-family:var(--font-sans);font-weight:var(--w-light);
  font-size:clamp(24px,3.2vw,44px);line-height:1.22;letter-spacing:-.028em;
  color:var(--dg);text-wrap:pretty;}
.lv-punch::before{content:"";position:absolute;left:0;top:.62em;width:64px;height:1px;
  background:var(--bgreen);transform:scaleX(0);transform-origin:left;
  transition:transform .9s cubic-bezier(.22,.61,.36,1);}
.lv-item.is-in .lv-punch::before{transform:scaleX(1);}
.lv-punch b{font-weight:var(--w-350);color:var(--bgreen);}
.lv-punch .m{display:inline-block;overflow:hidden;vertical-align:bottom;
  padding-bottom:.16em;margin-bottom:-.16em;}
.lv-punch .w{display:inline-block;transform:translateY(115%);
  transition:transform .95s cubic-bezier(.22,.61,.36,1);}
.lv-item.is-in .lv-punch .w{transform:translateY(0);}
.lv-fig{margin:0;will-change:transform;position:relative;}
/* vignette d'actif épinglée sur la photo du laboratoire — même objet que les cartes du dessus */
.lv-chip{position:absolute;z-index:2;top:clamp(-22px,-1.6vw,-12px);left:clamp(-22px,-1.6vw,-12px);
  width:clamp(64px,7.4vw,104px);aspect-ratio:1;padding:4px;border-radius:14px;background:var(--canvas);
  box-shadow:0 1px 2px rgba(0,43,20,.06),0 10px 24px rgba(0,43,20,.14);
  opacity:0;transform:translateY(10px) rotate(-3deg);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1) .62s,transform .8s cubic-bezier(.22,.61,.36,1) .62s;}
.lv-fig .lv-chip img{width:100%;height:100%;object-fit:cover;border-radius:10px;opacity:1;transform:none;transition:none;}
.lv-item.is-in .lv-chip{opacity:1;transform:rotate(-3deg);}
@media(max-width:900px){.lv-chip{top:-12px;left:-6px;width:72px;padding:3px;border-radius:12px;}.lv-fig .lv-chip img{border-radius:9px;}}
@media(prefers-reduced-motion:reduce){.lv-chip{opacity:1;transform:none;transition:none;}}
@media(min-width:901px){
  /* desktop : le texte se pose, l'image suit avec un léger retard puis dérive au défilement */
  .lv-fig{transform:translate3d(0,var(--py,0px),0);}
  .lv-fig img{transition:opacity 1s cubic-bezier(.22,.61,.36,1) .34s,transform 1.25s cubic-bezier(.22,.61,.36,1) .34s;}
  .lv-fig figcaption{transition-delay:.72s;}
}
@media(prefers-reduced-motion:reduce){.lv-fig{transform:none;}}
.lv-fig img{display:block;width:100%;height:auto;border-radius:var(--r-large);
  opacity:0;transform:scale(1.03);
  transition:opacity .9s cubic-bezier(.22,.61,.36,1) .1s,transform 1.1s cubic-bezier(.22,.61,.36,1) .1s;}
.lv-item.is-in .lv-fig img{opacity:1;transform:none;}
.lv-fig figcaption{margin-top:14px;font-family:var(--font-mono);font-size:10.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-45);line-height:1.6;
  opacity:0;transition:opacity .7s cubic-bezier(.22,.61,.36,1) .5s;}
.lv-item.is-in .lv-fig figcaption{opacity:1;}
@media(max-width:900px){
  .lv-rail{display:none;}
  .lv-item{grid-template-columns:1fr;grid-template-areas:"fig" "txt";
    min-height:auto;gap:28px;padding:clamp(28px,5vh,44px) 0;}
  .lv-col{grid-area:txt;}
  .lv-fig{grid-area:fig;max-width:420px;}
  .lv-lab{padding-left:0;padding-top:30px;margin-bottom:10px;font-size:11px;}
  .lv-punch{padding-left:0;padding-top:0;font-size:22px;max-width:none;}
  .lv-punch::before{top:-30px;width:40px;}
}
@media(prefers-reduced-motion:reduce){
  .lv-punch .w,.lv-punch::before,.lv-fig img,.lv-fig figcaption{transform:none;transition:none;opacity:1;}
}

.lb-labs{
  --lv-forest:var(--dg); --lv-green:var(--bgreen); --lv-snow:var(--canvas);
  --lv-stone:var(--stone); --lv-frost:rgba(0,43,20,.18); --lv-pewter:var(--ink-60);
  --lv-sans:var(--font-sans);
  --lv-mono:var(--font-mono);
  --lv-ease:cubic-bezier(.22,.61,.36,1);
  color:var(--lv-forest);font-family:var(--lv-sans);
}
.lb-labs *{box-sizing:border-box;}
.lb-labs .lb-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);}


/* ---------- rail ---------- */
.lb-labs .lb-rail{
  margin-top:52px;display:flex;gap:20px;overflow-x:auto;
  scroll-snap-type:x mandatory;padding:4px 32px 28px;
  scrollbar-width:none;-ms-overflow-style:none;cursor:grab;
}
.lb-labs .lb-rail::-webkit-scrollbar{display:none;}
.lb-labs .lb-rail.is-drag{cursor:grabbing;scroll-snap-type:none;}
.lb-labs .lb-rail::after{content:"";flex:0 0 8px;}

.lb-labs .lb-card{flex:0 0 clamp(230px,23vw,290px);scroll-snap-align:start;cursor:pointer;user-select:none;}
.lb-labs .lb-shot{
  position:relative;aspect-ratio:4/5;border-radius:12px;overflow:hidden;
  background:var(--lv-stone);
  display:flex;align-items:center;justify-content:center;
}
.lb-labs .lb-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--lv-ease);}
.lb-labs .lb-card:hover .lb-shot img{transform:scale(1.03);}
.lb-labs .lb-ph{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-frost);text-align:center;padding:0 12px;}
.lb-labs .lb-card__actif{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:16px 0 0;}
.lb-labs .lb-card__nom{font-size:17px;font-weight:500;letter-spacing:-.02em;margin:8px 0 0;}
.lb-labs .lb-card__lieu{font-size:14px;color:var(--lv-pewter);margin:4px 0 0;}
.lb-labs .lb-card__cta{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-forest);margin:14px 0 0;display:inline-flex;align-items:center;gap:8px;}
.lb-labs .lb-card__cta::after{content:"";width:22px;height:1px;background:var(--lv-green);transition:width .35s var(--lv-ease);}
.lb-labs .lb-card:hover .lb-card__cta::after{width:38px;}

.lb-labs .lb-progress{height:1px;background:var(--lv-frost);margin-top:8px;position:relative;}
.lb-labs .lb-progress i{position:absolute;left:0;top:-1px;height:3px;width:22%;background:var(--lv-forest);border-radius:2px;}

/* ---------- fiche ---------- */
.lv-modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:24px;}
.lv-modal.is-on{display:flex;}
.lv-modal__bg{position:absolute;inset:0;background:rgba(28,58,19,.55);opacity:0;transition:opacity .35s var(--lv-ease);}
.lv-modal.is-on .lv-modal__bg{opacity:1;}
.lv-modal__box{
  position:relative;background:var(--lv-snow);border-radius:18px;
  overflow:auto;max-height:88vh;width:min(620px,100%);
  transform:translateY(14px) scale(.985);opacity:0;
  transition:transform .4s var(--lv-ease),opacity .4s var(--lv-ease);
}
.lv-modal.is-on .lv-modal__box{transform:none;opacity:1;}
.lb-labs .lb-shot--wide{aspect-ratio:16/10;border-radius:0;}
.lv-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:1000px;border:0;background:var(--lv-snow);cursor:pointer;font-size:17px;line-height:1;color:var(--lv-forest);z-index:2;}
.lv-pad{padding:30px 32px 36px;}
.lv-badge{display:inline-block;font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-forest);border:1px solid var(--lv-frost);border-radius:1000px;padding:6px 12px;}
.lv-nom{font-size:28px;font-weight:350;letter-spacing:-.03em;margin:16px 0 0;}
.lv-loc{font-family:var(--lv-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lv-pewter);margin:8px 0 0;}
.lv-role{font-size:16px;line-height:1.6;color:var(--lv-pewter);margin:18px 0 0;}
.lv-why{margin:24px 0 0;padding:18px 20px;background:var(--lv-stone);border-left:2px solid var(--lv-green);border-radius:0 10px 10px 0;}
.lv-why__t{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0 0 10px;}
.lv-why p{font-size:15px;line-height:1.6;margin:0;}
.lv-sec{margin:30px 0 0;padding-top:22px;border-top:1px solid var(--lv-frost);}
.lv-sec__t{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0 0 14px;}
.lv-sec p{font-size:15px;line-height:1.7;margin:0 0 14px;}
.lv-sec p:last-child{margin-bottom:0;}
.lv-dose{margin:26px 0 0;display:flex;gap:14px;align-items:baseline;}
.lv-dose__t{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);flex:0 0 auto;}
.lv-dose__v{font-size:15px;line-height:1.5;margin:0;}
.lv-chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none;}
.lv-chips li{font-family:var(--lv-mono);font-size:10px;letter-spacing:.04em;border:1px solid var(--lv-frost);border-radius:1000px;padding:6px 11px;color:var(--lv-pewter);}
.lv-src{font-family:var(--lv-mono);font-size:10px;letter-spacing:.04em;color:var(--lv-pewter);margin:18px 0 0;}

@media (max-width:820px){
  .lb-labs .lb-in{padding:0 20px;}
  .lb-rail{padding:4px 20px 24px;gap:14px;margin-top:32px;}
  .lb-card{flex:0 0 76vw;}
  .lv-title{font-size:26px;}
  .lv-lede{font-size:15px;}
  .lv-modal{padding:0;align-items:flex-end;}
  .lv-modal__box{max-height:92vh;border-radius:18px 18px 0 0;width:100%;}
  .lv-pad{padding:24px 22px 30px;}
  .lv-nom{font-size:23px;}
}

.lv-comp{
  --lv-forest:var(--dg); --lv-green:#2f6b57; --lv-snow:var(--canvas);
  --lv-stone:var(--stone); --lv-frost:rgba(0,43,20,.18); --lv-pewter:var(--ink-60);
  --lv-sans:var(--font-sans);
  --lv-mono:var(--font-mono);
  --lv-ease:cubic-bezier(.22,.61,.36,1);
  background:var(--lv-snow); color:var(--lv-forest); font-family:var(--lv-sans);
}
.lv-comp *{box-sizing:border-box;}
.lv-comp .lv-in{max-width:1000px;margin:0 auto;padding:0 var(--s-24);}
.lv-comp .lv-eyebrow{font-family:var(--lv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0;}
.lv-comp .lv-title{font-size:clamp(26px,3.4vw,42px);line-height:1.08;letter-spacing:-.03em;font-weight:350;margin:18px 0 0;max-width:20ch;text-wrap:balance;}
.lv-comp .lv-lede{font-size:17px;line-height:1.6;color:var(--lv-pewter);max-width:52ch;margin:18px 0 0;}

/* ---------- blocs ---------- */
.lv-comp .lv-block{margin-top:46px;}
.lv-comp .lv-block__t{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--lv-forest);
  margin:0 0 14px;padding-bottom:10px;border-bottom:1.5px solid var(--lv-forest);
}
.lv-comp .lv-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.lv-comp table{width:100%;border-collapse:collapse;min-width:560px;}
.lv-comp thead th{
  font-family:var(--lv-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;font-weight:400;color:var(--lv-pewter);
  text-align:left;padding:0 16px 10px;
  border-bottom:1px solid var(--lv-frost);
}
.lv-comp thead th:first-child{padding-left:0;}
.lv-comp thead th:last-child{padding-right:0;text-align:right;}
.lv-comp tbody td{
  padding:14px 16px;vertical-align:top;
  border-bottom:1px solid var(--lv-frost);
}
.lv-comp tbody td:first-child{padding-left:0;}
.lv-comp tbody td:last-child{padding-right:0;}
.lv-comp tbody tr:last-child td{border-bottom:0;}
.lv-comp tbody tr.minor td{color:var(--lv-pewter);}

.a-nom{font-size:15px;font-weight:500;line-height:1.35;margin:0;}
.a-forme{font-size:13px;font-style:italic;color:var(--lv-pewter);margin:4px 0 0;}
.o-nom{font-size:15px;line-height:1.35;margin:0;}
.o-lieu{font-size:13px;color:var(--lv-pewter);margin:4px 0 0;}
.d-cell{text-align:right;white-space:nowrap;}
.d-val{font-size:15px;font-weight:500;margin:0;}
.d-sub{font-size:12px;color:var(--lv-pewter);margin:4px 0 0;white-space:normal;}

/* ---------- valeurs nutritionnelles ---------- */
.lv-comp .lv-nut{list-style:none;margin:0;padding:0;}
.lv-comp .lv-nut li{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:13px 0;font-size:15px;border-bottom:1px solid var(--lv-frost);
}
.lv-comp .lv-nut li:last-child{border-bottom:0;}
.lv-comp .lv-nut li.sub{padding-left:22px;font-style:italic;color:var(--lv-pewter);font-size:14px;}
.lv-comp .lv-nut b{font-weight:500;text-align:right;}

/* ---------- textes réglementaires ---------- */
.lv-comp .lv-note{
  font-size:14px;line-height:1.7;color:var(--lv-pewter);margin:16px 0 0;
}
.lv-comp .lv-note strong{color:var(--lv-forest);font-weight:500;}
.lv-comp .lv-plain{
  margin-top:46px;padding:22px 24px;
  background:var(--lv-stone);border-radius:12px;
}
.lv-comp .lv-plain p{font-size:14px;line-height:1.7;margin:0;color:var(--lv-pewter);}
.lv-comp .lv-plain p + p{margin-top:12px;}
.lv-comp .lv-plain strong{color:var(--lv-forest);font-weight:500;}
.lv-comp .lv-legal{
  font-size:13px;line-height:1.7;color:var(--lv-pewter);
  margin:26px 0 0;padding-top:20px;border-top:1px solid var(--lv-frost);
}

/* ---------- en-tête de section ---------- */
.lv-comp .lv-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);
  gap:32px;align-items:end;
}
.lv-comp .lv-count{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--lv-pewter);
  text-align:right;line-height:2;margin:0;white-space:nowrap;
}
.lv-comp .lv-count b{display:block;font-size:34px;line-height:1;font-weight:300;letter-spacing:-.03em;color:var(--lv-forest);font-family:var(--lv-sans);}

/* ---------- dépliant ---------- */
.lv-comp .lv-fold{
  position:relative;overflow:hidden;
  max-height:300px;
  transition:max-height .8s var(--lv-ease);
  margin-top:8px;
}
.lv-comp .lv-fold::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:190px;
  background:linear-gradient(to bottom, rgba(244,246,242,0) 0%, var(--lv-snow) 78%);
  pointer-events:none;transition:opacity .5s var(--lv-ease);
}
.is-open .lv-fold::after{opacity:0;}

.lv-comp .lv-toggle{
  display:flex;align-items:center;gap:18px;width:100%;
  background:none;border:0;padding:22px 0 0;margin:0;cursor:pointer;
  color:var(--lv-forest);text-align:left;
}
.lv-comp .lv-toggle__line{flex:1;height:1px;background:var(--lv-frost);}
.lv-comp .lv-toggle__lab{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;white-space:nowrap;
}
.lv-comp .lv-toggle__ico{
  position:relative;width:38px;height:38px;flex:0 0 38px;border-radius:1000px;
  border:1.5px solid var(--lv-forest);
  transition:background-color .3s var(--lv-ease);
}
.lv-comp .lv-toggle__ico::before,.lv-comp .lv-toggle__ico::after{
  content:"";position:absolute;left:50%;top:50%;background:var(--lv-forest);
  transition:transform .4s var(--lv-ease),background-color .3s var(--lv-ease);
}
.lv-comp .lv-toggle__ico::before{width:13px;height:1.5px;transform:translate(-50%,-50%);}
.lv-comp .lv-toggle__ico::after{width:1.5px;height:13px;transform:translate(-50%,-50%);}
.is-open .lv-toggle__ico::after{transform:translate(-50%,-50%) rotate(90deg);}
.lv-comp .lv-toggle:hover .lv-toggle__ico{background:var(--lv-forest);}
.lv-comp .lv-toggle:hover .lv-toggle__ico::before,
.lv-comp .lv-toggle:hover .lv-toggle__ico::after{background:var(--lv-snow);}
.lv-comp .lv-toggle:focus-visible .lv-toggle__ico{outline:2px solid var(--lv-green);outline-offset:3px;}

.lv-comp .lv-wrapper{padding:96px 0 104px;}

@media (max-width:760px){
  .lv-comp .lv-in{padding:0 20px;}
  .lv-title{font-size:24px;}
  .lv-lede{font-size:15px;}
  .lv-block{margin-top:34px;}
  tbody td{padding:12px 12px;}
  .lv-wrapper{padding:56px 0 64px;}
  .lv-head{grid-template-columns:1fr;gap:18px;align-items:start;}
  .lv-count{text-align:left;}
  .lv-count b{font-size:28px;}
  .lv-fold{max-height:220px;}
  .lv-fold::after{height:150px;}
  .lv-toggle{gap:12px;}
  .lv-toggle__ico{width:34px;height:34px;flex:0 0 34px;}
}

.lv-who{
  --lv-forest:var(--dg); --lv-green:var(--bgreen); --lv-snow:var(--canvas);
  --lv-stone:var(--stone); --lv-frost:var(--line); --lv-pewter:var(--ink-60);
  --lv-sans:var(--font-sans);
  --lv-mono:var(--font-mono);
  --lv-ease:cubic-bezier(.22,.61,.36,1);
  background:var(--lv-snow); color:var(--lv-forest);
  font-family:var(--lv-sans);
}
.lv-who *{box-sizing:border-box;}
.lv-who .lv-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);}

/* ---------- 1. carte de visite ---------- */
.lv-who .lv-head{padding:120px 0 0;}
.lv-who .lv-eyebrow{font-family:var(--lv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0;}
.lv-who .lv-title{
  font-size:clamp(32px,4.4vw,58px);line-height:1.06;letter-spacing:-.035em;
  font-weight:350;margin:22px 0 0;text-wrap:balance;max-width:24ch;
}
.lv-who .lv-title b{font-weight:350;color:#2f6b57;}
.lv-who .lv-lede{font-size:18px;line-height:1.6;letter-spacing:-.18px;color:var(--lv-pewter);max-width:50ch;margin:26px 0 0;}

/* chiffres */
.lv-who .lv-proof{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;
  margin-top:56px;padding-top:26px;border-top:1px solid var(--lv-frost);max-width:760px;
}
.lv-who .lv-proof__v{font-size:clamp(30px,3vw,40px);line-height:1;letter-spacing:-.03em;font-weight:300;margin:0;}
.lv-who .lv-proof__l{font-family:var(--lv-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--lv-pewter);margin:10px 0 0;line-height:1.6;}

/* presse */
.lv-who .lv-press{
  margin-top:48px;padding:22px 0;
  border-top:1px solid var(--lv-frost);border-bottom:1px solid var(--lv-frost);
  display:flex;flex-wrap:wrap;gap:12px 0;align-items:center;
}
.lv-who .lv-press__l{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0 28px 0 0;}
.lv-who .lv-press span{
  font-size:15px;font-weight:500;letter-spacing:-.01em;color:var(--lv-forest);
  padding:0 22px;border-left:1px solid var(--lv-frost);line-height:1;opacity:.75;
}
.lv-who .lv-press span:first-of-type{border-left:0;padding-left:0;}

/* ---------- 2. les trois ---------- */
.lv-who .lv-three{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);
  margin-top:clamp(72px,8vw,112px);
}
.lv-who .lv-f{display:flex;flex-direction:column;}
.lv-who .lv-f__photo{
  position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;
  background:var(--lv-stone);
  display:flex;align-items:center;justify-content:center;
}
.lv-who .lv-f__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.lv-who .lv-ph{font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-frost);text-align:center;padding:0 20px;line-height:1.8;}
.lv-who .lv-f__word{
  font-family:var(--lv-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:#2f6b57;margin:22px 0 0;
}
.lv-who .lv-f__name{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.2;margin:8px 0 0;}
.lv-who .lv-f__role{font-family:var(--lv-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--lv-pewter);margin:6px 0 0;}
.lv-who .lv-f__text{font-size:16px;line-height:1.6;letter-spacing:-.1px;margin:18px 0 0;}
.lv-who .lv-f__text b{font-weight:500;}

/* ---------- 3. mission ---------- */
.lv-who .lv-mission{
  margin-top:clamp(72px,8vw,112px);padding:32px 0 120px;
  border-top:1px solid var(--lv-frost);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;
}
.lv-who .lv-mission__t{font-size:clamp(20px,2.1vw,26px);line-height:1.35;letter-spacing:-.02em;font-weight:300;margin:0;max-width:34ch;}
.lv-who .lv-badge{display:inline-block;font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--lv-forest);border-radius:1000px;padding:6px 12px;}
.lv-who .lv-mission__n{font-size:15px;line-height:1.6;color:var(--lv-pewter);margin:16px 0 0;max-width:44ch;}

@media (max-width:900px){
  .lv-who .lv-in{padding:0 20px;}
  .lv-who .lv-head{padding-top:64px;max-width:none;}
  .lv-who .lv-title{font-size:30px;}
  .lv-who .lv-lede{font-size:16px;}
  .lv-who .lv-proof{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:40px;}
  .lv-who .lv-proof__v{font-size:24px;}
  .lv-who .lv-proof__l{font-size:9px;}
  .lv-who .lv-press{gap:10px 0;}
  .lv-who .lv-press span{font-size:13px;padding:0 12px;}
  .lv-who .lv-three{grid-template-columns:1fr;gap:48px;margin-top:56px;}
  .lv-who .lv-f__photo{max-width:420px;}
  .lv-who .lv-mission{grid-template-columns:1fr;gap:24px;padding-bottom:72px;margin-top:64px;}
}

/* portraits ronds : formulatrice et équipe */
.lv-portrait{border-radius:var(--r-full);overflow:hidden;background:var(--stone);aspect-ratio:1;}
.lv-portrait img{width:100%;height:100%;object-fit:cover;display:block;}
.lv-portrait.sm{width:64px;height:64px;flex:0 0 auto;}

.lv-rev{
  --lv-forest:var(--dg); --lv-green:var(--bgreen); --lv-snow:var(--canvas);
  --lv-stone:var(--stone); --lv-frost:var(--line); --lv-pewter:var(--ink-60);
  --tp:#00b67a;
  --lv-sans:var(--font-sans);
  --lv-mono:var(--font-mono);
  --lv-ease:cubic-bezier(.22,.61,.36,1);
  background:var(--lv-snow); color:var(--lv-forest);
  font-family:var(--lv-sans);
  padding:clamp(56px,9vh,104px) 0 clamp(56px,9vh,112px);
}
.lv-rev *{box-sizing:border-box;}
.lv-rev .rv-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);}

.lv-rev .rv-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;}
.lv-rev .rv-eyebrow{font-family:var(--lv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter);margin:0;}
.lv-rev .rv-title{font-size:clamp(28px,3.6vw,46px);line-height:1.08;letter-spacing:-.03em;font-weight:350;margin:18px 0 0;max-width:18ch;text-wrap:balance;}
.lv-rev .rv-lede{font-size:16px;line-height:1.6;color:var(--lv-pewter);max-width:46ch;margin:16px 0 0;}

.lv-rev .rv-score{display:flex;flex-direction:column;align-items:flex-end;gap:10px;padding:20px 24px;border:1px solid var(--lv-frost);border-radius:14px;}
.lv-rev .rv-score__row{display:flex;align-items:center;gap:12px;}
.lv-rev .rv-score__word{font-size:18px;font-weight:500;letter-spacing:-.01em;}
.lv-rev .rv-score__meta{font-family:var(--lv-mono);font-size:11px;letter-spacing:.04em;color:var(--lv-pewter);text-align:right;line-height:1.7;margin:0;}
.lv-rev .rv-score__meta b{color:var(--lv-forest);font-weight:500;}

.lv-rev .rv-stars{display:inline-flex;gap:2px;}
.lv-rev .rv-stars i{width:22px;height:22px;background:var(--tp);display:block;position:relative;}
.lv-rev .rv-stars i::after{content:"";position:absolute;inset:0;background:#fff;clip-path:polygon(50% 8%,61% 38%,93% 38%,67% 57%,77% 89%,50% 70%,23% 89%,33% 57%,7% 38%,39% 38%);}
.lv-rev .rv-stars.sm i{width:15px;height:15px;}
.lv-rev .rv-stars i.half{background:linear-gradient(90deg,var(--tp) 50%,#c9cbcf 50%);}
.lv-rev .rv-stars .tpl{margin-left:8px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--lv-forest);}
.lv-rev .rv-stars .tpl::before{content:"";width:14px;height:14px;background:var(--tp);display:block;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);}

.lv-rev .rv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:44px;}
.lv-rev .rv-card{background:#fff;border:1px solid var(--lv-frost);border-radius:14px;padding:20px 22px 22px;display:flex;flex-direction:column;}
.lv-rev .rv-card__top{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.lv-rev .rv-verified{display:inline-flex;align-items:center;gap:6px;font-family:var(--lv-mono);font-size:10px;letter-spacing:.04em;color:var(--lv-pewter);}
.lv-rev .rv-verified::before{content:"";width:12px;height:12px;border-radius:1000px;background:var(--tp);display:block;}
.lv-rev .rv-card__t{font-size:15px;font-weight:500;letter-spacing:-.01em;line-height:1.35;margin:14px 0 0;}
.lv-rev .rv-card__p{font-size:14px;line-height:1.6;margin:8px 0 0;flex:1;
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;}
.lv-rev .rv-card__meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--lv-stone);font-family:var(--lv-mono);font-size:10px;letter-spacing:.03em;color:var(--lv-pewter);}
.lv-rev .rv-card__meta b{font-family:var(--lv-sans);font-size:13px;font-weight:500;letter-spacing:0;color:var(--lv-forest);}

/* dépliant */
.lv-rev .rv-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--lv-ease);}
.lv-rev .rv-more.is-open{grid-template-rows:1fr;}
.lv-rev .rv-more__in{overflow:hidden;}
.lv-rev .rv-more .lv-grid{margin-top:18px;opacity:0;transform:translateY(8px);transition:opacity .5s var(--lv-ease) .15s,transform .5s var(--lv-ease) .15s;}
.lv-rev .rv-more.is-open .lv-grid{opacity:1;transform:none;}

.lv-rev .rv-toggle{
  display:flex;align-items:center;gap:18px;width:100%;
  background:none;border:0;padding:28px 0 0;margin:0;cursor:pointer;
  color:var(--lv-forest);text-align:left;
}
.lv-rev .rv-toggle__line{flex:1;height:1px;background:var(--lv-frost);}
.lv-rev .rv-toggle__lab{font-family:var(--lv-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;}
.lv-rev .rv-toggle__ico{position:relative;width:38px;height:38px;flex:0 0 38px;border-radius:1000px;border:1.5px solid var(--lv-forest);transition:background-color .3s var(--lv-ease);}
.lv-rev .rv-toggle__ico::before,.lv-rev .rv-toggle__ico::after{content:"";position:absolute;left:50%;top:50%;background:var(--lv-forest);transition:transform .4s var(--lv-ease),background-color .3s var(--lv-ease);}
.lv-rev .rv-toggle__ico::before{width:13px;height:1.5px;transform:translate(-50%,-50%);}
.lv-rev .rv-toggle__ico::after{width:1.5px;height:13px;transform:translate(-50%,-50%);}
.is-open + .lv-toggle .lv-toggle__ico::after{transform:translate(-50%,-50%) rotate(90deg);}
.lv-rev .rv-toggle:hover .lv-toggle__ico{background:var(--lv-forest);}
.lv-rev .rv-toggle:hover .lv-toggle__ico::before,.lv-rev .rv-toggle:hover .lv-toggle__ico::after{background:var(--lv-snow);}
.lv-rev .rv-toggle:focus-visible .lv-toggle__ico{outline:2px solid var(--lv-green);outline-offset:3px;}

.lv-rev .rv-foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:24px;font-family:var(--lv-mono);font-size:11px;letter-spacing:.04em;color:var(--lv-pewter);}
.lv-rev .rv-foot a{color:var(--lv-forest);text-decoration:none;border-bottom:1px solid var(--lv-frost);}

@media (max-width:1100px){.lv-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:860px){.lv-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){
  .lv-rev{padding:64px 0 72px;}
  .lv-rev .rv-in{padding:0 20px;}
  .lv-rev .rv-head{grid-template-columns:1fr;gap:20px;}
  .lv-rev .rv-score{align-items:flex-start;}
  .lv-rev .rv-score__meta{text-align:left;}
  .lv-rev .rv-title{font-size:26px;}
  .lv-rev .rv-grid{grid-template-columns:1fr;gap:12px;margin-top:28px;}
  .lv-rev .rv-toggle{gap:12px;padding-top:20px;}
  .lv-rev .rv-toggle__ico{width:34px;height:34px;flex:0 0 34px;}
}

/* ---------- LA DÉMARCHE (vidéo) ---------- */
.lv-dem{position:relative;overflow:hidden;background:#0b2238;color:#fcfcf7;padding:clamp(96px,13vw,168px) 0;}
.lv-photo{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#0b2238;}
.lv-photo video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.03);}
.lv-photo::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 62% 62% at 50% 45%,rgba(8,26,44,.64) 0%,rgba(8,26,44,.38) 60%,rgba(8,26,44,.24) 100%);}
.lv-dem-in{position:relative;z-index:1;max-width:min(92vw,1100px);margin:0 auto;padding:0 var(--s-24);text-align:center;}
.lv-dem-t{margin:0 auto;max-width:24ch;font-size:clamp(30px,5.2vw,64px);font-weight:var(--w-light);line-height:1.04;letter-spacing:-.034em;text-wrap:balance;}
.lv-dem-t b{font-weight:var(--w-light);color:var(--bgreen);}
.lv-dem-s{margin:clamp(20px,2.6vw,30px) auto 0;max-width:56ch;font-size:clamp(15px,1.25vw,18px);line-height:1.62;color:rgba(252,252,247,.78);}
/* le plan labo est bien plus clair : voile renforcé pour porter le texte */
/* bandeau labo : image pleine page, une seule ligne posée dessus */
#labo-band{padding:0;background:#fff;color:var(--dg);position:relative;
  height:clamp(340px,44vw,620px);}
#labo-band .lv-photo{position:absolute;inset:0;background:#fff;}
#labo-band .lv-photo::after{display:none;}
#labo-band .lv-photo video{width:100%;height:100%;object-fit:cover;object-position:18% center;transform:none;}
#labo-band .lv-dem-in{position:absolute;inset:0;z-index:1;max-width:none;margin:0;padding:0;
  display:flex;align-items:center;justify-content:flex-end;text-align:left;pointer-events:none;}
#labo-band .lv-dem-t{margin:0 clamp(28px,6vw,96px) 0 0;max-width:min(34%,15em);
  font-size:clamp(22px,2.6vw,38px);font-weight:var(--w-light);line-height:1.1;letter-spacing:-.03em;
  color:var(--dg);text-wrap:balance;}
#labo-band .lv-dem-t b{font-weight:var(--w-light);
  box-shadow:inset 0 -.1em 0 var(--bgreen);}
@media(max-width:820px){
  /* mobile : la ligne passe sous l'image, jamais dessus */
  #labo-band{height:auto;}
  #labo-band .lv-photo{position:relative;inset:auto;aspect-ratio:4 / 3;}
  #labo-band .lv-dem-in{position:relative;inset:auto;height:auto;
    justify-content:flex-start;padding:clamp(22px,6vw,32px) var(--s-24) clamp(26px,7vw,38px);}
  #labo-band .lv-dem-t{margin:0;max-width:22ch;font-size:clamp(20px,5.4vw,26px);}
}
@media(prefers-reduced-motion:reduce){.lv-photo video{display:none;}#demarche .lv-photo{background:url(img/mer-poster.jpg) center/cover;}#labo-band .lv-photo{background:url(img/labo-poster.jpg) center/cover;}}

/* ---------- HISTOIRE ---------- */
.lv-hist{
  --lv-forest:#1c3a13; --lv-green:#76DB5D; --lv-snow:#fcfcf7;
  --lv-stone:#eeeee9; --lv-frost:#c4c7c4; --lv-ash:#b3b3b3; --lv-pewter:#666666;
  --lv-orange:#E39A3C;
  --lv-sans:'Seed Sans',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --lv-mono:'Seed Sans Mono',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  --lv-ease:cubic-bezier(.22,.61,.36,1);
  --rail:72px;
  background:var(--lv-snow,#fcfcf7); color:var(--lv-forest,#1c3a13);
  font-family:var(--lv-sans); font-feature-settings:"ss05" on;
  -webkit-font-smoothing:antialiased;
  padding:clamp(88px,11vw,140px) 0 clamp(96px,12vw,160px);
}
.lv-hist *{box-sizing:border-box;}
.lv-in{max-width:1180px;margin:0 auto;padding:0 32px;}
.mono{font-family:var(--lv-mono);letter-spacing:.06em;text-transform:uppercase;}

.lv-eyebrow{font-family:var(--lv-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter,#666);margin:0;}
.lv-h{font-size:clamp(30px,4vw,52px);line-height:1.06;letter-spacing:-.035em;font-weight:350;margin:22px 0 0;max-width:20ch;text-wrap:balance;}

/* ---------- frise ---------- */
.lv-frise{position:relative;margin-top:clamp(72px,9vw,120px);padding-left:var(--rail);}
.lv-line{position:absolute;left:19px;top:0;bottom:0;width:1px;background:var(--lv-frost,#c4c7c4);}
.lv-line i{position:absolute;left:0;top:0;width:1px;height:100%;background:var(--lv-forest,#1c3a13);}
.js .lv-line i{height:0%;}

.lv-step{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,44%);gap:clamp(40px,6vw,96px);align-items:center;padding:clamp(72px,9vw,136px) 0;}
.lv-step:first-child{padding-top:0;}
.lv-step:last-child{padding-bottom:0;}

.lv-dot{position:absolute;left:calc(var(--rail) * -1 + 11px);top:50%;width:17px;height:17px;border-radius:1000px;transform:translateY(-50%) scale(1.2);border:1.5px solid var(--lv-forest,#1c3a13);background:var(--lv-green,#76DB5D);transition:border-color .4s var(--lv-ease),background-color .4s var(--lv-ease),transform .4s var(--lv-ease);}
.js .lv-step:not(.is-on) .lv-dot{background:var(--lv-snow,#fcfcf7);border-color:var(--lv-frost,#c4c7c4);transform:translateY(-50%);}

.lv-t{font-size:clamp(30px,3.8vw,50px);line-height:1.06;letter-spacing:-.034em;font-weight:350;margin:0;text-wrap:balance;}
.lv-t b{font-weight:350;color:var(--lv-green,#76DB5D);}
.lv-p{font-size:clamp(17px,1.4vw,19px);line-height:1.55;letter-spacing:-.15px;margin:20px 0 0;max-width:44ch;color:var(--lv-pewter,#666);}
.lv-src{font-family:var(--lv-mono);font-size:10px;letter-spacing:.03em;color:var(--lv-pewter,#666);margin:14px 0 0;opacity:.8;}

.lv-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--lv-ease);}
.lv-more.is-open{grid-template-rows:1fr;}
.lv-more__in{overflow:hidden;}
.lv-more__pad{padding-top:14px;max-width:46ch;opacity:0;transform:translateY(6px);transition:opacity .45s var(--lv-ease) .1s,transform .45s var(--lv-ease) .1s;}
.lv-more.is-open .lv-more__pad{opacity:1;transform:none;}
.lv-more__pad p{font-size:15px;line-height:1.65;color:var(--lv-pewter,#666);margin:0 0 .9em;}
.lv-more__pad p:last-child{margin-bottom:0;}
.lv-more__pad p.punch{color:var(--lv-forest,#1c3a13);font-weight:500;}
.lv-btn{display:inline-flex;align-items:center;gap:10px;margin:18px 0 0;background:none;border:0;padding:0;cursor:pointer;color:var(--lv-forest,#1c3a13);font-family:var(--lv-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.lv-btn i{width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .35s var(--lv-ease);}
.lv-btn[aria-expanded="true"] i{transform:rotate(-135deg) translate(-2px,-2px);}
.lv-btn::after{content:"";width:22px;height:1px;background:var(--lv-green,#76DB5D);transition:width .3s var(--lv-ease);}
.lv-btn:hover::after{width:38px;}

/* visuel : plus de cadre, il flotte sur le fond de page */
.lv-vis{position:relative;width:100%;}
.lv-txt,.lv-vis{transition:opacity .7s var(--lv-ease),transform .7s var(--lv-ease);}
.lv-vis{transition-delay:.12s;}
.js .lv-step:not(.is-in) .lv-txt,.js .lv-step:not(.is-in) .lv-vis{opacity:0;transform:translateY(12px);}
.lv-cap{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:12px;border-top:1px solid var(--lv-frost,#c4c7c4);}
.lv-cap b{font-family:var(--lv-sans);font-size:26px;font-weight:300;letter-spacing:-.02em;}
.lv-cap .mono{font-size:10px;color:var(--lv-pewter,#666);}

/* ---------- 01 : sept sur dix, visages ---------- */
.pp-big{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;}
.pp-cell{position:relative;aspect-ratio:1;}
.pp-cell svg{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .45s var(--lv-ease),transform .5s var(--lv-ease);}
.pp-cell svg.up .k{stroke:var(--lv-forest,#1c3a13);}
.pp-cell svg.up .f{fill:var(--lv-forest,#1c3a13);}
.pp-cell svg.down .bg{fill:var(--lv-forest,#1c3a13);}
.pp-cell svg.down .k{stroke:var(--lv-snow,#fcfcf7);}
.pp-cell svg.down{opacity:0;transform:scale(.92);}
.pp-cell.d svg.up{opacity:0;transform:scale(.92);}
.pp-cell.d svg.down{opacity:1;transform:none;}
.js .lv-step:not(.is-on) .pp-cell.d svg.up{opacity:1;transform:none;}
.js .lv-step:not(.is-on) .pp-cell.d svg.down{opacity:0;transform:scale(.92);}
.pp-cap{margin-top:22px;padding-top:14px;border-top:1px solid var(--lv-frost,#c4c7c4);}
.pp-cap b{display:block;font-size:clamp(34px,3.6vw,46px);font-weight:300;letter-spacing:-.03em;line-height:1;}
.pp-cap span{display:block;font-family:var(--lv-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter,#666);margin-top:10px;}
.pp-others{display:flex;gap:28px;margin-top:18px;font-family:var(--lv-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--lv-pewter,#666);}
.pp-others b{font-family:var(--lv-sans);font-size:18px;font-weight:300;letter-spacing:-.02em;color:var(--lv-forest,#1c3a13);margin-right:6px;text-transform:none;}

/* ---------- 02 : le verre ---------- */
.gl-glass{position:relative;width:min(100%,260px);aspect-ratio:100/130;margin:0 auto;}
.gl-glass svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.gl-glass path{fill:none;stroke:var(--lv-forest,#1c3a13);stroke-width:1.5;stroke-linejoin:round;}
.gl-pill{position:absolute;left:var(--x);bottom:var(--y);border:1.5px solid var(--lv-forest,#1c3a13);border-radius:1000px;background:#fff;transform:translate(-50%,0) rotate(var(--r));transition:transform .95s cubic-bezier(.2,.8,.25,1),opacity .3s var(--lv-ease);}
.gl-pill.cap{background:linear-gradient(90deg,#fff 50%,var(--lv-frost,#c4c7c4) 50%);}
.gl-pill.tab{background:var(--lv-stone,#eeeee9);}
.gl-pill.soft{background:var(--lv-ash,#b3b3b3);}
.js .lv-step:not(.is-on) .gl-pill{opacity:0;transform:translate(-50%,-320px) rotate(var(--r0));}

/* ---------- 03 et 04 : l'étiquette, vue de loin ---------- */
.lab{width:min(100%,300px);margin:0 auto;border:1.5px solid var(--lv-forest,#1c3a13);border-radius:12px;padding:18px 20px 20px;background:var(--lv-snow,#fcfcf7);}
.lab-logo{height:40px;display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:14px;}
.lab-logo .lg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:opacity .5s var(--lv-ease);}
.lab-logo .lg.box{border:1.5px dashed var(--lv-ash,#b3b3b3);border-radius:6px;font-family:var(--lv-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter,#666);}
.lab-logo .lg.brand{font-family:var(--lv-sans);font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--lv-forest,#1c3a13);}
.lab-title{font-family:var(--lv-sans);font-size:14px;font-weight:600;letter-spacing:-.01em;text-transform:uppercase;line-height:1.1;}
.lab-sub{font-family:var(--lv-mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase;color:var(--lv-pewter,#666);margin:4px 0 8px;}
.lab-cols{display:grid;grid-template-columns:18px minmax(0,1fr) 46px 34px;gap:8px;font-family:var(--lv-mono);font-size:7px;letter-spacing:.06em;text-transform:uppercase;color:var(--lv-pewter,#666);padding-bottom:5px;border-bottom:1px solid var(--lv-frost,#c4c7c4);margin-bottom:4px;}
.lab-cols span:nth-child(n+2){text-align:right;}
.lab-logo .lg.liv{font-family:var(--lv-sans);font-size:15px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--lv-forest,#1c3a13);white-space:nowrap;}
.lab-rule{height:1.5px;background:var(--lv-forest,#1c3a13);margin-bottom:12px;}
.lab-list{margin:0;padding:0;list-style:none;}
.lab-list li{position:relative;overflow:hidden;max-height:13px;padding:3px 0;display:grid;grid-template-columns:18px minmax(0,1fr) 46px 34px;gap:8px;align-items:center;transition:max-height .5s var(--lv-ease),opacity .4s var(--lv-ease),padding .5s var(--lv-ease);}
.lab-list li em{font-style:normal;font-family:var(--lv-mono);font-size:7px;letter-spacing:.03em;color:var(--lv-pewter,#666);text-align:right;white-space:nowrap;transition:color .5s var(--lv-ease),font-size .5s var(--lv-ease);}
.lab.sort .lab-list li.keep em{color:var(--lv-forest,#1c3a13);font-size:8px;font-weight:500;transition-delay:1.1s;}
.lab-list li .num{font-family:var(--lv-mono);font-size:7px;letter-spacing:.03em;color:var(--lv-pewter,#666);position:relative;height:9px;}
.lab-list li .num b{position:absolute;left:0;top:0;font-weight:400;transition:opacity .4s var(--lv-ease);}
.lab-list li .num b.n2{opacity:0;}
.lab.sort .lab-list li.keep .num b.n1{opacity:0;transition-delay:1.1s;}
.lab.sort .lab-list li.keep .num b.n2{opacity:1;transition-delay:1.1s;color:var(--lv-forest,#1c3a13);font-weight:500;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li.keep .num b.n1{opacity:1;transition-delay:0s;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li.keep .num b.n2{opacity:0;transition-delay:0s;}
.lab-list li.more{grid-template-columns:18px 1fr;color:var(--lv-pewter,#666);font-family:var(--lv-mono);font-size:8px;letter-spacing:.06em;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li.keep em{color:var(--lv-pewter,#666);font-size:7px;font-weight:400;transition-delay:0s;}
.lab-list li i{display:block;height:6px;border-radius:1000px;background:var(--lv-ash,#b3b3b3);width:var(--w);position:relative;transition:width 1s var(--lv-ease),background-color .6s var(--lv-ease);}
.lab-list li i::after{content:"";position:absolute;left:-2px;right:-2px;top:50%;height:2px;background:var(--lv-orange,#E39A3C);transform:translateY(-50%) scaleX(0);transform-origin:left;transition:transform .35s var(--lv-ease);}
/* 04 : état final, les lignes barrées ont disparu, les neuf restantes sont vertes et longues */
.lab.sort .lab-logo .lg.brand{opacity:0;}
.lab.sort .lab-list li:not(.keep){max-height:0;opacity:0;padding:0;transition-delay:.8s;}
.lab.sort .lab-list li.more{transition-delay:.4s;}
.lab.sort .lab-list li.keep{max-height:18px;padding:5px 0;}
.lab.sort .lab-list li.keep i{width:96%;height:8px;background:var(--lv-green,#76DB5D);transition-delay:1.1s;}
/* 04 : état de départ avec script, identique au 03 */
.js .lv-step:not(.is-on) .lab.sort .lab-logo .lg.brand{opacity:1;}
.js .lv-step:not(.is-on) .lab.sort .lab-logo .lg.liv{opacity:0;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li:not(.keep){max-height:13px;opacity:1;padding:3px 0;transition-delay:0s;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li.keep{max-height:13px;padding:3px 0;}
.js .lv-step:not(.is-on) .lab.sort .lab-list li.keep i{width:var(--w);height:6px;background:var(--lv-ash,#b3b3b3);transition-delay:0s;}
/* 04 : la rature apparaît d'abord, puis la ligne se replie */
.lab.sort .lab-list li:not(.keep) i::after{transform:translateY(-50%) scaleX(1);transition-delay:var(--sd,0s);}
.js .lv-step:not(.is-on) .lab.sort .lab-list li:not(.keep) i::after{transform:translateY(-50%) scaleX(0);}

/* ---------- 05 : chaîne ---------- */
.c-wrap{width:min(100%,300px);margin:0 auto;display:flex;flex-direction:column;}
.c-box{border:1.5px solid var(--lv-forest,#1c3a13);border-radius:8px;background:var(--lv-snow,#fcfcf7);text-align:center;padding:14px 12px;font-family:var(--lv-mono);font-size:11px;letter-spacing:.05em;overflow:hidden;max-height:60px;transition:max-height .7s var(--lv-ease),opacity .5s var(--lv-ease),padding .7s var(--lv-ease),border-width .7s var(--lv-ease);}
.c-box.strong{text-transform:uppercase;font-weight:500;}
.c-box.you{background:var(--lv-forest,#1c3a13);color:var(--lv-snow,#fcfcf7);}
.c-link{position:relative;height:38px;display:flex;justify-content:center;overflow:hidden;transition:height .7s var(--lv-ease),opacity .5s var(--lv-ease);}
.c-link i{width:1.5px;height:100%;background:var(--lv-forest,#1c3a13);transition:background-color .5s var(--lv-ease);}
.c-link i::after{content:"";position:absolute;left:50%;bottom:2px;width:7px;height:7px;border-right:1.5px solid var(--lv-forest,#1c3a13);border-bottom:1.5px solid var(--lv-forest,#1c3a13);transform:translateX(-50%) rotate(45deg);}
.c-link .pill{position:absolute;left:calc(50% + 12px);top:50%;transform:translateY(-50%);background:var(--lv-orange,#E39A3C);color:var(--lv-forest,#1c3a13);border-radius:1000px;padding:5px 10px;font-family:var(--lv-mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;transition:opacity .4s var(--lv-ease);}
.c-box.drop{max-height:0;padding-top:0;padding-bottom:0;border-width:0;opacity:0;}
.c-link.drop{height:0;opacity:0;}
.c-link.keep{height:46px;}
.c-link.keep .pill{opacity:0;}
.c-link.keep i{background:var(--lv-green,#76DB5D);}
.c-link.keep i::after{border-color:var(--lv-green,#76DB5D);}
.js .lv-step:not(.is-on) .c-box.drop{max-height:60px;padding:14px 12px;border-width:1.5px;opacity:1;}
.js .lv-step:not(.is-on) .c-link.drop{height:38px;opacity:1;}
.js .lv-step:not(.is-on) .c-link.keep{height:38px;}
.js .lv-step:not(.is-on) .c-link.keep .pill{opacity:1;}
.js .lv-step:not(.is-on) .c-link.keep i{background:var(--lv-forest,#1c3a13);}
.js .lv-step:not(.is-on) .c-link.keep i::after{border-color:var(--lv-forest,#1c3a13);}

/* ---------- 06 : pot ---------- */
.p-wrap{width:min(100%,240px);margin:0 auto;}
.p-cap{width:78%;aspect-ratio:4.6/1;margin:0 auto;background:repeating-linear-gradient(90deg,rgba(28,58,19,.4) 0 1px,transparent 1px 5px),var(--lv-snow,#fcfcf7);border:1.5px solid var(--lv-forest,#1c3a13);border-radius:5px 5px 2px 2px;border-bottom:none;}
.p-neck{width:74%;aspect-ratio:24/1;margin:0 auto;background:var(--lv-snow,#fcfcf7);border-left:1.5px solid var(--lv-forest,#1c3a13);border-right:1.5px solid var(--lv-forest,#1c3a13);}
.p-body{border:1.5px solid var(--lv-forest,#1c3a13);border-radius:16px 16px 5px 5px;padding:8% 5% 5%;margin-top:-1.5px;background:var(--lv-snow,#fcfcf7);}
.p-inner{position:relative;width:100%;aspect-ratio:100/140;}
.p-l{position:absolute;left:0;right:0;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--lv-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;transition:top 1s var(--lv-ease),height 1s var(--lv-ease);}
.p-mkt{background:#bfc1ba;top:88%;height:12%;}
.p-str{background:#d1d4cc;top:72%;height:14%;}
.p-fab{background:#e6e8e3;top:50%;height:20%;}
.p-act{background:#8fdc70;top:0;height:48%;}
.js .lv-step:not(.is-on) .p-mkt{top:0;height:42%;}
.js .lv-step:not(.is-on) .p-str{top:44%;height:22%;}
.js .lv-step:not(.is-on) .p-fab{top:68%;height:14%;}
.js .lv-step:not(.is-on) .p-act{top:84%;height:14%;}

@media (max-width:900px){
  .lv-hist{--rail:36px;padding:72px 0 88px;}
  .lv-in{padding:0 20px;}
  .lv-h{font-size:28px;}
  .lv-line{left:7px;}
  .lv-dot{left:calc(var(--rail) * -1 + 0px);top:10px;transform:scale(1.2);}
  .js .lv-step:not(.is-on) .lv-dot{transform:none;}
  .lv-step{grid-template-columns:1fr;gap:28px;padding:56px 0;}
  .lv-vis{max-width:420px;}
  .lv-t{font-size:27px;}
  .lv-p{font-size:16px;}
  .pp-big{gap:5px;}
  .gl-glass{width:min(100%,220px);}
}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-45);padding:clamp(28px,3.5vw,44px) 0 12px;}
.faq-cat:first-child{padding-top:0;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-24);
  padding:clamp(15px,1.8vw,21px) 0;cursor:pointer;font-size:clamp(15px,1.65vw,19px);
  line-height:1.4;letter-spacing:-.012em;color:var(--dg);}
.faq-q:hover{color:#2f6b57;}
.faq-q:focus-visible{outline:2px solid var(--dg);outline-offset:3px;}
.faq-ic{flex:0 0 auto;width:22px;height:22px;margin-top:2px;position:relative;
  font-size:0;color:transparent;}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;top:50%;left:50%;
  width:13px;height:1.5px;background:var(--dg);transform:translate(-50%,-50%);
  transition:transform .28s ease,opacity .28s ease;}
.faq-ic::after{transform:translate(-50%,-50%) rotate(90deg);}
.is-open .faq-ic::after{transform:translate(-50%,-50%) rotate(0deg);opacity:0;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .34s ease;}
.faq-a-inner{padding:0 0 clamp(18px,2.2vw,26px);max-width:70ch;
  font-size:clamp(14px,1.5vw,17px);line-height:1.62;color:var(--ink-60);}
.faq-a-inner b,.faq-a-inner strong{font-weight:var(--w-med);color:var(--dg);}
.faq-a-inner a{color:#2f6b57;}
@media(max-width:640px){.faq-q{gap:var(--s-16);}}

/* ---------- scènes au défilement : circuit + répartition ---------- */
.lv-scene{position:relative;height:300vh;}
/* l'air après la dernière scène appartient à la section claire suivante */
#composition{padding-top:clamp(72px,12vh,140px);}
.lv-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden;}
.lv-grid{display:grid;grid-template-columns:minmax(0,52%) minmax(0,48%);
  gap:clamp(32px,5vw,72px);align-items:center;width:100%;}
.lv-grid-rev .lv-copy{order:2;}
.lv-title{margin:20px 0 0;font-size:clamp(28px,3.4vw,48px);line-height:1.1;
  letter-spacing:-.02em;font-weight:var(--w-350);max-width:17ch;}
.lv-counter{margin-top:clamp(24px,3.5vh,40px);padding-top:var(--s-24);
  border-top:1px solid var(--line);display:flex;align-items:baseline;gap:var(--s-16);}
.lv-counter-v{margin:0;font-size:clamp(48px,6.5vw,88px);line-height:.9;letter-spacing:-.03em;
  font-weight:var(--w-light);min-width:1.4ch;font-variant-numeric:tabular-nums;
  transition:color .5s var(--ease,cubic-bezier(.22,.61,.36,1));}
.lv-counter-v sup{font-size:.4em;vertical-align:super;}
.lv-counter-v.is-accent{color:#2f6b57;}
.lv-counter-l{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-45);max-width:17ch;line-height:1.4;}
.lv-states{position:relative;margin-top:var(--s-24);min-height:96px;}
.lv-state{position:absolute;inset:0;transition:opacity .45s ease;}
.lv-state p{margin:0;font-size:clamp(15px,1.7vw,18px);line-height:1.55;
  color:var(--ink-60);max-width:38ch;}
.lv-track{margin-top:var(--s-32);max-width:340px;height:2px;
  background:rgba(0,43,20,.12);border-radius:var(--r-full);overflow:hidden;}
.lv-track-fill{height:100%;width:0;background:var(--dg);border-radius:var(--r-full);}

/* la chaîne d'intermédiaires */
.lv-chain{width:min(250px,100%);margin:0 auto;display:flex;flex-direction:column;}
.lv-node{border:1.5px solid var(--dg);border-radius:8px;
  padding:clamp(7px,1.2vh,14px) 14px;text-align:center;background:var(--canvas);
  font-family:var(--font-mono);font-size:12px;line-height:1.35;letter-spacing:.03em;
  overflow:hidden;transition:background-color .6s ease,border-color .6s ease,color .6s ease;}
.lv-node-strong{text-transform:uppercase;font-weight:var(--w-med);}
.is-direct .lv-node-you{background:var(--bgreen);border-color:var(--bgreen);color:var(--dg);}
.lv-conn{position:relative;height:clamp(24px,4.2vh,50px);display:flex;justify-content:center;overflow:hidden;}
.lv-conn-line{width:1.5px;height:100%;background:var(--dg);transition:background-color .6s ease;}
.is-direct .lv-conn-line{background:var(--bgreen);}
.lv-conn-head{position:absolute;left:50%;bottom:4px;width:7px;height:7px;
  border-right:1.5px solid var(--dg);border-bottom:1.5px solid var(--dg);
  transform:translateX(-50%) rotate(45deg);transition:border-color .6s ease;}
.is-direct .lv-conn-head{border-right-color:var(--bgreen);border-bottom-color:var(--bgreen);}
.lv-conn-tag{position:absolute;top:50%;left:calc(50% + 12px);transform:translateY(-50%);
  font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--dg);background:#FE9B1B;border-radius:var(--r-full);
  padding:3px 7px;white-space:nowrap;transition:opacity .4s ease;}

/* le pot et ses couches */
.lv-bottle{width:clamp(150px,min(20vw,28vh),240px);margin:0 auto;}
.lv-bottle-cap{width:78%;aspect-ratio:4.6/1;margin:0 auto;
  background:repeating-linear-gradient(90deg,rgba(0,43,20,.4) 0 1px,transparent 1px 5px),var(--stone);
  border:1.5px solid var(--dg);border-radius:5px 5px 2px 2px;border-bottom:none;}
.lv-bottle-neck{width:74%;aspect-ratio:24/1;margin:0 auto;background:var(--stone);
  border-left:1.5px solid var(--dg);border-right:1.5px solid var(--dg);}
.lv-bottle-body{position:relative;border:1.5px solid var(--dg);border-radius:18px 18px 5px 5px;
  padding:9% 4.5% 4.5%;background:var(--canvas);margin-top:-1.5px;}
.lv-bottle-inner{position:relative;width:100%;aspect-ratio:100/152;}
.lv-layer{position:absolute;left:0;right:0;border-radius:4px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;will-change:top,height;}
.lv-layer span{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;white-space:nowrap;color:var(--dg);}
.l-marketing{background:#b9bdb5;}
.l-structure{background:#cdd2c8;}
.l-fabrication{background:var(--stone);}
.l-actifs{background:var(--bgreen);}

@media(max-width:900px){
  .lv-scene{height:320vh;}
  .lv-grid{grid-template-columns:1fr;gap:clamp(20px,3vh,32px);justify-items:stretch;}
  /* la colonne texte s'ouvre pour que la barre passe sous le graphique */
  .lv-grid .lv-copy{display:contents;}
  .lv-grid .lv-copy>*{order:1;}
  .lv-grid .lv-chain,.lv-grid .lv-bottle{order:2;}
  .lv-grid .lv-track{order:3;margin-top:clamp(14px,2vh,22px);}
  .lv-title{font-size:clamp(22px,5.6vw,28px);max-width:22ch;}
  .lv-counter{margin-top:var(--s-16);padding-top:var(--s-16);gap:var(--s-8);}
  .lv-counter-v{font-size:44px;}
  .lv-counter-l{font-size:10px;max-width:14ch;}
  .lv-states{min-height:74px;margin-top:var(--s-16);}
  .lv-state p{font-size:15px;}
  .lv-track{margin-top:var(--s-16);max-width:none;}
  .lv-chain,.lv-bottle{justify-self:center;}
  .lv-chain{width:min(210px,100%);}
  .lv-node{font-size:10px;padding:6px;}
  .lv-conn{height:clamp(18px,3vh,34px);}
  .lv-conn-tag{left:calc(50% + 8px);font-size:9px;padding:3px 6px;}
  .lv-bottle{width:clamp(120px,min(38vw,22vh),180px);}
  .lv-layer span{font-size:10px;}
}
@media(max-width:900px) and (max-height:720px){
  .lv-title{font-size:19px;}
  .lv-counter-v{font-size:34px;}
  .lv-states{min-height:64px;}
  .lv-state p{font-size:14px;}
  .lv-chain{width:min(190px,100%);}
  .lv-node{padding:5px;}
  .lv-conn{height:clamp(15px,2.6vh,28px);}
  .lv-bottle{width:clamp(105px,min(34vw,20vh),155px);}
}
@media(prefers-reduced-motion:reduce){
  .lv-scene{height:auto;}
  .lv-sticky{position:static;height:auto;padding:clamp(56px,9vh,96px) 0;}
}

/* ---------- systèmes soutenus (onglets) ---------- */
.sys-tabs{display:flex;flex-wrap:wrap;gap:var(--s-8);}
.sys-tab{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-sans);font-size:15px;
  font-weight:var(--w-reg);color:var(--dg);
  background:color-mix(in oklab,var(--sys-acc,var(--dg)) 15%,var(--canvas));
  border:1.5px solid transparent;
  border-radius:var(--r-full);padding:11px 20px;cursor:pointer;transition:background .16s ease;}
.sys-tab svg{width:18px;height:18px;flex:0 0 auto;color:var(--sys-acc,currentColor);}
.sys-tab i{display:inline-flex;align-items:center;flex:0 0 auto;}
.sys-tab:hover{background:color-mix(in oklab,var(--sys-acc,var(--dg)) 26%,var(--canvas));}
.sys-tab.active{background:var(--sys-acc,var(--dg));color:var(--canvas);border-color:var(--sys-acc,var(--dg));}
.sys-tab.active svg{color:var(--canvas);}
.sys-tab:focus-visible{outline:2px solid var(--dg);outline-offset:2px;}
.sys-panel{position:relative;margin-top:var(--s-40);background:var(--stone);border-radius:var(--r-large);
  padding:clamp(22px,2.8vw,34px);
  display:grid;grid-template-columns:1fr minmax(0,32%);gap:clamp(24px,3vw,44px);align-items:center;}
.sys-panel-text{min-width:0;}
.sys-panel-media{position:relative;min-width:0;aspect-ratio:4/3;}
.sys-fig{position:absolute;inset:0;display:none;}
.sys-fig.on{display:block;}
.sys-fig img{display:block;width:100%;height:100%;object-fit:cover;border-radius:2px;
  background:color-mix(in oklab,var(--sys-acc,var(--dg)) 8%,var(--canvas));}
@media(max-width:820px){
  .sys-panel{grid-template-columns:1fr;gap:clamp(18px,2.5vh,26px);}
  .sys-panel-media{aspect-ratio:16/9;max-width:380px;}
}
.sys-panel .pill-code{color:var(--sys-acc,var(--ink-60));}
.band-stone .sys-panel{background:var(--canvas);}
.sys-panel-head{display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
.sys-panel .body{margin-top:20px;max-width:62ch;font-size:17px;}
.sys-panel .body b{font-weight:var(--w-med);color:var(--dg);}
.sys-foot{margin-top:var(--s-24);}
@media(max-width:640px){.sys-tab{font-size:14px;padding:10px 16px;}}

/* ---------- laboratoires : rail glissant ---------- */
.lab-rail{display:flex;gap:var(--s-16);overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
  padding-bottom:var(--s-16);margin:0 calc(var(--s-24) * -1);padding-inline:var(--s-24);}
.lab-rail>*{flex:0 0 clamp(240px,30%,340px);scroll-snap-align:start;}
.rail-foot{display:flex;align-items:center;gap:var(--s-24);margin-top:var(--s-16);}
.rail-hint{margin:0;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);flex:0 0 auto;}
.rail-bar{flex:1 1 auto;height:2px;background:rgba(0,43,20,.12);overflow:hidden;}
.rail-bar span{display:block;height:100%;background:var(--dg);
  transform:scaleX(0);transform-origin:left;transition:transform .12s linear;}
@media(max-width:560px){.rail-foot{flex-direction:column;align-items:stretch;gap:10px;}}

/* ---------- origine : carte, texte, certifications ---------- */
.origin{display:grid;grid-template-columns:1fr 42%;gap:clamp(28px,4vw,64px);align-items:center;}
.origin-copy{max-width:56ch;}
.origin-map{margin:0;}
.origin-map img{display:block;width:100%;height:auto;border-radius:var(--r-large);}
.origin-creds{margin-top:clamp(36px,5vw,64px);padding-top:clamp(28px,3.5vw,44px);border-top:1px solid var(--line);}
.cred-grid{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
  align-items:center;gap:clamp(20px,3vw,44px);}
.cred-grid li{display:block;}
.cred-grid img{display:block;height:clamp(76px,7vw,96px);width:auto;object-fit:contain;
  mix-blend-mode:multiply;}
@media(max-width:900px){.origin{grid-template-columns:1fr;}.origin-map{max-width:480px;}}
.lab-card{display:block;text-align:left;padding:0;background:var(--stone);border:none;
  border-radius:var(--r-card);overflow:hidden;cursor:pointer;font-family:inherit;
  transition:background .16s ease;}
.band-canvas .lab-card{background:var(--stone);}
.lab-card:hover{background:#e6e9e2;}
.lab-card:focus-visible{outline:2px solid var(--dg);outline-offset:3px;}
.lab-photo{display:block;aspect-ratio:4/3;overflow:hidden;background:rgba(0,43,20,.05);}
.lab-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.lab-info{display:block;padding:22px var(--s-24) 24px;}
.lab-actif{display:block;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sys-acc,var(--ink-45));}
.lab-name{display:block;margin-top:10px;font-size:21px;font-weight:var(--w-med);letter-spacing:-.016em;color:var(--dg);}
.lab-role{display:block;margin-top:4px;font-size:14px;color:var(--ink-60);}
.lab-more{display:inline-flex;align-items:center;gap:7px;margin-top:18px;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dg);}
.lab-more svg{width:15px;height:15px;transition:transform .16s ease;}
.lab-card:hover .lab-more svg{transform:translateX(3px);}

/* ---------- fiche laboratoire (modale) ---------- */
.lab-modal{position:fixed;inset:0;z-index:200;display:none;padding:var(--s-24);
  background:rgba(0,43,20,.62);overflow-y:auto;}
.lab-modal.open{display:flex;align-items:flex-start;justify-content:center;}
.lab-card-modal{position:relative;width:100%;max-width:620px;margin:auto;background:var(--canvas);
  border-radius:var(--r-large);overflow:hidden;}
.lab-close{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;display:grid;place-items:center;
  background:var(--canvas);color:var(--dg);border:none;border-radius:var(--r-full);cursor:pointer;}
.lab-close svg{width:19px;height:19px;}
.lab-close:hover{background:var(--stone);}
.lm-photo{aspect-ratio:16/10;overflow:hidden;background:var(--stone);}
.lm-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.lm-body{padding:clamp(24px,4vw,36px);}
.lm-body .pill-code{color:var(--sys-acc,var(--ink-60));}
.lm-body h3{margin-top:14px;}
.lm-body .caption{margin-top:6px;}
.lm-body>.body{margin-top:18px;}
.lm-why{margin-top:24px;padding:20px var(--s-24);background:var(--stone);border-radius:var(--r-input);
  border-left:2px solid var(--sys-acc,var(--dg));}
.lm-why-h{display:block;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sys-acc,var(--ink-45));}
.lm-why p{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--ink-60);}
.lm-certs{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px;}
.lm-cert{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--ink-60);
  border:1px solid var(--line);border-radius:var(--r-full);padding:6px 12px;}
.lm-study{margin:20px 0 0;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.015em;color:var(--ink-45);}

/* ---------- neuf cartes qui se rassemblent ---------- */
.stack-sec{padding-bottom:clamp(56px,9vh,96px);}
.stack-track{position:relative;height:300vh;margin-top:clamp(28px,4vh,48px);}
.stack-track:has(.sc-key){height:420vh;}
.stack-hold{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:20px;}
/* le terme en vh borne la hauteur par la largeur : le format ne peut pas être cassé */
.stack-stage{--cp:0;--fp:0;--pp:0;--cols:3;position:relative;perspective:1400px;perspective-origin:50% 40%;
  width:min(94vw,1100px,120vh);aspect-ratio:3 / 2;}
.stack-card{position:absolute;width:calc(88% / var(--cols));aspect-ratio:3 / 2;
  border-radius:10px;overflow:hidden;background:var(--canvas);
  box-shadow:0 1px 2px rgba(0,43,20,.05),0 10px 26px rgba(0,43,20,.10);
  display:grid;grid-template-rows:auto 1fr auto;padding:8px 9px 9px;gap:7px;
  left:calc(var(--x) + (50% - var(--x)) * var(--cp));
  top:calc(var(--y) + (50% - var(--y)) * var(--cp));
  transform:translate(-50%,-50%)
    translateY(calc((1 - var(--ap,1)) * 26px))
    scale(calc(.94 + .06 * var(--ap,1)))
    rotateX(calc(4deg * (1 - var(--cp))))
    rotateZ(calc(var(--tz,0deg) * .35 * (1 - var(--cp))));
  opacity:calc(var(--ap,1) * (1 - var(--pp)));}
.stack-card:nth-child(1){--x:16.667%;--y:16.667%}.stack-card:nth-child(2){--x:50.000%;--y:16.667%}.stack-card:nth-child(3){--x:83.333%;--y:16.667%}.stack-card:nth-child(4){--x:16.667%;--y:50.000%}.stack-card:nth-child(5){--x:50.000%;--y:50.000%}.stack-card:nth-child(6){--x:83.333%;--y:50.000%}.stack-card:nth-child(7){--x:16.667%;--y:83.333%}.stack-card:nth-child(8){--x:50.000%;--y:83.333%}.stack-card:nth-child(9){--x:83.333%;--y:83.333%}
.stack-card:nth-child(1){--tz:-2.4deg}.stack-card:nth-child(2){--tz:1.6deg}.stack-card:nth-child(3){--tz:2.8deg}.stack-card:nth-child(4){--tz:1.9deg}.stack-card:nth-child(5){--tz:-1.4deg}.stack-card:nth-child(6){--tz:-2.9deg}.stack-card:nth-child(7){--tz:2.2deg}.stack-card:nth-child(8){--tz:-1.8deg}.stack-card:nth-child(9){--tz:2.5deg}
.sc-head{display:flex;align-items:center;gap:7px;}
.sc-rule{flex:1 1 auto;height:1px;background:color-mix(in oklab,var(--c,var(--dg)) 40%,transparent);}
/* nom de l'actif en grand, sa fonction dessous ; la fonction s'efface quand les cartes se rassemblent */
.sc-key{display:block;margin-top:3px;font-family:var(--font-sans);font-weight:var(--w-med);
  font-size:clamp(11.5px,1.05vw,14px);line-height:1.2;letter-spacing:-.005em;text-wrap:balance;
  color:color-mix(in oklab,var(--c,var(--dg)) 62%,#002B14);
  opacity:max(0,calc(1 - var(--cp,0) * 2.4));}
.sc-photo{display:block;min-height:0;border-radius:5px;overflow:hidden;background:rgba(0,43,20,.05);}
.sc-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.sc-band{display:block;}
.sc-num{font-family:var(--font-mono);font-weight:var(--w-med);
  font-size:clamp(8px,.72vw,10px);letter-spacing:.14em;text-transform:uppercase;
  color:color-mix(in oklab,var(--c,var(--dg)) 62%,#002B14);flex:0 0 auto;}
.sc-name{display:block;font-family:var(--font-sans);font-weight:var(--w-350);color:var(--dg);
  font-size:clamp(11.5px,1.32vw,17px);line-height:1.15;letter-spacing:-.015em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.stack-card:has(.sc-key) .sc-name{font-size:clamp(14px,1.6vw,21px);line-height:1.1;letter-spacing:-.02em;}
/* cartes à mot-clé : sans numéro, la photo prend toute la largeur jusqu'en haut */
.stack-card:has(.sc-key){grid-template-rows:minmax(0,1fr) auto;padding:0;gap:0;}
.stack-card:has(.sc-key) .sc-photo{border-radius:0;}
.stack-card:has(.sc-key) .sc-band{padding:9px 11px 10px;}
@media(max-width:680px){.stack-card:has(.sc-key){padding:0;gap:0;}.stack-card:has(.sc-key) .sc-band{padding:6px 8px 7px;}}
.sc-spec{display:none;}
/* dernier temps : l'étiquette devient le produit */
.stack-product{position:absolute;left:50%;top:50%;z-index:50;
  height:96%;width:92%;object-fit:contain;pointer-events:none;
  transform:translate(-50%,-50%) scale(calc(.92 + .08 * var(--pp)));
  opacity:var(--pp);}
.stack-hint{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-45);transition:opacity .2s ease;}
@media(max-width:680px){
  .stack-track{height:280vh;}
  .stack-track:has(.sc-key){height:400vh;}
  .stack-stage{--cols:2;width:min(94vw,46vh);aspect-ratio:3 / 5;}
      .stack-card:nth-child(1){--x:25.000%;--y:10.000%}.stack-card:nth-child(2){--x:75.000%;--y:10.000%}.stack-card:nth-child(3){--x:25.000%;--y:30.000%}.stack-card:nth-child(4){--x:75.000%;--y:30.000%}.stack-card:nth-child(5){--x:25.000%;--y:50.000%}.stack-card:nth-child(6){--x:75.000%;--y:50.000%}.stack-card:nth-child(7){--x:25.000%;--y:70.000%}.stack-card:nth-child(8){--x:75.000%;--y:70.000%}.stack-card:nth-child(9){--x:25.000%;--y:90.000%}
  .stack-card{padding:6px 7px 7px;gap:5px;border-radius:8px;}
  .sc-band{gap:6px;}
  .sc-name{font-size:clamp(10px,3vw,13px);}
  .sc-num{font-size:clamp(9px,2.4vw,11px);}
  .sc-key{font-size:11px;margin:2px 0 0;}
  .stack-card:has(.sc-key) .sc-name{font-size:clamp(12.5px,3.5vw,15px);}
}

/* ---------- pied de page ---------- */
.foot{background:var(--dg);color:var(--canvas);padding:var(--s-64) 0 var(--s-40);}
.foot-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--s-24);}
.foot-top{display:flex;flex-wrap:wrap;gap:var(--s-32);align-items:flex-start;justify-content:space-between;
  padding-bottom:var(--s-40);border-bottom:1px solid var(--line-light);}
.foot-links{display:flex;flex-wrap:wrap;gap:var(--s-32);}
.foot-links a{font-size:15px;color:rgba(244,246,242,.74);text-decoration:none;}
@media(max-width:820px){.foot-links{gap:var(--s-16) var(--s-24);}.foot-links a{padding:11px 0;}}
.foot-links a:hover{color:var(--canvas);}
.foot-legal{padding-top:var(--s-24);font-family:var(--font-mono);font-size:12px;letter-spacing:.015em;color:rgba(244,246,242,.5);}
.foot-logo{height:24px;width:auto;}

/* ---------- bandeau de certifications ---------- */
.cred-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);margin-bottom:var(--s-24);}
.cred-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-32) var(--s-40);}
.cred-row img{height:52px;width:auto;object-fit:contain;}
@media(max-width:640px){.cred-row{gap:var(--s-24);}.cred-row img{height:40px;}}

/* ---------- utilitaires ---------- */
.center{text-align:center;}
.center .lead{margin-left:auto;margin-right:auto;}
.stack-24>*+*{margin-top:var(--s-24);}
.stack-16>*+*{margin-top:var(--s-16);}
.sec-head{max-width:44ch;}
.sec-head.center{margin:0 auto;text-align:center;}
.sec-head .eyebrow{display:block;margin-bottom:var(--s-16);}
.sec-body{margin-top:clamp(32px,5vh,56px);}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
