/* /neoo-marketplace 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 v29mk-).
   Généré par scripts/generate-neoo-marketplace-v29.mjs ; plan : docs/marketplace-v29/DESIGN.md.
   La hero garde l’animation d’origine : la vidéo de fond pilotée par neoo-ecosystem.js. */

.v29-marketplace [hidden] { display: none !important; }

/* ---------- Hero : vidéo d’origine sous un voile crème ---------- */
.v29mk-hero { background: #efeae2; }
.v29mk-hero__media video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 64% 50%; }
.v29mk-hero .v29-hero__wash { background: linear-gradient(96deg, rgba(251, 247, 241, .97) 0%, rgba(251, 247, 241, .9) 32%, rgba(251, 247, 241, .5) 48%, rgba(251, 247, 241, 0) 62%), 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%); }
/* Desktop : la vidéo (16:9) est décalée vers la droite pour que son sujet ne passe pas sous le texte ; la jointure est
   sous la partie opaque du voile. */
@media (min-width: 861px) {
  .v29mk-hero > .v29-plate { left: 20%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%); mask-image: linear-gradient(90deg, transparent 0, #000 24%); }
  .v29mk-hero__media video { object-position: 40% 50%; }
}
.v29mk-hero__badge { margin: 0 0 30px; }
.v29mk-hero__title { max-width: 12.5em; }
.v29mk-hero__lead { max-width: 36ch; }
.v29mk-hero__features { display: flex; flex-wrap: wrap; gap: 12px 30px; margin: 30px 0 0; padding: 0; list-style: none; color: var(--v29-muted); font-size: 16px; }
.v29mk-hero__features li { display: inline-flex; align-items: center; gap: 10px; }
.v29mk-hero__features .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; }
.v29mk-hero__foot .v29-shell { display: flex; align-items: center; justify-content: space-between; gap: 24px; }

/* Statut du catalogue (« Marketplace en préparation ») : pastille, jamais un bouton. */
.v29mk-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; }
.v29mk-status i { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #e0a526; }
.v29mk-status i::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; box-shadow: 0 0 0 1.5px rgba(224, 165, 38, .55); animation: v29mk-pulse 2.4s var(--v29-ease) infinite; }
@keyframes v29mk-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 le pilote, masqué sans JavaScript). */
.v29mk-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); }
.v29mk-toggle:hover { background: var(--v29-accent); color: #fff; transform: translateY(-1px); }
.v29mk-toggle .v29-i { width: 18px; height: 18px; }
.v29mk-toggle .v29-i--fill:last-of-type, .v29mk-toggle.is-playing .v29-i--fill:first-of-type { display: none; }
.v29mk-toggle.is-playing .v29-i--fill:last-of-type { display: block; }

/* ---------- 01 Du socle à votre métier ---------- */
.v29mk-paths__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; margin: 64px 0 0; padding: 0; list-style: none; }
.v29mk-paths__item { display: flex; flex-direction: column; align-items: flex-start; padding-top: 30px; border-top: 1px solid var(--v29-line); }
.v29mk-paths__n { color: var(--v29-accent); font-size: 15px; font-weight: 500; letter-spacing: .12em; }
.v29mk-paths__item h3 { margin: 18px 0 0; font-size: clamp(25px, 2.1vw, 32px); font-weight: 300; letter-spacing: -.035em; line-height: 1.15; }
.v29mk-paths__item p { flex: 1; margin: 16px 0 26px; color: var(--v29-muted); font-size: 17px; line-height: 1.55; }
.v29mk-paths__item .v29-link { font-size: 18px; }

