/* ════════════════════════════════════════════════════════════════════════
   depaneo_ui — SKIN de présentation Dépa-neo (module #0012).
   S'empile PAR-DESSUS kraken_ui (socle). Les COULEURS viennent du thème front_hub
   « depa-neo » (var(--brand) = ambre, navbar ink) ; ici = FORMES & composants.
   ════════════════════════════════════════════════════════════════════════ */

/* Bandeau de réassurance — « 1 h · 100 € · sans engagement » (quick win Ripley E) */
.depaneo-promesse{
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  background:color-mix(in srgb, var(--brand) 12%, #fff);
  border:1px solid color-mix(in srgb, var(--brand) 30%, #fff);
  color:var(--clr-text); border-radius:var(--r-xl, 12px);
  padding:.7rem 1.1rem; font-size:.95rem; margin:0 0 1rem;
}
.depaneo-promesse .ico{ font-size:1.2rem; }
.depaneo-promesse b{ color:var(--brand); }

/* Clin d'œil Matrix : badge « un Neo près de chez vous » (code vert sur ink) */
.depaneo-neo{
  display:inline-flex; align-items:center; gap:.35rem;
  background:#0b1220; color:#7CFC9A;
  padding:.18rem .6rem; border-radius:9999px; font-size:.72rem; font-weight:700;
  font-family:ui-monospace, SFMono-Regular, monospace; letter-spacing:.02em; white-space:nowrap;
}

/* Bandeau 4 piliers de confiance — réutilisé sur new + index (factorisé depuis new.html.erb) */
.dn-trust{ display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; margin:0 0 .25rem; }
.dn-trust .pill{ display:flex; align-items:center; gap:.5rem; background:#fff;
  border:1px solid color-mix(in srgb, var(--brand,#d97706) 25%, #fff);
  border-radius:var(--r-xl,12px); padding:.55rem .7rem; box-shadow:var(--shadow-1,0 1px 3px rgba(15,23,42,.08)); }
.dn-trust .pill .ic{ font-size:1.15rem; line-height:1; }
.dn-trust .pill b{ display:block; font-size:.9rem; color:var(--clr-text,#0f172a); line-height:1.15; }
.dn-trust .pill small{ color:var(--clr-muted,#475569); font-size:.72rem; }
@media (max-width:575.98px){ .dn-trust{ grid-template-columns:repeat(2,1fr); } }

/* Carte « rien à payer maintenant » — point de décision paiement, réutilisée new/show */
.dn-pay{ background:color-mix(in srgb, #16a34a 7%, #fff);
  border:1px solid color-mix(in srgb, #16a34a 24%, #fff); border-radius:var(--r-xl,12px); padding:.85rem 1rem; }
.dn-pay .h{ font-weight:700; color:var(--clr-text,#0f172a); }
.dn-pay p{ margin:.3rem 0 0; color:var(--clr-muted,#475569); font-size:.86rem; line-height:1.45; }
.dn-pay--slim{ padding:.55rem .9rem; display:flex; align-items:center; gap:.5rem; }
.dn-pay--slim p{ margin:0; font-size:.82rem; }

/* Fil d'avancement de la demande (client) — « où en est mon ticket ? » */
.dn-steps{ display:flex; gap:.25rem; list-style:none; padding:0; margin:0 0 1rem; counter-reset:step; }
.dn-steps li{ flex:1 1 0; text-align:center; position:relative; font-size:.74rem; color:var(--clr-muted,#64748b); }
.dn-steps li::before{ counter-increment:step; content:counter(step); position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; width:1.7rem; height:1.7rem; margin:0 auto .35rem;
  border-radius:50%; background:#e2e8f0; color:#64748b; font-weight:700; font-size:.8rem; }
.dn-steps li::after{ content:""; position:absolute; top:.85rem; left:-50%; width:100%; height:2px; background:#e2e8f0; z-index:0; }
.dn-steps li:first-child::after{ display:none; }
.dn-steps li.done{ color:var(--clr-text,#0f172a); }
.dn-steps li.done::before{ content:"✓"; background:#16a34a; color:#fff; }
.dn-steps li.done::after{ background:#16a34a; }
.dn-steps li.active{ color:var(--clr-text,#0f172a); font-weight:700; }
.dn-steps li.active::before{ background:var(--brand,#d97706); color:#fff;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--brand,#d97706) 18%, #fff); }
@media (max-width:575.98px){ .dn-steps li{ font-size:.64rem; } .dn-steps li::before{ width:1.5rem; height:1.5rem; } }

/* ════════════════════════════════════════════════════════════════════════
   THÈME VITRINE Dépa-neo « Neo / Matrix » (extrait de site_vitrine.css, A3 07-10)
   Chargé APRÈS bootstrap.min + bootstrap_tokens + kraken_ui + site_vitrine (scaffold
   générique) → gagne sur la cascade. C'est le SKIN vitrine du client Dépa-neo :
   il ne vit plus dans la brique générique site_vitrine, mais ici (le skin Dépa-neo).
   INTENSITÉ : « Matrix à fond » mais PREMIUM/RASSURANT — le code-vert vit dans les
   sections sombres (rain + scanlines + glow), les sections claires gardent l'air et
   ne reçoivent que des SIGNAUX verts (prompt, mono, halo). Jamais de mur vert plein.
   Couleurs : AMBRE = action/prix/clic (var(--brand)) · VERT = la tech maîtrisée (signal).
   Tout l'ambre passe par var(--brand) → suit le thème par app (#0012). Zéro Node.
   Portée par `.vit-body` (corps de la vitrine) : n'affecte pas support_public /
   front_hub_depaneo (leur <body> n'est pas .vit-body).
   ════════════════════════════════════════════════════════════════════════ */
.vit-body{
  --ink:#0b1220; --ink-2:#15233b;
  --brand-2:#fbbf24;                         /* highlight ambre */
  --matrix:#7CFC9A; --matrix-soft:rgba(124,252,154,.35);
  --font-mono: ui-monospace, "JetBrains Mono", "SF Mono", "Cascadia Code", Menlo, monospace;
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion: reduce){ .vit-body{ scroll-behavior:auto; } }

/* ── Signatures non-Bootstrap (ce qui empêche la fadisation) ─────────────── */
.mono{ font-family:var(--font-mono); }
.txt-matrix{ color:var(--matrix); }

.eyebrow{
  font-family:var(--font-mono); color:var(--matrix); font-size:.82rem; font-weight:600;
  letter-spacing:.04em; text-transform:lowercase; margin:0 0 1rem; min-height:1.2em;
  text-shadow:0 0 14px rgba(124,252,154,.4);
}
/* curseur vert clignotant en BLOC (▍), pas un point */
.eyebrow .caret{ display:inline-block; width:.62em; height:1.05em; vertical-align:-.18em;
  margin-left:.12em; background:var(--matrix); border-radius:1px;
  box-shadow:0 0 10px rgba(124,252,154,.8); animation:blink 1.05s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ .eyebrow .caret{ animation:none; } }

/* highlight ambre du H1 (ex « En 1 h. ») */
.hl{ background:linear-gradient(120deg, var(--brand-2), var(--brand,#f59e0b)); color:var(--ink);
  padding:0 .2em; border-radius:6px; white-space:nowrap;
  -webkit-box-decoration-break:clone; box-decoration-break:clone; }
/* highlight « vert résolu » (la tech qui s'allume) — JAMAIS sur un CTA */
.hl-matrix{ color:var(--matrix); text-shadow:0 0 18px rgba(124,252,154,.45); }

/* ── Sections sombres signature (le socle visuel Matrix) ──────────────────── */
.section-ink{ position:relative; overflow:hidden; color:#fff;
  background:radial-gradient(1100px 560px at 80% -20%, #213163 0%, transparent 58%),
             radial-gradient(700px 400px at 0% 110%, rgba(124,252,154,.10) 0%, transparent 60%),
             linear-gradient(160deg, var(--ink), var(--ink-2)); }
.section-ink h1,.section-ink h2,.section-ink h3{ color:#fff; }
.lead-soft{ color:#c7d2e5; }
/* liseré vert tech en haut des sections sombres + scanlines TRÈS discrètes (texture CRT) */
.section-ink::before{ content:""; position:absolute; inset:0 0 auto 0; height:1px; z-index:2;
  background:linear-gradient(90deg, transparent, var(--matrix-soft) 18%, var(--matrix) 50%, var(--matrix-soft) 82%, transparent);
  opacity:.5; }
.section-ink::after{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:repeating-linear-gradient(0deg, transparent 0 3px, rgba(124,252,154,.022) 3px 4px); }
/* la carte recrutement ink-rounded n'a pas besoin du liseré pleine largeur */
.section-ink.rounded-4::before{ left:8%; right:8%; }

/* ── CTA : on REBRANDE le .btn-primary Bootstrap (ambre via token) ────────── */
/* texte ink sur ambre = contraste AA ; le bg/hover viennent de bootstrap_tokens (var(--brand)) */
.vit-body .btn-primary{ --bs-btn-color:var(--ink); --bs-btn-hover-color:var(--ink);
  --bs-btn-active-color:var(--ink); font-weight:800; letter-spacing:-.01em;
  box-shadow:0 10px 28px rgba(245,158,11,.32); transition:transform .14s, box-shadow .14s; }
.vit-body .btn-primary:hover{ transform:translateY(-1px); box-shadow:0 14px 34px rgba(245,158,11,.42); }
.btn-ghost-light{ color:#fff; border:1px solid rgba(255,255,255,.28); background:transparent;
  font-weight:700; transition:background .14s, color .14s; }
.btn-ghost-light:hover{ color:var(--ink); background:#fff; }

/* ── Eyebrow/preuve : ligne de réassurance mono ───────────────────────────── */
.proof-line{ font-family:var(--font-mono); color:var(--matrix); font-size:.85rem; font-weight:600;
  letter-spacing:.02em; }
.proof-line .star{ color:var(--brand-2); }

/* ── Badge « ◉ Neo en ligne » (statut live, vert pulsé) ───────────────────── */
.neo-badge{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--font-mono);
  font-size:.74rem; font-weight:700; color:var(--matrix); letter-spacing:.02em;
  background:rgba(124,252,154,.08); border:1px solid var(--matrix-soft); border-radius:999px;
  padding:.28rem .7rem; }
.neo-badge .pulse{ width:8px; height:8px; border-radius:50%; background:var(--matrix);
  box-shadow:0 0 0 0 rgba(124,252,154,.6); animation:pulse 1.8s ease-out infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 7px rgba(124,252,154,0); } 100%{ box-shadow:0 0 0 0 rgba(124,252,154,0); } }
@media (prefers-reduced-motion: reduce){ .neo-badge .pulse{ animation:none; } }

/* ── Mini-sceau prix « chip » (répété près des CTA) ───────────────────────── */
.seal-chip{ display:inline-flex; align-items:center; gap:.55rem; font-family:var(--font-mono);
  font-weight:700; font-size:.82rem; border-radius:999px; padding:.34rem .85rem;
  border:1px solid var(--matrix-soft); background:rgba(124,252,154,.06); color:#e5f6ec; }
.seal-chip b{ color:var(--brand,#f59e0b); }
.seal-chip .sep{ color:var(--matrix); opacity:.7; }

/* ── Le SCEAU prix (1 h · 100 € · 0 surprise) ─────────────────────────────── */
.seal{ display:inline-flex; align-items:stretch; border-radius:16px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.03);
  box-shadow:0 18px 50px rgba(0,0,0,.35), 0 0 50px rgba(124,252,154,.06); }
.seal > div{ padding:1rem 1.6rem; text-align:center; }
.seal > div + div{ border-left:1px solid rgba(255,255,255,.12); }
.seal b{ display:block; font-family:var(--font-mono); font-size:1.9rem; line-height:1;
  color:#fff; letter-spacing:-.02em; }
.seal small{ color:#94a3b8; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.seal .seal-price b{ color:var(--brand,#f59e0b); }

/* ── Encart pré-lancement « bientôt les avis » (honnête, remplace la fausse preuve) ── */
.neo-soon{ display:flex; align-items:center; gap:1rem; max-width:660px; margin-inline:auto;
  padding:1.1rem 1.4rem; border-radius:16px; background:rgba(124,252,154,.06);
  border:1px dashed var(--matrix-soft); }
.neo-soon-ico{ flex:none; font-size:1.5rem; color:var(--brand-2); }
.neo-soon b{ color:#fff; }

/* ── Numéros d'étape « tech » : mono vert sur ink (pas la pastille fade) ───── */
.step-num{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:14px; font-family:var(--font-mono); font-weight:700; font-size:1.1rem;
  color:var(--matrix); background:rgba(124,252,154,.07); border:1px solid var(--matrix-soft);
  box-shadow:0 0 22px rgba(124,252,154,.12) inset; }
.step-num.on-ink{ background:rgba(124,252,154,.08); }
/* prompt vert « > » devant un titre d'étape (signal tech, façon terminal) */
.step-prompt{ font-family:var(--font-mono); color:var(--matrix); font-weight:700; margin-right:.35rem; }

/* ── Cartes (bénéfices / Neo) : s'allument en vert au survol ───────────────── */
.card-neo{ border:1px solid #e8edf3; border-radius:16px; background:#fff;
  transition:border-color .15s, box-shadow .15s, transform .15s; }
.card-neo:hover{ border-color:var(--matrix); transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(124,252,154,.16); }
.card-neo .ico{ font-size:1.7rem; }

/* ── Carte « Neo » (preuve sociale technicien) ────────────────────────────── */
.neo-ava{ width:46px; height:46px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; font-weight:900; color:var(--ink);
  background:linear-gradient(135deg, var(--brand-2), var(--brand,#f59e0b));
  box-shadow:0 0 0 3px rgba(124,252,154,.18); }

/* ── Mockup produit (carte créneaux du hero) ──────────────────────────────── */
.neo-mock{ position:relative; width:100%; max-width:360px; margin-inline:auto; }
.neo-card{ position:relative; z-index:1; background:#fff; border-radius:18px;
  box-shadow:0 30px 70px rgba(0,0,0,.5); padding:1.2rem; color:#0f172a; transform:rotate(2deg); }
.neo-mock--tech .neo-card{ transform:rotate(-2deg); }
.nc-head{ display:flex; justify-content:space-between; align-items:center; font-weight:800;
  font-size:.9rem; margin-bottom:.9rem; }
.nc-price{ background:#fef3c7; color:#b45309; border-radius:9px; padding:.2rem .55rem;
  font-family:var(--font-mono); }
.nc-row{ display:flex; justify-content:space-between; align-items:center; border:1px solid #eef2f7;
  border-radius:10px; padding:.6rem .8rem; margin-bottom:.5rem; font-size:.88rem; color:#334155; }
.nc-tag{ background:#f1f5f9; color:#64748b; border-radius:7px; padding:.1rem .5rem; font-size:.72rem;
  font-weight:700; font-family:var(--font-mono); }
.nc-row.is-chosen{ border-color:#fcd34d; background:#fffbeb; }
.nc-ok{ background:var(--matrix); color:var(--ink); border-radius:7px; padding:.1rem .5rem;
  font-size:.72rem; font-weight:800; font-family:var(--font-mono); }
.nc-foot{ color:#94a3b8; font-size:.78rem; text-align:center; margin-top:.6rem; }
.nc-accept{ margin-top:.7rem; text-align:center; background:var(--ink); color:var(--matrix);
  border-radius:10px; padding:.6rem; font-weight:800; font-size:.85rem; font-family:var(--font-mono); }
/* statut live « ◉ Neo en ligne » dans l'entête du mock */
.nc-status{ display:inline-flex; align-items:center; gap:.3rem; font-family:var(--font-mono);
  font-size:.66rem; font-weight:700; color:#16a34a; }
.nc-status .dot{ width:6px; height:6px; border-radius:50%; background:#22c55e; box-shadow:0 0 7px #22c55e;
  animation:pulse 1.8s ease-out infinite; }
@media (prefers-reduced-motion: reduce){ .nc-status .dot{ animation:none; } }
.mock-toast{ position:absolute; left:-20px; bottom:-22px; z-index:2; display:flex; align-items:center; gap:.6rem;
  background:#fff; border-radius:14px; box-shadow:0 18px 44px rgba(0,0,0,.4); padding:.6rem .85rem; }
.mock-toast .t-txt b{ display:block; font-size:.85rem; color:#1e293b; line-height:1.2; }
.mock-toast .t-txt small{ color:#94a3b8; font-size:.74rem; }
.mock-toast .t-check{ width:26px; height:26px; border-radius:50%; background:var(--matrix);
  color:var(--ink); display:flex; align-items:center; justify-content:center; font-weight:900;
  font-size:.8rem; }
/* halo vert sous le mockup — plus présent, pulsé doucement */
.mock-halo{ position:absolute; inset:-26% -14% -30% -14%; z-index:0; border-radius:50%;
  background:radial-gradient(closest-side, rgba(124,252,154,.26), transparent 72%);
  animation:halo 4.5s ease-in-out infinite; }
@keyframes halo{ 0%,100%{ opacity:.7; transform:scale(.96); } 50%{ opacity:1; transform:scale(1.04); } }
@media (prefers-reduced-motion: reduce){ .mock-halo{ animation:none; opacity:.85; } }

/* ── Code-rain Matrix (zéro-Node, jQuery génère les colonnes) ──────────────── */
.code-rain{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 18%, #000 72%, transparent);
          mask-image:linear-gradient(180deg, transparent, #000 18%, #000 72%, transparent); }
.code-rain__col{ position:absolute; top:0; font-family:var(--font-mono); font-size:15px;
  line-height:1.22; color:var(--matrix); white-space:pre;
  text-shadow:0 0 6px rgba(124,252,154,.5); animation:codefall linear infinite; will-change:transform;
  /* tail dégradée par colonne : la « tête » (bas) est nette, la traîne (haut) s'efface */
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 60%);
          mask-image:linear-gradient(180deg, transparent, #000 60%); }
@keyframes codefall{ from{ transform:translateY(-70%); } to{ transform:translateY(130%); } }
@media (prefers-reduced-motion: reduce){ .code-rain__col{ animation:none !important; opacity:.05 !important; } }
/* le contenu des sections passe AU-DESSUS de la pluie + scanlines */
.section-ink > .container, .section-ink > .container-xl{ position:relative; z-index:1; }

/* ── Reveal au scroll (.reveal → .is-in) — progressive enhancement ─────────── */
/* Caché UNIQUEMENT si JS actif (classe .js posée tôt en <head>) : sans JS, tout reste visible. */
.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.js .reveal.is-in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){ .js .reveal{ opacity:1; transform:none; transition:none; } }

/* ── Navbar Dépa-neo (Bootstrap .navbar habillé ink) ──────────────────────── */
.vit-navbar{ background:rgba(11,18,32,.86); backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.07); }
.vit-navbar .navbar-brand{ font-weight:900; letter-spacing:-.02em; color:#fff; }
.vit-navbar .navbar-brand .dot{ color:var(--brand,#f59e0b); }
.vit-navbar .nav-link{ color:#c7d2e5; font-weight:600; font-size:.92rem; }
.vit-navbar .nav-link:hover{ color:#fff; }
.vit-navbar .navbar-toggler{ border-color:rgba(255,255,255,.2); }
.vit-navbar .navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.85)' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
/* Espace du client connecté (menu « Mon compte » de la landing) */
.vit-avatar{ width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--brand,#f59e0b), #b45309); color:#fff; border-radius:50%;
  font-weight:800; font-size:.72rem; letter-spacing:.02em; }
.vit-navbar .dropdown-menu{ background:#0f172a; border:1px solid rgba(255,255,255,.12); }
.vit-navbar .dropdown-item{ color:#c7d2e5; font-weight:600; font-size:.9rem; }
.vit-navbar .dropdown-item:hover{ color:#fff; background:rgba(255,255,255,.08); }
.vit-navbar .dropdown-divider{ border-color:rgba(255,255,255,.12); }

/* ── Liens & footer ───────────────────────────────────────────────────────── */
.link-matrix{ color:var(--matrix); font-family:var(--font-mono); text-decoration:none; }
.link-matrix:hover{ text-decoration:underline; }
.b2b-link a{ color:#6366f1; font-weight:700; text-decoration:none; }
.b2b-link a:hover{ text-decoration:underline; }

/* le formulaire contact (contact_form) hérite du token : submit ambre via .btn-primary mapping */
.vit-body .cf-submit, .vit-body .btn-grad{ background:var(--brand,#f59e0b) !important;
  background-image:none !important; color:var(--ink) !important; box-shadow:0 8px 22px rgba(245,158,11,.3); }

/* ── FAQ (accordion Bootstrap habillé Neo) ─────────────────────────────────── */
.faq-acc .accordion-button{ font-weight:700; color:#0f172a; }
.faq-acc .accordion-button:not(.collapsed){ color:var(--ink); background:#f0fbf3;
  box-shadow:inset 0 -1px 0 var(--matrix-soft, rgba(124,252,154,.45)); }
.faq-acc .accordion-button:focus{ border-color:var(--matrix-soft, rgba(124,252,154,.45));
  box-shadow:0 0 0 .2rem rgba(124,252,154,.25); }

/* ── Cartes « Deux parcours » (page Devenir Neo) ──────────────────────────── */
/* card-neo entière cliquable (Bootstrap .stretched-link) + tag mono en coin */
.path-card{ display:flex; flex-direction:column; align-items:flex-start; }
.path-card .ico{ font-size:2.4rem; }
.path-card .btn{ margin-top:auto; position:relative; z-index:1; }
.path-card:hover{ border-color:var(--brand,#f59e0b); }
.path-tag{ position:absolute; top:1rem; right:1rem; font-family:var(--font-mono); font-size:.68rem;
  font-weight:700; letter-spacing:.03em; color:var(--matrix); background:rgba(124,252,154,.10);
  border:1px solid var(--matrix-soft); border-radius:999px; padding:.14rem .55rem; }

/* ── Badge horaire des « scènes » dispo 24/7 (page Devenir Neo) ────────────── */
/* pastille verte = la tech maîtrisée, texte ink pour le contraste */
.scene-hour{ display:inline-block; font-family:var(--font-mono); font-weight:700; font-size:.78rem;
  letter-spacing:.02em; color:#0b1220; background:var(--matrix); border-radius:999px;
  padding:.18rem .7rem; box-shadow:0 0 14px rgba(124,252,154,.30); }
