/* Home canonique V25 (/, /en/, /nl-be/ depuis le 2026-10-03) : page d'atterrissage construite autour de la visite guidée.
   Complète neoo-home-v24.css (chargée avant) : mêmes jetons --nf-*, Cerebri Sans Light 300 à -.052em / 1.06, boutons et
   liens de la home. Depuis le 2026-10-03 (v25-5), style UX et fond bleu de /forge.html (forge-site.css) : fond nuit unique
   #10111b, hero centrée avec pastille et micro-drapeau (refaite le 2026-10-03 d'après le visuel fourni : écran Neoo qui
   contient la boucle de la visite, cartes modules, annotations, piliers), maillage bleu (.fs-glow--hero) derrière l'écran,
   titres de section à gauche et chapeau à droite (.fs-head--split), cartes #151827 arrondies à 22 px, boutons en pilule,
   visite dans un panneau sombre arrondi (.fs-run__panel), appel final sur le même maillage bleu (.fs-final).
   Sans JavaScript tout reste visible et utilisable (liens vers le film, vignettes, rail vers les vignettes). */
.neoo-home--v25 {
  --v25-violet: #c9bfff; --v25-warn: #ffb3c1;
  --v25-bg: #10111b; --v25-deep: #090a13; --v25-surface: #151827; --v25-sky: #9fd8ff;
  --v25-line: rgba(255, 255, 255, .1); --v25-line-strong: rgba(255, 255, 255, .18); --v25-radius: 22px;
}
.neoo-home--v25 #main :is(#v25-pain-title, #v25-stories-title, #v25-tour-title, #v25-compare-title, #v25-final-title) span { display: block; }
.neoo-home--v25 #main .v25-soft { color: var(--nf-text-2); }
.neoo-home--v25 #main .v25-accent { color: var(--v25-violet); }
.neoo-home--v25 #main :is(.v25-proof, .v25-week, .v25-story, .v25-compare, .v25-reassure, .v25-turn) svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Système Forge : boutons en pilule, cartes, sections sur un seul fond nuit ---------- */
.neoo-home--v25 #main .v24-btn { border-radius: 999px; }
.neoo-home--v25 #main .v24-btn:hover { transform: translateY(-2px); }
.neoo-home--v25 #main .v24-btn:not(.v24-btn--primary) { border-color: var(--v25-line-strong); background: rgba(255, 255, 255, .04); color: var(--nf-text); }
.neoo-home--v25 #main .v24-btn:not(.v24-btn--primary):hover { border-color: rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .08); }
.neoo-home--v25 #main :is(.v24-forge__examples li, .v24-offer:not(.v24-offer--featured), .v25-week li, .v25-steps li) { border-color: var(--v25-line); border-radius: var(--v25-radius); background: var(--v25-surface); }
.neoo-home--v25 #main .v24-offer--featured { border-radius: var(--v25-radius); }
.neoo-home--v25 :is(.v24-audience, .v24-faq) { background: var(--v25-bg); border-block: 0; }
.neoo-home--v25 .v24-forge { background: radial-gradient(48% 55% at 85% 30%, rgba(77, 125, 255, .2), transparent 72%), var(--v25-bg); border-block: 0; }

/* Maillage bleu de Forge (cobalt à gauche, bleu Neoo à droite, azur et reflet ciel au centre), fondu en haut et en bas. */
.v25-glow { position: absolute; z-index: 0; pointer-events: none; background:
  radial-gradient(46% 40% at 50% 96%, rgba(48, 164, 255, .66), transparent 72%),
  radial-gradient(30% 24% at 50% 80%, rgba(150, 226, 255, .24), transparent 70%),
  radial-gradient(62% 62% at 12% 92%, rgba(38, 76, 224, .82), transparent 72%),
  radial-gradient(62% 62% at 88% 92%, rgba(77, 125, 255, .74), transparent 72%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .8) 50%, #000 62%, #000 86%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .8) 50%, #000 62%, #000 86%, transparent 100%); }
.v25-glow--final { inset: 0; }

/* Titres de section façon Forge : surtitre et titre à gauche, chapeau à droite, aligné sur la base du titre. */
.v25-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 24px 48px; align-items: end; margin-bottom: clamp(48px, 5vw, 64px); }
.neoo-home--v25 #main .v25-split h2 { font-size: clamp(38px, 4.4vw, 64px); }
.v25-split .v24-lead { max-width: 560px; margin: 0; font-size: clamp(17px, 1.25vw, 19px); }

/* ---------- Hero (visuel du 2026-10-05) : faisceaux bleus, texte centré, portable sur l'horizon, modules en éventail ----------
   Géométrie du visuel (1761 × 893) : pastille, H1 en deux lignes, promesse, liste des fonctions, deux actions, quatre
   coches ; puis un portable (≈ 40 % de la largeur) qui joue le film narré, posé sur l'horizon lumineux d'une Terre de nuit
   (illustration générée) ; huit cartes modules en éventail (quatre de chaque côté, inclinées vers l'écran) reliées à
   l'écran par des flux lumineux ; deux annotations manuscrites (Caveat, seule police complémentaire) ; quatre repères
   séparés par des filets sous le portable. Toute la hero tient dans un écran de bureau 1920 × 1080.
   Titres : Cerebri Sans Light 300 (règle du projet), le dernier mot de chaque ligne en dégradé violet. */
@font-face {
  font-family: "Caveat";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/neoo-native/Fonts/Caveat/Caveat-Medium-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Caveat";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/neoo-native/Fonts/Caveat/Caveat-Medium-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.v25-hero { position: relative; isolation: isolate; overflow: hidden; overflow: clip; padding: clamp(16px, 2.4vh, 32px) 0 clamp(14px, 1.6vh, 26px); background: linear-gradient(180deg, #080a18 0%, #0a0c1c 58%, var(--v25-bg) 100%); text-align: center; }
/* Faisceaux : deux grands anneaux flous centrés hors cadre, dont l'arc lumineux descend des coins hauts, sur un halo cobalt. */
.v25-beams { position: absolute; inset: 0 0 auto; z-index: 0; height: min(1180px, 130vh); overflow: hidden; pointer-events: none;
  background: radial-gradient(36% 44% at 2% 4%, rgba(38, 76, 224, .4), transparent 72%), radial-gradient(36% 44% at 98% 4%, rgba(38, 76, 224, .4), transparent 72%); }
.v25-beams::before, .v25-beams::after { content: ""; position: absolute; top: -62%; width: 64%; height: 112%; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(38, 76, 224, .08) 0%, rgba(38, 76, 224, .2) 82%, rgba(90, 135, 255, .34) 92%, rgba(150, 185, 255, .62) 96.5%, rgba(64, 108, 255, .16) 98.8%, transparent 100%);
  filter: blur(7px); }
