/* =========================================================
   SYVARN — feuille de style commune du site
   ========================================================= */
:root{
  /* Signature blanche, noire et bleue : une interface claire, structurée et sans effets décoratifs superflus. */
  --bg:#FFFFFF; --bg-2:#F6F8FC; --carte:#FFFFFF; --carte-2:#F1F5FB;
  --bleu:#006DFF; --bleu-clair:#006DFF; --bleu-fond:rgba(0,109,255,.09);
  --ambre:#006DFF; --ambre-clair:#006DFF; --ambre-fond:rgba(0,109,255,.09);
  --live:#006DFF; --live-fond:rgba(0,109,255,.10);
  --accent:#006DFF; --accent-fond:rgba(0,109,255,.10);
  --vert:#006DFF; --vert-fond:rgba(0,109,255,.10); --rouge:#111827; --violet:#006DFF;
  --texte:#0A1020; --texte-2:#46536A; --sourdine:#748198;
  --trait:rgba(10,16,32,.11); --trait-fort:rgba(10,16,32,.20);
  --rayon:14px; --rayon-s:8px;
  --ombre:0 24px 48px -24px rgba(0,0,0,.6);
  --police-titre:"Inter",system-ui,sans-serif; --police-texte:"Inter",system-ui,sans-serif; --police-logo:"Sora","Inter",system-ui,sans-serif;
  --police-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --nav-h:4.25rem;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1rem)}
body{background:var(--bg);color:var(--texte-2);font-family:var(--police-texte);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;min-height:100vh}
::selection{background:var(--accent);color:var(--bg)}
h1,h2,h3,h4{font-family:var(--police-titre);color:var(--texte);letter-spacing:-.02em;line-height:1.15;font-weight:600}
a{color:var(--bleu-clair)}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
.mono{font-family:var(--police-mono)}
.enveloppe{width:min(86rem,100% - 3rem);margin-inline:auto}
.enveloppe-etroite{width:min(48rem,100% - 2.5rem);margin-inline:auto}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
section{padding:5.5rem 0;position:relative}
@media(max-width:48rem){section{padding:4rem 0}}
.surtitre{display:inline-flex;align-items:center;gap:.55rem;font-size:.8125rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--sourdine);margin-bottom:.9rem}
.surtitre::before{content:none}
h2{font-size:clamp(1.65rem,2.6vw,2.125rem);font-weight:600;letter-spacing:-.025em;line-height:1.12;max-width:28ch;margin-bottom:1rem}
h2 em,h1 em{font-style:normal;color:var(--texte-2)}
.intro{font-size:1.0625rem;line-height:1.55;max-width:60ch;color:var(--texte-2)}
.intro strong,p strong{color:var(--texte);font-weight:600}
.entete-section{margin-bottom:2.75rem}
.entete-section.centre{text-align:center}
.entete-section.centre h2,.entete-section.centre .intro{margin-inline:auto}
.entete-section.centre .surtitre::before{display:none}
.entete-ligne{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.5rem}
.entete-ligne h2{margin-bottom:.5rem}
.entete-ligne .intro{max-width:52ch}

/* révélation */
.reveal{opacity:0;transition:opacity .45s ease}
.reveal.visible{opacity:1;transform:none}

