/*!
 * THÈME 3 « TECH » (12/10/2026) — code propriétaire. S'ajoute au socle du Thème 1.
 * Inspiré de « HackerRank » (Dribbble) : tout en sombre, lueur émeraude, typographie fine (Inter 300),
 * un mot manuscrit (Caveat), cartes d'interface en verre fumé, bordures fines, aucune ombre dure.
 */
body.ns-theme3 { --x3-fond: var(--t5-nuit, #04070a); --x3-carte: #0d1412; --x3-carte2: #121b18; --x3-vert: var(--t4-jaune, #34e3a4);
    --t1-encre: #eaf6f0; --t1-texte: #b9c6c0; --t1-doux: #7d8a85; --t1-ligne: #1d2925; --t1-fond: #070b0a; --t1-creme: #0f1714; --t1-marque-50: #0f1d18; --t1-marque-100: #17302a;
    background: var(--x3-fond); color: var(--t1-texte); font-family: 'Inter', 'main-font-family', system-ui, sans-serif; }
body.ns-theme3 h1, body.ns-theme3 h2, body.ns-theme3 h3, body.ns-theme3 h4 { color: var(--t1-encre); font-weight: 400; letter-spacing: -.03em; }
body.ns-theme3 .t1-titre-section { font-weight: 300; font-size: clamp(34px, 4.4vw, 60px); }
body.ns-theme3 .t1-serif, body.ns-theme3 .t1 .t1-serif { background: none; font-family: 'Caveat', cursive; font-weight: 700; color: var(--x3-vert) !important; font-size: 1.12em; letter-spacing: 0; }
body.ns-theme3 .t1-section.gris, body.ns-theme3 .t1-section { background: transparent; }
/* Toutes les cartes : verre fumé, bordure fine */
body.ns-theme3 .t1-formation, body.ns-theme3 .t2-fin, body.ns-theme3 .t2-avi, body.ns-theme3 .t2-membre, body.ns-theme3 .t2-une, body.ns-theme3 .t2-faq details, body.ns-theme3 .t2-access,
body.ns-theme3 .t1-session, body.ns-theme3 .t2-mini-parcours > div, body.ns-theme3 .t2-qualiopi, body.ns-theme3 .t7-carte, body.ns-theme3 .t7-formation, body.ns-theme3 .t8-kpi, body.ns-theme3 .t2-tuile,
body.ns-theme3 .t1-carte-form, body.ns-theme3 .t1-formateur, body.ns-theme3 .t1-article, body.ns-theme3 .t7-prochaine, body.ns-theme3 .t7-demande, body.ns-theme3 .t8-modalite, body.ns-theme3 .t1-coord a, body.ns-theme3 .t1-coord > div, body.ns-theme3 .t7-vide, body.ns-theme3 .t8-note {
    background: linear-gradient(180deg, var(--x3-carte2), var(--x3-carte)) !important; border: 1px solid var(--t1-ligne) !important; box-shadow: none !important; color: var(--t1-texte); }
body.ns-theme3 .t1-formation:hover, body.ns-theme3 .t7-formation:hover, body.ns-theme3 .t2-membre:hover, body.ns-theme3 .t2-fin:hover { border-color: color-mix(in srgb, var(--x3-vert) 50%, transparent) !important; box-shadow: 0 0 0 1px color-mix(in srgb, var(--x3-vert) 30%, transparent), 0 30px 60px -30px color-mix(in srgb, var(--x3-vert) 40%, transparent) !important; transform: translateY(-4px); }
body.ns-theme3 .t2-tuile.marque, body.ns-theme3 .t2-tuile.jaune, body.ns-theme3 .t2-fin:nth-child(n) { background: linear-gradient(180deg, var(--x3-carte2), var(--x3-carte)) !important; }
body.ns-theme3 .t2-tuile h3, body.ns-theme3 .t2-fin .sigle, body.ns-theme3 .t2-tuile.jaune h3 { color: var(--t1-encre) !important; }
body.ns-theme3 .t2-tuile .ic, body.ns-theme3 .t2-fin .ic, body.ns-theme3 .t8-kpi .ic, body.ns-theme3 .t2-etape .ic { background: color-mix(in srgb, var(--x3-vert) 14%, transparent) !important; color: var(--x3-vert) !important; border: 1px solid color-mix(in srgb, var(--x3-vert) 30%, transparent) !important; }
/* Boutons : noirs à bord fin, ou vert lumineux */
body.ns-theme3 .t1-btn.plein, body.ns-theme3 .t4-btn, body.ns-theme3 .t7-btn { background: #000 !important; color: #fff !important; border: 1px solid #3a4a44 !important; box-shadow: none !important; border-radius: 10px; }
body.ns-theme3 .t4-btn.jaune, body.ns-theme3 .t7-btn.acces, body.ns-theme3 .t1-btn.t7-act-acces { background: var(--x3-vert) !important; color: #03140d !important; border-color: var(--x3-vert) !important; }
body.ns-theme3 .t1-btn.contour { background: transparent !important; color: var(--t1-encre) !important; border: 1px solid #3a4a44 !important; border-radius: 10px; }
body.ns-theme3 .t1-sur-titre { background: color-mix(in srgb, var(--x3-vert) 10%, transparent); border: 1px solid color-mix(in srgb, var(--x3-vert) 35%, transparent); color: var(--x3-vert); box-shadow: none; transform: none; font-weight: 600; }
body.ns-theme3 .t1-sur-titre::before { background: var(--x3-vert); box-shadow: 0 0 10px var(--x3-vert); }
body.ns-theme3 .t1-etiquette { background: rgba(0,0,0,.6); color: #fff; border: 1px solid #2d3a35; }
body.ns-theme3 .prix-image { background: #000 !important; color: #fff !important; } body.ns-theme3 .t1-formation .fleche-ronde { background: var(--x3-vert); color: #03140d; border: 0; }
body.ns-theme3 .t2-defile { background: transparent; color: var(--t1-encre); border-top: 1px solid var(--t1-ligne); border-bottom: 1px solid var(--t1-ligne); transform: none; }
body.ns-theme3 .t2-defile span { font-weight: 300; } body.ns-theme3 .t2-defile em { color: var(--x3-vert); }
body.ns-theme3 .t2-sombre, body.ns-theme3 .t6-finance, body.ns-theme3 .t6-portail { background: radial-gradient(60% 80% at 50% 0%, color-mix(in srgb, var(--x3-vert) 16%, transparent), transparent 70%), #050908; border: 1px solid var(--t1-ligne); }
body.ns-theme3 .t2-chiffres, body.ns-theme3 .t2-chiffres > div { border-color: var(--t1-ligne); }
body.ns-theme3 .t2-appel { border: 1px solid var(--t1-ligne); box-shadow: none; }
body.ns-theme3 .t2-appel::before { background: linear-gradient(120deg, rgba(4,7,10,.92), color-mix(in srgb, var(--x3-vert) 35%, #04070a)); }
body.ns-theme3 .t1-champ input, body.ns-theme3 .t1-champ textarea, body.ns-theme3 .t1-champ select, body.ns-theme3 .t1-puce, body.ns-theme3 .t7-option, body.ns-theme3 .t10-sommaire a, body.ns-theme3 .t6-recherche { background: #0a110f !important; color: var(--t1-encre) !important; border-color: #24322d !important; }
body.ns-theme3 .t1-puce.actif { background: var(--x3-vert) !important; color: #03140d !important; }
body.ns-theme3 .t1-pied { background: #020403; border-top: 1px solid var(--t1-ligne); }
/* Page sans grande image en tête (connexion, inscription…) : même correction que commun/sombre.css (20/10/2026). */
body.ns-theme3:not(.sur-heros) .t1-entete .t1-conteneur { background: rgba(8,13,11,.85) !important; border-color: #1d2925 !important; }
body.ns-theme3:not(.sur-heros) .t1-entete .t1-nav > a, body.ns-theme3:not(.sur-heros) .t1-entete .t1-deroulant > button { color: #dbe7e1; }
body.ns-theme3 .t1-entete .t1-actions .t1-btn.contour { color: #eaf6f0 !important; border-color: #3a4a44 !important; background: transparent !important; }
body.ns-theme3 .t1-entete.defile .t1-conteneur, body.ns-theme3 .t1-entete.ouvert .t1-conteneur { background: rgba(8,13,11,.85) !important; border-color: #1d2925 !important; }
body.ns-theme3 .t1-entete.defile .t1-nav > a, body.ns-theme3 .t1-entete.defile .t1-deroulant > button { color: var(--t1-texte); }
body.ns-theme3 .t1-entete .t1-actions .t1-btn.plein { background: var(--x3-vert) !important; color: #03140d !important; border-color: var(--x3-vert) !important; }
body.ns-theme3 .t1-deroulant .menu { background: #0d1412; border-color: #1d2925; } body.ns-theme3 .t1-deroulant .menu a { color: var(--t1-texte); }
body.ns-theme3 .t1-auth .droite { background: var(--x3-fond); }
body.ns-theme3 .t7-ensuite { background: #0a110f; border: 1px solid var(--t1-ligne); }
body.ns-theme3 .t7-direct { background: radial-gradient(circle at 85% 20%, color-mix(in srgb, var(--x3-vert) 30%, transparent), transparent 55%), #050908; border: 1px solid var(--t1-ligne); box-shadow: none; }
body.ns-theme3 .t7-prochaine .compte span { background: #050908; border: 1px solid var(--t1-ligne); }

/* ── Haut de l'accueil ── */
.x3-heros, .x3-page { position: relative; overflow: hidden; isolation: isolate; background: var(--x3-fond); }
.x3-heros { padding: 150px 0 0; }
.x3-grille-fond { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000, transparent 75%); }
.x3-projecteur { position: absolute; left: 50%; top: -20%; width: 120%; height: 120%; transform: translateX(-50%); z-index: -1; background: radial-gradient(40% 45% at 50% 30%, color-mix(in srgb, var(--x3-vert) 22%, transparent), transparent 70%); animation: x3-souffle 9s ease-in-out infinite; }
@keyframes x3-souffle { 50% { opacity: .65; transform: translateX(-50%) scale(1.06); } }
.x3-centre { text-align: center; position: relative; z-index: 2; }
.x3-puce { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #23332d; border-radius: 999px; padding: 6px 14px; font-size: 13px; color: var(--t1-texte); background: rgba(255,255,255,.02); }
.x3-titre { color: #eaf6f0 !important; font-weight: 300 !important; font-size: clamp(40px, 5.4vw, 80px); line-height: 1.05; letter-spacing: -.04em; margin: 22px auto 18px; max-width: 980px; }
.x3-titre.petit { font-size: clamp(38px, 4.8vw, 70px); }
.x3-script { font-family: 'Caveat', cursive; font-weight: 700; color: var(--x3-vert); font-size: 1.18em; letter-spacing: 0; text-shadow: 0 0 30px color-mix(in srgb, var(--x3-vert) 55%, transparent); }
.x3-empreinte { display: inline-grid; place-items: center; width: .95em; height: .95em; border-radius: 50%; border: 1px solid #2d3d37; vertical-align: -.12em; background: rgba(255,255,255,.03); }
.x3-empreinte svg { width: 70%; height: 70%; } .x3-empreinte circle { stroke: var(--x3-vert); animation: x3-tourne 14s linear infinite; transform-origin: 20px 20px; }
.x3-empreinte circle:nth-child(2n) { animation-direction: reverse; }
@keyframes x3-tourne { to { transform: rotate(360deg); } }
.x3-lead { color: #8e9c96; font-size: 16.5px; max-width: 560px; margin: 0 auto 28px; }
.x3-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.x3-btn { display: inline-flex; align-items: center; border-radius: 10px; padding: 13px 22px; font-weight: 600; font-size: 15px; background: #000; color: #fff !important; border: 1px solid #3a4a44; transition: border-color .3s, box-shadow .3s; }
.x3-btn:hover { border-color: var(--x3-vert); box-shadow: 0 0 24px -6px var(--x3-vert); }
.x3-btn.vert { background: var(--x3-vert); color: #03140d !important; border-color: var(--x3-vert); }
.x3-scene { position: relative; margin-top: 60px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 0; align-items: end; padding-bottom: 60px; }
.x3-ecran { position: relative; border-radius: 26px 26px 0 0; overflow: hidden; height: 440px; border: 1px solid #1d2925; border-bottom: 0; }
.x3-ecran img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35) brightness(.7) contrast(1.1); }
.x3-ecran .lueur { position: absolute; inset: 0; background: radial-gradient(50% 60% at 50% 20%, color-mix(in srgb, var(--x3-vert) 35%, transparent), transparent 70%), linear-gradient(180deg, transparent 40%, var(--x3-fond)); mix-blend-mode: screen; }
.x3-cartes { display: grid; gap: 18px; margin-left: -60px; position: relative; z-index: 2; padding-bottom: 20px; }
.x3-carte { background: rgba(14,22,20,.86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid #22312c; border-radius: 18px; padding: 14px; max-width: 360px; box-shadow: 0 40px 60px -30px rgba(0,0,0,.8); animation: t4-flotte 8s ease-in-out infinite; }
.x3-carte.decale { margin-left: 70px; animation-delay: -3s; }
.x3-carte .tete { display: flex; justify-content: space-between; color: #7d8a85; font-size: 12.5px; margin-bottom: 10px; } .x3-carte .tete i { font-style: normal; }
.x3-carte .ligne { background: #0a110f; border: 1px solid #1a2622; border-radius: 12px; padding: 10px 12px; margin-bottom: 8px; }
.x3-carte .ligne b { display: block; color: #e6f2ec; font-size: 13.5px; font-weight: 500; } .x3-carte small { color: #6f7d77; font-size: 12px; }
.x3-carte .meta { display: flex; gap: 8px; align-items: center; margin: 6px 0; flex-wrap: wrap; } .x3-carte .pastille { font-size: 11.5px; color: var(--x3-vert); border: 1px solid #22413a; border-radius: 6px; padding: 2px 6px; }
.x3-carte .qui { display: inline-flex; gap: 6px; align-items: center; font-size: 11.5px; color: #a7b4ae; } .x3-carte .qui .t1-av { width: 20px; height: 20px; font-size: 9px; border: 0; }
.x3-carte .etape { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 7px 4px; border-top: 1px solid #16211d; }
.x3-carte .etape .n { width: 26px; height: 26px; border-radius: 8px; background: #0a110f; border: 1px solid #22312c; display: grid; place-items: center; font-size: 12px; color: var(--x3-vert); }
.x3-carte .etape b { color: #e6f2ec; font-size: 13px; font-weight: 500; display: block; } .x3-carte .etape .ok { color: var(--x3-vert); font-weight: 700; }
.x3-badge { position: absolute; left: 20px; bottom: 84px; display: flex; gap: 10px; align-items: center; background: rgba(0,0,0,.7); border: 1px solid #22312c; border-radius: 12px; padding: 8px 12px; color: #e6f2ec; font-size: 13px; z-index: 3; }
.x3-badge img { height: 30px; background: #fff; border-radius: 6px; padding: 2px; }
.x3-chiffres { display: flex; justify-content: center; gap: 0; border: 1px solid var(--t1-ligne); border-radius: 18px; margin-top: -1px; overflow: hidden; }
.x3-chiffres > div { flex: 1; padding: 22px; text-align: center; border-left: 1px solid var(--t1-ligne); } .x3-chiffres > div:first-child { border-left: 0; }
.x3-chiffres b { display: block; font-size: 38px; font-weight: 300; color: #eaf6f0; letter-spacing: -.04em; } .x3-chiffres span { color: #7d8a85; font-size: 13px; }
.x3-page { padding: 150px 0 70px; border-bottom: 1px solid var(--t1-ligne); }
.x3-page .t5-3d { left: 0; right: 0; width: 100%; height: 100%; top: 0; opacity: 0; } .x3-page .t5-3d.actif { opacity: .45; }
.x3-page .t1-fil, .x3-page .t1-fil a { color: #6f7d77; }
.x3-puces { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; } .x3-puces span { display: inline-flex; gap: 8px; align-items: center; border: 1px solid #23332d; border-radius: 999px; padding: 7px 13px; font-size: 13.5px; color: var(--t1-texte); }
.x3-puces svg { width: 16px; height: 16px; color: var(--x3-vert); }
@media (prefers-reduced-motion: reduce) { .x3-projecteur, .x3-empreinte circle, .x3-carte { animation: none; } }
@media (max-width: 1024px) { .x3-scene { grid-template-columns: 1fr; } .x3-cartes { margin: -120px 16px 0; } .x3-carte.decale { margin-left: 0; } .x3-ecran { height: 320px; } }
@media (max-width: 640px) { .x3-heros { padding-top: 120px; } .x3-chiffres { flex-wrap: wrap; } .x3-chiffres > div { flex: 1 1 45%; border-top: 1px solid var(--t1-ligne); } .x3-badge { display: none; } }
/* En-tête : lisible sur le haut noir (le socle met du texte « encre », clair dans ce thème) */
body.ns-theme3 { --x3-fond: #04070a; }
body.ns-theme3.sur-heros .t1-entete .t1-nav > a.actif, body.ns-theme3 .t1-entete .t1-nav > a.actif { background: color-mix(in srgb, var(--x3-vert) 16%, transparent) !important; color: var(--x3-vert) !important; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--x3-vert) 40%, transparent); }
body.ns-theme3.sur-heros .t1-entete .t1-actions .t1-btn.plein, body.ns-theme3 .t1-entete .t1-actions .t1-btn.plein { background: var(--x3-vert) !important; color: #03140d !important; border-color: var(--x3-vert) !important; }
body.ns-theme3.sur-heros .t1-entete .t1-actions .t1-btn.contour { color: #eaf6f0 !important; border-color: #3a4a44 !important; background: transparent !important; }
body.ns-theme3 .t1-entete.ouvert .t1-nav > a, body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-nav > a { color: var(--t1-texte) !important; }
/* Lisibilité (12/10/2026) : boutons blancs et carte « rappel » gardent un texte foncé. */
body.ns-theme3 .t1-btn.blanc, body.ns-theme3 .t2-appel .t1-btn.blanc { background: #fff !important; color: #0b0b0c !important; }
body.ns-theme3 .t2-contact-carte { background: #0b0f0e !important; border: 1px solid var(--t1-ligne); } body.ns-theme3 .t2-contact-carte b { color: #fff !important; }
body.ns-theme3 .t8-telecharger { background: transparent !important; color: var(--t1-encre) !important; border-color: var(--t1-ligne) !important; } body.ns-theme3 .t8-telecharger:hover { background: var(--t4-jaune) !important; color: #0b0b0c !important; }
/* Menu téléphone ouvert (12/10/2026) : panneau sombre, textes clairs, lien actif et boutons lisibles. */
@media (max-width: 1024px) {
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-conteneur, body.ns-theme3 .t1-entete.ouvert .t1-conteneur { background: #0b0f0e !important; border-color: #24322d !important; }
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-nav > a, body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-deroulant > button, body.ns-theme3 .t1-entete.ouvert .t1-deroulant .menu a { color: #e6efea !important; background: none !important; }
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-nav > a.actif { background: var(--t4-jaune) !important; color: #04070a !important; }
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-actions .t1-btn.contour { background: transparent !important; color: #e6efea !important; border-color: #3a4a44 !important; }
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-actions .t1-btn.plein { background: var(--t4-jaune) !important; color: #04070a !important; border-color: var(--t4-jaune) !important; }
    body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-burger { background: #1a2420 !important; border-color: #2d3d37 !important; } body.ns-theme3.t1-menu-ouvert .t1-entete.ouvert .t1-burger span { background: #e6efea !important; }
    body.ns-theme3 .t1-entete.ouvert .t1-logo img.l-clair { display: none !important; } body.ns-theme3 .t1-entete.ouvert .t1-logo img.l-sombre { display: block !important; }
}
