/* /neoo-partners dans le style de la home V29 « lumière » et de /solutions/crm-ventes (2026-10-10).
   Se charge après neoo-home-v29.css (jetons, en-tête, pied de page, titres, entrées) et neoo-solutions-v29.css
   (sections communes v29s-) ; n’ajoute que ce qui est propre à la page (préfixe v29np-).
   Généré par scripts/generate-neoo-partner-network-v29.mjs ; plan : docs/partner-network-v29/DESIGN.md.
   La hero garde l’animation d’origine : la vidéo de fond pilotée par neoo-ecosystem.js.
   Mouvement du contenu : états d’entrée masqués seulement sous `.v29-js .<section>:not(.is-in)` (sans JavaScript tout est
   visible) ; boucles et démonstration seulement sous html.v29np-motion (posée par neoo-partner-network-v29.js hors
   prefers-reduced-motion), en pause hors écran (.is-live) et toujours en nombre fini. */

.v29-partner-network [hidden] { display: none !important; }
.v29np-lead { max-width: 60ch; }
.v29np-h2 { max-width: 17em; }

/* ---------- Hero : vidéo d’origine sous un voile crème ---------- */
.v29np-hero { background: #efeae2; }
.v29np-hero__media video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.v29np-hero .v29-hero__wash { background: linear-gradient(96deg, rgba(251, 247, 241, .97) 0%, rgba(251, 247, 241, .9) 33%, rgba(251, 247, 241, .5) 49%, rgba(251, 247, 241, 0) 63%), linear-gradient(180deg, rgba(251, 247, 241, .6) 0, rgba(251, 247, 241, 0) 20%), linear-gradient(0deg, rgba(251, 247, 241, .8) 0, rgba(251, 247, 241, 0) 18%); }
@media (min-width: 861px) {
  .v29np-hero > .v29-plate { left: 22%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
  .v29np-hero__media video { object-position: 40% 50%; }
}
.v29np-hero__badge { margin: 0 0 30px; }
.v29np-hero__title { max-width: 12.5em; font-size: clamp(42px, 4.4vw, 72px); }
.v29np-accent > span { color: var(--v29-accent); }
.v29np-hero__lead { max-width: 40ch; font-size: clamp(17px, 1.3vw, 20px); }
.v29np-hero__benefits { display: grid; grid-template-columns: repeat(2, max-content); gap: 12px 34px; margin: 30px 0 0; padding: 0; list-style: none; color: var(--v29-muted); font-size: 16px; }
.v29np-hero__benefits li { display: inline-flex; align-items: center; gap: 10px; }
.v29np-hero__benefits .v29-i { flex: none; width: 24px; height: 24px; padding: 5px; border-radius: 50%; background: rgba(34, 165, 101, .14); color: #17804a; stroke-width: 2.4; }
.v29np-hero__foot .v29-shell { display: flex; align-items: center; justify-content: space-between; gap: 24px; }

/* Statut (« Réseau en préparation », « Marketplace en préparation ») : pastille, jamais un bouton. */
.v29np-status { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 14px; border-radius: 999px; background: rgba(255, 253, 249, .78); box-shadow: inset 0 0 0 1px rgba(75, 46, 242, .28); color: var(--v29-accent); font-size: 13px; font-weight: 500; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.v29np-status i { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #e0a526; }
.v29np-status i::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; box-shadow: 0 0 0 1.5px rgba(224, 165, 38, .55); opacity: 0; }
html.v29np-motion .v29np-status i::after { animation: v29np-pulse 2.4s var(--v29-ease) 5; }
@keyframes v29np-pulse { 0% { opacity: 1; transform: scale(.6); } 70%, 100% { opacity: 0; transform: scale(1.6); } }

/* Lecture / pause de la vidéo (révélé par neoo-ecosystem.js, masqué sans JavaScript). */
.v29np-toggle { display: grid; flex: none; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 253, 249, .82); box-shadow: 0 0 0 1px var(--v29-line), 0 10px 26px -14px rgba(30, 25, 40, .45); color: var(--v29-ink); cursor: pointer; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: background-color .25s, color .25s, transform .25s var(--v29-ease); }
.v29np-toggle:hover { background: var(--v29-accent); color: #fff; transform: translateY(-1px); }
.v29np-toggle .v29-i { width: 18px; height: 18px; }
.v29np-toggle .v29-i--fill:last-of-type, .v29np-toggle.is-playing .v29-i--fill:first-of-type { display: none; }
.v29np-toggle.is-playing .v29-i--fill:last-of-type { display: block; }

/* ---------- 01 Sources de revenus : un client, une colonne vertébrale, cinq branches ---------- */
.v29np-map { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); align-items: center; margin-top: 64px; }
.v29np-hub { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 24px 0 0; text-align: center; }
.v29np-hub::after { content: ""; position: absolute; top: 60px; left: calc(50% + 72px); right: -2px; height: 2px; background: var(--v29-accent); opacity: .45; transform-origin: 0 50%; transition: transform .7s var(--v29-ease) .5s; }
.v29np-hub__orb { position: relative; display: grid; place-items: center; width: 120px; height: 120px; border-radius: 50%; background: var(--v29-accent); color: #fff; font-size: 42px; box-shadow: 0 24px 60px -24px rgba(75, 46, 242, .65); }
.v29np-hub__orb i { position: absolute; inset: -14px; border: 1.5px solid rgba(75, 46, 242, .28); border-radius: 50%; }
.v29np-hub__orb i + i { inset: -30px; border-color: rgba(75, 46, 242, .14); }
.v29np-hub b { margin-top: 42px; font-size: 22px; font-weight: 400; letter-spacing: -.02em; line-height: 1.2; }
.v29np-hub small { max-width: 16ch; margin-top: 6px; color: var(--v29-muted); font-size: 15px; line-height: 1.45; }

.v29np-rail { position: relative; padding-left: 56px; }
.v29np-spine { position: absolute; left: 0; top: 41px; bottom: 60px; width: 2px; background: var(--v29-accent); opacity: .45; transform-origin: 50% 0; transition: transform 1.1s var(--v29-ease) .6s; }
.v29np-spine i { position: absolute; left: -5px; top: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--v29-accent); box-shadow: 0 0 0 4px rgba(75, 46, 242, .18), 0 0 18px rgba(75, 46, 242, .7); opacity: 0; }
.v29np-streams__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.v29np-stream { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; padding: 24px 28px 26px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); transition: box-shadow .35s var(--v29-ease), opacity .7s var(--v29-ease) calc(var(--i) * .14s + .55s), transform .8s var(--v29-ease) calc(var(--i) * .14s + .55s); }
.v29np-stream:hover { box-shadow: 0 0 0 1px rgba(75, 46, 242, .35), 0 26px 60px -34px rgba(60, 40, 10, .45); }
.v29np-stream::before { content: ""; position: absolute; left: -56px; top: 41px; width: 56px; height: 2px; background: var(--v29-accent); opacity: .45; transform-origin: 0 50%; transition: transform .6s var(--v29-ease) calc(var(--i) * .14s + .8s); }
.v29np-stream::after { content: ""; position: absolute; left: -62px; top: 36px; width: 10px; height: 10px; border: 2px solid var(--v29-accent); border-radius: 50%; background: var(--v29-paper); transition: scale .5s var(--v29-ease) calc(var(--i) * .14s + .8s); }
.v29np-stream__n { padding-top: 5px; color: var(--v29-accent); font-size: 15px; font-weight: 500; letter-spacing: .12em; }
.v29np-stream h3 { margin: 0; font-size: clamp(21px, 1.6vw, 25px); font-weight: 400; letter-spacing: -.02em; line-height: 1.25; }
.v29np-stream dl { grid-column: 2; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px 22px; margin: 16px 0 0; }
.v29np-stream dt { color: var(--v29-soft); font-size: 11.5px; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.v29np-stream dd { margin: 5px 0 0; font-size: 15px; line-height: 1.45; }
.v29-js .v29np-streams:not(.is-in) .v29np-spine { transform: scaleY(0); }
.v29-js .v29np-streams:not(.is-in) .v29np-hub::after, .v29-js .v29np-streams:not(.is-in) .v29np-stream::before { transform: scaleX(0); }
.v29-js .v29np-streams:not(.is-in) .v29np-stream::after { scale: 0; }
.v29-js .v29np-streams:not(.is-in) .v29np-stream { opacity: 0; transform: translateX(18px); }
/* Une impulsion descend la colonne et allume chaque source au passage ; les anneaux du client respirent. */
html.v29np-motion .v29np-map .v29np-spine i { animation: v29np-spine 3.6s linear 1.6s 4 both paused; }
html.v29np-motion .v29np-map .v29np-stream::after { animation: v29np-node 3.6s linear calc(1.6s + var(--i) * .9s - .25s) 4 paused; }
html.v29np-motion .v29np-map .v29np-hub__orb i { animation: v29np-ripple 3.6s var(--v29-ease) 4 paused; }
html.v29np-motion .v29np-map .v29np-hub__orb i + i { animation-delay: .5s; }
html.v29np-motion .v29np-streams.is-in .v29np-map.is-live .v29np-spine i, html.v29np-motion .v29np-streams.is-in .v29np-map.is-live .v29np-stream::after, html.v29np-motion .v29np-streams.is-in .v29np-map.is-live .v29np-hub__orb i { animation-play-state: running; }
@keyframes v29np-spine { 0% { top: 0; opacity: 0; } 6% { opacity: 1; } 94% { opacity: 1; } 100% { top: calc(100% - 6px); opacity: 0; } }
@keyframes v29np-node { 0%, 100% { scale: 1; background: var(--v29-paper); } 6% { scale: 1.5; background: var(--v29-accent); } 20% { scale: 1; background: var(--v29-paper); } }
@keyframes v29np-ripple { 0% { opacity: 1; scale: 1; } 60%, 100% { opacity: 0; scale: 1.35; } }

/* ---------- 02 Partner of Record : orbite et principes publics ---------- */
.v29np-model { position: relative; overflow: hidden; isolation: isolate; padding: clamp(110px, 14vh, 160px) 0 clamp(90px, 12vh, 130px); }
.v29np-model > .v29-plate--soft { transform: translate3d(0, calc(var(--p, 0) * 3%), 0) scale(1.05); }
.v29np-model > .v29-plate--soft img { object-position: 50% 60%; }
.v29np-model::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--v29-cream) 0, rgba(251, 247, 241, .55) 24%, rgba(251, 247, 241, .55) 76%, var(--v29-cream) 100%); pointer-events: none; }
.v29np-model__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(40px, 6vw, 100px); align-items: start; }
.v29np-model__intro { position: sticky; top: 96px; }
.v29np-orbit { max-width: 470px; margin: 34px 0 0; }
.v29np-orbit__stage { position: relative; aspect-ratio: 1; }
.v29np-orbit__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.v29np-orbit__track { fill: none; stroke: rgba(21, 23, 46, .16); stroke-width: 1.5; stroke-dasharray: 3 7; }
.v29np-orbit__ring { fill: rgba(75, 46, 242, .06); stroke: var(--v29-accent); stroke-width: 2.5; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--v29-ease) .45s; }
.v29np-orbit__spoke { fill: none; stroke: var(--v29-accent); stroke-width: 1.5; opacity: .32; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset .9s var(--v29-ease) calc(var(--i) * .14s + 1s); }
.v29np-orbit__comet, .v29np-net__comet { fill: none; stroke: var(--v29-accent); stroke-width: 4; stroke-linecap: round; stroke-dasharray: .07 1.2; stroke-dashoffset: .07; opacity: 0; filter: drop-shadow(0 0 5px rgba(75, 46, 242, .6)); }
.v29np-orbit__client { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; align-content: center; gap: 4px; width: 27%; aspect-ratio: 1; border-radius: 50%; background: var(--v29-ink); color: #fff; translate: -50% -50%; box-shadow: 0 24px 50px -24px rgba(21, 23, 46, .7); transition: opacity .6s var(--v29-ease) .3s, scale .7s var(--v29-ease) .3s; }
.v29np-orbit__client > span { font-size: 26px; line-height: 1; }
.v29np-orbit__client b { font-size: 15px; font-weight: 500; letter-spacing: .04em; }
.v29np-orbit__partner, .v29np-orbit__sat { position: absolute; z-index: 1; padding: 6px 12px; border-radius: 999px; font-size: 13px; line-height: 1.25; text-align: center; white-space: nowrap; translate: -50% -50%; }
.v29np-orbit__partner { background: var(--v29-accent); color: #fff; font-weight: 500; letter-spacing: .02em; box-shadow: 0 12px 26px -14px rgba(75, 46, 242, .8); transition: opacity .6s var(--v29-ease) 1.2s; }
.v29np-orbit__sat { background: var(--v29-paper); color: var(--v29-ink); box-shadow: 0 0 0 1px rgba(75, 46, 242, .22), 0 10px 24px -16px rgba(30, 25, 40, .5); transition: opacity .5s var(--v29-ease) calc(var(--i) * .14s + .7s), scale .6s cubic-bezier(.3, 1.5, .5, 1) calc(var(--i) * .14s + .7s); }
.v29np-orbit figcaption { margin-top: 14px; color: var(--v29-soft); font-size: 14px; line-height: 1.5; letter-spacing: .02em; }
.v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__ring, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__spoke { stroke-dashoffset: 1; }
.v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__client { opacity: 0; scale: .7; }
.v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__partner { opacity: 0; }
.v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__sat { opacity: 0; scale: .6; }
/* Chaque usage revient vers le compte client, en passant par l’anneau du partenaire référent. */
html.v29np-motion .v29np-orbit .v29np-orbit__comet { animation: v29np-travel 4.5s linear calc(2s + var(--i) * .9s) 4 paused; }
html.v29np-motion .v29np-orbit .v29np-orbit__sat { animation: v29np-ping 4.5s var(--v29-ease) calc(2s + var(--i) * .9s) 4 paused; }
html.v29np-motion .v29np-orbit .v29np-orbit__ring { animation: v29np-breathe 4.5s var(--v29-ease) 2.4s 4 paused; }
html.v29np-motion .v29np-model__intro.is-in .v29np-orbit.is-live .v29np-orbit__comet, html.v29np-motion .v29np-model__intro.is-in .v29np-orbit.is-live .v29np-orbit__sat, html.v29np-motion .v29np-model__intro.is-in .v29np-orbit.is-live .v29np-orbit__ring { animation-play-state: running; }
@keyframes v29np-travel { 0% { stroke-dashoffset: .07; opacity: 0; } 4% { opacity: 1; } 34% { stroke-dashoffset: -1; opacity: 1; } 36%, 100% { stroke-dashoffset: -1; opacity: 0; } }
@keyframes v29np-ping { 0%, 14%, 100% { box-shadow: 0 0 0 1px rgba(75, 46, 242, .22), 0 10px 24px -16px rgba(30, 25, 40, .5); } 4% { box-shadow: 0 0 0 2px var(--v29-accent), 0 0 0 7px rgba(75, 46, 242, .14); } }
@keyframes v29np-breathe { 0%, 100% { fill: rgba(75, 46, 242, .06); } 30% { fill: rgba(75, 46, 242, .14); } }

.v29np-principles { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.v29np-principle { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 28px 30px 28px 26px; border-radius: 12px; background: var(--v29-glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 30px 70px -40px rgba(60, 40, 10, .5), 0 0 0 1px rgba(21, 23, 46, .05); transition: opacity .8s var(--v29-ease) calc(var(--i) * .1s + .15s), transform .9s var(--v29-ease) calc(var(--i) * .1s + .15s); }
.v29np-principle:first-child { box-shadow: 0 0 0 1.5px var(--v29-accent), 0 30px 70px -40px rgba(75, 46, 242, .45); }
.v29np-principle__num { padding-top: 4px; color: var(--v29-accent); font-size: 13px; font-weight: 700; letter-spacing: .16em; }
.v29np-principle h3 { margin: 0; font-size: clamp(21px, 1.6vw, 25px); font-weight: 400; letter-spacing: -.025em; line-height: 1.2; }
.v29np-principle p { margin: 12px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.6; }
.v29-js .v29np-principles:not(.is-in) .v29np-principle { opacity: 0; transform: translateY(22px); }

/* ---------- 03 Rôles ---------- */
.v29np-roles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 56px 0 0; padding: 0; list-style: none; }
.v29np-role { display: flex; flex-direction: column; align-items: flex-start; padding: 30px 28px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); transition: box-shadow .35s var(--v29-ease), translate .35s var(--v29-ease), opacity .9s var(--v29-ease) var(--d, 0s), transform 1s var(--v29-ease) var(--d, 0s); }
.v29np-role:hover { translate: 0 -4px; box-shadow: 0 0 0 1px rgba(75, 46, 242, .35), 0 26px 60px -34px rgba(60, 40, 10, .45); }
.v29np-role--featured { grid-column: span 2; box-shadow: 0 0 0 1.5px var(--v29-accent), 0 30px 70px -40px rgba(75, 46, 242, .45); }
.v29np-role--featured .v29-micro { color: var(--v29-accent); font-weight: 500; }
.v29np-role .v29-micro { font-size: 12px; }
.v29np-role h3 { margin: 6px 0 0; font-size: clamp(23px, 1.8vw, 28px); font-weight: 400; letter-spacing: -.025em; line-height: 1.15; }
.v29np-role__promise { margin: 12px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.55; }
.v29np-role--featured .v29np-role__promise { max-width: 62ch; color: var(--v29-ink); font-size: 17px; }
.v29np-role__label { margin: auto 0 0; padding-top: 22px; color: var(--v29-soft); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.v29np-role__scopes { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.v29np-role__scopes li { padding: 4px 10px; border-radius: 999px; background: rgba(75, 46, 242, .07); color: #3b3f5c; font-size: 13px; line-height: 1.35; }
.v29np-roles__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--v29-line); }
.v29np-roles__foot .v29s-actions { margin-top: 0; }
.v29np-bridge { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; max-width: 58ch; margin: 0; color: var(--v29-muted); font-size: 16px; line-height: 1.5; }

/* Pictogrammes (rôles, responsabilités) : tracés qui se dessinent à l’entrée de leur section. */
.v29np-glyph { display: block; width: 60px; height: 60px; margin-bottom: 20px; }
.v29np-glyph svg { width: 100%; height: 100%; overflow: visible; fill: none; stroke: var(--v29-accent); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.v29np-glyph .g-node { fill: var(--v29-paper); }
.v29np-glyph .g-block { fill: rgba(75, 46, 242, .1); }
.v29np-glyph .g-sat { fill: var(--v29-accent); stroke: none; }
.v29np-glyph svg * { transform-box: fill-box; transform-origin: center; transition: stroke-dashoffset 1s var(--v29-ease) calc(var(--i, 0) * .14s + .5s), opacity .5s var(--v29-ease) calc(var(--i, 0) * .14s + .5s), translate .6s cubic-bezier(.3, 1.4, .5, 1) calc(var(--i, 0) * .14s + .5s), scale .5s var(--v29-ease) calc(var(--i, 0) * .14s + .5s); }
.v29np-glyph .g-draw { stroke-dasharray: 130; stroke-dashoffset: 0; }
.v29np-glyph .g-block--2, .v29np-glyph .g-node--2 { transition-delay: calc(var(--i, 0) * .14s + .7s); }
.v29np-glyph .g-block--3, .v29np-glyph .g-draw--2 { transition-delay: calc(var(--i, 0) * .14s + .9s); }
.v29-js .v29np-roles:not(.is-in) .v29np-glyph .g-draw, .v29-js .v29np-trust:not(.is-in) .v29np-glyph .g-draw { stroke-dashoffset: 130; }
.v29-js .v29np-roles:not(.is-in) .v29np-glyph .g-block, .v29-js .v29np-trust:not(.is-in) .v29np-glyph .g-block { opacity: 0; translate: 0 -16px; }
.v29-js .v29np-roles:not(.is-in) .v29np-glyph .g-node, .v29-js .v29np-roles:not(.is-in) .v29np-glyph .g-sat, .v29-js .v29np-trust:not(.is-in) .v29np-glyph .g-node { opacity: 0; scale: .3; }
html.v29np-motion .v29np-role:hover .v29np-glyph svg { animation: v29np-float .8s ease-in-out 2 alternate; }
@keyframes v29np-float { to { translate: 0 -4px; } }

/* ---------- 04 Parcours : dossier client auto-joué ---------- */
.v29np-journey { position: relative; overflow: hidden; isolation: isolate; padding: clamp(110px, 14vh, 160px) 0 clamp(90px, 12vh, 130px); }
.v29np-journey > .v29-plate--soft { transform: translate3d(0, calc(var(--p, 0) * 3%), 0) scale(1.06); }
.v29np-journey::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--v29-cream) 0, rgba(251, 247, 241, .52) 22%, rgba(251, 247, 241, .52) 78%, var(--v29-cream) 100%); pointer-events: none; }
.v29np-demo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 4.5vw, 80px); align-items: center; margin-top: 56px; }
.v29np-demo__steps { margin: 0; padding: 0; list-style: none; }
.v29np-demo__step { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 18px; padding: 16px 0; border-top: 1px solid var(--v29-line); transition: opacity .45s var(--v29-ease); }
.v29np-demo__step:last-child { border-bottom: 1px solid var(--v29-line); }
.v29np-demo__step::after { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--v29-accent); transform: scaleX(0); transform-origin: 0 50%; }
.v29np-demo__step p { margin: 0; font-size: 17px; line-height: 1.45; }
.v29np-demo__dot { display: grid; place-items: center; width: 40px; height: 40px; border: 1.5px solid var(--v29-accent); border-radius: 50%; background: var(--v29-paper); color: var(--v29-accent); font-size: 16px; font-weight: 500; transition: background-color .35s, color .35s, border-color .35s; }
.v29np-demo__step:last-child .v29np-demo__dot { border-color: var(--v29-green); color: var(--v29-green); font-size: 20px; }
.v29np-demo.is-js .v29np-demo__step:not(.is-active):not(.is-done) { opacity: .42; }
.v29np-demo__step.is-active .v29np-demo__dot { background: var(--v29-accent); color: #fff; }
.v29np-demo__step.is-active:last-child .v29np-demo__dot { border-color: var(--v29-green); background: var(--v29-green); color: #fff; }
.v29np-demo__step.is-done .v29np-demo__dot { background: rgba(75, 46, 242, .1); }
html.v29np-motion .v29np-demo__step.is-active::after { animation: v29np-fill var(--dur, 2s) linear forwards; }
.v29np-demo__step.is-done::after { transform: none; opacity: .35; }
@keyframes v29np-fill { to { transform: none; } }
.v29np-demo.is-paused *, .v29np-demo.is-paused *::before, .v29np-demo.is-paused *::after { animation-play-state: paused !important; }

.v29np-file { overflow: hidden; border-radius: 12px; background: #fff; box-shadow: var(--v29-shadow), 0 0 0 1px rgba(21, 23, 46, .06); }
.v29np-file__bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; border-bottom: 1px solid rgba(21, 23, 46, .06); background: #f4efe7; }
.v29np-file__bar > span { width: 9px; height: 9px; border-radius: 50%; background: #d6cfc4; }
.v29np-file__bar > span:first-child { background: var(--v29-accent); opacity: .75; }
.v29np-file__bar b { margin-left: 10px; color: var(--v29-muted); font-size: 13px; font-weight: 500; letter-spacing: .04em; }
.v29np-file__bar em { margin-left: auto; padding: 3px 10px; border-radius: 999px; background: rgba(21, 23, 46, .06); color: var(--v29-muted); font-size: 12px; font-style: normal; letter-spacing: .02em; }
.v29np-file__body { padding: 26px clamp(22px, 3vw, 40px) 30px; background: radial-gradient(circle at 1px 1px, rgba(21, 23, 46, .07) 1px, transparent 0) 0 0 / 22px 22px, #fbf8f3; }
.v29np-file__track { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.v29np-file__track li { height: 5px; border-radius: 5px; background: rgba(75, 46, 242, .12); transition: background-color .5s var(--v29-ease); }
.v29np-demo[data-step="1"] .v29np-file__track li:nth-child(-n+1), .v29np-demo[data-step="2"] .v29np-file__track li:nth-child(-n+2), .v29np-demo[data-step="3"] .v29np-file__track li:nth-child(-n+3), .v29np-demo[data-step="4"] .v29np-file__track li:nth-child(-n+4), .v29np-demo[data-step="5"] .v29np-file__track li:nth-child(-n+5), .v29np-demo[data-step="6"] .v29np-file__track li { background: var(--v29-accent); }
.v29np-demo[data-step="6"] .v29np-file__track li { background: var(--v29-green); }
.v29np-file__stage { position: relative; min-height: 300px; margin-top: 22px; }
.v29np-scr { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 26px; visibility: hidden; opacity: 0; transform: translateY(14px) scale(.98); transition: opacity .25s ease-out, transform .5s var(--v29-ease), visibility 0s linear .25s; }
.v29np-demo[data-step="1"] .v29np-scr--1, .v29np-demo[data-step="2"] .v29np-scr--2, .v29np-demo[data-step="3"] .v29np-scr--3, .v29np-demo[data-step="4"] .v29np-scr--4, .v29np-demo[data-step="5"] .v29np-scr--5, .v29np-demo[data-step="6"] .v29np-scr--6 { visibility: visible; opacity: 1; transform: none; transition: opacity .5s var(--v29-ease) .15s, transform .7s var(--v29-ease) .15s, visibility 0s; }
.v29np-scr__label { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: clamp(22px, 2vw, 28px); font-weight: 300; letter-spacing: -.03em; line-height: 1.2; text-align: center; }
.v29np-scr__label span { color: var(--v29-accent); font-size: 13px; font-weight: 700; letter-spacing: .16em; }
.v29np-scr--6 .v29np-scr__label span { color: #17804a; }

/* Visuels des six étapes : sans JavaScript, leur état final ; avec mouvement, chacun se construit quand il s’affiche. */
.v29np-note { position: relative; display: grid; gap: 12px; width: min(300px, 100%); padding: 26px 26px 26px 64px; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--v29-line), 0 18px 40px -28px rgba(30, 25, 40, .5); }
.v29np-note__quote { position: absolute; left: 20px; top: 8px; color: var(--v29-accent); font-size: 52px; line-height: 1; }
.v29np-note i, .v29np-doc i { display: block; width: var(--w); height: 10px; border-radius: 6px; background: rgba(21, 23, 46, .12); }
.v29np-cover { display: grid; gap: 10px; width: min(320px, 100%); margin: 0; padding: 0; list-style: none; }
.v29np-cover li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--v29-line); }
.v29np-cover b { width: var(--w); height: 10px; border-radius: 6px; background: rgba(21, 23, 46, .12); }
.v29np-cover .v29-i { width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: rgba(34, 165, 101, .16); color: #17804a; stroke-width: 2.6; }
.v29np-blocks { display: grid; grid-template-columns: repeat(2, 64px); grid-template-rows: repeat(2, 46px); gap: 8px; }
.v29np-blocks span { border-radius: 8px; background: rgba(75, 46, 242, .12); box-shadow: inset 0 0 0 2px var(--v29-accent); }
.v29np-blocks span:nth-child(1) { grid-column: 1 / span 2; justify-self: center; width: 64px; }
.v29np-blocks span:nth-child(3) { background: var(--v29-accent); }
.v29np-doc { position: relative; display: grid; gap: 14px; width: min(280px, 100%); padding: 28px 26px 50px; border-radius: 10px; background: #fff; box-shadow: 0 0 0 1px var(--v29-line), 0 20px 40px -30px rgba(30, 25, 40, .45); }
.v29np-doc__seal { position: absolute; right: 18px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border: 2px solid var(--v29-green); border-radius: 50%; color: #17804a; font-size: 20px; rotate: -8deg; }
.v29np-doc__seal .v29-i { stroke-width: 2.6; }
.v29np-switches { display: grid; gap: 16px; }
.v29np-switch { position: relative; display: block; width: 76px; height: 40px; border-radius: 999px; background: var(--v29-green); transition: background-color .3s; }
.v29np-switch i { position: absolute; top: 5px; left: 41px; width: 30px; height: 30px; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.v29np-ready span { position: relative; display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: var(--v29-green); color: #fff; font-size: 42px; }
.v29np-ready .v29-i { stroke-width: 2.6; }
.v29np-ready span::after { content: ""; position: absolute; inset: -3px; border: 2px solid var(--v29-green); border-radius: 50%; opacity: 0; }
html.v29np-motion .v29np-demo.is-js[data-step="1"] .v29np-note i { animation: v29np-grow .7s var(--v29-ease) both; }
html.v29np-motion .v29np-demo.is-js[data-step="1"] .v29np-note i:nth-of-type(2) { animation-delay: .45s; }
html.v29np-motion .v29np-demo.is-js[data-step="1"] .v29np-note i:nth-of-type(3) { animation-delay: .9s; }
html.v29np-motion .v29np-demo.is-js[data-step="2"] .v29np-cover .v29-i { animation: v29np-pop .45s cubic-bezier(.3, 1.6, .5, 1) calc(var(--i) * .4s + .35s) both; }
html.v29np-motion .v29np-demo.is-js[data-step="3"] .v29np-blocks span { animation: v29np-drop .55s cubic-bezier(.3, 1.4, .5, 1) both; }
html.v29np-motion .v29np-demo.is-js[data-step="3"] .v29np-blocks span:nth-child(2) { animation-delay: .35s; }
html.v29np-motion .v29np-demo.is-js[data-step="3"] .v29np-blocks span:nth-child(1) { animation-delay: .75s; }
html.v29np-motion .v29np-demo.is-js[data-step="4"] .v29np-doc i { animation: v29np-grow .6s var(--v29-ease) both; }
html.v29np-motion .v29np-demo.is-js[data-step="4"] .v29np-doc i:nth-of-type(2) { animation-delay: .3s; }
html.v29np-motion .v29np-demo.is-js[data-step="4"] .v29np-doc i:nth-of-type(3) { animation-delay: .6s; }
html.v29np-motion .v29np-demo.is-js[data-step="4"] .v29np-doc__seal { animation: v29np-stamp .5s cubic-bezier(.3, 1.6, .5, 1) 1.2s both; }
html.v29np-motion .v29np-demo.is-js[data-step="5"] .v29np-switch { animation: v29np-switch-bg .4s var(--v29-ease) .5s both; }
html.v29np-motion .v29np-demo.is-js[data-step="5"] .v29np-switch i { animation: v29np-switch .4s var(--v29-ease) .5s both; }
html.v29np-motion .v29np-demo.is-js[data-step="5"] .v29np-switch--2, html.v29np-motion .v29np-demo.is-js[data-step="5"] .v29np-switch--2 i { animation-delay: 1.1s; }
html.v29np-motion .v29np-demo.is-js[data-step="6"] .v29np-ready span { animation: v29np-pop .55s cubic-bezier(.3, 1.6, .5, 1) .2s both; }
html.v29np-motion .v29np-demo.is-js[data-step="6"] .v29np-ready span::after { animation: v29np-ripple 2.2s var(--v29-ease) .6s 2; }
@keyframes v29np-grow { from { width: 0; } }
@keyframes v29np-pop { from { scale: 0; } }
@keyframes v29np-drop { from { opacity: 0; translate: 0 -34px; } }
@keyframes v29np-stamp { from { opacity: 0; scale: 1.8; } }
@keyframes v29np-switch-bg { from { background-color: rgba(21, 23, 46, .18); } }
@keyframes v29np-switch { from { left: 5px; } }

.v29np-demo__foot { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 16px; }
.v29np-demo__foot p { margin: 0; color: var(--v29-soft); font-size: 13px; letter-spacing: .02em; line-height: 1.45; }
.v29np-demo__ctl { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border: 1px solid var(--v29-line); border-radius: 50%; background: var(--v29-paper); color: var(--v29-accent); font-size: 16px; cursor: pointer; transition: background-color .25s, color .25s; }
.v29np-demo__ctl:hover { background: var(--v29-accent); color: #fff; }
.v29np-demo__ctl .v29-i + .v29-i { display: none; }
.v29np-demo.is-paused .v29np-demo__ctl .v29-i:first-child, .v29np-demo.is-ended .v29np-demo__ctl .v29-i:first-child { display: none; }
.v29np-demo.is-paused .v29np-demo__ctl .v29-i + .v29-i, .v29np-demo.is-ended .v29np-demo__ctl .v29-i + .v29-i { display: block; margin-left: 2px; }

/* ---------- 05 Économie connectée : réseau ---------- */
.v29np-economy__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 110px); align-items: center; }
.v29np-economy__status { margin: 26px 0 8px; }
.v29np-economy__list { margin: 30px 0 0; padding: 0; list-style: none; }
.v29np-economy__list li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 20px 0; border-top: 1px solid var(--v29-line); }
.v29np-economy__list li:last-child { border-bottom: 1px solid var(--v29-line); }
.v29np-economy__list li > span { padding-top: 4px; color: var(--v29-accent); font-size: 13px; font-weight: 700; letter-spacing: .16em; }
.v29np-economy__list h3 { margin: 0; font-size: 21px; font-weight: 400; letter-spacing: -.015em; line-height: 1.25; }
.v29np-economy__list p { margin: 6px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.55; }
.v29np-net { margin: 0; padding: clamp(18px, 2.4vw, 32px); border-radius: 12px; background: var(--v29-paper); box-shadow: var(--v29-shadow), 0 0 0 1px rgba(21, 23, 46, .05); }
.v29np-net__stage { position: relative; aspect-ratio: 400 / 360; }
.v29np-net__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.v29np-net__edge { fill: none; stroke: rgba(21, 23, 46, .18); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 1s var(--v29-ease) calc(var(--i) * .2s + 1.1s); }
.v29np-net__spoke { fill: none; stroke: var(--v29-accent); stroke-width: 2; opacity: .4; stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset .9s var(--v29-ease) calc(var(--i) * .15s + .5s); }
.v29np-net__center, .v29np-net__node { position: absolute; z-index: 1; padding: 8px 14px; border-radius: 999px; font-size: 14px; line-height: 1.2; text-align: center; white-space: nowrap; translate: -50% -50%; }
.v29np-net__center { padding: 12px 18px; background: var(--v29-accent); color: #fff; font-weight: 500; box-shadow: 0 16px 34px -16px rgba(75, 46, 242, .8); transition: opacity .6s var(--v29-ease) .3s, scale .7s var(--v29-ease) .3s; }
.v29np-net__node { background: var(--v29-paper); color: var(--v29-ink); box-shadow: 0 0 0 1px rgba(75, 46, 242, .3), 0 12px 26px -16px rgba(30, 25, 40, .5); transition: opacity .5s var(--v29-ease) calc(var(--i) * .15s + .9s), scale .6s cubic-bezier(.3, 1.5, .5, 1) calc(var(--i) * .15s + .9s); }
.v29-js .v29np-economy:not(.is-in) .v29np-net__edge, .v29-js .v29np-economy:not(.is-in) .v29np-net__spoke { stroke-dashoffset: 1; }
.v29-js .v29np-economy:not(.is-in) .v29np-net__center, .v29-js .v29np-economy:not(.is-in) .v29np-net__node { opacity: 0; scale: .6; }
html.v29np-motion .v29np-net .v29np-net__comet { animation: v29np-travel 4.2s linear calc(1.8s + var(--i) * 1.4s) 4 paused; }
html.v29np-motion .v29np-net .v29np-net__node { animation: v29np-ping 4.2s var(--v29-ease) calc(1.8s + var(--i) * 1.4s + 1.2s) 4 paused; }
html.v29np-motion .v29np-economy.is-in .v29np-net.is-live .v29np-net__comet, html.v29np-motion .v29np-economy.is-in .v29np-net.is-live .v29np-net__node { animation-play-state: running; }

/* ---------- 06 Confiance ---------- */
.v29np-trust__text { max-width: 44ch; margin-top: 20px; }
.v29np-trust__list { display: grid; }
.v29np-trust__item { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 22px; padding: 26px 0; border-top: 1px solid var(--v29-line); }
.v29np-trust__item:first-child { border-top: 0; padding-top: 0; }
.v29np-trust__item .v29np-glyph { width: 52px; height: 52px; margin: 0; }
.v29np-trust__item h3 { margin: 0; font-size: clamp(21px, 1.6vw, 25px); font-weight: 400; letter-spacing: -.02em; line-height: 1.25; }
.v29np-trust__item p { margin: 8px 0 0; color: var(--v29-muted); font-size: 17px; line-height: 1.6; }

/* ---------- 07 Premier projet ---------- */
.v29np-first { margin-top: 0; padding-top: clamp(64px, 9vh, 110px); }
.v29np-first .v29s-flow__step h3 { margin-bottom: 0; font-size: 19px; }
.v29np-first__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 40px; margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--v29-line); }
.v29np-first__foot p { max-width: 52ch; margin: 0; color: var(--v29-muted); font-size: 17px; line-height: 1.5; }
.v29np-first__foot .v29-link { font-size: 18px; }

/* ---------- Appel final ---------- */
.v29np-final .v29s-final__actions .v29-btn--solid { min-height: 64px; padding: 0 30px; font-size: 20px; }

/* ---------- Adaptatif ---------- */
@media (max-width: 1180px) {
  .v29np-map { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .v29np-hub { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 34px; padding: 0 0 0 30px; text-align: left; }
  .v29np-hub__orb { grid-row: 1 / span 2; }
  .v29np-hub b { align-self: end; }
  .v29np-hub small { align-self: start; }
  .v29np-hub::after { display: none; }
  .v29np-hub b { margin-top: 0; }
  .v29np-hub small { max-width: none; }
  .v29np-stream dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v29np-model__grid { grid-template-columns: minmax(0, 1fr); }
  .v29np-model__intro { position: relative; top: auto; }
  .v29np-orbit { margin-inline: auto; }
  .v29np-roles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v29np-demo { grid-template-columns: minmax(0, 1fr); }
  .v29np-demo__side { order: -1; }
  .v29np-economy__grid { grid-template-columns: minmax(0, 1fr); }
  .v29np-net { max-width: 560px; }
}
@media (max-width: 860px) {
  /* Mobile (règles communes de neoo-solutions-v29.css) : texte sur crème, puis la vidéo en 16:10, puis le parcours. */
  .v29np-hero > .v29-plate { aspect-ratio: 16 / 10; }
  .v29np-hero__media video { object-position: 50% 50%; }
  .v29np-hero__badge { margin-bottom: 22px; }
  .v29np-status { font-size: 11px; }
  .v29np-hero__benefits { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 24px; font-size: 15px; }
  .v29np-hero__foot .v29-shell { align-items: flex-start; }
  .v29np-hero .v29-modules { gap: 6px 18px; font-size: 14px; }
  .v29np-hero .v29-modules li + li::before { display: none; }
  .v29np-toggle { width: 44px; height: 44px; }
  .v29np-map { margin-top: 44px; gap: 32px; }
  .v29np-hub { column-gap: 30px; padding-left: 22px; }
  .v29np-hub__orb { width: 76px; height: 76px; font-size: 28px; }
  .v29np-hub__orb i { inset: -10px; }
  .v29np-hub__orb i + i { inset: -20px; }
  .v29np-hub b { font-size: 20px; }
  .v29np-rail { padding-left: 30px; }
  .v29np-spine { top: 35px; bottom: 50px; }
  .v29np-stream { grid-template-columns: minmax(0, 1fr); padding: 20px 20px 22px; }
  .v29np-stream::before { left: -30px; top: 35px; width: 30px; }
  .v29np-stream::after { left: -35px; top: 31px; }
  .v29np-stream__n { padding-top: 0; font-size: 13px; }
  .v29np-stream h3 { margin-top: 4px; font-size: 20px; }
  .v29np-stream dl { grid-column: 1; grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 12px; }
  .v29np-stream dl > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 12px; padding: 9px 0; border-top: 1px solid var(--v29-line); }
  .v29np-stream dd { margin: 0; font-size: 14px; }
  .v29np-model { padding: 84px 0 72px; }
  .v29np-orbit__partner, .v29np-orbit__sat { padding: 5px 9px; font-size: 11px; }
  .v29np-orbit__client > span { font-size: 18px; }
  .v29np-orbit__client b { font-size: 12px; }
  .v29np-principle { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 24px 22px; }
  .v29np-roles__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 36px; }
  .v29np-role--featured { grid-column: auto; }
  .v29np-role { padding: 26px 22px; }
  .v29np-roles__foot { margin-top: 36px; }
  .v29np-roles__foot .v29s-actions .v29-btn { flex: 1 1 220px; }
  .v29np-journey { padding: 84px 0 72px; }
  .v29np-demo { margin-top: 36px; gap: 28px; }
  .v29np-file__stage { min-height: 260px; }
  .v29np-demo__step { padding: 14px 0; }
  .v29np-demo__step p { font-size: 16px; }
  .v29np-net__center, .v29np-net__node { padding: 6px 10px; font-size: 12px; }
  .v29np-net__center { padding: 9px 13px; }
  .v29np-trust__item { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
  .v29np-trust__item .v29np-glyph { width: 44px; height: 44px; }
  .v29np-first .v29s-flow__steps { grid-template-columns: minmax(0, 1fr); }
  .v29np-first__foot { margin-top: 30px; }
}

/* Mouvement réduit : aucun état d’entrée masqué, schémas complets (neoo-partner-network-v29.js ne pose pas
   html.v29np-motion : aucune boucle ni démonstration). */
@media (prefers-reduced-motion: reduce) {
  .v29-js .v29np-streams:not(.is-in) .v29np-spine, .v29-js .v29np-streams:not(.is-in) .v29np-hub::after, .v29-js .v29np-streams:not(.is-in) .v29np-stream::before, .v29-js .v29np-streams:not(.is-in) .v29np-stream { transform: none; }
  .v29-js .v29np-streams:not(.is-in) .v29np-stream::after, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__client, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__sat, .v29-js .v29np-economy:not(.is-in) .v29np-net__center, .v29-js .v29np-economy:not(.is-in) .v29np-net__node { scale: none; }
  .v29-js .v29np-roles:not(.is-in) .v29np-glyph *, .v29-js .v29np-trust:not(.is-in) .v29np-glyph * { scale: none; translate: none; }
  .v29-js .v29np-streams:not(.is-in) .v29np-stream, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__client, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__partner, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__sat, .v29-js .v29np-principles:not(.is-in) .v29np-principle, .v29-js .v29np-economy:not(.is-in) .v29np-net__center, .v29-js .v29np-economy:not(.is-in) .v29np-net__node, .v29-js .v29np-roles:not(.is-in) .v29np-glyph *, .v29-js .v29np-trust:not(.is-in) .v29np-glyph * { opacity: 1; transform: none; }
  .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__ring, .v29-js .v29np-model__intro:not(.is-in) .v29np-orbit__spoke, .v29-js .v29np-economy:not(.is-in) .v29np-net__edge, .v29-js .v29np-economy:not(.is-in) .v29np-net__spoke, .v29-js .v29np-roles:not(.is-in) .v29np-glyph .g-draw, .v29-js .v29np-trust:not(.is-in) .v29np-glyph .g-draw { stroke-dashoffset: 0; }
}
