/* ============================================================
   KDL TECH — catalogue, direction « établi »            v2.0
   Complète css/style.css sans en redéfinir les variables.

   L'idée : le site est un atelier. Les pages alternent le
   sable de l'atelier et des vitrines sombres où les logiciels
   sont posés comme des objets, dans une vraie fenêtre, sous
   une lumière chaude. Le produit passe devant le discours.
   ============================================================ */

:root{
  --deep:#081420; --deep2:#0E2334; --deep3:#12314A;
  --on-deep:#EAF3FA; --on-deep-mute:#9DB6CC;
  --edge:rgba(255,255,255,.09);
  --warm:rgba(255,198,126,.20);
  --cool:rgba(88,184,240,.26);
  --lift:0 1px 2px rgba(20,48,70,.06), 0 18px 40px -28px rgba(20,48,70,.42);
  --lift-hi:0 2px 6px rgba(20,48,70,.10), 0 34px 64px -30px rgba(20,48,70,.52);
}
:root[data-theme="dark"]{
  --lift:0 1px 2px rgba(0,0,0,.6), 0 20px 46px -28px rgba(0,0,0,.9);
  --lift-hi:0 2px 8px rgba(0,0,0,.7), 0 38px 72px -32px rgba(0,0,0,1);
}

/* ---- accessibilité ---- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:#fff;
  padding:.7rem 1.1rem;border-radius:0 0 10px 0;font-weight:700}
.skip-link:focus{left:0}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:8px}
.stage a:focus-visible,.stage button:focus-visible{outline-color:#7ED4FF}
.nav a[aria-current="page"]{color:var(--navy);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
:root[data-theme="dark"] .nav a[aria-current="page"]{color:var(--acc2)}

/* ---- rythme : plus de sections toutes identiques ---- */
.band{padding:clamp(3rem,6vw,5rem) 0}
.band-tight{padding:clamp(2.2rem,4vw,3.2rem) 0}
.band-sand{background:var(--bg2)}
.stage{position:relative;overflow:hidden;background:var(--deep);color:var(--on-deep);
  padding:clamp(3.4rem,7vw,6rem) 0}
.stage::before{content:"";position:absolute;inset:-30% -10% auto auto;width:min(760px,80vw);height:560px;
  background:radial-gradient(circle at 70% 30%,var(--warm),transparent 62%);pointer-events:none}
.stage::after{content:"";position:absolute;inset:auto auto -32% -14%;width:min(680px,72vw);height:520px;
  background:radial-gradient(circle at 40% 60%,var(--cool),transparent 64%);pointer-events:none}
.stage > .container{position:relative;z-index:1}
.stage h1,.stage h2,.stage h3{color:#fff}
.stage p{color:var(--on-deep-mute)}
.stage a:not(.btn){color:#9BD8FF}

/* ---- titres : le label éditorial remplace la numérotation ---- */
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.9rem;
  font:700 .78rem/1 var(--b);letter-spacing:.02em;color:var(--acc);text-transform:none}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor;border-radius:2px;flex:none}