/* cartes */
.carte{position:relative;background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);padding:1.5rem;overflow:hidden;transition:border-color .2s,background .2s}
.carte:hover{border-color:var(--trait-fort);background:var(--carte-2)}
.carte>*{position:relative}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--police-texte);font-weight:600;font-size:.9375rem;letter-spacing:-.005em;padding:.8rem 1.35rem;border-radius:10px;text-decoration:none;transition:transform .2s,box-shadow .3s,background .3s,color .3s,border-color .3s;border:1px solid transparent;white-space:nowrap;cursor:pointer}
.btn svg{width:1.05em;height:1.05em;flex-shrink:0}
.btn-primaire{background:var(--bleu);color:#fff;box-shadow:none}
.btn-primaire:hover{background:#0059D6;transform:none;box-shadow:none}
.btn-secondaire{background:var(--carte);color:var(--texte);border-color:var(--trait-fort)}
.btn-secondaire:hover{border-color:var(--texte-2);background:var(--carte-2);transform:none}
.btn-vert{background:var(--vert);color:#04210f;box-shadow:0 10px 30px -10px rgba(34,197,94,.5)}
.btn-vert:hover{background:#3ddc74;transform:translateY(-2px)}
.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn[aria-disabled="true"]:hover{transform:none}
.btn-petit{padding:.6rem 1.1rem;font-size:.88rem}

/* badges */
.badge{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--police-texte);font-weight:500;font-size:.75rem;letter-spacing:0;text-transform:none;padding:.22rem .55rem;border-radius:6px;border:1px solid var(--trait-fort);color:var(--texte-2);white-space:nowrap}
.badge.payant{border-color:rgba(245,180,0,.45);color:var(--ambre-clair);background:var(--ambre-fond)}
.badge.gratuit{color:var(--texte)}
.badge.type{color:var(--texte-2)}
.badge.version{color:var(--sourdine)}
.badge.strategie{color:var(--texte-2)}

/* =========================================================
   NAVIGATION
   ========================================================= */
nav.principale{position:sticky;top:0;z-index:50;background:var(--nav-fond);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--trait)}
nav.principale .enveloppe{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:1rem}
.logo{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;font-family:var(--police-logo);font-weight:800;letter-spacing:-.03em}
.logo-syvarn{color:var(--bleu);font-size:1.1rem;letter-spacing:.08em}
.logo-syvarn .logo-marque{width:1.9rem;height:1.9rem;flex:none}
.liens{display:flex;gap:.25rem;align-items:center}
.liens a{font-size:.875rem;font-weight:500;color:var(--texte-2);text-decoration:none;padding:.55rem .85rem;border-radius:999px;transition:color .2s,background .2s}
.liens a:hover,.liens a.actif{color:var(--texte);background:rgba(255,255,255,.05)}
.nav-cta{display:flex;align-items:center;gap:.5rem}
.nav-cta .btn{padding:.65rem 1.15rem;font-size:.9rem}
.burger{display:none;width:2.6rem;height:2.6rem;border-radius:10px;border:1px solid var(--trait);place-items:center}
.burger span{display:block;width:1.1rem;height:2px;background:var(--texte);margin:2.5px 0;transition:transform .3s,opacity .3s}
@media(max-width:60rem){
  .liens{position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;background:rgba(255,255,255,.97);padding:1rem 1.25rem 1.5rem;border-bottom:1px solid var(--trait);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.3s}
  .liens.ouvert{transform:none;opacity:1;pointer-events:auto}
  .liens a{font-size:1.05rem;padding:.9rem 1rem}
  .burger{display:grid}
  .burger.ouvert span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
  .burger.ouvert span:nth-child(2){opacity:0}
  .burger.ouvert span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}
  .nav-cta .cache-mobile{display:none}
}

/* fil d'Ariane */
.ariane{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8125rem;font-weight:500;color:var(--sourdine);margin-bottom:1.25rem}
.ariane a{color:var(--sourdine);text-decoration:none}
.ariane a:hover{color:var(--texte)}
.ariane span.sep{opacity:.5}
.ariane .courant{color:var(--texte-2)}

/* =========================================================
   HÉROS (accueil et pages outil)
   ========================================================= */
.heros{padding:5rem 0 4.5rem;overflow:hidden}
.heros .enveloppe{display:grid;gap:3rem;align-items:center;grid-template-columns:1fr}
@media(min-width:64rem){.heros:not(.heros-direct) .enveloppe{grid-template-columns:1.1fr .9fr;gap:3.5rem}.heros{padding:6rem 0 5rem}}
.heros.compact{padding:3.5rem 0 3.5rem}
.badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}
.badge-heros{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .8rem .35rem .6rem;border-radius:999px;border:1px solid var(--trait);background:var(--bg-2);font-size:.8125rem;font-weight:500;color:var(--texte-2);margin-bottom:1.5rem}
.badge-heros .pastille{width:.5rem;height:.5rem;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px var(--live-fond);animation:pulser 2s infinite}
@keyframes pulser{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 .55rem rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
h1{font-size:clamp(2.25rem,4.2vw,3.5rem);font-weight:600;letter-spacing:-.035em;line-height:1.03;max-width:20ch}
h1 .accent{color:var(--texte-2)}
.chapeau{margin-top:1.4rem;font-size:1.125rem;line-height:1.55;max-width:48ch;color:var(--texte-2)}
.precision{margin-top:1rem;font-size:1rem;color:var(--sourdine);max-width:48ch}
.actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.2rem;align-items:center}
.stats{display:grid;grid-template-columns:repeat(4,auto);gap:1.6rem 2.2rem;margin-top:2.75rem;padding-top:1.75rem;border-top:1px solid var(--trait)}
@media(max-width:34rem){.stats{grid-template-columns:repeat(2,1fr)}}
.stat .chiffre{font-family:var(--police-mono);font-weight:500;font-size:1.5rem;color:var(--texte);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.stat .chiffre small{font-size:.85rem;color:var(--sourdine);font-weight:500;margin-left:.15rem}
.stat .libelle{font-size:.8125rem;color:var(--sourdine);margin-top:.4rem}

/* terminal (cadre d'illustration) */
.terminal{position:relative;border-radius:var(--rayon);border:1px solid var(--trait-fort);background:var(--bg-2);box-shadow:var(--ombre);overflow:hidden}
.terminal::after{content:"";position:absolute;inset:-40% -20% auto;height:60%;background:radial-gradient(closest-side,rgba(47,111,224,.18),transparent);pointer-events:none}
.terminal-barre{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-bottom:1px solid var(--trait);font-family:var(--police-mono);font-size:.74rem;color:var(--sourdine)}
.terminal-barre .points{display:none}
.terminal-barre .points i{width:.62rem;height:.62rem;border-radius:50%}
.terminal-barre .points i:nth-child(1){background:#F0506E}.terminal-barre .points i:nth-child(2){background:#F5B400}.terminal-barre .points i:nth-child(3){background:#22C55E}
.terminal-barre .symbole{color:var(--texte);font-weight:600}
.terminal-barre .etat{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;color:var(--sourdine)}.terminal-barre .etat.live{color:var(--live)}
.terminal-barre .etat::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}
.terminal-barre .rejouer{width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid var(--trait-fort);display:grid;place-items:center;color:var(--sourdine);transition:.2s;margin-left:.4rem}
.terminal-barre .rejouer:hover{color:var(--accent);border-color:var(--accent)}
.terminal-barre .rejouer svg{width:.8rem;height:.8rem}
.prose p{margin-bottom:1.1rem}.prose p:last-child{margin-bottom:0}
.illu{width:100%;height:auto;aspect-ratio:16/10;display:block;font-family:var(--police-mono)}
.terminal img.visuel{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.mini img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.illu text{font-size:9px;fill:var(--sourdine)}

/* illustrations : classes communes */
.illu .grille line{stroke:rgba(127,141,168,.12);stroke-width:1}
.illu .bougie line{stroke-width:1.2}
.illu .bougie.haut line,.illu .bougie.haut rect{stroke:var(--vert);fill:rgba(34,197,94,.85)}
.illu .bougie.bas line,.illu .bougie.bas rect{stroke:var(--rouge);fill:rgba(240,80,110,.85)}
.illu .bougie{transform-box:fill-box;transform-origin:center;opacity:0;animation:apparaitre .45s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 30ms)}
@keyframes apparaitre{from{opacity:0;transform:scaleY(.15)}to{opacity:1;transform:none}}
.illu .couche{opacity:0;animation:fondu .8s ease forwards;animation-delay:var(--d,1s)}
@keyframes fondu{to{opacity:1}}
.illu .etiq rect{fill:#0A1225;stroke:var(--trait-fort);rx:4}
.illu .etiq text{font-size:9px;font-weight:600;fill:var(--texte)}
.illu .etiq.ambre rect{stroke:var(--ambre);fill:rgba(245,180,0,.14)}.illu .etiq.ambre text{fill:var(--ambre-clair)}
.illu .etiq.bleu rect{stroke:var(--bleu);fill:rgba(47,111,224,.18)}.illu .etiq.bleu text{fill:var(--bleu-clair)}
.illu .etiq.vert rect{stroke:var(--vert);fill:rgba(34,197,94,.14)}.illu .etiq.vert text{fill:#5EE39A}
.illu .etiq.rouge rect{stroke:var(--rouge);fill:rgba(240,80,110,.14)}.illu .etiq.rouge text{fill:#FF8FA3}
.illu .zone-bleu{fill:rgba(47,111,224,.16);stroke:var(--bleu)}
.illu .zone-ambre{fill:rgba(245,180,0,.22);stroke:var(--ambre)}
.illu .zone-vert{fill:rgba(34,197,94,.14);stroke:var(--vert)}
.illu .zone-rouge{fill:rgba(240,80,110,.14);stroke:var(--rouge)}
.illu .zone-violet{fill:rgba(167,139,250,.14);stroke:var(--violet)}
.illu .ligne-bleu{stroke:var(--bleu-clair);stroke-width:1.2;fill:none}
.illu .ligne-ambre{stroke:var(--ambre);stroke-width:1.2;fill:none}
.illu .ligne-vert{stroke:var(--vert);stroke-width:1.2;fill:none}
.illu .ligne-rouge{stroke:var(--rouge);stroke-width:1.2;fill:none}
.illu .ligne-violet{stroke:var(--violet);stroke-width:1.2;fill:none}
.illu .tiret{stroke-dasharray:4 4}
.illu .anim-tiret{stroke-dasharray:5 4}.illu.anime .anim-tiret{animation:defiler 1.4s linear infinite}
@keyframes defiler{to{stroke-dashoffset:-18}}
.illu .fleche-haut{fill:var(--vert)}.illu .fleche-bas{fill:var(--rouge)}
.illu .halo{fill:var(--ambre);opacity:.5;transform-box:fill-box;transform-origin:center}.illu.anime .halo{animation:halo 2s ease-out infinite}
@keyframes halo{0%{transform:scale(.4);opacity:.6}100%{transform:scale(2.6);opacity:0}}
.illu .panneau-fond{fill:#0A1225;stroke:var(--trait-fort)}
.illu .panneau-titre{fill:#122040}
.illu .bouton-achat{fill:var(--vert)}.illu .bouton-vente{fill:var(--rouge)}
.illu .champ{fill:#060B18;stroke:var(--trait-fort)}
.illu .texte-clair{fill:var(--texte)}
.illu .barre-vol{fill:rgba(47,111,224,.35)}
.illu .barre-vol.va{fill:rgba(47,111,224,.7)}
.illu .barre-vol.poc{fill:var(--ambre)}
.illu .cellule{rx:3}
.illu .curseur{stroke:var(--ambre);stroke-width:1.5}.illu.anime .curseur{animation:curseur 1s steps(2) infinite}
@keyframes curseur{50%{opacity:.2}}
.illu .lueur{filter:url(#lueur)}
.illu .balayage{animation:balayage 6s ease-in-out infinite}
@keyframes balayage{0%,100%{transform:translateX(0)}50%{transform:translateX(120px)}}

/* mini-illustration dans les cartes */
.mini{aspect-ratio:16/9;border-radius:var(--rayon-s);border:1px solid var(--trait);background:#0A1020;overflow:hidden;margin-bottom:1.25rem;position:relative}
.mini svg{width:100%;height:100%}
.mini .illu .bougie{animation-delay:calc(var(--i) * 18ms)}
.mini .illu .couche{animation-delay:.6s}

/* =========================================================
   GRILLE D'OUTILS (accueil)
   ========================================================= */
.grille-outils{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:44rem){.grille-outils{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.grille-outils{grid-template-columns:repeat(3,1fr)}}
.grille-outils.large{grid-template-columns:1fr}
@media(min-width:56rem){.grille-outils.large{grid-template-columns:repeat(2,1fr)}}
.outil-carte{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:1.25rem}
.outil-carte .mini{margin-bottom:1.1rem}
.outil-carte .haut{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.6rem}
.outil-carte h3{font-size:1.0625rem;line-height:1.3;letter-spacing:-.01em}
.outil-carte .type-ligne{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}
.outil-carte p{font-size:.9rem;color:var(--texte-2);line-height:1.5;flex:1}
.outil-carte .pied{display:flex;justify-content:space-between;align-items:center;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--trait);font-size:.86rem}
.outil-carte .pied .prix{font-family:var(--police-titre);font-weight:700;color:var(--texte)}
.outil-carte .pied .prix.libre{color:var(--texte)}
.outil-carte .pied .voir{display:inline-flex;align-items:center;gap:.4rem;color:var(--bleu-clair);font-weight:600;transition:gap .2s}
.outil-carte:hover .pied .voir{gap:.7rem}
.outil-carte .pied .voir svg{width:1em;height:1em}
.outil-carte.vedette{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:center;padding:1.75rem;border-color:rgba(245,180,0,.35)}
@media(min-width:56rem){.outil-carte.vedette{grid-template-columns:1fr 1fr;gap:2.5rem}}
.outil-carte.vedette .mini{margin:0;aspect-ratio:16/10}
.outil-carte.vedette h3{font-size:1.6rem}
.outil-carte.vedette p{font-size:1rem}
.filtres{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;border-radius:10px;border:1px solid var(--trait);background:var(--bg-2);width:max-content;max-width:100%}
.filtres button{padding:.45rem .85rem;border-radius:7px;font-size:.84rem;font-weight:500;color:var(--texte-2);transition:.2s;white-space:nowrap}
.filtres button.actif{background:var(--carte-2);color:var(--texte)}
.filtres button .n{font-family:var(--police-mono);font-size:.7rem;color:var(--sourdine);margin-left:.3rem}.filtres button.actif .n{color:var(--accent)}
.outil-carte.masque{display:none}

/* stratégies (accueil) */
.strategies-grille{display:grid;gap:1.25rem}
@media(min-width:56rem){.strategies-grille{grid-template-columns:repeat(3,1fr)}}
.strat-carte{text-decoration:none;color:inherit;padding:0;display:flex;flex-direction:column}
.strat-carte .mini{border-radius:var(--rayon) var(--rayon) 0 0;border:0;border-bottom:1px solid var(--trait);margin:0;aspect-ratio:16/9}
.strat-carte .corps{padding:1.5rem}
.strat-carte h3{font-size:1.3rem;margin:.6rem 0 .3rem}
.strat-carte .sous{font-size:.8125rem;font-weight:500;color:var(--sourdine)}
.strat-carte p{font-size:.94rem;margin-top:.8rem;flex:1}
.strat-carte .pied{margin-top:1.2rem;display:flex;justify-content:space-between;align-items:center;font-size:.86rem}
.strat-carte .pied .voir{color:var(--bleu-clair);font-weight:600}

/* bandeau défilant */
.bandeau{border-block:1px solid var(--trait);background:rgba(255,255,255,.015);overflow:hidden;padding:1rem 0}
.bandeau .piste{display:flex;gap:3rem;width:max-content;animation:defilement 40s linear infinite}
.bandeau:hover .piste{animation-play-state:paused}
.bandeau span{font-family:var(--police-mono);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sourdine);display:inline-flex;align-items:center;gap:3rem;white-space:nowrap}
.bandeau span::after{content:"◆";font-size:.55rem;color:var(--accent)}
@keyframes defilement{to{transform:translateX(-50%)}}

/* piliers / à propos */
.trio{display:grid;gap:1.25rem}
@media(min-width:48rem){.trio{grid-template-columns:repeat(3,1fr)}}
.trio .carte{padding:2rem 1.75rem}
.trio .ico{width:2.6rem;height:2.6rem;border-radius:10px;display:grid;place-items:center;background:var(--bleu-fond);color:var(--bleu-clair);margin-bottom:1.1rem}
.trio .ico svg{width:1.3rem;height:1.3rem}
.trio h3{font-size:1.15rem;margin-bottom:.55rem}
.trio p{font-size:.96rem;color:var(--texte-2)}

/* =========================================================
   PAGE OUTIL
   ========================================================= */
.fonctionnalites{display:grid;gap:1rem}
@media(min-width:44rem){.fonctionnalites{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.fonctionnalites{grid-template-columns:repeat(3,1fr)}}
.fonctionnalites .carte{padding:1.5rem}
.fonctionnalites .num{font-family:var(--police-mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em;margin-bottom:.7rem;display:block}
.fonctionnalites h3{font-size:1.05rem;margin-bottom:.45rem}
.fonctionnalites p{font-size:.93rem;color:var(--texte-2)}
.description-grille{display:grid;gap:2.5rem;align-items:start}
@media(min-width:62rem){.description-grille{grid-template-columns:1.2fr .8fr;gap:4rem}}
.description-grille p{margin-bottom:1.1rem}
.description-grille p:last-child{margin-bottom:0}
.fiche{border:1px solid var(--trait);border-radius:var(--rayon);overflow:hidden;background:var(--carte)}
.fiche .titre{padding:.9rem 1.35rem;border-bottom:1px solid var(--trait);font-size:.8125rem;font-weight:600;color:var(--texte)}
.fiche dl{display:grid;grid-template-columns:auto 1fr;gap:0}
.fiche dt,.fiche dd{padding:.8rem 1.35rem;border-bottom:1px solid var(--trait);font-size:.92rem}
.fiche dt{color:var(--sourdine);white-space:nowrap}
.fiche dd{color:var(--texte);text-align:right}
.fiche dt:last-of-type,.fiche dd:last-of-type{border-bottom:0}
.reglages{display:flex;flex-wrap:wrap;gap:.5rem}
.reglages span{font-family:var(--police-mono);font-size:.76rem;padding:.45rem .8rem;border-radius:8px;border:1px solid var(--trait);background:rgba(255,255,255,.02);color:var(--texte-2);transition:.25s}
.reglages span:hover{border-color:var(--bleu-clair);color:var(--texte)}
.etapes-install{display:grid;gap:1rem;counter-reset:e}
@media(min-width:56rem){.etapes-install{grid-template-columns:repeat(4,1fr)}}
.etape-i{counter-increment:e;padding:1.5rem 1.4rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);position:relative}
.etape-i::before{content:counter(e,decimal-leading-zero);font-family:var(--police-mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em}
.etape-i h4{font-size:1rem;margin:.6rem 0 .4rem}
.etape-i p{font-size:.9rem;color:var(--sourdine);line-height:1.55}
.etape-i code{font-family:var(--police-mono);font-size:.8rem;color:var(--bleu-clair);background:var(--bleu-fond);padding:.1rem .4rem;border-radius:4px}

/* bloc d'obtention */
.obtenir{border-radius:calc(var(--rayon) + 4px);padding:1px;background:var(--trait-fort)}
.obtenir.libre{background:linear-gradient(135deg,var(--vert),rgba(34,197,94,.15) 40%,rgba(47,111,224,.4) 80%,var(--bleu))}
.obtenir>div{background:linear-gradient(180deg,#0F1A36,#0A1225);border-radius:var(--rayon);padding:2.25rem;display:grid;gap:2rem;align-items:center}
@media(min-width:56rem){.obtenir>div{grid-template-columns:1.2fr .8fr}}
.obtenir h3{font-size:1.5rem;margin-bottom:.6rem}
.obtenir p{color:var(--texte-2);font-size:.98rem}
.obtenir .prix{font-family:var(--police-titre);font-weight:800;font-size:2.4rem;letter-spacing:-.04em;color:var(--texte);line-height:1;margin-bottom:.4rem}
.obtenir .prix small{font-size:1rem;color:var(--ambre);font-weight:600}
.obtenir .prix.libre{color:var(--texte)}
.obtenir .note{font-size:.85rem;color:var(--sourdine);margin-top:.5rem}
.obtenir .cote{display:flex;flex-direction:column;gap:.75rem}
.tarifs{display:grid;gap:.6rem;grid-template-columns:1fr}
.tarifs:has(.tarif + .tarif){grid-template-columns:1fr 1fr}
.tarif{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.1rem;border-radius:var(--rayon-s);border:1px solid var(--trait-fort);background:rgba(255,255,255,.02)}
.tarif.vie{border-color:rgba(245,180,0,.55);background:var(--ambre-fond)}
.tarif .lib{font-family:var(--police-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sourdine)}
.tarif.vie .lib{color:var(--ambre)}
.tarif .montant{font-family:var(--police-titre);font-weight:800;font-size:1.9rem;letter-spacing:-.04em;color:var(--texte);line-height:1.1}
.tarif .note{font-size:.76rem;color:var(--sourdine);line-height:1.4}
.obtenir .cote .btn{width:100%}
.obtenir .bientot{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--police-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.obtenir .bientot i{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);animation:pulser 2s infinite;font-style:normal}

/* autres outils */
.autres{display:grid;gap:1rem}
@media(min-width:48rem){.autres{grid-template-columns:repeat(3,1fr)}}

/* stratégie : chiffres + étapes */
.chiffres{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0}
@media(min-width:48rem){.chiffres{grid-template-columns:repeat(4,1fr)}}
.chiffre-carte{padding:1.4rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);text-align:center}
.chiffre-carte .v{font-family:var(--police-mono);font-weight:500;font-size:1.75rem;letter-spacing:-.03em;color:var(--texte)}
.chiffre-carte .l{font-size:.82rem;color:var(--sourdine);margin-top:.3rem}
.temps{display:grid;gap:.75rem}
.temps .etape-t{display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;padding:1.25rem 1.3rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015)}
.temps .num{font-family:var(--police-mono);font-weight:600;font-size:.8rem;width:2.6rem;height:2.6rem;border-radius:8px;background:var(--ambre);color:#1a1200;display:grid;place-items:center}
.temps h3{font-size:1.05rem;margin-bottom:.3rem}
.temps p{font-size:.94rem;color:var(--texte-2)}

/* encadré avertissement */
.encadre{padding:1.25rem 1.4rem;border-radius:var(--rayon-s);border:1px solid var(--trait);border-left:3px solid var(--bleu);background:var(--bleu-fond);font-size:.96rem}
.encadre.alerte{border-left-color:var(--rouge);background:rgba(240,80,110,.08)}

/* CTA final + pied */
.cta-final{padding:0 0 5.5rem}
.cta-final .boite{position:relative;border-radius:calc(var(--rayon) + 6px);padding:3.5rem 2rem;text-align:center;overflow:hidden;border:1px solid var(--trait-fort);background:radial-gradient(60rem 30rem at 50% 120%,rgba(245,180,0,.18),transparent 60%),linear-gradient(180deg,var(--carte),var(--bg-2))}
.cta-final h2{margin-inline:auto;max-width:22ch}
.cta-final p{color:var(--texte-2);max-width:50ch;margin:1rem auto 0}
.cta-final .actions{justify-content:center}
footer{border-top:1px solid var(--trait);padding:3rem 0 3.5rem;font-size:.86rem;color:var(--sourdine)}
footer .haut{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:center;margin-bottom:2rem}
footer .liens-pied{display:flex;gap:1.25rem;flex-wrap:wrap}
footer .liens-pied a{color:var(--sourdine);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
footer .liens-pied a:hover{color:var(--texte)}
footer .liens-pied svg{width:1rem;height:1rem}
footer p{max-width:72ch;line-height:1.65;margin-bottom:.8rem}
footer .bas{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--trait);font-family:var(--police-mono);font-size:.74rem}
footer .bas a{color:inherit;text-decoration:none}
#haut{position:fixed;right:1.25rem;bottom:1.25rem;width:2.8rem;height:2.8rem;border-radius:50%;border:1px solid var(--trait-fort);background:rgba(13,23,48,.9);color:var(--texte);display:grid;place-items:center;opacity:0;pointer-events:none;transition:.3s;z-index:40;backdrop-filter:blur(8px)}
#haut.visible{opacity:1;pointer-events:auto}
#haut:hover{border-color:var(--accent);color:var(--accent)}
#haut svg{width:1rem;height:1rem}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:var(--carte-2);color:var(--texte);border:1px solid var(--trait-fort);padding:.8rem 1.2rem;border-radius:999px;font-size:.9rem;box-shadow:var(--ombre);z-index:70;transition:.35s}
.toast.visible{transform:translate(-50%,0);opacity:1}

/* page 404 */
.page-404{min-height:70vh;display:grid;place-items:center;text-align:center;padding:4rem 0}
.page-404 .code{font-family:var(--police-mono);font-size:6rem;font-weight:600;color:var(--texte-2);letter-spacing:-.05em;line-height:1}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .illu .bougie,.illu .couche{opacity:1}
}

/* =========================================================
   SUR MESURE (accueil + page services + brief)
   ========================================================= */
.sur-mesure-boite{display:grid;gap:2.5rem;align-items:center;padding:3rem 2.5rem;border-radius:calc(var(--rayon) + 6px);border:1px solid var(--trait-fort);background:var(--carte);position:relative;overflow:hidden}
@media(min-width:62rem){.sur-mesure-boite{grid-template-columns:1.2fr .8fr;gap:4rem}}
@media(max-width:40rem){.sur-mesure-boite{padding:2rem 1.5rem}}
.sur-mesure-boite h2{max-width:20ch}
.sur-mesure-liste{list-style:none;display:grid;gap:.75rem}
.sur-mesure-liste li{display:grid;gap:.15rem;padding:.9rem 0 .9rem 1.9rem;border-bottom:1px solid var(--trait);position:relative}.sur-mesure-liste li:last-child{border-bottom:0}
.sur-mesure-liste li::before{content:"";position:absolute;left:.1rem;top:1.15rem;width:.85rem;height:.85rem;background:var(--texte-2);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}
.sur-mesure-liste b{font-weight:600;color:var(--texte);font-size:.95rem}
.sur-mesure-liste span{font-size:.86rem;color:var(--sourdine)}
.prestations{display:grid;gap:1.25rem}
@media(min-width:44rem){.prestations{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.prestations{grid-template-columns:repeat(4,1fr)}}
.prestations .carte{padding:1.75rem}
.prestations .ico{width:2.8rem;height:2.8rem;border-radius:12px;display:grid;place-items:center;background:var(--bleu-fond);color:var(--bleu-clair);margin-bottom:1.1rem}
.prestations .ico svg{width:1.4rem;height:1.4rem}
.prestations h3{font-size:1.1rem;margin-bottom:.5rem}
.prestations p{font-size:.93rem;color:var(--texte-2)}
.colonne-collante{position:sticky;top:calc(var(--nav-h) + 1.5rem)}
.suite{padding:2rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2))}
.suite h3{font-size:1.4rem;margin-bottom:.7rem}
.suite p{color:var(--texte-2);font-size:.98rem}
.coche-liste{list-style:none;display:grid;gap:.6rem;margin-top:1.2rem}
.coche-liste li{position:relative;padding-left:1.6rem;font-size:.92rem;color:var(--texte-2)}
.coche-liste li::before{content:"";position:absolute;left:0;top:.45em;width:.7rem;height:.7rem;background:var(--accent);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}

/* paiement (repris de la page B.I.S) */
.paiement-grille{display:grid;gap:1.5rem;align-items:start}
.paiement-grille>*{min-width:0}
.paiement{min-width:0;max-width:100%}
@media(min-width:62rem){.paiement-grille{grid-template-columns:.95fr 1.05fr;gap:2rem}}
.paiement{padding:2rem;border-radius:var(--rayon);border:1px solid rgba(245,180,0,.35);background:linear-gradient(180deg,var(--carte),var(--bg-2))}
.reseau{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1.5rem}
.reseau .jeton{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem .4rem .45rem;border-radius:999px;background:rgba(38,161,123,.15);border:1px solid rgba(38,161,123,.4);color:#5FD4B5;font-family:var(--police-mono);font-size:.78rem;font-weight:600}
.reseau .jeton i{width:1.35rem;height:1.35rem;border-radius:50%;background:#26A17B;display:grid;place-items:center;color:#fff;font-style:normal;font-size:.7rem;font-weight:700}
.reseau .chaine{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem;border-radius:999px;background:var(--ambre-fond);border:1px solid rgba(245,180,0,.4);color:var(--ambre-clair);font-family:var(--police-mono);font-size:.78rem;font-weight:600}
.qr-bloc{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:center}
@media(max-width:34rem){.qr-bloc{grid-template-columns:1fr;justify-items:center;text-align:center}}
.qr{width:9.5rem;height:9.5rem;padding:.7rem;background:#fff;border-radius:12px;box-shadow:0 10px 30px -10px rgba(0,0,0,.6)}
.qr svg{width:100%;height:100%}
.qr svg path{fill:#0A1225}
.montant-du{font-family:var(--police-titre);font-weight:800;font-size:2.2rem;letter-spacing:-.04em;color:var(--texte);line-height:1}
.montant-du small{font-family:var(--police-mono);font-size:1rem;color:var(--ambre);font-weight:600;margin-left:.3rem}
.qr-bloc p{font-size:.88rem;color:var(--sourdine);margin-top:.5rem}
.adresse{margin-top:1.5rem;display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:stretch}
.adresse code{font-family:var(--police-mono);font-size:.86rem;color:var(--texte);background:var(--bg);border:1px solid var(--trait-fort);border-radius:10px;padding:.85rem 1rem;word-break:break-all;line-height:1.5;display:block}
.adresse code .fin{color:var(--ambre-clair)}
.copier{border-radius:10px;border:1px solid var(--trait-fort);padding:0 1rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.88rem;color:var(--texte);background:rgba(255,255,255,.03);transition:.25s;min-width:7.2rem;justify-content:center}
.copier:hover{border-color:var(--accent);color:var(--accent)}
.copier.ok{border-color:var(--vert);color:var(--vert)}
.copier svg{width:1rem;height:1rem}
@media(max-width:34rem){.adresse{grid-template-columns:1fr}.copier{padding:.8rem}}
.alerte{margin-top:1.25rem;display:flex;gap:.8rem;align-items:flex-start;padding:1rem 1.1rem;border-radius:10px;background:rgba(240,80,110,.08);border:1px solid rgba(240,80,110,.35);font-size:.9rem;color:var(--texte-2)}
.alerte svg{width:1.2rem;height:1.2rem;flex-shrink:0;color:var(--rouge);margin-top:.1rem}
.alerte b{color:var(--texte)}

/* formulaire */
.formulaire{padding:2rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2))}
.formulaire h3{font-size:1.35rem;margin-bottom:.4rem}
.formulaire .sous-titre{font-size:.93rem;color:var(--sourdine);margin-bottom:1.75rem}
.grille-champs{display:grid;gap:1.1rem}
@media(min-width:40rem){.grille-champs{grid-template-columns:1fr 1fr}.grille-champs .large{grid-column:1/-1}}
.champ{position:relative}
.champ label{display:block;font-size:.85rem;font-weight:600;color:var(--texte);margin-bottom:.45rem}
.champ label .opt{color:var(--sourdine);font-weight:400}
.champ input[type=text],.champ input[type=email],.champ select,.champ textarea{width:100%;background:var(--bg);border:1px solid var(--trait-fort);color:var(--texte);border-radius:10px;padding:.85rem 1rem;font:inherit;font-size:.98rem;transition:border-color .25s,box-shadow .25s;line-height:1.5}
.champ textarea{resize:vertical;min-height:5.5rem}
.champ select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--sourdine) 50%),linear-gradient(135deg,var(--sourdine) 50%,transparent 50%);background-position:calc(100% - 1.25rem) 50%,calc(100% - .9rem) 50%;background-size:.35rem .35rem;background-repeat:no-repeat;padding-right:2.4rem;cursor:pointer}
.champ select option{background:var(--carte-2);color:var(--texte)}
.champ input.mono{font-family:var(--police-mono);font-size:.88rem}
.champ input::placeholder,.champ textarea::placeholder{color:rgba(127,141,168,.55)}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--bleu-clair);box-shadow:0 0 0 3px rgba(111,163,255,.18)}
.champ.valide input{border-color:rgba(34,197,94,.6)}
.champ.invalide input{border-color:rgba(240,80,110,.7)}
.aide{font-size:.82rem;color:var(--sourdine);margin-top:.4rem;line-height:1.5}
.aide.erreur{color:var(--rouge)}
.cases{margin-top:1.5rem;display:grid;gap:.85rem;padding-top:1.5rem;border-top:1px solid var(--trait)}
.case{display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;padding:1rem 1.1rem;border-radius:10px;border:1px solid var(--trait);background:rgba(255,255,255,.015);cursor:pointer;transition:.25s}
.case:hover{border-color:var(--trait-fort)}
.case input{appearance:none;width:1.25rem;height:1.25rem;border-radius:6px;border:1.5px solid var(--trait-fort);margin-top:.15rem;display:grid;place-items:center;cursor:pointer;transition:.2s;background:var(--bg)}
.case input::after{content:"";width:.7rem;height:.7rem;border-radius:2px;background:#1a1200;transform:scale(0);transition:.2s;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}
.case input:checked{background:var(--accent);border-color:var(--accent)}
.case input:checked::after{transform:scale(1)}
.case span{font-size:.9rem;color:var(--texte-2);line-height:1.55}
.case.coche{border-color:rgba(245,180,0,.4);background:var(--ambre-fond)}
.confidentialite{margin-top:.9rem;font-size:.8rem;color:var(--sourdine);text-align:center}

/* brief : formulaire + aperçu */
.brief-grille{display:grid;gap:1.5rem;align-items:start}
@media(min-width:64rem){.brief-grille{grid-template-columns:1.1fr .9fr;gap:2rem}}
.apercu-colonne{position:sticky;top:calc(var(--nav-h) + 1.5rem)}
.apercu{border-radius:var(--rayon);border:1px solid var(--trait-fort);background:linear-gradient(180deg,#0E1830,#080F20);box-shadow:var(--ombre);overflow:hidden}
.apercu-barre{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--trait);font-family:var(--police-mono);font-size:.74rem;color:var(--sourdine)}
.apercu-barre span:first-child{color:var(--accent)}
.apercu pre{margin:0;padding:1.25rem 1.35rem;font-family:var(--police-mono);font-size:.8rem;line-height:1.7;color:var(--texte-2);white-space:pre-wrap;word-break:break-word;min-height:18rem;max-height:60vh;overflow:auto}


/* =========================================================
   VIDÉOS, FORMULES, BADGES, CONDITIONS
   ========================================================= */
.badge.source{color:var(--texte-2)}
.badge.video{color:var(--texte-2)}
.videos{display:grid;gap:1.25rem}
@media(min-width:44rem){.videos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.videos{grid-template-columns:repeat(3,1fr)}.videos.une{grid-template-columns:minmax(0,46rem);justify-content:center}}
.video{position:relative;border-radius:var(--rayon);overflow:hidden;border:1px solid var(--trait);background:#000;cursor:pointer;aspect-ratio:16/9;transition:border-color .3s,transform .3s,box-shadow .3s}
.video:hover{border-color:var(--trait-fort);transform:translateY(-3px);box-shadow:var(--ombre)}
.video img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s,opacity .3s}
.video:hover img{transform:scale(1.04)}
.video .lecture{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:4rem;height:4rem;border-radius:50%;background:rgba(245,180,0,.95);color:#1a1200;display:grid;place-items:center;box-shadow:0 10px 30px -8px rgba(245,180,0,.8);transition:transform .25s,background .25s}
.video .lecture svg{width:1.6rem;height:1.6rem;margin-left:.2rem}
.video:hover .lecture{transform:translate(-50%,-50%) scale(1.08);background:var(--ambre-clair)}
.video .titre{position:absolute;inset:auto 0 0;padding:2.5rem 1rem 1rem;background:linear-gradient(0deg,rgba(6,11,24,.95),transparent);font-family:var(--police-titre);font-weight:600;font-size:.92rem;color:var(--texte);line-height:1.35}
.video.lue img,.video.lue .lecture,.video.lue .titre{display:none}
.video.lue{cursor:default}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.formules{display:grid;gap:.75rem;grid-template-columns:1fr}
@media(min-width:34rem){.formules:not(.une){grid-template-columns:1fr 1fr}}
.formule{position:relative;display:flex;flex-direction:column;gap:.2rem;padding:1.1rem 1.2rem;border-radius:var(--rayon-s);border:1px solid var(--trait-fort);background:rgba(255,255,255,.02);cursor:pointer;transition:.25s}
.formule input{position:absolute;opacity:0;pointer-events:none}
.formule:hover{border-color:var(--bleu-clair)}
.formule.active{border-color:var(--accent);background:var(--accent-fond);box-shadow:0 0 0 3px rgba(127,166,245,.12)}
.formule .lib{font-family:var(--police-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sourdine)}
.formule.active .lib{color:var(--accent)}
.formule .montant{font-family:var(--police-titre);font-weight:800;font-size:1.9rem;letter-spacing:-.04em;color:var(--texte);line-height:1.1}
.formule .note{font-size:.78rem;color:var(--sourdine);line-height:1.4}
.formule::after{content:"";position:absolute;top:1rem;right:1rem;width:1.1rem;height:1.1rem;border-radius:50%;border:1.5px solid var(--trait-fort);transition:.2s}
.formule.active::after{background:var(--accent);border-color:var(--accent);clip-path:none;box-shadow:inset 0 0 0 3px #0F1A36}
.formulaire .btn[type=submit]{width:100%;margin-top:1.5rem;padding:1.1rem;font-size:1.05rem}
.formulaire .btn[disabled]{opacity:.6;cursor:wait;transform:none}

.depots{display:grid;gap:.6rem}
@media(min-width:40rem){.depots{grid-template-columns:repeat(3,1fr)}}
.depot{position:relative;border:1px dashed var(--trait-fort);border-radius:10px;padding:1rem;display:flex;gap:.75rem;align-items:center;transition:.25s;background:var(--bg)}
.depot:hover,.depot.survol{border-color:var(--bleu-clair);background:var(--bleu-fond)}
.depot input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.depot svg{width:1.4rem;height:1.4rem;color:var(--bleu-clair);flex-shrink:0}
.depot .txt{font-size:.8rem;color:var(--sourdine);line-height:1.4;min-width:0}
.depot .txt b{color:var(--texte);display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.depot.rempli{border-style:solid;border-color:rgba(34,197,94,.6)}
.depot.rempli svg{color:var(--vert)}

.conditions h2{font-size:1.35rem;margin:2.25rem 0 .7rem;max-width:none}
.conditions p{margin-bottom:.9rem;color:var(--texte-2)}
.conditions p strong{color:var(--texte)}
.conditions a{color:var(--bleu-clair)}

/* étapes de paiement (commande premium) */
.inscription{background:linear-gradient(180deg,transparent,rgba(245,180,0,.04) 40%,transparent)}
.etapes-paiement{display:grid;gap:1rem;margin-bottom:3rem;counter-reset:e}
@media(min-width:56rem){.etapes-paiement{grid-template-columns:repeat(4,1fr)}}
.etape-p{counter-increment:e;padding:1.5rem 1.4rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);position:relative}
.etape-p::before{content:counter(e,decimal-leading-zero);font-family:var(--police-mono);font-size:.72rem;color:var(--accent);letter-spacing:.1em}
.etape-p h4{font-size:1.02rem;margin:.6rem 0 .4rem}
.etape-p p{font-size:.9rem;color:var(--sourdine);line-height:1.55}
@media(min-width:56rem){.etape-p:not(:last-child)::after{content:"";position:absolute;right:-.5rem;top:50%;width:1rem;height:1px;background:var(--trait-fort)}}

/* icônes d'état des champs (valide / invalide) */
.champ .etat{position:absolute;right:.9rem;bottom:.85rem;width:1.1rem;height:1.1rem;opacity:0;transition:.25s;pointer-events:none}
.champ.avec-aide .etat{bottom:auto;top:2.45rem}
.champ.valide .etat.ok,.champ.invalide .etat.ko{opacity:1}
.champ .etat.ok{color:var(--vert)}.champ .etat.ko{color:var(--rouge)}
.champ.valide textarea,.champ.valide select{border-color:rgba(34,197,94,.6)}
.champ.invalide textarea{border-color:rgba(240,80,110,.7)}


/* =========================================================
   THÈME CLAIR
   ========================================================= */
:root{--nav-fond:rgba(255,255,255,.88);--ecran:#F6F8FC;--ecran-2:#FFFFFF;--vert-texte:#006DFF;--rouge-texte:#111827;--violet-texte:#006DFF;--halo-1:rgba(0,109,255,.10);--halo-2:rgba(0,109,255,.04);--grille:rgba(10,16,32,.06)}
nav.principale{background:var(--nav-fond)}
.theme-btn{width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid var(--trait-fort);display:grid;place-items:center;color:var(--texte-2);background:#fff;transition:.25s;flex-shrink:0}
.theme-btn:hover{border-color:var(--accent);color:var(--accent)}
.theme-btn svg{width:1.05rem;height:1.05rem}

/* =========================================================
   AVIS ET NOTES
   ========================================================= */
.etoiles{display:inline-flex;gap:.12rem;line-height:1}
.etoiles i{position:relative;width:1.15rem;height:1.15rem;display:inline-block}
.etoiles.petit i{width:.85rem;height:.85rem}
.etoiles i svg{position:absolute;inset:0;width:100%;height:100%;fill:var(--trait-fort)}
.etoiles i::after{content:"";position:absolute;inset:0;width:var(--f,0%);overflow:hidden;background:var(--ambre);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z'/></svg>") left/1.15rem 1.15rem no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6L2.5 9.4l6.6-.8z'/></svg>") left/1.15rem 1.15rem no-repeat}
.etoiles.petit i::after{-webkit-mask-size:.85rem .85rem;mask-size:.85rem .85rem}
.note-carte{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--sourdine);margin-top:.6rem}
.note-carte b{color:var(--texte);font-family:var(--police-mono);font-size:.8rem}
.avis-grille{display:grid;gap:2rem;align-items:start}
@media(min-width:62rem){.avis-grille{grid-template-columns:.85fr 1.15fr;gap:3rem}}
.avis-resume{padding:2rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2));text-align:center}
.avis-resume .grand{font-family:var(--police-titre);font-weight:800;font-size:3.6rem;letter-spacing:-.05em;color:var(--texte);line-height:1}
.avis-resume .grand small{font-size:1rem;color:var(--sourdine);font-weight:500;margin-left:.3rem;letter-spacing:0}
.avis-resume .etoiles{margin:.6rem auto .5rem;justify-content:center}
.avis-resume p{font-size:.88rem;color:var(--sourdine)}
.avis-vide p{margin-top:.5rem}
.repartition{margin-top:1.25rem;display:grid;gap:.4rem;text-align:left}
.repartition .barre{display:grid;grid-template-columns:1rem 1fr 1.6rem;gap:.6rem;align-items:center;font-family:var(--police-mono);font-size:.74rem;color:var(--sourdine)}
.repartition .piste{height:.45rem;border-radius:999px;background:var(--trait);overflow:hidden}
.repartition .rempli{height:100%;background:var(--ambre);border-radius:999px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.avis-liste{display:grid;gap:.85rem;margin-top:1.5rem}
.avis-carte{padding:1.25rem 1.35rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);animation:none}
.avis-carte.neuf{border-color:rgba(245,180,0,.5);background:var(--ambre-fond)}
.avis-carte .haut{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.5rem}
.avis-carte b{color:var(--texte);font-family:var(--police-titre);font-weight:600;font-size:.98rem;display:block}
.avis-carte .date{font-size:.76rem;color:var(--sourdine);font-family:var(--police-mono)}
.avis-carte p{font-size:.94rem;color:var(--texte-2);line-height:1.6;white-space:pre-line}
.avis-form{padding:1.75rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2))}
.avis-form h3{font-size:1.2rem;margin-bottom:.3rem}
.avis-form .sous{font-size:.88rem;color:var(--sourdine);margin-bottom:1.2rem}
.avis-choix{display:flex;align-items:center;gap:.25rem;margin-bottom:1.1rem}
.avis-choix button{width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:8px;transition:.15s}
.avis-choix button svg{width:1.6rem;height:1.6rem;fill:var(--trait-fort);transition:.15s}
.avis-choix button.pleine svg{fill:var(--ambre);filter:drop-shadow(0 0 6px rgba(245,180,0,.45))}
.avis-choix button:hover{transform:scale(1.15)}
.avis-choix.erreur{outline:2px solid var(--rouge);outline-offset:4px;border-radius:8px}
.avis-choix .mot{margin-left:.6rem;font-family:var(--police-mono);font-size:.76rem;color:var(--sourdine);letter-spacing:.06em;text-transform:uppercase}
.avis-form .grille-champs{gap:.9rem}
.avis-form .pot{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.avis-form .cases{margin-top:1rem;padding-top:1rem}
.avis-form .btn{width:100%;margin-top:1rem}
.avis-note-rappel{font-size:.8rem;color:var(--sourdine);margin-top:.8rem;text-align:center}

/* modération */
.admin-table{width:100%;border-collapse:collapse;font-size:.88rem}
.admin-table th,.admin-table td{padding:.7rem .8rem;border-bottom:1px solid var(--trait);text-align:left;vertical-align:top}
.admin-table th{font-family:var(--police-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.admin-table td.com{max-width:32rem;white-space:pre-line;color:var(--texte-2)}
.admin-table .masque td{opacity:.45}
.admin-table .actions{display:flex;gap:.4rem;flex-wrap:wrap}
.admin-table .actions button{padding:.35rem .7rem;border-radius:6px;border:1px solid var(--trait-fort);font-size:.78rem}
.admin-table .actions button:hover{border-color:var(--accent);color:var(--accent)}
.admin-table .actions button.suppr:hover{border-color:var(--rouge);color:var(--rouge)}


/* =========================================================
   EBOOKS, SUCCÈS DE FORMULAIRE, ADMIN
   ========================================================= */
.ebooks-grille{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:40rem){.ebooks-grille{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.ebooks-grille{grid-template-columns:repeat(4,1fr)}}
.ebook-carte{padding:0;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.ebook-carte .couv{aspect-ratio:3/4;overflow:hidden;background:#0A1225;border-bottom:1px solid var(--trait)}
.ebook-carte .couv img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.ebook-carte:hover .couv img{transform:scale(1.04)}
.ebook-carte .corps{padding:1.2rem 1.25rem 1.25rem;display:flex;flex-direction:column;flex:1}
.ebook-carte h3{font-size:1.05rem;margin:.6rem 0 .3rem;line-height:1.3}
.ebook-carte .sous{font-size:.84rem;color:var(--sourdine);flex:1;line-height:1.5}
.ebook-carte .pied{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--trait);font-size:.74rem;color:var(--sourdine)}
.ebook-carte .pied .voir{color:var(--bleu-clair);font-weight:600;font-size:.86rem}
.couv-grande{max-width:22rem;margin-inline:auto}
.couv-grande img{border-radius:12px;box-shadow:var(--ombre);border:1px solid var(--trait-fort)}
.sommaire{list-style:none;counter-reset:s;padding:.5rem 1.35rem 1rem}
.sommaire li{counter-increment:s;padding:.6rem 0 .6rem 2.2rem;position:relative;border-bottom:1px solid var(--trait);font-size:.94rem;color:var(--texte-2)}
.sommaire li:last-child{border-bottom:0}
.sommaire li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.65rem;font-family:var(--police-mono);font-size:.72rem;color:var(--accent)}
.formulaire .succes{text-align:center;padding:2rem 1rem}
.formulaire .succes .ico{width:4rem;height:4rem;border-radius:50%;background:var(--vert);color:#04210f;font-size:1.8rem;font-weight:800;display:grid;place-items:center;margin:0 auto 1rem}
.formulaire .succes h3{font-size:1.5rem}
.formulaire .succes p{margin:.6rem auto 1.4rem;max-width:40ch;color:var(--texte-2)}
.formulaire .succes b{font-family:var(--police-mono);color:var(--accent)}
.formulaire.envoye>*:not(.succes){display:none}
.formulaire .pot{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.admin-liste{display:grid;gap:.85rem}
.admin-ligne{padding:1.1rem 1.25rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);font-size:.9rem}
.admin-ligne.traite,.admin-ligne.livre,.admin-ligne.masque{opacity:.55}
.admin-ligne.refuse{border-color:rgba(240,80,110,.4)}
.admin-titre{margin:1.6rem 0 .6rem;font-family:var(--police-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ambre)}
.admin-ligne label.droit{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--texte-2);cursor:pointer}
.admin-ligne .meta .btn{padding:.35rem .7rem}
.admin-ligne .meta{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-bottom:.6rem;color:var(--sourdine);font-size:.78rem}
.admin-ligne .meta select{margin-left:auto;background:var(--bg);color:var(--texte);border:1px solid var(--trait-fort);border-radius:6px;padding:.3rem .5rem;font:inherit;font-size:.8rem}
.admin-ligne .meta .suppr{padding:.3rem .7rem;border-radius:6px;border:1px solid var(--trait-fort);font-size:.78rem}
.admin-ligne .meta .suppr:hover{border-color:var(--rouge);color:var(--rouge)}
.admin-ligne .corps{color:var(--texte-2);line-height:1.6}
.admin-ligne .corps b{color:var(--texte)}
.admin-ligne code{font-family:var(--police-mono);font-size:.8rem;color:var(--bleu-clair);word-break:break-all}
.admin-ligne details{margin-top:.5rem}.admin-ligne summary{cursor:pointer;color:var(--accent);font-size:.84rem}
.admin-ligne details p{margin:.5rem 0;white-space:pre-line}
.admin-ligne .pj{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.admin-ligne .pj a{font-size:.82rem;padding:.35rem .7rem;border-radius:6px;border:1px solid var(--trait-fort);text-decoration:none;color:var(--texte)}


/* =========================================================
   COMPTE, ÉLÈVES, CLASSEMENT, ACTUALITÉS, ABONNEMENT
   ========================================================= */
.nav-cta .nav-compte{padding:.6rem 1rem;font-size:.86rem}
.nav-compte.connecte{border-color:var(--trait-fort);color:var(--texte)}
@media(max-width:40rem){.nav-cta .nav-compte{padding:.55rem .7rem;font-size:.78rem}}
.compte-grille{display:grid;gap:1.25rem}
@media(min-width:56rem){.compte-grille{grid-template-columns:1fr 1fr;align-items:start}}
.compte-grille>div{display:grid;gap:1.25rem;align-content:start}
.compte-carte{padding:1.6rem}
.compte-carte h3{font-size:1.4rem}
.compte-carte p{color:var(--texte-2);font-size:.95rem}
.compte-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.1rem}
.ligne-cmd{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--trait)}
.ligne-cmd:last-child{border-bottom:0}
.ligne-cmd b{display:block;color:var(--texte);font-size:.95rem}
.ligne-cmd span{font-size:.8rem;color:var(--sourdine)}
.tg-code{margin-top:1rem;padding:1rem;border-radius:10px;border:1px dashed var(--trait-fort);text-align:center}
.tg-code .code{font-family:var(--police-mono);font-size:1.5rem;font-weight:600;color:var(--accent);margin:.6rem 0;letter-spacing:.06em;user-select:all}
.fichiers-eleves{display:grid;gap:.6rem}
.fichier-eleve{display:flex;gap:.9rem;align-items:center;padding:.9rem 1.1rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);text-decoration:none;color:inherit;transition:.25s}
.fichier-eleve:hover{border-color:var(--accent)}
.fichier-eleve .ico{font-size:1.4rem}
.fichier-eleve b{display:block;color:var(--texte)}
.fichier-eleve small{font-family:var(--police-mono);font-size:.7rem;color:var(--sourdine)}
.modules-eleves{display:grid;gap:.5rem}
.module-eleve{display:grid;grid-template-columns:2.6rem 1fr auto;gap:1rem;align-items:center;padding:.9rem 1.1rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015)}
.module-eleve .num{color:var(--accent);font-size:.78rem}
.module-eleve b{display:block;color:var(--texte);font-size:.95rem}
.module-eleve span{font-size:.82rem;color:var(--sourdine)}
@media(max-width:40rem){.module-eleve{grid-template-columns:2.2rem 1fr}.module-eleve .badge{display:none}}
.classement{display:grid;gap:.4rem}
.rang{display:grid;grid-template-columns:2.2rem 1fr auto auto;gap:.8rem;align-items:center;padding:.75rem 1rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015);font-size:.92rem}
.rang .pos{font-family:var(--police-mono);font-weight:600;color:var(--sourdine)}
.rang.podium .pos{color:var(--ambre)}
.rang.podium{border-color:rgba(245,180,0,.35)}
.rang .nom{color:var(--texte);font-weight:600}
.rang .det{font-size:.72rem;color:var(--sourdine)}
.rang .r{font-weight:600}.rang .r.pos{color:#5EE39A}.rang .r.neg{color:var(--rouge)}
@media(max-width:34rem){.rang{grid-template-columns:2rem 1fr auto}.rang .det{display:none}}
.actus{display:grid;gap:1rem}
.actu{padding:1.35rem 1.5rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2))}
.actu-meta{display:flex;gap:.8rem;align-items:center;font-size:.74rem;color:var(--sourdine);margin-bottom:.5rem}
.actu-meta a{text-decoration:none}
.actu h3{font-size:1.15rem;margin-bottom:.4rem}
.actu p{font-size:.95rem;color:var(--texte-2)}
.actu-lien{display:inline-block;margin-top:.6rem;font-weight:600;text-decoration:none}
.note-actu{color:var(--sourdine);font-size:.92rem}
.abonner{display:grid;gap:1rem;align-items:center;padding:1.5rem 1.75rem;border-radius:var(--rayon);border:1px solid var(--trait);background:var(--carte);margin-top:1.5rem}
@media(min-width:52rem){.abonner:not(.vertical){grid-template-columns:1fr auto}}
.abonner b{display:block;color:var(--texte);font-family:var(--police-titre);font-size:1.05rem}
.abonner span{font-size:.88rem;color:var(--sourdine)}
.abonner-champs{display:flex;gap:.5rem;flex-wrap:wrap}
.abonner-champs input[type=email]{flex:1;min-width:14rem;background:var(--bg);border:1px solid var(--trait-fort);color:var(--texte);border-radius:999px;padding:.8rem 1.1rem;font:inherit;font-size:.95rem}
.abonner-champs input[type=email]:focus{outline:none;border-color:var(--bleu-clair)}
.abonner .pot{position:absolute;left:-9999px;opacity:0}
.abonne-ok{color:#5EE39A;font-weight:600;grid-column:1/-1}


/* =========================================================
   ÉCOSYSTÈME : piliers, livre vedette, formations, marketplace, guide MQL5, marques
   ========================================================= */
.btn-telegram{background:var(--carte);color:var(--texte);border-color:var(--trait-fort)}
.btn-telegram:hover{border-color:var(--texte-2);background:var(--carte-2);color:var(--texte)}
.btn-youtube{background:var(--carte);color:var(--texte);border-color:var(--trait-fort)}
.btn-youtube:hover{border-color:var(--texte-2);background:var(--carte-2);color:var(--texte)}
.piliers{display:grid;gap:1rem}
@media(min-width:44rem){.piliers{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.piliers{grid-template-columns:repeat(3,1fr)}}
.pilier{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start;padding:1.4rem;text-decoration:none;color:inherit}
.pilier .ico{width:2.5rem;height:2.5rem;border-radius:10px;display:grid;place-items:center;background:var(--carte-2);color:var(--texte-2);border:1px solid var(--trait)}
.pilier .ico svg{width:1.4rem;height:1.4rem}
.pilier h3{font-size:1rem;margin-bottom:.25rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.pilier p{font-size:.875rem;color:var(--texte-2);line-height:1.5}
.pilier .fleche{color:var(--sourdine);transition:.2s;align-self:center}
.pilier .fleche svg{width:1rem;height:1rem}
.pilier:hover .fleche{color:var(--accent);transform:translateX(3px)}
.livre-vedette{display:grid;gap:2rem;align-items:center;padding:2.5rem;border-radius:calc(var(--rayon) + 6px);border:1px solid rgba(245,180,0,.35);background:radial-gradient(40rem 25rem at 0% 50%,rgba(245,180,0,.14),transparent 60%),linear-gradient(180deg,var(--carte),var(--bg-2))}
@media(min-width:56rem){.livre-vedette{grid-template-columns:18rem 1fr;gap:3rem}}
@media(max-width:40rem){.livre-vedette{padding:1.5rem}}
.livre-vedette .couv img{border-radius:10px;box-shadow:0 30px 60px -25px rgba(0,0,0,.8);border:1px solid var(--trait-fort);max-width:18rem;margin-inline:auto}
.livre-vedette h2{max-width:none}
.auteur{font-size:.8125rem;font-weight:500;color:var(--sourdine);margin-top:.8rem}
.formations-grille{display:grid;gap:1.25rem}
@media(min-width:56rem){.formations-grille{grid-template-columns:repeat(2,1fr)}}
.formation-carte{padding:0;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.formation-carte .mini{border-radius:var(--rayon) var(--rayon) 0 0;border:0;border-bottom:1px solid var(--trait);margin:0;aspect-ratio:16/7}
.formation-carte .corps{padding:1.5rem;flex:1;display:flex;flex-direction:column}
.formation-carte .haut{display:flex;justify-content:space-between;gap:.5rem;align-items:center}
.formation-carte .sous{font-size:.8125rem;font-weight:500;color:var(--sourdine)}
.formation-carte h3{font-size:1.4rem;margin:.6rem 0 .4rem}
.formation-carte p{font-size:.95rem;color:var(--texte-2)}
.formation-carte .points{list-style:none;display:grid;gap:.4rem;margin:1rem 0;flex:1}
.formation-carte .points li{position:relative;padding-left:1.4rem;font-size:.88rem;color:var(--texte-2)}
.formation-carte .points li::before{content:"";position:absolute;left:0;top:.45em;width:.6rem;height:.6rem;background:var(--accent);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%)}
.formation-carte .pied .voir{color:var(--bleu-clair);font-weight:600;font-size:.9rem}
.recherche-catalogue{position:relative;margin-top:1.75rem;max-width:40rem}
.recherche-catalogue svg{position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);width:1.1rem;height:1.1rem;color:var(--sourdine)}
.recherche-catalogue input{width:100%;padding:.85rem 6rem .85rem 2.9rem;border-radius:10px;border:1px solid var(--trait-fort);background:var(--carte);color:var(--texte);font:inherit;font-size:1rem}
.recherche-catalogue input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(127,166,245,.18)}
.recherche-catalogue input{text-overflow:ellipsis}
.recherche-catalogue input::placeholder{text-overflow:ellipsis}
.recherche-catalogue .compte{position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);font-family:var(--police-mono);font-size:.72rem;color:var(--sourdine)}
.note-vide{padding:2rem;text-align:center;color:var(--sourdine)}
.guide-chemin{margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--trait)}
.guide-grille{display:grid;gap:2rem;align-items:start}
@media(min-width:62rem){.guide-grille{grid-template-columns:1.1fr .9fr}}
.guide-anim{position:sticky;top:calc(var(--nav-h) + 1.5rem)}
.guide-anim img{border-radius:12px;border:1px solid var(--trait-fort);box-shadow:var(--ombre);width:100%}
.guide-anim figcaption{font-size:.8rem;color:var(--sourdine);margin-top:.6rem;text-align:center;font-family:var(--police-mono)}
.guide-etapes{list-style:none;display:grid;gap:1rem}
.guide-etapes li{display:grid;grid-template-columns:9rem 1fr;gap:1rem;align-items:center;padding:.9rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:rgba(255,255,255,.015)}
.guide-etapes img{border-radius:6px;border:1px solid var(--trait-fort);width:100%}
.guide-etapes b{display:block;color:var(--texte);margin-bottom:.2rem}
.guide-etapes span{font-size:.88rem;color:var(--texte-2);line-height:1.5}
.guide-etapes code{font-family:var(--police-mono);font-size:.76rem;color:var(--bleu-clair);background:var(--bleu-fond);padding:.1rem .35rem;border-radius:4px;word-break:break-all}
.guide-etapes kbd{font-family:var(--police-mono);font-size:.72rem;padding:.1rem .4rem;border-radius:4px;border:1px solid var(--trait-fort);color:var(--texte)}
@media(max-width:34rem){.guide-etapes li{grid-template-columns:1fr}}
.note-guide{margin-top:1.25rem;font-size:.88rem;color:var(--sourdine)}
.gate-note{padding:1rem 1.25rem;border-radius:var(--rayon-s);border:1px solid rgba(245,180,0,.45);background:var(--ambre-fond);margin-bottom:1.5rem;font-size:.95rem}
.gate-note a{color:var(--texte);font-weight:600}
.stats-grille{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:56rem){.stats-grille{grid-template-columns:repeat(3,1fr)}}
.stat-carte{padding:1.25rem;border-radius:var(--rayon-s);border:1px solid var(--trait);background:var(--carte)}
.stat-carte b{display:block;font-family:var(--police-titre);font-size:2rem;color:var(--texte);letter-spacing:-.04em;line-height:1}
.stat-carte span{display:block;font-family:var(--police-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:.4rem 0 .3rem}
.stat-carte small{font-size:.8rem;color:var(--sourdine)}
/* porte d'accès (modale) */
.porte{position:fixed;inset:0;z-index:80;background:rgba(6,11,24,.8);backdrop-filter:blur(6px);display:none;place-items:center;padding:1rem}
.porte.on{display:grid}
.porte .boite{max-width:34rem;width:100%;background:var(--bg-2);border:1px solid var(--trait-fort);border-radius:18px;padding:2rem;box-shadow:var(--ombre)}
.porte h3{font-size:1.4rem;margin-bottom:.5rem}
.porte p{color:var(--texte-2);font-size:.95rem}
.porte ol{list-style:none;counter-reset:p;display:grid;gap:.6rem;margin:1.25rem 0}
.porte li{counter-increment:p;display:grid;grid-template-columns:2rem 1fr auto;gap:.8rem;align-items:center;padding:.7rem .9rem;border-radius:10px;border:1px solid var(--trait);background:rgba(255,255,255,.015)}
.porte li::before{content:counter(p);font-family:var(--police-mono);font-weight:600;width:2rem;height:2rem;border-radius:8px;display:grid;place-items:center;background:var(--trait);color:var(--texte)}
.porte li.ok{border-color:rgba(34,197,94,.45)}.porte li.ok::before{content:"✓";background:var(--vert);color:#04210f}
.porte li.actuel{border-color:var(--accent)}.porte li.actuel::before{background:var(--accent);color:#0B0F17}
.porte li b{display:block;color:var(--texte);font-size:.95rem}.porte li span{font-size:.82rem;color:var(--sourdine)}
.porte .fermer{margin-top:.5rem;color:var(--sourdine);font-size:.85rem}

.outil-carte.masque-recherche{display:none}


/* =========================================================
   V4 — finitions visuelles, recherche globale, forum, compte, pied de page
   ========================================================= */
/* --- rythme et détails communs */
h1{text-wrap:balance}h2{text-wrap:balance}
.btn-large{padding:1.05rem 1.8rem;font-size:1.05rem;width:100%}
.btn:active{transform:scale(.99)}
.carte{box-shadow:0 1px 0 rgba(255,255,255,.035) inset}
.liens a{position:relative;white-space:nowrap}
@media(min-width:60rem) and (max-width:76rem){.liens a{font-size:.84rem;padding:.5rem .6rem}.nav-cta .btn-telegram .cache-mobile{display:none}.nav-cta .btn{padding:.6rem .9rem}}
@media(min-width:60rem){.liens a.actif::after{left:.6rem;right:.6rem}}
.liens a.actif{color:var(--texte);background:none}
.liens a.actif::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.25rem;height:2px;border-radius:2px;background:var(--accent)}
.nav-cta .recherche-btn{margin-right:.1rem}
.drapeau{width:1.25rem;height:.85rem;border-radius:3px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.langue{position:relative}
.langue-btn{display:inline-flex;align-items:center;gap:.3rem;height:2.6rem;padding:0 .55rem;border-radius:999px;border:1px solid var(--trait-fort);background:rgba(255,255,255,.03);color:var(--texte-2);cursor:pointer;transition:.2s}
.langue-btn:hover,.langue-btn[aria-expanded="true"]{border-color:var(--accent);color:var(--texte)}
.langue-btn .chev{width:.8rem;height:.8rem}
html[lang="fr"] .langue-btn .drapeau-en,html[lang="en"] .langue-btn .drapeau-fr{display:none}
.langue-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:10rem;padding:.35rem;border-radius:var(--rayon-s);border:1px solid var(--trait-fort);background:var(--carte);box-shadow:var(--ombre);z-index:60}
.langue-menu a{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:6px;color:var(--texte-2);font-size:.9rem;font-weight:500;text-decoration:none}
.langue-menu a:hover{background:rgba(255,255,255,.05);color:var(--texte)}
html[lang="fr"] .langue-menu a[data-langue="fr"],html[lang="en"] .langue-menu a[data-langue="en"]{color:var(--texte);background:var(--accent-fond)}
.langues-pied{display:inline-flex;gap:1rem}.langues-pied a{display:inline-flex;align-items:center;gap:.4rem;color:inherit}
html[lang="fr"] .langues-pied a[data-langue="fr"],html[lang="en"] .langues-pied a[data-langue="en"]{color:var(--texte)}
@media(max-width:40rem){.nav-cta{gap:.35rem}.nav-cta .langue-btn{height:2.3rem;padding:0 .3rem;border:0;background:none}.nav-cta .langue-btn .chev{display:none}.nav-cta .langue-btn .drapeau{width:1.5rem;height:1rem}.nav-cta .btn-telegram{padding:.55rem .65rem}}
.nav-cta .recherche-btn svg{width:1.05rem;height:1.05rem}
.nav-cta .nav-compte.connecte{border-color:var(--trait-fort);color:var(--texte);padding-left:.8rem}
.nav-cta .nav-compte.connecte::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--live);margin-right:.5rem;box-shadow:0 0 0 3px var(--live-fond)}
@media(max-width:40rem){.nav-cta .theme-btn{width:2.3rem;height:2.3rem}.nav-cta .recherche-btn{display:none}}
.logo-syvarn:hover{color:#fff;opacity:.86}
.encadre b{color:var(--texte)}
.note-vide,.note{color:var(--sourdine);font-size:.92rem}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(127,141,168,.35);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}

/* --- recherche globale */
.recherche-globale{position:fixed;inset:0;z-index:90;background:rgba(6,11,24,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:start center;padding:min(12vh,6rem) 1rem 2rem;animation:apparaitre .18s ease-out}
@keyframes apparaitre{from{opacity:0}to{opacity:1}}
.recherche-globale .boite{width:min(42rem,100%);background:var(--bg-2);border:1px solid var(--trait-fort);border-radius:20px;box-shadow:0 40px 100px -30px rgba(0,0,0,.8);overflow:hidden;animation:monter .22s cubic-bezier(.2,.7,.2,1)}
@keyframes monter{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
.champ-recherche{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--trait)}
.champ-recherche svg{width:1.2rem;height:1.2rem;color:var(--sourdine);flex-shrink:0}
.champ-recherche input{flex:1;background:none;border:0;color:var(--texte);font-size:1.05rem;font-family:var(--police-texte);outline:none;min-width:0}
.champ-recherche input::placeholder{color:rgba(127,141,168,.6)}
.champ-recherche kbd{font-family:var(--police-mono);font-size:.68rem;padding:.2rem .45rem;border:1px solid var(--trait-fort);border-radius:5px;color:var(--sourdine)}
.recherche-globale .resultats{max-height:min(60vh,32rem);overflow-y:auto;padding:.5rem}
.aide-recherche{padding:1rem .8rem;font-size:.9rem;color:var(--sourdine)}
.raccourcis-recherche{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 .8rem .8rem}
.raccourcis-recherche button{font-size:.8rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--trait-fort);color:var(--texte-2)}
.raccourcis-recherche button:hover{border-color:var(--accent);color:var(--texte)}
.groupe-recherche .titre-groupe{font-family:var(--police-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sourdine);padding:.7rem .8rem .3rem}
.resultat{display:grid;grid-template-columns:2rem 1fr auto;gap:.7rem;align-items:center;padding:.6rem .8rem;border-radius:12px;text-decoration:none;color:inherit;transition:background .15s}
.resultat:hover,.resultat.sel{background:rgba(127,141,168,.12)}
.resultat.sel{outline:1px solid rgba(245,180,0,.45)}
.resultat .ico{width:2rem;height:2rem;border-radius:9px;display:grid;place-items:center;background:var(--bleu-fond);font-size:.95rem}
.resultat .txt{min-width:0}
.resultat b{display:block;color:var(--texte);font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resultat small{display:block;color:var(--sourdine);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resultat mark{background:rgba(245,180,0,.28);color:inherit;border-radius:3px;padding:0 .05em}
.resultat .badge{font-size:.6rem}
body.recherche-ouverte{overflow:hidden}
.recherche-globale[hidden],.forum-nouveau[hidden],.formulaire[hidden]{display:none}

/* --- bandeau d'accès (marketplace, ebooks) */
.acces-etat{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;line-height:1.55}
.acces-etat.ok{border-left-color:var(--vert);background:var(--vert-fond)}
.acces-etat .acces-actions{display:inline-flex;gap:.9rem;align-items:center;flex-wrap:wrap}
.acces-etat a:not(.btn){color:var(--texte);text-decoration:underline;text-underline-offset:3px}

/* --- pied de page en colonnes */
footer{padding:4rem 0 2.5rem}
footer .colonnes{display:grid;gap:2.5rem;margin-bottom:2.5rem}
@media(min-width:48rem){footer .colonnes{grid-template-columns:1.5fr 1fr 1fr 1fr}}
footer .col h4,footer .col .h4{font-size:.8125rem;letter-spacing:0;text-transform:none;font-family:var(--police-texte);color:var(--texte);margin-bottom:.9rem;font-weight:600}
footer .col a{display:block;color:var(--sourdine);text-decoration:none;padding:.28rem 0;font-size:.9rem;transition:color .2s,transform .2s}
footer .col a.logo{display:inline-flex;padding:0;margin-bottom:1rem}footer .col a.logo:hover{transform:none}
footer .col a:hover{color:var(--texte);transform:translateX(2px)}
footer .col.marque p{margin:1rem 0 1.25rem;max-width:34ch}
footer .reseaux{display:flex;gap:.5rem;flex-wrap:wrap}
footer .reseaux .btn,footer .reseaux .btn:hover{display:inline-flex;padding:.55rem 1rem;font-size:.85rem;color:var(--texte);font-weight:600}
@media(max-width:48rem){footer .colonnes{grid-template-columns:1fr 1fr}footer .col.marque{grid-column:1/-1}}
footer .avertissement{font-size:.8rem;max-width:none;color:var(--sourdine);padding-top:1.75rem;border-top:1px solid var(--trait)}
footer .bas{margin-top:1.25rem;padding-top:1.25rem;font-size:.82rem}

/* --- guide du chemin : plus d'élément collant */
.guide-anim{position:static}

/* --- page compte : connexion / inscription */
.compte-section{padding-top:calc(var(--nav-h) + 1rem)}
.connexion-grille{display:grid;gap:2rem;align-items:center;min-height:calc(100vh - var(--nav-h) - 8rem)}
@media(min-width:60rem){.connexion-grille{grid-template-columns:1.05fr .95fr;gap:4rem}}
.connexion-argu h1{font-size:clamp(2.2rem,4vw,3.2rem);margin-bottom:1rem}
.connexion-argu .intro{margin-bottom:1.75rem}
.connexion-points{list-style:none;display:grid;gap:.75rem;margin:0 0 1.75rem}
.connexion-points li{display:grid;grid-template-columns:2rem 1fr;gap:.1rem .8rem;align-items:start;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--trait);background:rgba(255,255,255,.02)}
.connexion-points li::before{content:"✓";width:2rem;height:2rem;border-radius:9px;display:grid;place-items:center;background:var(--vert-fond);color:var(--vert);font-weight:800;font-size:.9rem}
.connexion-points b{display:block;color:var(--texte);font-family:var(--police-titre);font-size:.98rem}
.connexion-points span{font-size:.88rem;color:var(--sourdine);grid-column:2}
.connexion-etapes{font-size:.9rem;color:var(--sourdine);padding:1rem 1.1rem;border-radius:12px;border:1px dashed var(--trait-fort)}
.connexion-etapes b{color:var(--texte)}
.connexion-carte{padding:0;overflow:visible}
.connexion-carte:hover{transform:none}
.onglets-compte{display:grid;grid-template-columns:1fr 1fr;padding:.4rem;gap:.3rem;border-bottom:1px solid var(--trait);background:rgba(127,141,168,.06);border-radius:var(--rayon) var(--rayon) 0 0}
.onglets-compte button{padding:.8rem;border-radius:12px;font-family:var(--police-titre);font-weight:600;font-size:.95rem;color:var(--sourdine);transition:.2s}
.onglets-compte button.actif{background:var(--carte);color:var(--texte);box-shadow:0 6px 20px -12px rgba(0,0,0,.6);border:1px solid var(--trait)}
.connexion-carte .formulaire{border:0;background:none;padding:2rem;box-shadow:none}
.connexion-carte .formulaire .btn[type=submit]{margin-top:1.25rem}
.champ-mdp{position:relative}
.champ-mdp input{padding-right:3rem!important}
.voir-mdp{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:8px;display:grid;place-items:center;color:var(--sourdine);font-size:.95rem}
.voir-mdp:hover{background:rgba(127,141,168,.14);color:var(--texte)}
.force-mdp{height:4px;border-radius:4px;background:var(--trait);margin-top:.5rem;overflow:hidden}
.force-mdp i{display:block;height:100%;width:0;background:var(--rouge);transition:width .3s,background .3s;border-radius:4px}
.force-mdp[data-n="1"] i{width:20%}.force-mdp[data-n="2"] i{width:40%;background:#F59E0B}.force-mdp[data-n="3"] i{width:60%;background:#F59E0B}.force-mdp[data-n="4"] i{width:80%;background:var(--vert)}.force-mdp[data-n="5"] i{width:100%;background:var(--vert)}
.champ input[type=password]{width:100%;background:var(--bg);border:1px solid var(--trait-fort);color:var(--texte);border-radius:12px;padding:.85rem 1rem;font:inherit;font-size:.98rem;transition:border-color .2s,box-shadow .2s}
.champ input[type=password]:focus{outline:none;border-color:var(--bleu-clair);box-shadow:0 0 0 3px rgba(111,163,255,.18)}
.champ input[type=file]{width:100%;font-size:.88rem;color:var(--texte-2);padding:.6rem;border:1px dashed var(--trait-fort);border-radius:12px;background:rgba(255,255,255,.02)}
.compte-entete{margin-bottom:2rem;padding-top:1rem}
.compte-entete h1{font-size:clamp(2rem,3.6vw,2.8rem);margin-bottom:.6rem}
.compte-entete .intro{font-size:1.02rem}

/* --- forum */
.forum-heros{padding-bottom:2rem}
.forum-stats{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.78rem;color:var(--sourdine);margin-top:1.5rem}
.forum-stats b{color:var(--texte);font-size:.95rem}
.forum-barre{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-bottom:1.5rem}
.forum-barre .recherche-catalogue{flex:1;min-width:16rem;margin:0}
.forum-barre .btn svg{width:1em;height:1em}
.forum-nouveau{margin-bottom:1.5rem;padding:1.75rem}
.forum-nouveau:hover{transform:none}
.forum-nouveau h3{font-size:1.3rem;margin-bottom:.4rem}
.forum-nouveau .note{margin-bottom:1.25rem;font-size:.9rem}
.forum-nouveau .actions{display:flex;gap:.6rem;margin-top:.25rem;flex-wrap:wrap}
.forum-nouveau .btn{width:auto}
.forum-grille{display:grid;gap:1.5rem;align-items:start}
@media(min-width:60rem){.forum-grille{grid-template-columns:17rem 1fr}}
.forum-cats{display:grid;gap:.35rem}
@media(min-width:60rem){.forum-cats{position:sticky;top:calc(var(--nav-h) + 1rem)}}
@media(max-width:60rem){.forum-cats{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}}
.forum-cat{display:grid;grid-template-columns:2.2rem 1fr auto;gap:.7rem;align-items:center;text-align:left;padding:.65rem .75rem;border-radius:12px;border:1px solid transparent;transition:.2s;color:var(--texte-2)}
.forum-cat:hover{background:rgba(127,141,168,.08)}
.forum-cat.actif{background:var(--carte);border-color:var(--trait-fort);color:var(--texte)}
.forum-cat .ico{width:2.2rem;height:2.2rem;border-radius:9px;display:grid;place-items:center;background:var(--bleu-fond);color:var(--bleu-clair)}
.forum-cat .ico svg{width:1.15rem;height:1.15rem}
.forum-cat.actif .ico{background:var(--accent-fond);color:var(--accent)}
.forum-cat .txt b{display:block;font-size:.9rem;font-family:var(--police-titre);font-weight:600}
.forum-cat .txt small{display:block;font-size:.74rem;color:var(--sourdine);line-height:1.35;margin-top:.1rem}
@media(max-width:60rem){.forum-cat .txt small{display:none}}
.forum-cat .n{font-family:var(--police-mono);font-size:.72rem;color:var(--sourdine);min-width:1.4rem;text-align:right}
.forum-liste{display:grid;gap:.5rem}
.sujet-ligne{display:grid;grid-template-columns:2.6rem 1fr auto auto;gap:1rem;align-items:center;padding:.9rem 1.1rem;border-radius:14px;border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2));text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}
.sujet-ligne:hover{border-color:var(--trait-fort);transform:translateX(3px)}
.sujet-ligne.epingle{border-color:rgba(245,180,0,.35)}
.sujet-ligne .corps{min-width:0}
.sujet-ligne .titre{font-family:var(--police-titre);font-weight:600;color:var(--texte);font-size:1rem;line-height:1.35;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.sujet-ligne .titre .pin,.sujet-ligne .titre .img{font-size:.8rem;opacity:.8}
.sujet-ligne .meta{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.76rem;color:var(--sourdine);margin-top:.25rem}
.sujet-ligne .meta .cat{color:var(--bleu-clair)}
.sujet-ligne .meta .sym{font-family:var(--police-mono);color:var(--accent)}
.sujet-ligne .chiffres{display:flex;gap:1rem;font-size:.74rem;color:var(--sourdine);white-space:nowrap}
.sujet-ligne .chiffres b{display:block;font-family:var(--police-mono);color:var(--texte);font-size:.9rem;text-align:center}
.sujet-ligne .dernier{text-align:right;font-size:.72rem;color:var(--sourdine);min-width:6rem}
.sujet-ligne .dernier small{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.6rem}
.sujet-ligne .dernier b{display:block;color:var(--texte-2);font-family:var(--police-mono);font-size:.8rem}
.sujet-ligne .dernier span{display:block}
@media(max-width:44rem){.sujet-ligne{grid-template-columns:2.2rem 1fr;gap:.7rem}.sujet-ligne .chiffres{grid-column:2;gap:.8rem}.sujet-ligne .dernier{display:none}}
.avatar{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;font-family:var(--police-titre);font-weight:700;font-size:1rem;color:#fff;background:linear-gradient(135deg,hsl(var(--h,220) 70% 52%),hsl(calc(var(--h,220) + 40) 70% 42%));box-shadow:0 4px 14px -6px rgba(0,0,0,.6);flex-shrink:0}
.forum-vide{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--trait-fort);border-radius:var(--rayon)}
.forum-vide h3{font-size:1.3rem;margin-bottom:.5rem}
.forum-vide p{color:var(--sourdine);max-width:40ch;margin:0 auto 1.25rem;font-size:.95rem}
.forum-vide.compact{padding:2rem 1.5rem}
.forum-pages{display:flex;justify-content:space-between;gap:.5rem;padding-top:.75rem}
/* sujet */
.forum-sujet-page .ariane{margin-bottom:1.5rem}
.sujet-entete{margin-bottom:1.5rem}
.sujet-entete h1{font-size:clamp(1.6rem,3.2vw,2.4rem);max-width:none;margin:.8rem 0 1rem;letter-spacing:-.02em}
.sujet-entete .badges{margin-bottom:0}
.sujet-entete .badges a{text-decoration:none}
.sujet-meta{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:.82rem;color:var(--sourdine)}
.sujet-meta .avatar{width:2.2rem;height:2.2rem;font-size:.85rem}
.sujet-meta b{color:var(--texte)}
.messages{display:grid;gap:.85rem;margin:1rem 0}
.message{padding:1.35rem 1.5rem;border-radius:var(--rayon);border:1px solid var(--trait);background:linear-gradient(180deg,var(--carte),var(--bg-2));scroll-margin-top:6rem}
.message.premier{border-color:rgba(245,180,0,.3);background:linear-gradient(180deg,var(--carte),var(--bg-2)),var(--ambre-fond)}
.message.surligne{outline:2px solid var(--accent)}
.message .entete{display:flex;gap:.8rem;align-items:center;margin-bottom:.9rem}
.message .entete b{color:var(--texte);font-family:var(--police-titre)}
.message .entete small{display:block;font-size:.74rem;color:var(--sourdine);font-family:var(--police-mono)}
.message .entete .badge{margin-left:.4rem;font-size:.58rem;vertical-align:middle}
.message .contenu{font-size:1rem;line-height:1.7;color:var(--texte-2);word-wrap:break-word}
.message .contenu b{color:var(--texte)}
.message .contenu code{font-family:var(--police-mono);font-size:.84em;color:var(--bleu-clair);background:var(--bleu-fond);padding:.1rem .35rem;border-radius:4px}
.message .contenu pre{font-family:var(--police-mono);font-size:.82rem;background:var(--bg);border:1px solid var(--trait);border-radius:10px;padding:.9rem 1rem;overflow-x:auto;margin:.6rem 0;color:var(--texte)}
.message .contenu a{color:var(--bleu-clair)}
.message .contenu a.sym{font-family:var(--police-mono);color:var(--accent);text-decoration:none;background:var(--accent-fond);padding:.05rem .35rem;border-radius:4px;font-size:.9em}
.message .capture{display:block;margin-top:1rem;border-radius:12px;overflow:hidden;border:1px solid var(--trait-fort);max-width:46rem}
.message .capture img{width:100%;display:block}
.message .actions{display:flex;gap:.9rem;align-items:center;margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--trait);flex-wrap:wrap}
.vote{font-family:var(--police-mono);font-size:.8rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--trait-fort);color:var(--sourdine);transition:.2s}
.vote:hover{border-color:var(--rouge);color:var(--rouge)}
.vote.on{background:rgba(240,80,110,.14);border-color:rgba(240,80,110,.5);color:var(--rouge)}
.lien-action{font-size:.82rem;color:var(--sourdine);padding:.3rem .2rem}
.lien-action:hover{color:var(--texte)}
.lien-action.danger:hover{color:var(--rouge)}
.reponse{margin-top:1.5rem;padding:1.5rem}
.reponse:hover{transform:none}
.reponse h3{font-size:1.15rem;margin-bottom:.8rem}
.reponse textarea{width:100%;background:var(--bg);border:1px solid var(--trait-fort);color:var(--texte);border-radius:12px;padding:.9rem 1rem;font:inherit;font-size:.96rem;resize:vertical;min-height:7rem}
.reponse textarea:focus{outline:none;border-color:var(--bleu-clair);box-shadow:0 0 0 3px rgba(111,163,255,.18)}
.reponse .ligne-bas{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.8rem;flex-wrap:wrap}
.reponse .fichier{position:relative;font-size:.85rem;color:var(--sourdine);cursor:pointer}
.reponse .fichier input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.reponse .fichier:hover span{color:var(--texte)}
/* accueil : derniers sujets */
.forum-recents{display:grid;gap:1rem}
@media(min-width:44rem){.forum-recents{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.forum-recents{grid-template-columns:repeat(3,1fr)}}
.forum-carte{display:grid;gap:.7rem;padding:1.3rem 1.4rem;text-decoration:none;color:inherit;align-content:start}
.forum-carte .haut{display:flex;gap:.4rem;flex-wrap:wrap}
.forum-carte h3{font-size:1.05rem;line-height:1.35}
.forum-carte .pied{display:flex;gap:.5rem;align-items:center;font-size:.78rem;color:var(--sourdine);margin-top:auto}
.forum-carte .pied .avatar{width:1.6rem;height:1.6rem;font-size:.7rem}
.forum-carte .pied .rep{margin-left:auto;font-family:var(--police-mono)}

/* --- thème clair : finitions */

/* visionneuse des captures du forum (pas de nouvel onglet : les navigateurs intégrés — Telegram, etc. — ferment la page) */
.visionneuse{position:fixed;inset:0;z-index:400;background:rgba(3,6,14,.92);display:flex;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out;animation:apparaitre .2s ease}
.visionneuse img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 30px 80px -20px rgba(0,0,0,.8);object-fit:contain}
.visionneuse .fermer{position:absolute;top:.8rem;right:.8rem;width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.visionneuse .fermer:hover{background:rgba(255,255,255,.16)}
@keyframes apparaitre{from{opacity:0}to{opacity:1}}
.message .capture{cursor:zoom-in}

/* mot de passe oublié / réinitialisation */
.connexion-carte .intro-oubli{color:var(--sourdine);font-size:.92rem;margin:.4rem 0 1.2rem;line-height:1.55}
.connexion-carte .confidentialite a{color:var(--bleu-clair,#8FB4FF)}

/* lecteur de documents en ligne */
.lecteur{max-width:920px;margin:0 auto;background:var(--carte);border:1px solid var(--trait-fort);border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre)}
.lecteur-barre{display:flex;align-items:center;gap:.4rem;padding:.6rem .8rem;border-bottom:1px solid var(--trait);background:rgba(127,141,168,.06);flex-wrap:wrap}
.lecteur-barre .b{height:2.1rem;min-width:2.1rem;padding:0 .7rem;border-radius:8px;border:1px solid var(--trait-fort);background:var(--bg);color:var(--texte);font-size:.85rem;font-weight:600;cursor:pointer;transition:.15s}
.lecteur-barre .b:hover{border-color:var(--bleu-clair);color:var(--bleu-clair)}
.lecteur-barre .b:disabled{opacity:.35;cursor:default}
.lecteur-barre .compte{font-family:var(--police-mono);font-size:.82rem;color:var(--sourdine);display:inline-flex;align-items:center;gap:.35rem;margin:0 .3rem}
.lecteur-barre .compte input{width:3.6rem;height:2rem;text-align:center;background:var(--bg);border:1px solid var(--trait-fort);border-radius:7px;color:var(--texte);font-family:var(--police-mono);font-size:.82rem}
.lecteur-barre .espace{flex:1}
.lecteur-page{background:#1B2233;padding:clamp(.5rem,2vw,1.5rem);display:flex;justify-content:center}
.lecteur-page img{width:100%;max-width:820px;height:auto;display:block;border-radius:6px;box-shadow:0 20px 50px -20px rgba(0,0,0,.8);pointer-events:none;user-select:none;-webkit-user-drag:none;-webkit-user-select:none}
.lecteur-note{padding:.6rem .9rem;font-size:.74rem;color:var(--sourdine);font-family:var(--police-mono);text-align:center;margin:0}
.lecteur:fullscreen{max-width:none;border-radius:0;border:0;display:flex;flex-direction:column;background:#0B1220}
.lecteur:fullscreen .lecteur-page{flex:1;min-height:0;padding:1rem;align-items:center}
.lecteur:fullscreen .lecteur-page img{max-width:none;width:auto;height:100%;max-height:calc(100vh - 6.5rem)}
.lecteur:fullscreen .lecteur-note{display:none}
.message .contenu pre{font-family:var(--police-mono);font-size:.82rem;line-height:1.55;background:#0E1830;color:#E6EDF7;border-left:3px solid var(--ambre);border-radius:8px;padding:.9rem 1rem;overflow-x:auto;margin:.8rem 0;white-space:pre}
@media(max-width:40rem){
  .porte .boite{padding:1.3rem 1rem}
  .porte h3{font-size:1.2rem}
  .porte li{grid-template-columns:2rem 1fr;row-gap:.5rem}
  .porte li .btn,.porte li button,.porte li a.btn{grid-column:2;justify-self:start}
}
.mlab-import{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:-.3rem 0 1rem;padding:.6rem .8rem;border:1px solid rgba(8,153,129,.35);background:rgba(8,153,129,.08);border-radius:10px}
.mlab-import .lab{font-family:var(--police-mono);font-size:.78rem;color:#089981;flex:1;min-width:10rem}
.mlab-import .btn-petit{padding:.45rem .8rem;font-size:.8rem}
@media(hover:none){.illu .lueur{filter:none}}
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* contraste AA des boutons réseaux du pied de page (texte blanc sur fond saturé) */
@media(hover:none){.illu .lueur{filter:none}}
/* mobile : pas d'animation d'apparition bougie par bougie (coûteuse en mise en page sur les petits appareils) */
@media(hover:none),(max-width:48rem){.illu .bougie{animation:none;opacity:1}}
/* page multi-graphiques */
body.page-multi{margin:0;overflow:hidden;background:#060B18}
#multi{height:100vh;height:100dvh;display:grid;grid-template-rows:2.9rem 1fr;grid-template-columns:minmax(0,1fr);overflow:hidden}
#multi-haut{display:flex;align-items:center;gap:.6rem;padding:0 .75rem;min-width:0;border-bottom:1px solid rgba(127,141,168,.16);background:#0A1225;font-family:var(--police-mono)}
#multi-haut .logo{display:flex;align-items:center;gap:.3rem;text-decoration:none;font-family:var(--police-titre);font-weight:800;font-size:1.05rem;color:#fff}
#multi-haut .logo .mql{color:#2F6FE0}#multi-haut .logo .lab{background:#F5B400;color:#0F2A5C;padding:.05rem .35rem;border-radius:5px;font-size:.8rem}#multi-haut .logo .term{font-family:var(--police-mono);font-size:.7rem;color:#7F8DA8;font-weight:500;margin-left:.4rem;letter-spacing:.06em;text-transform:uppercase}
#multi-haut .dispositions{display:flex;gap:.2rem;padding:.2rem;border:1px solid rgba(127,141,168,.34);border-radius:8px}
#multi-haut .dispositions button{width:2rem;height:1.7rem;border-radius:6px;color:#7F8DA8;display:grid;place-items:center}
#multi-haut .dispositions button svg{width:1.05rem;height:1.05rem}
#multi-haut .dispositions button.actif{background:#F5B400;color:#140E00}
#multi-haut .b{display:inline-flex;align-items:center;gap:.35rem;height:1.9rem;padding:0 .7rem;border-radius:7px;border:1px solid rgba(127,141,168,.34);color:#B4C0D6;font-size:.74rem;text-decoration:none;cursor:pointer}
#multi-haut .b svg{width:1rem;height:1rem;flex:none}#multi-haut .b,#multi-haut .dispositions,#multi-haut .logo{flex:none}
#multi-haut .b.actif{border-color:#2F6FE0;color:#6FA3FF;background:rgba(47,111,224,.14)}
#multi-haut .espace{flex:1}
#multi-haut .menu{position:relative}#multi-haut .menu .liste{display:none;position:absolute;top:calc(100% + .4rem);right:0;min-width:17rem;background:#0F1A33;border:1px solid rgba(127,141,168,.34);border-radius:10px;padding:.4rem;z-index:20;box-shadow:0 20px 50px -20px rgba(0,0,0,.7)}#multi-haut .menu.ouvert .liste{display:block}
#multi-haut .liste .titre{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#F5B400;padding:.35rem .6rem}
#multi-haut .liste .ligne{display:grid;grid-template-columns:1fr auto;gap:0 .5rem;align-items:center;padding:.4rem .6rem;border-radius:7px;cursor:pointer;color:#E6EBF5;font-size:.8rem}#multi-haut .liste .ligne:hover{background:rgba(47,111,224,.16)}
#multi-haut .liste .ligne small{grid-column:1;color:#7F8DA8;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#multi-haut .liste .ligne .suppr{grid-column:2;grid-row:1/3;color:#7F8DA8;padding:.2rem .4rem;border-radius:5px}#multi-haut .liste .ligne .suppr:hover{color:#F23645;background:rgba(242,54,69,.12)}
#multi-haut .liste .vide{padding:.4rem .6rem;color:#7F8DA8;font-size:.76rem}#multi-haut .liste .ajout{display:block;width:100%;text-align:left;margin-top:.3rem;padding:.5rem .6rem;border-top:1px solid rgba(127,141,168,.2);color:#6FA3FF;font-size:.78rem;border-radius:0 0 7px 7px}#multi-haut .liste .ajout:hover{background:rgba(47,111,224,.16)}
#multi-grille{display:grid;gap:2px;background:rgba(127,141,168,.25);min-height:0}
#multi-grille iframe{width:100%;height:100%;border:0;background:#060B18;display:block}
#multi-grille.d-1{grid-template-columns:1fr}
#multi-grille.d-2h{grid-template-columns:1fr 1fr}
#multi-grille.d-2v{grid-template-rows:1fr 1fr}
#multi-grille.d-3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
#multi-grille.d-3 iframe:first-child{grid-row:1/3}
#multi-grille.d-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
@media(max-width:48rem){#multi-grille.d-2h,#multi-grille.d-3,#multi-grille.d-4{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:1fr}#multi-grille.d-3 iframe:first-child{grid-row:auto}#multi-haut .b span,#multi-haut .logo .term{display:none}#multi-haut{gap:.45rem;padding:0 .5rem}#multi-haut .b{padding:0 .5rem}#multi-haut .dispositions button{width:1.8rem}#multi-haut a.b,#multi-haut .dispositions [data-d="2h"],#multi-haut .dispositions [data-d="3"]{display:none}#multi-haut .menu{position:static}#multi-haut .menu .liste{left:.5rem;right:.5rem;min-width:0}}
/* pages longues (marketplace : 25 cartes) : le navigateur ne calcule le style et la mise en page des cartes hors écran qu'au moment
   où l'on s'en approche — gros gain sur mobile ; la taille intrinsèque évite les sauts de la barre de défilement */
.grille-outils .carte{content-visibility:auto;contain-intrinsic-size:auto 32rem}
/* ═══════════ hero « en direct » : le vrai terminal, pleine largeur, en lecture seule ═══════════ */
.heros-direct{padding-bottom:0}
.heros-direct .enveloppe{grid-template-columns:1fr;gap:3rem}
.heros-direct .enveloppe>div:first-child{max-width:50rem}
.heros-direct .stats{margin-top:2.25rem;grid-template-columns:repeat(4,max-content);gap:1.4rem 3rem}
@media(max-width:34rem){.heros-direct .stats{grid-template-columns:repeat(2,1fr)}}
.direct{border:1px solid var(--trait-fort);border-radius:var(--rayon);background:var(--bg-2);overflow:hidden;box-shadow:var(--ombre)}
.direct-barre{display:flex;align-items:center;gap:1rem;padding:.6rem .9rem;border-bottom:1px solid var(--trait);font-size:.8125rem;white-space:nowrap}
.direct-sym{font-family:var(--police-mono);font-weight:600;color:var(--texte)}.direct-sym .sourd{color:var(--sourdine);font-weight:400}
.direct-etat{display:inline-flex;align-items:center;gap:.45rem;color:var(--live);font-weight:500}
.direct-etat i{width:.45rem;height:.45rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px var(--live-fond);animation:pulser 2s infinite}
.direct-etat.attente{color:var(--sourdine)}.direct-etat.attente i{animation:none;box-shadow:none}
.direct-lien{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;color:var(--texte-2);text-decoration:none;font-weight:500}.direct-lien:hover{color:var(--texte)}.direct-lien svg{width:1em;height:1em}
.direct-cadre{position:relative;aspect-ratio:16/8.4;background:#F6F8FC}
.direct-cadre iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .6s ease;pointer-events:none}
.direct-cadre.pret iframe{opacity:1}
.direct-affiche{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;opacity:.9;transition:opacity .6s ease}
.direct-cadre.pret .direct-affiche{opacity:0;pointer-events:none}
.direct-voile{position:absolute;inset:0;z-index:2}
.direct-charger{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:none}
@media(max-width:48rem){.direct-cadre{aspect-ratio:16/12}.direct-lien span{display:none}.direct-charger{display:inline-flex}.direct-cadre.pret .direct-charger,.direct-cadre.chargement .direct-charger{display:none}}
@media(max-width:34rem){.direct-barre{gap:.6rem;font-size:.75rem}}
/* ═══════════ accueil restructuré ═══════════ */
.reperes{border-top:1px solid var(--trait);border-bottom:1px solid var(--trait);background:var(--bg-2);margin-top:3.5rem}
.reperes .enveloppe{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}.reperes .enveloppe::-webkit-scrollbar{display:none}
.reperes a{flex:1 0 auto;display:grid;gap:.1rem;padding:.9rem 1rem .9rem 0;margin-right:1rem;text-decoration:none;border-right:1px solid var(--trait);min-width:8.5rem;transition:color .15s}
.reperes a:last-child{border-right:0;margin-right:0}
.reperes b{font-size:.875rem;font-weight:600;color:var(--texte)}.reperes span{font-size:.75rem;color:var(--sourdine)}
.reperes a:hover b{color:var(--accent)}
.section-outils{padding-top:5rem}
.section-terminal{padding:4rem 0}
.points-cles{list-style:none;display:grid;gap:2rem 2.5rem;padding-top:1.5rem;border-top:1px solid var(--trait)}
.points-cles li{display:grid;gap:.3rem;padding-left:1.1rem;border-left:2px solid var(--trait-fort)}
.points-cles b{font-size:1rem;font-weight:600;color:var(--texte)}.points-cles span{font-size:.9rem;color:var(--texte-2);line-height:1.5}
@media(min-width:48rem){.points-cles{grid-template-columns:repeat(2,1fr)}}
@media(min-width:64rem){.points-cles{grid-template-columns:repeat(4,1fr)}}
.section-apprendre{background:var(--bg-2);border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.apprendre-grille{display:grid;gap:1.25rem}
@media(min-width:64rem){.apprendre-grille{grid-template-columns:1.2fr .8fr}}
.livre-carte{display:grid;grid-template-columns:7rem 1fr;gap:1.4rem;align-items:start;text-decoration:none;color:inherit;padding:1.5rem}
.livre-carte img{border-radius:6px;border:1px solid var(--trait-fort);width:100%;height:auto}
.livre-carte h3{font-size:1.125rem;line-height:1.25;margin:.35rem 0 .6rem}.livre-carte h3 em{font-style:normal;color:var(--texte-2)}
.livre-carte p{font-size:.9rem;line-height:1.5;color:var(--texte-2)}
.livre-carte .pied{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--trait);font-size:.875rem}
.livre-carte .prix{font-weight:600;color:var(--texte)}.livre-carte .voir{display:inline-flex;align-items:center;gap:.4rem;color:var(--bleu-clair);font-weight:600}.livre-carte .voir svg{width:1em;height:1em}
@media(max-width:34rem){.livre-carte{grid-template-columns:1fr}.livre-carte img{max-width:9rem}}
.section-communaute .entete-ligne .actions{flex-wrap:wrap}
.section-communaute .abonner{margin-top:2rem}
#sur-mesure{padding-top:0}
@media(max-width:48rem){.reperes{position:relative}.reperes::after{content:"";position:absolute;right:0;top:0;bottom:0;width:3rem;background:linear-gradient(90deg,transparent,var(--bg-2));pointer-events:none}}

/* Marque de l'accueil et aperçus sans capture réelle : la marque reste présente,
   sans inventer une fausse interface de trading. */
.heros-direct .enveloppe{grid-template-columns:minmax(0,1fr) minmax(18rem,.72fr);align-items:center}
.heros-direct .hero-copy{max-width:50rem}.heros-direct .direct{grid-column:1/-1}
.hero-marque{justify-self:end;width:min(100%,27rem);min-height:22rem;display:grid;place-content:center;justify-items:center;text-align:center;border:1px solid var(--trait);border-radius:calc(var(--rayon) + .5rem);background:radial-gradient(circle at 50% 38%,rgba(0,109,255,.12),transparent 48%),linear-gradient(145deg,#fff,var(--bg-2));box-shadow:var(--ombre);color:var(--bleu)}
.hero-marque .logo-marque{width:min(13rem,48vw);height:min(13rem,48vw);filter:drop-shadow(0 1.1rem 1.4rem rgba(0,109,255,.20))}.hero-marque-nom{font-family:var(--police-titre);font-weight:800;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:.1em;margin-top:1rem}.hero-marque-ligne{width:3rem;height:2px;background:var(--bleu);margin:1rem 0}.hero-marque p{font-family:var(--police-mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--texte-2)}
.visuel-attente{height:100%;min-height:11rem;display:grid;place-content:center;justify-items:center;gap:.8rem;background:linear-gradient(145deg,#08142b,#10264b);color:#fff}.visuel-attente .logo-marque{width:3.5rem;height:3.5rem;color:#fff}.visuel-attente span{font-family:var(--police-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#dce9ff}
.badge.video{background:#0b1730;color:#fff;border-color:#0b1730}.badge.video{font-weight:600}
.etoiles i::after,.avis-choix button.pleine svg{background-color:#F5B400;fill:#F5B400}.retour-haut{background:#0d2148!important;color:#fff!important;border-color:#0d2148!important;box-shadow:0 .45rem 1.2rem rgba(0,65,160,.24)}
@media(max-width:64rem){.heros-direct .enveloppe{grid-template-columns:1fr}.hero-marque{display:none}.heros-direct .direct{grid-column:auto}}
/* hero : la seconde partie du titre tourne (fondu court, sans glissement sur les préférences « moins d'animations ») */
#phrase-hero{display:block;white-space:nowrap;transition:opacity .35s ease,transform .35s ease}
.heros-direct h1{min-height:3.1em}
#phrase-hero.sortie{opacity:0;transform:translateY(.15em)}
@media(prefers-reduced-motion:reduce){#phrase-hero{transition:none}#phrase-hero.sortie{transform:none}}
.montant-note{font-size:.8rem;color:var(--sourdine);margin-top:.3rem}
.bientot-carte{opacity:.75}.bientot-carte h3{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.choix-services{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.9rem}
.choix-service{display:grid;gap:.05rem;padding:.4rem .7rem;border-radius:8px;border:1px solid var(--trait-fort);color:var(--texte-2);font-size:.8rem;font-weight:500;text-align:left;transition:.15s}
.choix-service small{font-family:var(--police-mono);font-size:.7rem;color:var(--sourdine)}
.choix-service.actif{border-color:var(--accent);color:var(--texte);background:var(--accent-fond)}.choix-service.actif small{color:var(--accent)}


/* connexion en deux temps, sessions */
.code-connexion{font-size:1.6rem;letter-spacing:.35em;text-align:center}
.sessions-liste{display:grid;gap:.4rem;margin:.6rem 0 .9rem}
.session-ligne{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;padding:.55rem .8rem;border:1px solid var(--trait);border-radius:var(--rayon-s);font-size:.86rem}
.session-ligne span{color:var(--sourdine)}.session-ligne.courante{border-color:var(--trait-fort)}.session-ligne.courante span::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--live);margin-right:.4rem;box-shadow:0 0 0 3px var(--live-fond)}