/* ---------- 02 Exemples métier ---------- */
.v29mk-examples { position: relative; overflow: hidden; isolation: isolate; padding: clamp(100px, 13vh, 150px) 0 clamp(96px, 13vh, 150px); }
.v29mk-examples__plate { -webkit-mask-image: linear-gradient(transparent 0, #000 18%, #000 50%, transparent 82%); mask-image: linear-gradient(transparent 0, #000 18%, #000 50%, transparent 82%); }
.v29mk-examples__plate img { object-position: 50% 40%; }
.v29mk-examples::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--v29-cream) 0, rgba(251, 247, 241, .5) 26%, rgba(251, 247, 241, .62) 70%, var(--v29-cream) 100%); pointer-events: none; }
.v29mk-examples__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; gap: clamp(40px, 6vw, 110px); }
.v29mk-lead { max-width: 46ch; }
.v29mk-catalogue { padding: 30px 32px 30px; 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); }
.v29mk-catalogue h3 { margin: 20px 0 0; font-size: 22px; font-weight: 400; letter-spacing: -.02em; line-height: 1.25; }
.v29mk-catalogue p { margin: 10px 0 0; color: var(--v29-muted); font-size: 15px; line-height: 1.55; }
.v29mk-examples__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 64px; }
.v29mk-example { display: flex; flex-direction: column; align-items: flex-start; padding: 32px 32px 30px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); transition: box-shadow .35s var(--v29-ease), transform .35s var(--v29-ease), opacity .9s var(--v29-ease) var(--d, 0s); }
.v29mk-example:hover { box-shadow: 0 0 0 1px rgba(75, 46, 242, .35), 0 26px 60px -34px rgba(60, 40, 10, .45); transform: translateY(-2px); }
.v29mk-example--offer { box-shadow: 0 0 0 1.5px var(--v29-accent), 0 30px 70px -40px rgba(75, 46, 242, .45); }
.v29mk-example .v29-micro { font-size: 12px; }
.v29mk-example--offer .v29-micro { color: var(--v29-accent); font-weight: 500; }
.v29mk-example h3 { margin: 12px 0 0; font-size: clamp(24px, 1.9vw, 29px); font-weight: 300; letter-spacing: -.035em; line-height: 1.15; }
.v29mk-example__scenario { margin: 16px 0 0; color: var(--v29-ink); font-size: 17px; line-height: 1.5; }
.v29mk-example__scope { flex: 1; margin: 20px 0 26px; padding-top: 18px; border-top: 1px solid var(--v29-line); color: var(--v29-muted); font-size: 15px; line-height: 1.55; }
.v29mk-example__scope strong { color: var(--v29-ink); font-weight: 500; }
.v29mk-example .v29-link { font-size: 17px; }

/* ---------- 03 Avant de construire ---------- */
.v29mk-intent { margin-top: 0; }
.v29mk-intent__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 40px; margin-top: 42px; padding-top: 30px; border-top: 1px solid var(--v29-line); }
.v29mk-intent__foot .v29s-actions { margin-top: 0; }
.v29mk-intent__text { max-width: 44ch; margin: 0; color: var(--v29-muted); font-size: 15px; line-height: 1.55; }
.v29mk-intent .v29s-flow__step p { font-size: 16px; }

/* ---------- 04 Partenaires ---------- */
.v29mk-partners { padding-top: clamp(40px, 6vh, 70px) !important; }
.v29mk-paths { padding-bottom: clamp(48px, 7vh, 80px); }
.v29mk-partners .v29-kicker { margin-bottom: 22px; }

/* ---------- Adaptatif ---------- */
@media (max-width: 1180px) {
  .v29mk-paths__list { gap: 32px; }
  .v29mk-examples__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v29mk-intent .v29s-flow__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@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 chemin. */
  .v29mk-hero > .v29-plate { aspect-ratio: 16 / 10; }
  .v29mk-hero__media video { object-position: 50% 50%; }
  .v29mk-hero__badge { margin-bottom: 22px; }
  .v29mk-status { font-size: 11px; }
  .v29mk-hero__features { gap: 10px 20px; margin-top: 24px; font-size: 15px; }
  .v29mk-hero__foot .v29-shell { align-items: flex-start; }
  /* Le chemin passe à la ligne : des pastilles espacées plutôt que des points orphelins en début de ligne. */
  .v29mk-hero .v29-modules { gap: 6px 18px; font-size: 14px; }
  .v29mk-hero .v29-modules li + li::before { display: none; }
  .v29mk-toggle { width: 44px; height: 44px; }
  .v29mk-paths__list { grid-template-columns: minmax(0, 1fr); gap: 36px; margin-top: 44px; }
  .v29mk-examples { padding: 84px 0; }
  .v29mk-examples__head { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .v29mk-catalogue { padding: 24px 22px; }
  .v29mk-examples__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 36px; }
  .v29mk-example { padding: 26px 22px 24px; }
  .v29mk-intent .v29s-flow__steps { grid-template-columns: minmax(0, 1fr); }
  .v29mk-intent__foot { margin-top: 30px; padding-top: 24px; }
  .v29mk-intent__foot .v29s-actions .v29-btn { flex: 1 1 220px; }
  .v29mk-partners { padding-top: 32px !important; }
  .v29mk-paths { padding-bottom: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .v29mk-status i::after { animation: none; }
}