.v25-beams::before { left: -42%; transform: rotate(8deg); }
.v25-beams::after { right: -42%; transform: rotate(-8deg); }
.v25-hero__inner { position: relative; z-index: 2; }
.v25-hero__copy { max-width: 1240px; margin-inline: auto; }
.neoo-home--v25 #main .v25-pill { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; margin: 0 0 12px; padding: 7px 16px 7px 14px; border: 1px solid var(--v25-line-strong); border-radius: 999px; background: rgba(255, 255, 255, .05); color: var(--nf-text); font-size: 14px; line-height: 1.3; }
.v25-flag { display: inline-flex; flex: none; width: 15px; height: 11px; overflow: hidden; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .22); }
.v25-flag i { flex: 1; }
.v25-flag i:nth-child(1) { background: #0b0b0d; }
.v25-flag i:nth-child(2) { background: #fdda24; }
.v25-flag i:nth-child(3) { background: #ef3340; }
/* La taille passe par --cb-title-hero : neoo-product-system.css l'impose en !important aux H1 d'affichage. Un peu plus
   petit qu'avant le 2026-10-05, comme dans le visuel, pour laisser la place au portable et aux repères. */
.neoo-home--v25 #v25-title { --cb-title-hero: clamp(40px, min(3.2vw, 5.4vh), 64px); margin: 0 auto; font-family: var(--v24-display); font-size: var(--cb-title-hero); font-weight: 300; line-height: 1.06; letter-spacing: -.052em; color: var(--nf-text); text-wrap: balance; }
.neoo-home--v25 #v25-title .v25-line { display: block; }
.neoo-home--v25 #v25-title .v25-grad { padding-right: .05em; background: linear-gradient(95deg, #f3ecff 0%, #cdbcff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.neoo-home--v25 #v25-title .v25-line + .v25-line .v25-grad { background-image: linear-gradient(95deg, #8d6dff 0%, #a88cff 48%, #c7b6ff 100%); }
.v25-hero__copy .v24-lead { max-width: 1180px; margin: 12px auto 0; color: var(--nf-text); font-size: clamp(17px, 1.1vw, 18.5px); line-height: 1.45; text-wrap: balance; }
.v25-hero__scope { max-width: 1060px; margin: 6px auto 0; color: var(--nf-text-2); font-size: 15px; line-height: 1.5; text-wrap: balance; }
/* Actions : l'essai (objectif de conversion) en bouton principal, le film en lanceur à pastille de lecture. */
.v25-hero__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 16px; margin-top: clamp(16px, 2vh, 24px); }
.v25-hero__actions .v24-btn { min-width: 0; min-height: 52px; padding-inline: 30px; font-size: 17px; }
.v25-watch { display: inline-flex; align-items: center; gap: 14px; min-height: 52px; padding: 6px 30px 6px 6px; border: 1px solid var(--v25-line-strong); border-radius: 999px; background: rgba(255, 255, 255, .04); color: #fff; text-decoration: none; transition: border-color .25s var(--v24-ease), background-color .25s var(--v24-ease), transform .4s var(--v24-ease); }
.v25-watch:hover { border-color: rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .08); transform: translateY(-2px); }
.v25-watch__play { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--nf-accent, #6a58ff); }
.v25-watch__play::before { content: ""; position: absolute; inset: -5px; border: 2px solid rgba(255, 255, 255, .4); border-radius: 50%; animation: v25-pulse 2.6s ease-out infinite; }
.neoo-home--v25 .v25-watch__play svg { width: 18px; height: 18px; margin-left: 3px; fill: currentColor; stroke: none; }
.v25-watch__text { display: grid; text-align: left; }
.v25-watch__text strong { font-size: 17px; font-weight: 500; line-height: 1.25; }
@keyframes v25-pulse { from { opacity: .9; transform: scale(.88); } to { opacity: 0; transform: scale(1.32); } }
.v25-proof { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; margin: 14px auto 0; padding: 0; list-style: none; color: #e3e6f2; font-size: 15px; line-height: 1.4; }
.v25-proof li { display: inline-flex; align-items: center; gap: 9px; }
.neoo-home--v25 #main .v25-proof svg { flex: none; width: 18px; height: 18px; color: var(--nf-success, #34c48f); }

/* Le portable : --v25-sw, largeur de l'écran, vaut ≈ 37 % de la fenêtre sans dépasser ce que la hauteur laisse sous le
   texte (100vh - 640px, ratio 16:9) ; --v25-sh, sa hauteur, suit le film 16:9 (plus le liseré) ; --v25-pitch espace les
   cartes modules ; --v25-ew, largeur de la Terre. Le maillage bleu de Forge reste derrière, adouci par la Terre. */
.v25-window { --v25-glow-up: 760px; --v25-glow-h: 1100px; --v25-sw: clamp(420px, min(37vw, calc((100vh - 640px) * 1.78)), 860px); --v25-sh: calc(var(--v25-sw) * .5625 + 6px); --v25-pitch: clamp(64px, calc(var(--v25-sh) * .27), 122px); --v25-deck: 14px; --v25-ew: max(100vw, 1440px);
  position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; margin-top: clamp(18px, 2.2vh, 28px); }
/* Fondu bas plus long que celui de Forge : le maillage s'éteint derrière l'écran, pas d'un coup. */
.v25-window > .v25-glow { z-index: -1; top: calc(var(--v25-glow-up) * -1); left: 50%; width: 100vw; height: var(--v25-glow-h); translate: -50% 0; opacity: .7;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .8) 50%, #000 62%, #000 76%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .8) 50%, #000 62%, #000 76%, transparent 100%); }
/* Terre de nuit (illustration décorative) : le sommet de l'horizon, à 33,5 % de l'image, passe sous le pied du portable. */
.v25-earth { position: absolute; z-index: -1; top: calc(var(--v25-sh) + var(--v25-deck) - var(--v25-ew) * .1425); left: 50%; width: var(--v25-ew); translate: -50% 0; pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 24%, #000 62%, transparent 92%); mask-image: linear-gradient(180deg, transparent 0%, #000 24%, #000 62%, transparent 92%); }
.v25-earth img { display: block; width: 100%; height: auto; }
/* La Terre s'éteint dans le fond de la section suivante. */
.v25-window::after { content: ""; position: absolute; z-index: -1; left: 50%; bottom: -40px; width: 100vw; height: 150px; translate: -50% 0; pointer-events: none; background: linear-gradient(180deg, rgba(16, 17, 27, 0), var(--v25-bg) 88%); }
.v25-stage { position: relative; width: 100%; }
.v25-screen { position: relative; z-index: 2; box-sizing: border-box; width: var(--v25-sw); height: var(--v25-sh); margin-inline: auto; padding: 9px 9px 11px; border-radius: 20px 20px 9px 9px; background: linear-gradient(180deg, #1b2042 0%, #0d1024 52%, #090b1a 100%);
  box-shadow: 0 0 0 1px rgba(146, 172, 255, .5), 0 0 30px rgba(64, 110, 255, .5), 0 0 110px rgba(56, 96, 255, .32), 0 40px 80px rgba(2, 4, 14, .6); }
/* Liseré lumineux : plus clair en haut, comme la tranche éclairée du visuel. */
.v25-screen::before { content: ""; position: absolute; inset: 0; z-index: 3; padding: 1.5px; border-radius: inherit; pointer-events: none; background: linear-gradient(180deg, rgba(206, 222, 255, .95), rgba(128, 158, 255, .32) 34%, rgba(128, 158, 255, .08) 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.v25-film { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 12px; background: #0b0d18; }
.v25-film__still, .v25-film__still img, .v25-film__video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.v25-film__video { opacity: 0; transition: opacity .9s var(--v24-ease); }
.v25-film.is-playing .v25-film__video, .v25-film.is-paused .v25-film__video { opacity: 1; }
/* Pastille de lecture vitrée au centre de l'écran, comme dans le visuel : visible aussi pendant la boucle muette, elle
   invite à lancer le film avec le son. */
.v25-film__play { position: absolute; left: 50%; top: 50%; z-index: 1; display: none; place-items: center; width: 84px; height: 84px; translate: -50% -50%; border-radius: 50%; background: rgba(106, 88, 255, .66); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3), 0 0 0 12px rgba(106, 88, 255, .16), 0 18px 40px rgba(60, 44, 200, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: opacity .35s var(--v24-ease), transform .4s var(--v24-ease); }
.neoo-home--v25 #main .v25-film__play svg { width: 32px; height: 32px; margin-left: 5px; fill: #fff; stroke: none; }
.v25-film.is-linked { cursor: pointer; }
.v25-film.is-linked .v25-film__play { display: grid; }
.v25-film.is-linked.is-playing .v25-film__play { opacity: .88; }
.v25-film.is-linked:hover .v25-film__play { opacity: 1; transform: scale(1.06); }
.v25-film__toggle { position: absolute; top: 18px; right: 18px; z-index: 4; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid rgba(255, 255, 255, .32); border-radius: 50%; background: rgba(10, 13, 30, .66); color: #fff; cursor: pointer; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background-color .25s var(--v24-ease), border-color .25s var(--v24-ease); }
.v25-film__toggle[hidden] { display: none; }
.v25-film__toggle:hover { border-color: rgba(255, 255, 255, .6); background: rgba(10, 13, 30, .86); }
.v25-film__toggle svg { width: 16px; height: 16px; fill: currentColor; }
.v25-film__toggle .v25-icon-pause, .v25-hero:has(.v25-film.is-playing) .v25-film__toggle .v25-icon-play { display: none; }
.v25-hero:has(.v25-film.is-playing) .v25-film__toggle .v25-icon-pause { display: block; }
/* Pied du portable : clavier vu de face, plus large que l'écran, avec son encoche ; anneau de lumière sur l'horizon. */
.v25-deck { position: absolute; z-index: 1; top: calc(var(--v25-sh) - 3px); left: 50%; width: calc(var(--v25-sw) * 1.13); height: var(--v25-deck); translate: -50% 0; border-radius: 3px 3px 18px 18px / 3px 3px 12px 12px;
  background: linear-gradient(180deg, #dfe5ff 0%, #8f9ac8 22%, #3a4172 60%, #151831 100%); box-shadow: 0 0 0 1px rgba(170, 190, 255, .3), 0 14px 34px rgba(2, 4, 16, .7), 0 0 60px rgba(90, 140, 255, .45); }
.v25-deck::before { content: ""; position: absolute; top: 0; left: 50%; width: 14%; height: 5px; translate: -50% 0; border-radius: 0 0 8px 8px; background: linear-gradient(180deg, #262c52, #5a6494); }
/* Anneau : seul l'arc avant reste visible (l'arrière passe derrière l'écran et s'efface). */
.v25-deck::after { content: ""; position: absolute; z-index: -1; top: 30%; left: 50%; width: 118%; height: 58px; translate: -50% -50%; border: 1.5px solid rgba(190, 210, 255, .7); border-radius: 50%; box-shadow: 0 0 22px rgba(110, 150, 255, .75), inset 0 0 24px rgba(110, 150, 255, .5); pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, transparent 38%, #000 62%); mask-image: linear-gradient(180deg, transparent 0%, transparent 38%, #000 62%); }

/* Cartes modules en éventail : quatre de chaque côté de l'écran (--row × --v25-pitch, la première remontée de --v25-lift),
   --x en écart à son bord (plus loin au milieu de la pile), inclinées vers l'écran (rotateY) et en arc (--tilt). */
.v25-orbit { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.v25-mod { position: absolute; top: calc((var(--row) - var(--v25-lift, .74)) * var(--v25-pitch)); pointer-events: auto; }
.v25-mod:nth-child(-n + 4) { right: calc(50% + var(--v25-sw) / 2 + var(--x)); }
.v25-mod:nth-child(n + 5) { left: calc(50% + var(--v25-sw) / 2 + var(--x)); }
.v25-mod--crm { --row: 0; --x: 84px; --tilt: 7deg; --c: linear-gradient(145deg, #7d60ff, #5638e0); }
.v25-mod--sales { --row: 1; --x: 114px; --tilt: 3.5deg; --c: linear-gradient(145deg, #5584ff, #2d55e8); }
.v25-mod--stock { --row: 2; --x: 114px; --tilt: 0deg; --c: linear-gradient(145deg, #ffbd52, #f08619); }
.v25-mod--projects { --row: 3; --x: 86px; --tilt: -4deg; --c: linear-gradient(145deg, #3fd08a, #14965f); }
.v25-mod--finance { --row: 0; --x: 92px; --tilt: -7deg; --c: linear-gradient(145deg, #34d6a6, #0e9a86); }
.v25-mod--support { --row: 1; --x: 118px; --tilt: -3deg; --c: linear-gradient(145deg, #4592ff, #1c5fe9); }
.v25-mod--automation { --row: 2; --x: 116px; --tilt: .5deg; --c: linear-gradient(145deg, #a062ff, #6a2fe6); }
.v25-mod--forge { --row: 3; --x: 94px; --tilt: 4.5deg; --c: linear-gradient(145deg, #c46bff, #7b3fea); }
.v25-mod a { --ry: 18deg; display: flex; align-items: center; gap: 14px; min-width: 218px; box-sizing: border-box; padding: 14px 22px 14px 13px; border: 1px solid rgba(132, 154, 255, .42); border-radius: 18px; background: linear-gradient(160deg, rgba(38, 46, 102, .8), rgba(13, 17, 42, .86)); color: #fff; text-align: left; text-decoration: none;
  box-shadow: 0 18px 40px rgba(2, 4, 16, .5), 0 0 30px rgba(64, 100, 255, .26), inset 0 1px 0 rgba(255, 255, 255, .1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transform: perspective(900px) rotateY(var(--ry)) rotate(var(--tilt)); transition: transform .5s var(--v24-ease), border-color .3s var(--v24-ease), box-shadow .3s var(--v24-ease); }
.v25-mod:nth-child(n + 5) a { --ry: -18deg; }
.v25-mod a:hover, .v25-mod a:focus-visible { border-color: rgba(178, 196, 255, .8); box-shadow: 0 22px 46px rgba(2, 4, 16, .55), 0 0 38px rgba(80, 120, 255, .45), inset 0 1px 0 rgba(255, 255, 255, .14); transform: perspective(900px) translateY(-3px); }
.v25-mod__icon { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 13px; background: var(--c); box-shadow: 0 8px 18px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .25); }
.neoo-home--v25 .v25-mod__icon svg { width: 24px; height: 24px; fill: none; stroke: #fff; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.neoo-home--v25 .v25-mod--automation .v25-mod__icon svg { fill: #fff; }
.v25-mod__text { display: grid; gap: 3px; }
.v25-mod__text strong { font-size: 17px; font-weight: 500; line-height: 1.2; }
.v25-mod__text span { color: rgba(214, 221, 246, .78); font-size: 13px; line-height: 1.3; }
/* Annotations manuscrites, avec leur flèche vers la carte voisine ; la flèche s'arrête dans le vide, jamais sur une carte :
   à gauche, à hauteur de CRM, loin de la pile, la flèche descend vers Ventes ; à droite, à hauteur de la promesse, la
   flèche descend vers Finance en s'arrêtant au-dessus de la carte. */
.neoo-home--v25 #main .v25-note { position: absolute; margin: 0; color: rgba(238, 241, 255, .86); font: 500 clamp(24px, 1.5vw, 29px)/1.02 "Caveat", "Segoe Print", cursive; letter-spacing: 0; text-align: left; white-space: nowrap; pointer-events: none; }
.v25-note span { display: block; }
.v25-note--left { top: calc(var(--v25-pitch) * -.5); right: calc(50% + var(--v25-sw) / 2 + 380px); transform: rotate(-9deg); }
.v25-note--right { top: calc(var(--v25-pitch) * -1.62 - 92px); left: calc(50% + var(--v25-sw) / 2 + 262px); transform: rotate(-11deg); }
.v25-note__arrow { position: absolute; width: 48px; height: 44px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.v25-note--left .v25-note__arrow { bottom: -48px; right: 4px; }
.v25-note--right .v25-note__arrow { bottom: -48px; left: -22px; }

/* Repères : quatre colonnes centrées sous le portable, séparées par des filets, lisibles sur l'horizon éclairé. */
.v25-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, auto)); justify-content: center; margin: calc(var(--v25-deck) + clamp(20px, 2.6vh, 34px)) auto 0; padding: 0; list-style: none; }
.v25-stats::before { content: ""; position: absolute; z-index: -1; inset: -18px -40px; border-radius: 50%; background: radial-gradient(closest-side, rgba(6, 8, 22, .72), rgba(6, 8, 22, .4) 62%, transparent); pointer-events: none; }
.v25-stat { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 4px; padding: 2px clamp(18px, 2vw, 34px); text-shadow: 0 1px 14px rgba(4, 6, 18, .95); }
.v25-stat + .v25-stat { border-left: 1px solid rgba(214, 224, 255, .2); }
.v25-stat strong { color: #fff; font-size: clamp(24px, 1.6vw, 29px); font-weight: 500; letter-spacing: -.02em; line-height: 1.1; white-space: nowrap; }
.v25-stat span { max-width: 190px; color: #d3d9ee; font-size: 13.5px; line-height: 1.35; text-wrap: balance; }
.v25-stat--place { gap: 3px; }
.v25-stat--place strong { font-size: 16px; font-weight: 600; letter-spacing: 0; line-height: 1.3; }
.v25-flag--stat { width: 24px; height: 17px; margin-bottom: 3px; border-radius: 3px; }
.v25-film__caption { position: relative; z-index: 2; margin: 10px auto 0; color: var(--nf-text-3); font-size: 11.5px; text-shadow: 0 1px 10px rgba(4, 6, 18, .9); }

/* ---------- Le problème : une semaine type en quatre moments ---------- */
.v25-pain { position: relative; padding: clamp(88px, 10vw, 128px) 0 clamp(72px, 8vw, 116px); background: var(--v25-bg); }
.v25-week { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 36px 0 0; list-style: none; }
.v25-week::before { content: ""; position: absolute; top: 10px; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, rgba(255, 138, 160, .55), rgba(255, 255, 255, .1) 92%); }
.v25-week li { position: relative; display: flex; flex-direction: column; padding: 24px 22px 20px; border: 1px solid var(--nf-line); border-radius: 20px; background: var(--nf-surface-1, #161a2b); }
.v25-week__when { position: absolute; top: -36px; left: 0; display: flex; align-items: center; gap: 10px; margin: 0; padding-right: 12px; background: var(--v25-bg); color: var(--v25-warn); font-size: 12.5px; font-weight: 600; letter-spacing: .12em; line-height: 20px; text-transform: uppercase; }
.v25-week__dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--nf-danger, #ff8aa0); box-shadow: 0 0 0 4px rgba(255, 138, 160, .16); }
.neoo-home--v25 #main .v25-week__text { flex: 1; margin: 0; color: var(--nf-text); font-family: var(--v24-display); font-size: clamp(20px, 1.55vw, 23px); font-weight: 300; letter-spacing: -.03em; line-height: 1.3; }
.v25-week__cost { display: flex; align-items: center; gap: 8px; margin: 22px 0 0; padding-top: 14px; border-top: 1px solid var(--nf-line); color: var(--v25-warn); font-size: 14.5px; font-weight: 500; line-height: 1.35; }
.neoo-home--v25 #main .v25-week__cost svg { flex: none; width: 16px; height: 16px; }
.v25-turn { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 26px; margin: clamp(48px, 5.5vw, 72px) 0 0; text-align: center; }
.neoo-home--v25 #main .v25-turn > span { color: var(--nf-text); font-family: var(--v24-display); font-size: clamp(22px, 2.1vw, 30px); font-weight: 300; letter-spacing: -.035em; line-height: 1.25; text-wrap: balance; }
.neoo-home--v25 #main .v25-turn .v24-link svg { width: 18px; height: 18px; }
.v25-turn .v24-link:hover svg { transform: translateY(3px); }

/* ---------- Avec Neoo : quatre histoires, grande capture recadrée d'un vrai écran en alternance ---------- */
.v25-stories { position: relative; padding: clamp(88px, 10vw, 128px) 0; background: var(--v25-bg); }
.v25-story-list { display: grid; gap: clamp(72px, 9vw, 128px); }
.v25-story { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: center; scroll-margin-top: calc(var(--v24-header) + 24px); }
.v25-story--flip { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.v25-story--flip .v25-story__media { order: 2; }
.v25-story__media { position: relative; margin: 0; }
.v25-story__media::before { content: ""; position: absolute; inset: 10% 4% -4% 6%; z-index: 0; border-radius: 40px; background: radial-gradient(closest-side, rgba(77, 125, 255, .42), transparent); filter: blur(36px); pointer-events: none; }
.v25-story__frame { position: relative; z-index: 1; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--v25-radius); background: #f7f8fa; box-shadow: 0 34px 90px rgba(0, 0, 0, .5); }
.v25-story__frame img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 0 0; transition: transform 1.1s var(--v24-ease); }
.v25-story__play { position: absolute; right: 18px; bottom: 18px; display: none; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--nf-accent, #6a58ff); box-shadow: 0 0 0 8px rgba(106, 88, 255, .22), 0 14px 32px rgba(106, 88, 255, .5); transition: transform .4s var(--v24-ease); }
.neoo-home--v25 #main .v25-story__play svg { width: 22px; height: 22px; margin-left: 4px; fill: #fff; stroke: none; }
.v25-story__frame.is-linked { cursor: pointer; }
.v25-story__frame.is-linked .v25-story__play { display: grid; }
.v25-story__frame.is-linked:hover img { transform: scale(1.025); }
.v25-story__frame.is-linked:hover .v25-story__play { transform: scale(1.08); }
.v25-story__stage { position: relative; z-index: 1; }
/* Loupe : le détail qui prouve le résultat, en résolution native (affiché à 62 %), posé en débord sur le coin de l'image. */
.v25-story__zoom { position: absolute; z-index: 2; left: -32px; bottom: -26px; display: block; width: min(var(--zw, 420px), 64%); height: auto; border: 1px solid rgba(255, 255, 255, .75); border-radius: 14px; background: #fff; box-shadow: 0 0 0 6px rgba(106, 88, 255, .3), 0 26px 60px rgba(0, 0, 0, .55); pointer-events: none; }
.v25-story__media figcaption { position: relative; z-index: 1; margin-top: 40px; color: var(--nf-text-3); font-size: 12.5px; text-align: right; }
.neoo-home--v25 #main .v25-story h3 { font-size: clamp(30px, 2.8vw, 42px); font-weight: 300; letter-spacing: -.045em; line-height: 1.08; text-wrap: balance; }
.v25-story__before { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 20px 0 0; color: var(--nf-text-3); font-size: 15px; line-height: 1.45; }
.v25-story__before s { text-decoration-color: rgba(255, 138, 160, .75); text-decoration-thickness: 1.5px; }
.v25-story__tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px 3px 6px; border-radius: 999px; background: rgba(255, 138, 160, .12); color: var(--v25-warn); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.neoo-home--v25 #main .v25-story__tag svg { width: 14px; height: 14px; stroke-width: 2.4; }
.v25-story__text { margin: 18px 0 0; color: var(--nf-text-2); font-size: 17.5px; line-height: 1.6; }
.v25-story__points { display: grid; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.v25-story__points li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--nf-text); font-size: 16px; line-height: 1.45; }
.neoo-home--v25 #main .v25-story__points svg { width: 20px; height: 20px; margin-top: 1px; color: var(--nf-success, #34c48f); }
.v25-story__watch { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 24px; color: #fff; font-weight: 500; text-decoration: none; }
.neoo-home--v25 #main .v25-story__watch svg { width: 34px; height: 34px; padding: 9px 8px 9px 10px; box-sizing: border-box; border-radius: 50%; fill: #fff; stroke: none; background: var(--nf-accent, #6a58ff); transition: transform .3s var(--v24-ease); }
.v25-story__watch:hover > span { text-decoration: underline; text-underline-offset: 4px; }
.v25-story__watch:hover svg { transform: scale(1.08); }

/* ---------- La visite : panneau sombre arrondi (Forge), affiche en grand, puis les 12 sujets en vignettes ---------- */
.v25-tour { position: relative; padding: clamp(24px, 4vw, 56px) 0; background: var(--v25-bg); }
.v25-tour__panel { width: min(1520px, calc(100% - 48px)); margin-inline: auto; padding: clamp(64px, 7.5vw, 104px) 0; border: 1px solid var(--v25-line); border-radius: 30px; background: radial-gradient(60% 50% at 80% 0%, rgba(77, 125, 255, .16), transparent 70%), radial-gradient(50% 40% at 0% 100%, rgba(38, 76, 224, .14), transparent 70%), var(--v25-deep); }
.v25-tour__stage { margin: 0; }
.v25-tour__poster { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--v25-radius); background: #0a0b16; box-shadow: 0 40px 120px rgba(0, 0, 0, .55); color: #fff; text-decoration: none; }
.v25-tour__poster img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--v24-ease); }
.v25-tour__poster::after { content: ""; position: absolute; inset: 0; background: radial-gradient(46% 54% at 50% 56%, rgba(8, 8, 20, .62), rgba(8, 8, 20, .38) 70%, rgba(8, 8, 20, .5)); }
.v25-tour__poster:hover img { transform: scale(1.02); }
.v25-tour__cta { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; align-content: center; gap: 18px; text-align: center; text-shadow: 0 1px 3px rgba(5, 5, 10, .8); }
.v25-tour__btn { position: relative; display: grid; place-items: center; width: clamp(72px, 8vw, 96px); height: clamp(72px, 8vw, 96px); border-radius: 50%; background: var(--nf-accent, #6a58ff); box-shadow: 0 0 0 12px rgba(106, 88, 255, .25), 0 20px 50px rgba(106, 88, 255, .55); transition: transform .4s var(--v24-ease); }
.v25-tour__btn::before { content: ""; position: absolute; inset: -12px; border: 2px solid rgba(201, 191, 255, .5); border-radius: 50%; animation: v25-pulse 2.6s ease-out infinite; }
.neoo-home--v25 #main .v25-tour__btn svg { width: 36%; height: 36%; margin-left: 6%; fill: #fff; stroke: none; }
.v25-tour__poster:hover .v25-tour__btn { transform: scale(1.06); }
.v25-tour__label { display: grid; gap: 4px; padding: 12px 22px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 16px; background: rgba(11, 13, 24, .74); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.v25-tour__label strong { font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; }
.v25-tour__label span { color: rgba(255, 255, 255, .82); font-size: 14px; }
.v25-tour__stage figcaption { margin-top: 12px; color: var(--nf-text-3); font-size: 12.5px; text-align: right; }
.neoo-home--v25 #main h3.v25-tour__list-title { margin: clamp(56px, 6vw, 80px) 0 22px; color: var(--nf-text-3); font-family: inherit; font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.v25-topics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.v25-topics li { scroll-margin-top: calc(var(--v24-header) + 24px); }
.v25-topic { display: flex; flex-direction: column; height: 100%; padding: 8px 8px 16px; border: 1px solid var(--v25-line); border-radius: 18px; background: var(--v25-surface); color: var(--nf-text); text-decoration: none; transition: border-color .3s var(--v24-ease), transform .4s var(--v24-ease), background-color .3s var(--v24-ease); }
.v25-topic:hover { border-color: rgba(255, 255, 255, .24); background: #1c2136; transform: translateY(-3px); }
.v25-topic__thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 11px; background: #e9ebf2; }
.v25-topic__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.v25-topic__time { position: absolute; left: 6px; bottom: 6px; display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px 3px 3px; border-radius: 999px; background: rgba(11, 13, 24, .82); color: #fff; font-size: 12px; font-variant-numeric: tabular-nums; }
.neoo-home--v25 #main .v25-topic__time svg { width: 20px; height: 20px; padding: 5px 4px 5px 6px; box-sizing: border-box; border-radius: 50%; fill: #fff; stroke: none; background: var(--nf-accent, #6a58ff); }
.v25-topic__name { margin: 12px 6px 0; font-size: 15.5px; font-weight: 500; line-height: 1.25; }
.v25-topic__text { margin: 4px 6px 0; color: var(--nf-text-2); font-size: 13.5px; line-height: 1.45; }

/* ---------- Pourquoi Neoo : trois colonnes, Neoo mis en avant ---------- */
.v25-compare { padding: clamp(88px, 10vw, 128px) 0; background: var(--v25-bg); }
.v25-compare__table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.v25-compare__table :is(th, td) { padding: 20px 22px; border-bottom: 1px solid var(--nf-line); text-align: left; vertical-align: top; }
.v25-compare__table thead :is(th, td) { padding-top: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--nf-line-strong, rgba(255, 255, 255, .18)); color: var(--nf-text-2); font-size: 14px; font-weight: 500; }
.v25-compare__table thead td { width: 21%; }
.v25-compare__table tbody th { color: var(--nf-text); font-size: 15.5px; font-weight: 500; line-height: 1.4; }
.v25-compare__table .v25-compare__cell { position: relative; padding-left: 50px; color: var(--nf-text-3); font-size: 15.5px; line-height: 1.45; }
.neoo-home--v25 #main .v25-compare__cell svg { position: absolute; top: 22px; left: 22px; display: block; width: 18px; height: 18px; color: rgba(139, 148, 176, .7); }
.v25-compare__table .v25-compare__neoo, .v25-compare__table .v25-compare__cell--neoo { border-right: 1px solid rgba(201, 191, 255, .34); border-left: 1px solid rgba(201, 191, 255, .34); background: rgba(106, 88, 255, .12); }
.v25-compare__table thead .v25-compare__neoo { border-top: 1px solid rgba(201, 191, 255, .34); border-radius: 18px 18px 0 0; background: rgba(106, 88, 255, .22); color: #fff; }
.v25-compare__table tbody tr:last-child .v25-compare__cell--neoo { border-bottom-color: rgba(201, 191, 255, .34); border-radius: 0 0 18px 18px; }
.v25-compare__table .v25-compare__cell--neoo { color: #fff; font-weight: 500; }
.neoo-home--v25 #main .v25-compare__cell--neoo svg { color: var(--nf-success, #34c48f); }
.v25-compare__brand { font-family: var(--v24-display); font-size: 28px; font-weight: 300; letter-spacing: -.045em; line-height: 1; }

/* ---------- Peppol 2026 : la date en très grand, l'obligation et la réponse de Neoo ---------- */
.v25-peppol { padding: clamp(40px, 5vw, 72px) 0 clamp(72px, 8vw, 112px); background: var(--v25-bg); }
.v25-peppol__card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding: clamp(32px, 4.5vw, 64px); overflow: hidden; border: 1px solid rgba(150, 226, 255, .22); border-radius: 28px; background: radial-gradient(60% 120% at 0% 0%, rgba(38, 76, 224, .42), transparent 62%), radial-gradient(50% 100% at 100% 100%, rgba(48, 164, 255, .2), transparent 60%), var(--v25-surface); }
.neoo-home--v25 #main .v25-peppol__date { margin: 0; color: #fff; font-family: var(--v24-display); font-size: clamp(64px, 8.6vw, 132px); font-weight: 300; letter-spacing: -.06em; line-height: .92; }
.v25-peppol__date span { display: block; color: var(--v25-sky); }
.neoo-home--v24 #main .v25-peppol h2 { font-size: clamp(26px, 2.6vw, 40px); }
.v25-peppol h2 sup { font-size: .42em; vertical-align: super; letter-spacing: 0; }
.v25-peppol h2 sup a { padding: 2px 4px; color: var(--nf-link); text-decoration: none; }
.v25-peppol__body > p:not(.v24-eyebrow) { max-width: 58ch; margin: 16px 0 0; color: var(--nf-text-2); font-size: 17px; line-height: 1.6; }
.v25-peppol__body .v24-link { margin-top: 18px; }

/* ---------- Appel final (.fs-final de Forge) : la démo en trois étapes, sur le maillage bleu ---------- */
.neoo-home--v25 .v25-final { position: relative; isolation: isolate; overflow: hidden; overflow: clip; padding: clamp(104px, 11vw, 150px) 0 clamp(120px, 12vw, 170px); background: var(--v25-bg); }
.v25-final > .v24-shell { position: relative; z-index: 1; max-width: 1040px; }
.neoo-home--v25 #main .v25-final h2 { font-size: clamp(42px, 5.4vw, 80px); line-height: 1.04; }
.v25-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: clamp(36px, 4vw, 52px) 0 0; padding: 0; list-style: none; text-align: left; }
.v25-steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 14px; padding: 20px; border: 1px solid var(--nf-line); border-radius: 18px; }
.v25-steps__num { grid-row: span 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(106, 88, 255, .2); color: var(--v25-violet); font-family: var(--v24-display); font-size: 20px; }
.v25-steps strong { color: #fff; font-size: 16.5px; font-weight: 500; line-height: 1.3; }
.v25-steps li > span:last-child { margin-top: 4px; color: var(--nf-text-2); font-size: 14.5px; line-height: 1.5; }
.v25-final .v24-actions { margin-top: 36px; }
/* Démo en lien discret sous les deux actions (parcours libre-service, 2026-10-03). */
.neoo-home--v25 #main .v25-final__demo { margin: 16px 0 0; color: var(--nf-text-2, #b7bfd6); font-size: 14.5px; line-height: 1.5; }
.neoo-home--v25 #main .v25-final__demo a { color: #fff; font-weight: 500; text-decoration: underline; text-decoration-color: rgba(201, 191, 255, .7); text-underline-offset: 4px; }
.neoo-home--v25 #main .v25-final__demo a:hover { text-decoration-color: #fff; }
.v25-reassure { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 22px 0 0; padding: 0; list-style: none; color: #e3e6f2; font-size: 14.5px; }
.v25-reassure li { display: inline-flex; align-items: center; gap: 8px; }
.neoo-home--v25 #main .v25-reassure svg { width: 17px; height: 17px; color: var(--nf-success, #34c48f); }

/* ---------- Lecteur dédié : vidéo native, sous-titres, chapitres qui suivent la lecture ---------- */
.v25-player { width: min(calc(100vw - 32px), 1380px); max-width: none; max-height: calc(100vh - 32px); margin: auto; padding: clamp(16px, 2vw, 26px); overflow: auto; border: 1px solid rgba(255, 255, 255, .12); border-radius: 24px; background: #0a0b16; color: #fff; box-shadow: 0 40px 120px rgba(0, 0, 0, .65); }
.v25-player::backdrop { background: rgba(5, 6, 13, .86); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.v25-player[open] { animation: v25-player-in .38s var(--v24-ease); }
@keyframes v25-player-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.v25-player__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.v25-player__head .v24-eyebrow { margin-bottom: 6px; }
.neoo-home--v24 #main .v25-player h2 { font-size: clamp(24px, 2.2vw, 34px); }
.v25-player__meta { margin: 6px 0 0; color: var(--nf-text-2); font-size: 14px; }
.v25-player__close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255, 255, 255, .26); border-radius: 50%; background: rgba(255, 255, 255, .06); color: #fff; cursor: pointer; }
.v25-player__close:hover { background: rgba(255, 255, 255, .14); }
.v25-player__close svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.v25-player__body { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.v25-player__frame { overflow: hidden; aspect-ratio: 16 / 9; border-radius: 16px; background: #000; }
.v25-player__video { display: block; width: 100%; height: 100%; background: #000; }
/* Le film narré (2026-10-05) : un seul cadre, plus large (4K), qui tient dans la hauteur de la fenêtre avec son en-tête. */
.v25-player--film { width: min(calc(100vw - 32px), 1600px); }
.v25-player--film .v25-player__body { grid-template-columns: minmax(0, 1fr); }
.v25-player--film .v25-player__frame { width: min(100%, calc((100vh - 200px) * 16 / 9)); margin-inline: auto; }
.v25-player__chapters { max-height: min(62vh, calc((min(100vw - 32px, 1380px) - 370px) * 9 / 16)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.v25-player__chapters ol { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.v25-player__chapters button { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 8px 12px; overflow: hidden; border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--nf-text-2); font: inherit; font-size: 14.5px; text-align: left; cursor: pointer; transition: background-color .2s var(--v24-ease), color .2s var(--v24-ease); }
.v25-player__chapters button:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.v25-ch__time { color: var(--nf-text-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.v25-ch__bar { position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--v25-violet); transform: scaleX(var(--p, 0)); transform-origin: left center; opacity: 0; }
.v25-player__chapters button[aria-current="true"] { border-color: rgba(201, 191, 255, .4); background: rgba(106, 88, 255, .16); color: #fff; }
.v25-player__chapters button[aria-current="true"] .v25-ch__time { color: var(--v25-violet); }
.v25-player__chapters button[aria-current="true"] .v25-ch__bar { opacity: 1; }
.neoo-home--v25 .v25-player :is(button, video):focus-visible { outline: 3px solid var(--nf-focus, #b9c8ff); outline-offset: 2px; }

/* ---------- Apparitions (mêmes règles que la home : seulement sous html.v24-js) ---------- */
html.v24-js .neoo-home--v25 :is(.v25-week, .v25-topics)[data-v24-reveal] { transform: none; opacity: 1; }
html.v24-js .neoo-home--v25 :is(.v25-week, .v25-topics)[data-v24-reveal] > * { opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity .7s var(--v24-ease), transform .8s var(--v24-ease), border-color .3s var(--v24-ease), background-color .3s var(--v24-ease); transition-delay: calc(var(--i, 0) * 70ms); }
html.v24-js .neoo-home--v25 :is(.v25-week, .v25-topics)[data-v24-reveal].is-in > * { opacity: 1; transform: none; }
html.v24-js .neoo-home--v25 .v25-topics[data-v24-reveal].is-in > * { transition-delay: calc(var(--i, 0) * 40ms); }
html.v24-js .neoo-home--v25 .v25-story[data-v24-reveal] .v25-story__media { opacity: 0; transform: translate3d(-24px, 0, 0); transition: opacity .9s var(--v24-ease), transform 1s var(--v24-ease); }
html.v24-js .neoo-home--v25 .v25-story--flip[data-v24-reveal] .v25-story__media { transform: translate3d(24px, 0, 0); }
html.v24-js .neoo-home--v25 .v25-story[data-v24-reveal].is-in .v25-story__media { opacity: 1; transform: none; }
html.v24-js .neoo-home--v25 .v25-story[data-v24-reveal] .v25-story__zoom { opacity: 0; transform: translate3d(0, 16px, 0) scale(.96); transition: opacity .7s var(--v24-ease) .45s, transform .9s var(--v24-ease) .45s; }
html.v24-js .neoo-home--v25 .v25-story[data-v24-reveal].is-in .v25-story__zoom { opacity: 1; transform: none; }
.neoo-home--v25 :is(.v25-hero__copy > *, .v25-window) { animation: v25-rise .9s var(--v24-ease) both; animation-delay: calc(var(--d, 0) * 90ms); }
.v25-hero__copy > :nth-child(2) { --d: 1; } .v25-hero__copy > :nth-child(3) { --d: 2; } .v25-hero__copy > :nth-child(4) { --d: 3; }
.v25-hero__copy > :nth-child(5) { --d: 4; } .v25-hero__copy > :nth-child(6) { --d: 5; } .v25-window { --d: 6; }
@keyframes v25-rise { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
/* Le maillage respire lentement, comme celui de Forge (fs-breathe) ; les cartes modules flottent, chacune à son rythme. */
@media (prefers-reduced-motion: no-preference) {
  .v25-glow { animation: v25-breathe 16s ease-in-out infinite alternate; }
  .v25-mod { animation: v25-float 6.5s ease-in-out infinite alternate; animation-delay: calc(var(--i, 0) * -1.3s); }
}
@keyframes v25-breathe { from { transform: translateY(0) scale(1); } to { transform: translateY(-2%) scale(1.03); } }
@keyframes v25-float { from { translate: 0 0; } to { translate: 0 -6px; } }

/* ---------- Responsive ---------- */
/* Sous 1800 px, la ligne des coches passe devant les piles : elles descendent à hauteur de l’écran. */
@media (max-width: 1799px) {
  .v25-window { --v25-lift: .06; }
}
/* Les annotations demandent de la place à côté des piles et de la promesse (sa fin touchait la flèche de droite en
   anglais) : fenêtres larges et assez hautes seulement. */
@media (max-width: 1859px), (max-height: 899px) {
  .v25-note { display: none; }
}
/* Fenêtres basses (portables, navigateur 1920 × 1080 avec ses barres) : cartes plus compactes. */
@media (min-width: 1101px) and (max-height: 959px) {
  .v25-mod a { gap: 11px; min-width: 196px; padding: 10px 18px 10px 10px; border-radius: 15px; }
  .v25-mod__icon { width: 38px; height: 38px; border-radius: 11px; }
  .neoo-home--v25 .v25-mod__icon svg { width: 20px; height: 20px; }
  .v25-mod__text { gap: 1px; }
  .v25-mod__text strong { font-size: 15px; }
  .v25-mod__text span { font-size: 12px; }
}
/* Portables étroits : écran un peu plus petit, piles plus proches de l'écran, cartes plus petites. */
@media (min-width: 1101px) and (max-width: 1440px) {
  .v25-window { --v25-sw: clamp(400px, min(38vw, calc((100vh - 620px) * 1.78)), 900px); }
  .v25-mod--crm, .v25-mod--projects, .v25-mod--finance, .v25-mod--forge { --x: 40px; }
  .v25-mod--sales, .v25-mod--stock, .v25-mod--support, .v25-mod--automation { --x: 62px; }
  .v25-mod a { min-width: 0; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 14px; }
  .v25-mod__icon { width: 36px; height: 36px; border-radius: 10px; }
  .neoo-home--v25 .v25-mod__icon svg { width: 19px; height: 19px; }
  .v25-mod__text strong { font-size: 14.5px; }
  .v25-mod__text span { font-size: 11.5px; }
}
/* Tablettes : le portable en pleine largeur, puis les repères, puis les cartes modules en grille. */
@media (max-width: 1100px) {
  .v25-window { --v25-sw: min(900px, calc(100vw - 48px)); --v25-ew: max(170vw, 1200px); }
  .v25-stage { display: contents; }
  .v25-screen { order: 1; height: auto; }
  .v25-film { height: auto; aspect-ratio: 16 / 9; }
  .v25-deck { position: relative; top: auto; left: auto; order: 1; width: calc(var(--v25-sw) * 1.05); margin-top: -3px; translate: none; }
  .v25-earth { top: calc(var(--v25-sw) * .5625 + 14px + var(--v25-deck) - var(--v25-ew) * .1425); }
  .v25-stats { order: 2; }
  /* Rangées de quatre (trois puis deux plus étroit), la dernière centrée. */
  .v25-orbit { --cols: 4; position: static; order: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; width: min(900px, calc(100% - 48px)); margin: 30px auto 0; pointer-events: auto; }
  .v25-film__caption { order: 4; }
  .v25-mod { position: static; flex: 0 1 calc((100% - (var(--cols) - 1) * 12px) / var(--cols)); min-width: 0; animation: none; }
  .neoo-home--v25 .v25-mod a { height: 100%; min-width: 0; gap: 10px; padding: 9px 12px 9px 9px; border-radius: 14px; transform: none; }
  .v25-mod a:hover, .v25-mod a:focus-visible { transform: translateY(-2px); }
  .v25-mod__icon { width: 36px; height: 36px; border-radius: 10px; }
  .neoo-home--v25 .v25-mod__icon svg { width: 19px; height: 19px; }
  .v25-mod__text strong { font-size: 14.5px; }
  .v25-mod__text span { font-size: 11.5px; }
}
@media (max-width: 900px) {
  .v25-orbit { --cols: 3; }
}
@media (max-width: 1180px) {
  .v25-week { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 0; }
  .v25-week::before { display: none; }
  .v25-week__when { position: static; margin-bottom: 14px; padding: 0; background: none; }
  .v25-topics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .v25-split { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 20px; }
}
@media (max-width: 900px) {
  .v25-story, .v25-story--flip { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .v25-story--flip .v25-story__media { order: 0; }
  .v25-topics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .v25-peppol__card { grid-template-columns: minmax(0, 1fr); }
  .v25-player__body { grid-template-columns: minmax(0, 1fr); }
  .v25-player__chapters { max-height: none; overflow: visible; }
  .v25-player__chapters ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .v25-hero { padding-top: 48px; }
  .neoo-home--v25 #main .v25-pill { gap: 8px; margin-bottom: 22px; padding: 7px 12px 7px 10px; font-size: 13px; text-align: left; }
  .v25-hero__actions { flex-direction: column; align-items: stretch; }
  .v25-hero__actions .v24-btn { width: 100%; }
  .v25-watch { width: 100%; box-sizing: border-box; }
  /* Coches en colonne, alignées à gauche dans un bloc centré (une coche longue passe sur deux lignes). */
  .v25-proof { flex-direction: column; align-items: flex-start; gap: 10px; width: fit-content; max-width: 100%; text-align: left; }
  .v25-proof li { align-items: flex-start; }
  .neoo-home--v25 #main .v25-proof svg { margin-top: 1px; }
  /* Deux lignes comme sur le visuel, même sur un téléphone de 360 px. */
  .neoo-home--v25 #v25-title { --cb-title-hero: clamp(31px, 9.2vw, 44px); }
  .v25-hero__scope { font-size: 15px; }
  .v25-window { --v25-glow-up: 420px; --v25-glow-h: 640px; --v25-sw: calc(100vw - 32px); --v25-ew: 240vw; --v25-deck: 10px; margin-top: 36px; }
  .v25-earth { top: calc(var(--v25-sw) * .5625 + 8px + var(--v25-deck) - var(--v25-ew) * .1425); }
  .v25-screen { padding: 5px 5px 7px; border-radius: 14px 14px 6px 6px; }
  .v25-film { border-radius: 9px; }
  .v25-film__play { width: 60px; height: 60px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3), 0 0 0 8px rgba(106, 88, 255, .16), 0 10px 24px rgba(60, 44, 200, .45); }
  .neoo-home--v25 #main .v25-film__play svg { width: 22px; height: 22px; margin-left: 3px; }
  .v25-film__toggle { display: none; }
  .v25-deck::after { height: 40px; }
  /* Repères en deux rangées de deux. */
  .v25-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; width: calc(100% - 32px); margin-top: 30px; }
  .v25-stat { max-width: none; padding: 2px 10px; }
  .v25-stat + .v25-stat { border-left: 0; }
  .v25-stat:nth-child(even) { border-left: 1px solid rgba(214, 224, 255, .2); }
  .v25-stat strong { font-size: 24px; }
  .v25-stat--place strong { font-size: 15px; }
  .v25-stat span { font-size: 13px; }
  .v25-orbit { --cols: 2; gap: 10px; width: calc(100% - 32px); margin-top: 28px; }
  .v25-mod { flex-basis: calc((100% - 10px) / 2); }
  .neoo-home--v25 .v25-mod a { padding: 10px 12px 10px 10px; gap: 10px; }
  .v25-mod__icon { width: 34px; height: 34px; border-radius: 9px; }
  .neoo-home--v25 .v25-mod__icon svg { width: 18px; height: 18px; }
  .v25-mod__text strong { font-size: 14px; }
  .v25-mod__text span { font-size: 11.5px; }
  .v25-film__caption { width: calc(100% - 32px); }
  .v25-week { grid-template-columns: minmax(0, 1fr); }
  .v25-story__frame { border-radius: 14px; }
  .v25-story__play { top: 12px; right: 12px; bottom: auto; width: 46px; height: 46px; box-shadow: 0 0 0 6px rgba(106, 88, 255, .22), 0 10px 24px rgba(106, 88, 255, .45); }
  .v25-story__zoom { position: relative; left: auto; bottom: auto; width: min(var(--zw, 420px), 88%); margin: -34px 0 0 12px; border-radius: 10px; box-shadow: 0 0 0 4px rgba(106, 88, 255, .3), 0 18px 40px rgba(0, 0, 0, .5); }
  .v25-story__media figcaption { margin-top: 12px; text-align: left; }
  .v25-story__text { font-size: 16.5px; }
  .v25-tour__panel { width: calc(100% - 16px); border-radius: 24px; }
  .v25-tour__panel > .v24-shell { width: calc(100% - 40px); }
  .v25-tour__poster { border-radius: 16px; }
  .v25-tour__stage figcaption { text-align: left; }
  .v25-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .v25-topic__text { display: none; }
  /* Comparaison en cartes : une carte par critère, la réponse de Neoo en premier. */
  .v25-compare__table, .v25-compare__table tbody, .v25-compare__table tr, .v25-compare__table th, .v25-compare__table td { display: block; }
  .v25-compare__table thead { display: none; }
  .v25-compare__table tbody tr { display: flex; flex-direction: column; margin-bottom: 14px; overflow: hidden; border: 1px solid var(--v25-line); border-radius: 18px; background: var(--v25-surface); }
  .v25-compare__table tbody th { order: -2; padding: 16px 18px 8px; border: 0; font-size: 17px; }
  .v25-compare__table td, .v25-compare__table .v25-compare__cell { padding: 10px 18px 12px; border: 0; }
  .neoo-home--v25 #main .v25-compare__cell svg { display: none; }
  .v25-compare__table td::before { content: attr(data-label); display: block; margin-bottom: 3px; color: var(--nf-text-3); font-size: 11.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
  .v25-compare__table .v25-compare__cell--neoo { order: -1; margin: 0 10px 6px; border: 1px solid rgba(201, 191, 255, .34); border-radius: 12px; }
  .v25-compare__table tbody tr:last-child .v25-compare__cell--neoo { border-radius: 12px; border-bottom-color: rgba(201, 191, 255, .34); }
  .v25-compare__table .v25-compare__cell--neoo::before { color: var(--v25-violet); }
  .v25-steps { grid-template-columns: minmax(0, 1fr); }
  .v25-player { width: 100vw; max-height: 100dvh; height: 100dvh; padding: 14px; border: 0; border-radius: 0; }
  .v25-player__chapters ol { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .v25-film__video, .v25-watch, .v25-mod a, .v25-film__play, .v25-story__frame img, .v25-story__play, .v25-tour__poster img, .v25-tour__btn, .v25-topic, .neoo-home--v25 #main .v24-btn { transition: none; }
  .v25-watch__play::before, .v25-tour__btn::before { animation: none; opacity: 0; }
  .v25-player[open] { animation: none; }
  .neoo-home--v25 :is(.v25-hero__copy > *, .v25-window) { animation: none; }
  html.v24-js .neoo-home--v25 :is(.v25-week, .v25-topics)[data-v24-reveal] > *, html.v24-js .neoo-home--v25 .v25-story[data-v24-reveal] :is(.v25-story__media, .v25-story__zoom) { opacity: 1; transform: none; }
}