.stage .eyebrow{color:#7ED4FF}
:root[data-theme="dark"] .eyebrow{color:var(--acc2)}
.h-xl{font-size:clamp(2.3rem,6vw,4.1rem);line-height:.98;letter-spacing:-.035em;font-weight:800}
.h-lg{font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.06;letter-spacing:-.028em;font-weight:800}
.h-md{font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.15;letter-spacing:-.018em;font-weight:800}
.p-lead{font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.6;color:var(--muted);max-width:56ch}
.stage .p-lead{color:var(--on-deep-mute)}
.head{max-width:60ch;margin-bottom:2.2rem}
.head .p-lead{margin-top:.7rem}

/* ---- la fenêtre : l'objet central de la mise en scène ---- */
.win{position:relative;border-radius:13px;overflow:hidden;background:#0c1620;
  border:1px solid var(--edge);box-shadow:0 2px 6px rgba(0,0,0,.24),0 46px 90px -38px rgba(0,0,0,.62)}
.win-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .78rem;
  background:linear-gradient(180deg,#18242f,#111b24);border-bottom:1px solid var(--edge)}
.win-dots{display:flex;gap:.34rem;flex:none}
.win-dots i{width:9px;height:9px;border-radius:50%;background:#3b4b59;display:block}
.win-title{font:600 .72rem/1 var(--m);letter-spacing:.07em;color:#90a8bd;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.win-body{display:block;background:#0c1620}
.win-body img{display:block;width:100%;height:auto}
.win-cap{margin-top:.75rem;font-size:.82rem;color:var(--ink-3)}
.stage .win-cap{color:#7f97ad}

/* fallback : pas encore de capture → surface de marque, annoncée comme telle */
.win-art{position:relative;aspect-ratio:16/10;display:block}
.win-art svg{position:absolute;inset:0;width:100%;height:100%}

/* mise en scène : légère perspective, une seule fois par page */
.scene{position:relative;perspective:1600px}
.scene .win{transform:rotateY(-6deg) rotateX(1.6deg) translateZ(0);transform-origin:left center;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.scene:hover .win{transform:rotateY(-3.5deg) rotateX(1deg)}
.scene-flat .win{transform:none}
@media(max-width:860px){.scene .win,.scene:hover .win{transform:none}}

/* détail agrandi posé sur la fenêtre */
.scene-chip{position:absolute;right:-4%;bottom:-8%;width:44%;max-width:280px;border-radius:11px;
  overflow:hidden;border:1px solid var(--edge);background:#0c1620;
  box-shadow:0 30px 60px -26px rgba(0,0,0,.75)}
.scene-chip img{display:block;width:100%;height:auto}
@media(max-width:700px){.scene-chip{display:none}}

/* ---- hero ---- */
.hero-shop{display:grid;gap:2.2rem;align-items:center}
@media(min-width:980px){.hero-shop{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3.6rem}}
.hero-shop .h-xl{max-width:14ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.hero-note{margin-top:1.1rem;font-size:.86rem;color:#7f97ad;max-width:46ch}
.hero-marks{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.5rem;
  font:600 .8rem/1.4 var(--b);color:var(--on-deep-mute)}
.hero-marks span{display:inline-flex;align-items:center;gap:.45rem}
.hero-marks span::before{content:"";width:5px;height:5px;border-radius:50%;background:#5FDC9A;flex:none}

/* boutons sur fond sombre */
.stage .btn{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff}
.stage .btn:hover{background:rgba(255,255,255,.12);color:#fff}
.stage .btn-cy{background:#2E8FD4;border-color:transparent;color:#04121c;font-weight:800}
.stage .btn-cy:hover{background:#4FA6E4;color:#04121c}

/* ---- cartes produit ---- */
.grid{display:grid;gap:1.4rem;grid-template-columns:1fr}
@media(min-width:700px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.grid-wide{grid-template-columns:1fr}

.pcard{position:relative;display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--lift);
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--lift-hi);border-color:var(--acc)}
.pcard[hidden]{display:none}
.pcard-shot{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--deep);
  border-bottom:1px solid var(--line)}
.pcard-shot img{width:100%;height:100%;object-fit:cover;object-position:top left;
  /* La capture entière serait illisible à cette taille : on cadre sur le haut
     gauche, agrandi, pour qu'un détail de l'interface reste reconnaissable. */
  transform:scale(1.5);transform-origin:top left;
  transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.pcard:hover .pcard-shot img{transform:scale(1.56)}
.pcard-shot::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(190deg,transparent 58%,rgba(8,20,32,.22));}
.pcard-shot svg{position:absolute;inset:0;width:100%;height:100%}
.pcard-in{display:flex;flex-direction:column;gap:.62rem;padding:1.15rem 1.2rem 1.25rem;flex:1}
.pcard-line{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.pcard h3{font-size:1.08rem;font-weight:800;letter-spacing:-.015em}
.pcard-benefit{color:var(--muted);font-size:.93rem;flex:1}
.pcard-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  border-top:1px solid var(--line);padding-top:.75rem;margin-top:.2rem}
.pcard-os{font:600 .76rem/1.3 var(--b);color:var(--ink-3)}
.pcard-price{font:800 1.08rem/1 var(--d);color:var(--navy);letter-spacing:-.01em;white-space:nowrap}
:root[data-theme="dark"] .pcard-price{color:var(--acc2)}
.pcard-price small{display:block;font:600 .64rem/1 var(--m);letter-spacing:.1em;color:var(--ink-3);margin-top:.3rem}
.pcard-cta{display:flex;gap:.5rem;padding:0 1.2rem 1.2rem;flex-wrap:wrap}
.pcard-cta .btn{flex:1;justify-content:center}
.stage .pcard{background:rgba(255,255,255,.04);border-color:var(--edge)}
.stage .pcard h3{color:#fff}
.stage .pcard-benefit,.stage .pcard-os{color:var(--on-deep-mute)}
.stage .pcard-price{color:#8FD3FF}
.stage .pcard-foot{border-top-color:var(--edge)}

/* ---- badges ---- */
.pills{display:flex;flex-wrap:wrap;gap:.35rem}
.pill{display:inline-flex;align-items:center;font:700 .63rem/1 var(--m);letter-spacing:.09em;
  padding:.33rem .5rem;border-radius:6px;border:1px solid transparent;white-space:nowrap}
.pill-free{color:#0f7a3f;background:rgba(18,140,75,.12);border-color:rgba(18,140,75,.26)}
.pill-pro{color:#fff;background:var(--navy)}
.pill-beta{color:#8a5a00;background:rgba(214,158,46,.16);border-color:rgba(214,158,46,.34)}
.pill-soon{color:var(--ink-3);background:var(--surface2);border-color:var(--line)}
.pill-web{color:var(--acc);background:rgba(42,111,163,.12);border-color:rgba(42,111,163,.28)}
.pill-opensource{color:var(--muted);border-color:var(--line)}
:root[data-theme="dark"] .pill-free{color:#5fdc9a;background:rgba(18,140,75,.2);border-color:rgba(95,220,154,.3)}
:root[data-theme="dark"] .pill-pro{background:var(--acc);color:#04121c}
:root[data-theme="dark"] .pill-beta{color:#ffd37a;background:rgba(214,158,46,.18);border-color:rgba(255,211,122,.32)}
:root[data-theme="dark"] .pill-web{color:var(--acc2);background:rgba(126,212,255,.14);border-color:rgba(126,212,255,.28)}
.stage .pill-free{color:#8BE9B7;background:rgba(95,220,154,.14);border-color:rgba(95,220,154,.3)}
.stage .pill-pro{background:#2E8FD4;color:#04121c}
.stage .pill-beta{color:#FFD79A;background:rgba(255,198,126,.16);border-color:rgba(255,198,126,.32)}
.stage .pill-web{color:#9BD8FF;background:rgba(126,212,255,.12);border-color:rgba(126,212,255,.26)}
.stage .pill-soon{color:#9DB6CC;background:rgba(255,255,255,.05);border-color:var(--edge)}

/* ---- filtres ---- */
.filters{display:flex;flex-wrap:wrap;gap:.5rem}
.filter{font:600 .87rem var(--b);padding:.5rem .92rem;border-radius:999px;cursor:pointer;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);
  transition:background .2s ease,color .2s ease,border-color .2s ease}
.filter:hover{border-color:var(--acc)}
.filter.is-on{background:var(--navy);color:#fff;border-color:var(--navy)}
:root[data-theme="dark"] .filter.is-on{background:var(--acc);color:#04121c;border-color:var(--acc)}
.section-empty{color:var(--ink-3);font-size:.92rem;margin-top:1rem}
.is-filtered-out{display:none}

/* ---- composition alternée image / texte ---- */
.split{display:grid;gap:2rem;align-items:center}
@media(min-width:980px){
  .split{grid-template-columns:repeat(2,minmax(0,1fr));gap:3.4rem}
  .split-rev > .split-media{order:2}
}
.split-body .p-lead{margin-bottom:1.3rem}
.bullets{list-style:none;display:grid;gap:.55rem;margin:1.2rem 0 1.5rem}
.bullets li{position:relative;padding-left:1.6rem;font-size:.97rem}
.bullets li::before{content:"";position:absolute;left:0;top:.52em;width:7px;height:7px;border-radius:50%;
  background:var(--acc)}
.stage .bullets li{color:var(--on-deep-mute)}
.stage .bullets li::before{background:#5FDC9A}

/* ---- éditions Free / Pro ---- */
.editions{display:grid;gap:1.2rem;margin-bottom:1.8rem}
@media(min-width:820px){.editions{grid-template-columns:repeat(2,1fr)}}
.edition{display:flex;flex-direction:column;gap:.95rem;background:var(--surface);
  border:1px solid var(--line);border-radius:18px;padding:1.5rem 1.4rem}
.edition-pro{background:var(--deep);border-color:transparent;color:var(--on-deep);box-shadow:var(--lift-hi)}
.edition-pro h3{color:#fff}
.edition-pro .edition-price{color:#8FD3FF}
.edition-pro .edition-list li{color:var(--on-deep-mute)}
.edition-pro .edition-list li::before{color:#5FDC9A}
.edition-kind{font:700 .68rem/1 var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.edition-pro .edition-kind{color:#7ED4FF}
.edition h3{font-size:1.22rem;letter-spacing:-.02em}
.edition-price{font:800 1.75rem/1 var(--d);color:var(--navy);letter-spacing:-.025em}
:root[data-theme="dark"] .edition-price{color:var(--acc2)}
.edition-state{font:600 .74rem/1 var(--m);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.edition-pro .edition-state{color:#9DB6CC}
.edition-list{list-style:none;display:grid;gap:.5rem;flex:1}
.edition-list li{position:relative;padding-left:1.5rem;color:var(--muted);font-size:.93rem}
.edition-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--wa);font-weight:800}
.edition .btn{align-self:flex-start}
.edition-pro .btn-cy{background:#2E8FD4;color:#04121c}
.edition-pro .btn-cy:hover{background:#4FA6E4;color:#04121c}

/* ---- comparatif ---- */
.comp{width:100%;border-collapse:collapse;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:.94rem}
.comp th,.comp td{padding:.78rem .9rem;border-bottom:1px solid var(--line);text-align:left}
.comp thead th{background:var(--surface2);font:700 .78rem var(--b);letter-spacing:.02em}
.comp td.c,.comp th.c{text-align:center;width:20%}
.comp tbody tr:last-child td{border-bottom:0}
.comp td.c{font-weight:700}

/* ---- téléchargement ---- */
.oslist{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.os-btn{display:flex;align-items:center;gap:.7rem;background:rgba(255,255,255,.05);
  border:1px solid var(--edge);border-radius:13px;padding:.85rem 1rem;font-weight:700;color:#fff;
  transition:border-color .2s ease,transform .2s ease,background .2s ease}
.os-btn:hover{border-color:#5FDC9A;transform:translateY(-2px);background:rgba(255,255,255,.09)}
.os-ic{font-size:1.2rem;line-height:1}
.ossub{font:500 .77rem/1.3 var(--b);color:var(--on-deep-mute)}
.dl-note{color:var(--on-deep-mute);font-size:.86rem;margin-top:1.1rem;max-width:64ch}
.dl-note a{color:#9BD8FF;font-weight:700;text-decoration:underline}

/* ---- réassurance, version compacte ---- */
.trust{display:grid;gap:1.6rem 2rem;margin-top:1.4rem;grid-template-columns:1fr}
@media(min-width:640px){.trust{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.trust{grid-template-columns:repeat(4,1fr)}}
.trust-item{border-top:2px solid var(--line);padding-top:.9rem}
.trust-item h3{font-size:.96rem;margin-bottom:.35rem;letter-spacing:-.01em}
.trust-item p{color:var(--muted);font-size:.87rem;line-height:1.55}
.stage .trust-item{border-top-color:var(--edge)}
.stage .trust-item p{color:var(--on-deep-mute)}

/* ---- FAQ ---- */
.faq{display:grid;gap:.5rem;max-width:74ch}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px}
.faq summary{cursor:pointer;padding:.85rem 1rem;font-weight:700;list-style:none;display:flex;
  justify-content:space-between;gap:1rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--acc);font-weight:800;font-size:1.1rem;flex:none}
.faq details[open] summary::after{content:"–"}
.faq p{padding:0 1rem 1rem;color:var(--muted);font-size:.93rem}

/* ---- fiche produit ---- */
.prod-hero{display:grid;gap:2.2rem;align-items:center}
@media(min-width:980px){.prod-hero{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:3.4rem}}
.crumbs{font-size:.84rem;color:var(--on-deep-mute);margin-bottom:1.5rem}
.crumbs a:hover{text-decoration:underline}
.prod-title{display:flex;align-items:center;gap:.85rem;margin-bottom:.7rem}
.prod-icon{flex:none;width:52px;height:52px;display:grid;place-items:center;font-size:1.55rem;
  background:rgba(255,255,255,.07);border:1px solid var(--edge);border-radius:14px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1.1rem;
  margin-top:1.8rem;padding-top:1.3rem;border-top:1px solid var(--edge)}
.facts dt{font:600 .64rem/1 var(--m);letter-spacing:.11em;text-transform:uppercase;color:#7f97ad}
.facts dd{font-weight:700;margin-top:.3rem;font-size:.93rem;color:#fff}
.facts dd a{color:#9BD8FF;text-decoration:underline}
.prod-note{color:#7f97ad;font-size:.86rem;margin-top:1rem}

/* ---- galerie ---- */
.shots{display:grid;gap:1.2rem;grid-template-columns:1fr}
@media(min-width:900px){.shots-2{grid-template-columns:repeat(2,1fr)}}
.shots figure{margin:0}
.shots figcaption{margin-top:.7rem;color:var(--ink-3);font-size:.85rem}

/* ---- bandeau de test ---- */
.notice{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--navy);
  border-radius:12px;padding:.9rem 1.05rem;color:var(--muted);max-width:72ch;font-size:.92rem}
.notice b{color:var(--ink)}
.notice-test{border-left-color:#c98a00;background:rgba(214,158,46,.1)}
.stage .notice{background:rgba(255,255,255,.05);border-color:var(--edge);border-left-color:#FFC67E;color:var(--on-deep-mute)}
.stage .notice b{color:#fff}

/* ---- sélecteur de langue ---- */
.langsw{display:inline-flex;align-items:center;gap:.1rem;border:1px solid var(--line);
  border-radius:999px;padding:.16rem;background:var(--surface)}
.langsw a{font:700 .73rem/1 var(--m);letter-spacing:.05em;padding:.37rem .5rem;border-radius:999px;
  color:var(--muted);transition:background .2s ease,color .2s ease}
.langsw a:hover{color:var(--ink)}
.langsw a[aria-current="true"]{background:var(--navy);color:#fff}
:root[data-theme="dark"] .langsw a[aria-current="true"]{background:var(--acc);color:#04121c}
.langbar{background:var(--surface2);border-bottom:1px solid var(--line);font-size:.9rem}
.langbar .container{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.6rem 0}
.langbar a{color:var(--navy);font-weight:700;text-decoration:underline}
:root[data-theme="dark"] .langbar a{color:var(--acc2)}
.langbar button{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;text-decoration:underline}

/* ---- apparition au défilement ---- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.07s}
.reveal-d2{transition-delay:.14s}
.reveal-d3{transition-delay:.21s}

/* ---- mobile ---- */
@media(max-width:700px){
  .facts{grid-template-columns:repeat(2,1fr)}
  .pcard-cta .btn{flex:1 1 100%}
  .comp th,.comp td{padding:.6rem .5rem;font-size:.87rem}
  .hero-cta .btn{flex:1 1 100%;justify-content:center}
  .h-xl{font-size:clamp(2rem,9vw,2.6rem)}
}

/* ---- mouvement réduit : tout se calme ---- */
@media(prefers-reduced-motion:reduce){
  .pcard,.os-btn,.btn,.scene .win,.pcard-shot img{transition:none}
  .pcard:hover,.os-btn:hover,.btn:hover{transform:none}
  .pcard:hover .pcard-shot img{transform:scale(1.5)}
  .scene .win,.scene:hover .win{transform:none}
  .reveal{opacity:1;transform:none;transition:none}
}

/* Capture déjà mise en scène : pas de barre de titre simulée. */
.win-bare{border-color:rgba(255,255,255,.06)}

/* ---- achat : état honnête tant que le paiement n'est pas ouvert ---- */
.buy-wrap{display:inline-flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.pcard-cta .buy-wrap{flex:1}
.pcard-cta .buy-wrap .btn{width:100%;justify-content:center}
.btn.is-soon{opacity:.62;cursor:not-allowed}
.btn.is-soon:hover{transform:none}
.buy-soon{font-size:.78rem;color:var(--ink-3);line-height:1.35}
.buy-soon a{color:var(--navy);font-weight:700;text-decoration:underline}
:root[data-theme="dark"] .buy-soon a{color:var(--acc2)}
.stage .buy-soon,.edition-pro .buy-soon{color:#9DB6CC}
.stage .buy-soon a,.edition-pro .buy-soon a{color:#9BD8FF}
.buy-terms{font:600 .74rem/1.4 var(--m);letter-spacing:.04em;color:var(--ink-3);margin-top:.5rem}
.edition-pro .buy-terms,.stage .buy-terms{color:#9DB6CC}
.pcard-price.is-soft{font:700 .88rem/1.3 var(--b);color:var(--ink-3);letter-spacing:0}
.stage .pcard-price.is-soft{color:var(--on-deep-mute)}

/* ── Compteur de téléchargements ─────────────────────────────────────────
   Un chiffre réel, mesuré, jamais estimé. Il reste discret : c'est une
   information de confiance, pas un argument de vente criard. Masqué tant
   qu'il vaut zéro — un « 0 » n'apprend rien et dessert le produit. */
.dl-count{
  margin-top:.9rem;font-size:.9rem;font-weight:700;color:var(--muted,#6c6355);
  display:inline-flex;align-items:center;gap:.45em;
}
.dl-count::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--good,#128c4b);flex:none;
}
.pcard-dl{
  font-size:.78rem;font-weight:700;color:var(--muted,#6c6355);
  display:inline-flex;align-items:center;gap:.35em;
}
.pcard-dl::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--good,#128c4b);flex:none;
}
.pcard-foot{flex-wrap:wrap;gap:.4rem .8rem}
/* display:inline-flex l'emporterait sur le display:none par défaut de [hidden] :
   sans cette règle, un compteur à zéro resterait affiché, vide. */
.dl-count[hidden],.pcard-dl[hidden]{display:none}
