/* ===== Kit sous-pages Vraisource ===== */
.phero{padding:64px 0 56px;position:relative;overflow:hidden}
.phero .container{position:relative;z-index:1}
.phero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.phero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);margin-bottom:1.1rem}
.phero h1 em{font-style:normal;color:var(--bleu)}
.phero .lead{font-size:1.1rem;color:var(--encre-70);max-width:36rem;margin-bottom:1.6rem}
.phero-art{position:relative}

/* Planche illustrée : carte blanche, ombre profonde, tampon au scroll */
.planche{background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.3rem;position:relative;overflow:hidden;
  box-shadow:0 40px 90px rgba(20,31,75,.14),0 12px 28px rgba(20,31,75,.07),0 2px 6px rgba(20,31,75,.05)}
.planche svg{width:100%;height:auto;display:block}
.planche .pl-cap{font-family:'Spline Sans Mono',monospace;font-size:.7rem;color:var(--encre-40);letter-spacing:.06em;text-transform:uppercase;margin-top:.8rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.planche .stamp{right:18px;bottom:44px}
.planche.in .stamp{opacity:1;transform:rotate(-7deg) scale(1)}

/* Sceau 22 contrôles */
.seal-tick{stroke:var(--encre-15);stroke-width:3;stroke-linecap:round}
.in .seal-tick{animation:tickv .35s ease forwards}
.in .seal-tick.orange{animation-name:ticko}.in .seal-tick.rouge{animation-name:tickr}
@keyframes tickv{to{stroke:var(--verifie)}}@keyframes ticko{to{stroke:#C77E1E}}@keyframes tickr{to{stroke:var(--erreur)}}
.seal-arc{fill:none;stroke-width:9;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.5s cubic-bezier(.2,.8,.2,1)}
.in .seal-arc{stroke-dashoffset:var(--off)}
.seal-track{fill:none;stroke:var(--encre-15);stroke-width:9}
.seal-num{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:56px;fill:var(--encre)}
.seal-lab{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.1em;fill:var(--encre-40)}
.seal-leg{font-family:'Spline Sans Mono',monospace;font-size:10px;fill:var(--encre-70)}

/* Flux : nœuds reliés en pointillés */
.flow{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:16px;margin-top:44px}
.flow-node{background:#fff;border:1px solid var(--encre-15);border-radius:12px;padding:1.1rem 1rem;position:relative;font-size:.9rem;color:var(--encre-70)}
.flow-node strong{display:block;color:var(--encre);font-size:1rem;margin-bottom:.3rem}
.flow-node .k{font-family:'Spline Sans Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bleu);display:block;margin-bottom:.5rem}
.flow-node+.flow-node::before{content:"";position:absolute;left:-16px;top:50%;width:16px;border-top:1.5px dashed var(--encre-40)}
.flow-node.ok{border-color:var(--verifie);box-shadow:0 0 0 4px var(--verifie-bg)}
.flow-node.ko{border-color:var(--erreur);box-shadow:0 0 0 4px var(--erreur-bg)}
.flow-node.ok .k{color:var(--verifie)}.flow-node.ko .k{color:var(--erreur)}

/* Encadrés "en clair" */
.callout{border-radius:12px;padding:1.1rem 1.3rem;margin:1.4rem 0;border:1.5px solid;font-size:.96rem}
.callout .k{font-family:'Spline Sans Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.35rem}
.callout.rouge{border-color:var(--erreur);background:var(--erreur-bg);color:#6E1C12}.callout.rouge .k{color:var(--erreur)}
.callout.vert{border-color:var(--verifie);background:var(--verifie-bg);color:#10432B}.callout.vert .k{color:var(--verifie)}
.callout.bleu{border-color:var(--bleu);background:rgba(43,68,216,.06)}.callout.bleu .k{color:var(--bleu)}

/* Faux / Vrai */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px}
.compare>div{background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.4rem 1.5rem}
.compare .k{font-family:'Spline Sans Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.6rem}
.compare .ko{border-top:4px solid var(--erreur)}.compare .ko .k{color:var(--erreur)}
.compare .ok{border-top:4px solid var(--verifie)}.compare .ok .k{color:var(--verifie)}
.compare p{font-size:.93rem;color:var(--encre-70)}
.compare .mono{font-size:.78rem;display:block;background:var(--papier-2);padding:.5rem .7rem;border-radius:8px;margin:.6rem 0;word-break:break-all}

/* Compteurs */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.stat{background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.4rem 1.5rem;box-shadow:6px 6px 0 var(--encre-15)}
.stat b{font-family:'Bricolage Grotesque',sans-serif;font-size:2.8rem;font-weight:700;display:block;line-height:1;color:var(--bleu);margin-bottom:.4rem}
.stat b small{font-size:1.1rem;color:var(--encre-40);font-weight:500}
.stat span{font-size:.9rem;color:var(--encre-70)}

/* Prose (guides) */
.prose{max-width:46rem}
.prose h2{font-size:1.65rem;margin:2.8rem 0 .9rem}.prose h3{font-size:1.15rem;margin:1.7rem 0 .5rem}
.prose p,.prose li{color:var(--encre-70);font-size:1rem;margin-bottom:.9rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose code{font-family:'Spline Sans Mono',monospace;font-size:.85em;background:var(--papier-2);padding:.1em .4em;border-radius:5px;color:var(--encre)}
.prose pre{font-family:'Spline Sans Mono',monospace;font-size:.8rem;background:#0B1436;color:#C9D4F0;border-radius:12px;padding:1.1rem 1.3rem;overflow:auto;margin:1rem 0 1.5rem;line-height:1.55}
.prose pre .c{color:#6F7E9E}.prose pre .k{color:#8EA0FF}.prose pre .v{color:#8FD3A8}
.prose a{color:var(--bleu)}

/* Bandeau final encre */
.cta-band{background:var(--encre);color:var(--papier);padding:76px 0}
.cta-band .section-eyebrow{color:#8EA0FF}
.cta-band h2{font-size:clamp(1.7rem,3.4vw,2.4rem);max-width:34rem;margin-bottom:1rem}
.cta-band p{color:rgba(250,248,241,.72);max-width:36rem;margin-bottom:1.6rem}
.cta-band .btn-ghost{color:var(--papier);border-color:rgba(250,248,241,.4)}
.cta-band .btn-ghost:hover{border-color:#fff}

@media (max-width:900px){
  .phero{padding:44px 0 40px}
  .phero-grid,.compare,.stats{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .flow-node+.flow-node::before{left:50%;top:-16px;width:0;height:16px;border-top:none;border-left:1.5px dashed var(--encre-40)}
}

/* Apparition séquencée dans une planche */
.rise{opacity:0;transform:translateY(10px)}
.planche.in .rise{animation:rise .55s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.planche.in .fade-out{animation:fadeout .6s ease 1.6s forwards}
@keyframes fadeout{to{opacity:.35}}
/* Grille sources */
.sources{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.source{background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.5rem 1.4rem;position:relative}
.source .k{font-family:'Spline Sans Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--erreur);display:block;margin-bottom:.6rem}
.source h3{font-size:1.1rem;margin-bottom:.5rem}
.source p{font-size:.92rem;color:var(--encre-70)}
.source .ex{font-family:'Spline Sans Mono',monospace;font-size:.76rem;color:var(--encre-40);margin-top:.8rem;padding-top:.7rem;border-top:1px dashed var(--encre-15)}
@media (max-width:900px){.sources{grid-template-columns:1fr}}

/* Hub guides */
.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.gcard{display:flex;flex-direction:column;gap:.6rem;background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.6rem 1.5rem;text-decoration:none;color:inherit;position:relative;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.gcard:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(20,31,75,.12);border-color:var(--bleu)}
.gcard .k{font-family:'Spline Sans Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bleu)}
.gcard h3{font-size:1.15rem;line-height:1.25}
.gcard p{font-size:.92rem;color:var(--encre-70);flex:1}
.gcard .go{font-weight:600;font-size:.9rem;color:var(--bleu)}
.gcard.soon{opacity:.6;pointer-events:none}.gcard.soon .go{color:var(--encre-40)}
.gcard.pdf{background:var(--encre);color:var(--papier);border-color:var(--encre)}.gcard.pdf .k{color:#8EA0FF}.gcard.pdf p{color:rgba(250,248,241,.72)}.gcard.pdf .go{color:#8EA0FF}
@media (max-width:900px){.guides{grid-template-columns:1fr}}

/* Hub guides */
.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.gcard{display:flex;flex-direction:column;gap:.6rem;background:#fff;border:1px solid var(--encre-15);border-radius:var(--radius);padding:1.6rem 1.5rem;text-decoration:none;color:inherit;position:relative;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.gcard:hover{transform:translateY(-3px);box-shadow:0 20px 50px rgba(20,31,75,.12);border-color:var(--bleu)}
.gcard .k{font-family:'Spline Sans Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bleu)}
.gcard h3{font-size:1.15rem;line-height:1.25}
.gcard p{font-size:.92rem;color:var(--encre-70);flex:1}
.gcard .go{font-weight:600;font-size:.9rem;color:var(--bleu)}
.gcard.soon{opacity:.6;pointer-events:none}.gcard.soon .go{color:var(--encre-40)}
.gcard.pdf{background:var(--encre);color:var(--papier);border-color:var(--encre)}.gcard.pdf .k{color:#8EA0FF}.gcard.pdf p{color:rgba(250,248,241,.72)}.gcard.pdf .go{color:#8EA0FF}
@media (max-width:900px){.guides{grid-template-columns:1fr}}
