/* ============================================================
   V3.3 — Égayage : animations subtiles + touches de couleur
   ============================================================ */

/* Apparition douce au scroll (via IO .v3-in ajoutée par JS) */
.labo-box, .v3-card, .sys-stack-item, .sys-bonus, .labo-video {
    opacity: 0; transform: translateY(14px);
    transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.3,1);
}
.v3-in { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
    .labo-box, .v3-card, .sys-stack-item, .sys-bonus, .labo-video { opacity: 1; transform: none; transition: none; }
}

/* Titres h2 : touche de couleur gauche */
.labo-content h2, .sys-stack h2, .labo-video h2 {
    position: relative; padding-left: 1rem;
}
.labo-content h2::before, .sys-stack h2::before, .labo-video h2::before {
    content: ''; position: absolute; left: 0; top: .2em; bottom: .2em;
    width: 4px; border-radius: 4px;
    background: linear-gradient(180deg, #3DDC84, #A8E04A);
}

/* Liens du contenu : couleur + soulignement animé */
.labo-content a:not(.labo-cta) {
    color: #0E5A2E; font-weight: 600; text-decoration: none;
    background-image: linear-gradient(120deg, #3DDC84, #A8E04A);
    background-repeat: no-repeat; background-size: 100% 2px; background-position: 0 100%;
    transition: background-size .25s ease, color .25s ease;
}
.labo-content a:not(.labo-cta):hover { color: #1F9D55; background-size: 0% 2px; }

/* Séparateurs : dégradé au lieu du gris */
.labo-content hr, .v3 hr {
    border: 0; height: 2px; border-radius: 2px; margin: 2.5rem auto;
    background: linear-gradient(90deg, transparent, #3DDC84, #A8E04A, transparent);
}

/* Blocs citation : accent vert */
.labo-content blockquote {
    border-left: 4px solid; border-image: linear-gradient(180deg, #3DDC84, #A8E04A) 1;
    padding: .5rem 0 .5rem 1.2rem; font-style: italic; color: rgba(20,23,19,.75);
}

/* Tableaux : en-tête gradient doux */
.labo-content table { border-radius: 12px; overflow: hidden; border-collapse: separate; border-spacing: 0; }
.labo-content th { background: linear-gradient(120deg, rgba(61,220,132,.16), rgba(168,224,74,.12)); }

/* TOC Greenshift (l'ancien, conservé) : habillage moderne */
.gspb-toc, [class*="gspb_toc"], .gspb_toc-container {
    background: #fff !important;
    border: 1px solid rgba(20,23,19,.08) !important;
    border-left: 4px solid #3DDC84 !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 24px -12px rgba(20,23,19,.16) !important;
    padding: 1.3rem 1.5rem !important;
}
.gspb-toc a, [class*="gspb_toc"] a { color: #141713 !important; text-decoration: none; }
.gspb-toc a:hover, [class*="gspb_toc"] a:hover { color: #1F9D55 !important; }

/* Le hero respire : léger scale sur le badge */
.labo-badge { transition: transform .2s ease; }
.labo-hero:hover .labo-badge { transform: scale(1.04); }

/* Progress bar de lecture (fins, vert) — injectée côté JS */
#v3-progress {
    position: fixed; top: 0; left: 0; height: 3px; z-index: 99999;
    background: linear-gradient(90deg, #3DDC84, #A8E04A);
    width: 0; transition: width .1s linear;
}
