/* /partners/vertical-publishers/ dans le style de la home V29 « lumière » (2026-10-10), comme /solutions/crm-ventes.
   Se charge après neoo-home-v29.css (jetons, en-tête, pied, boutons, titres, entrées) et neoo-solutions-v29.css (hero,
   écrans, parcours, FAQ) ; préfixe v29vp-. Plan : docs/partners-vertical-v29/DESIGN.md.
   Généré par scripts/generate-neoo-partner-vertical-v29.mjs, piloté par neoo-home-v29.js (.is-in sur [data-v29-scene]).
   Animation conservée : le schéma réseau de la couche motion (neoo-motion.js, motif « network »), ici dans la carte vitrée
   de la hero. Sans JavaScript ou en mouvement réduit : schéma complet et immobile. */

.v29-vertical [hidden] { display: none !important; }
.v29vp-h2 { max-width: 18em; }
.v29vp-h3 { margin: 0; font-size: clamp(26px, 2.2vw, 34px); font-weight: 300; letter-spacing: -.035em; line-height: 1.15; }
.v29vp-lead { max-width: 52ch; }
.v29vp-label { margin: 48px 0 0; font-size: 12px; font-weight: 500; }
.v29vp-note { display: flex; align-items: flex-start; gap: 12px; max-width: 86ch; line-height: 1.55; letter-spacing: .01em; }
.v29vp-note .v29-i { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--v29-accent); stroke-width: 1.8; }

/* ---------- Hero : texte à gauche, schéma réseau animé dans une carte vitrée à droite ---------- */
.v29vp-hero > .v29-plate img { object-position: 70% 50%; }
.v29vp-hero__copy { padding-bottom: 150px; }
.v29vp-hero__copy > * { max-width: min(620px, 45vw); }
.v29vp-hero__title { font-size: clamp(40px, 4.1vw, 68px); }
.v29vp-hero__title .v29-line:last-of-type > span { color: var(--v29-accent); }
.v29vp-hero__lead { max-width: 36ch; font-size: clamp(18px, 1.4vw, 22px); }
.v29vp-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 22px; padding: 0; list-style: none; color: var(--v29-soft); font-size: 14px; }
.v29vp-crumbs li + li::before { content: "/neoo.html"; margin-right: 10px; opacity: .6; }
.v29vp-crumbs a { color: var(--v29-muted) !important; text-decoration: underline; text-decoration-color: rgba(74, 78, 105, .35); text-underline-offset: 3px; }
.v29vp-crumbs a:hover { color: var(--v29-accent) !important; }
.v29vp-crumbs [aria-current] { color: var(--v29-ink); }
.v29vp-hero .v29s-hero__kicker { margin-bottom: 22px; }
.v29vp-hero__foot { padding-bottom: 34px; }
.v29vp-proof { display: flex; flex-wrap: wrap; gap: 10px 30px; margin: 0; padding: 0; list-style: none; color: var(--v29-muted); font-size: 15px; font-weight: 500; letter-spacing: .02em; }
.v29vp-proof li { display: inline-flex; align-items: center; gap: 9px; }
.v29vp-proof .v29-i { width: 20px; height: 20px; padding: 4px; border-radius: 50%; background: rgba(34, 165, 101, .16); color: #17804a; stroke-width: 2.6; }

.v29vp-net { position: absolute; z-index: 2; top: 50%; left: calc(50% + 24px); width: min(420px, 30vw); margin: 0; padding: 26px 26px 22px; border-radius: 14px; background: var(--v29-glass); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); box-shadow: 0 36px 80px -40px rgba(60, 40, 10, .55), 0 0 0 1px rgba(21, 23, 46, .06); translate: 0 -50%; }
.v29vp-net__kicker { font-size: 12px; font-weight: 500; color: var(--v29-accent); }
.v29vp-net__svg { display: block; width: 100%; height: auto; margin: 14px 0 6px; overflow: visible; }
.v29vp-net__svg * { transform-box: fill-box; transform-origin: center; }
.v29vp-net__rail { fill: none; stroke: rgba(75, 46, 242, .3); stroke-width: 1.4; stroke-dasharray: 2 6; stroke-linecap: round; }
.v29vp-net__wire { fill: none; stroke: rgba(75, 46, 242, .55); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 1; }
.v29vp-net__disc { fill: var(--v29-accent); filter: drop-shadow(0 10px 18px rgba(75, 46, 242, .4)); }
.v29vp-net__ping { fill: none; stroke: rgba(75, 46, 242, .55); stroke-width: 2; opacity: 0; }
.v29vp-net__brand { fill: #fff; font-family: var(--v29-font); font-size: 20px; font-weight: 700; letter-spacing: -.065em; }
.v29vp-net__node > circle { fill: var(--v29-paper); stroke: rgba(21, 23, 46, .14); stroke-width: 1.4; }
.v29vp-net__node--you > circle { stroke: var(--v29-accent); stroke-width: 1.8; }
.v29vp-net__icon { fill: none; stroke: var(--v29-ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.v29vp-net__node--you .v29vp-net__icon { stroke: var(--v29-accent); }
.v29vp-net__chip rect { fill: var(--v29-accent); }
.v29vp-net__chip .v29vp-net__icon { stroke: #fff; }
.v29vp-net__coin circle { fill: var(--v29-green); }
.v29vp-net__chip, .v29vp-net__coin { opacity: 0; }
.v29vp-net__ok circle { fill: var(--v29-green); stroke: var(--v29-paper); stroke-width: 3; }
.v29vp-net__ok path { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.v29vp-net__label { fill: var(--v29-muted); font-family: var(--v29-font); font-size: 15px; font-weight: 500; letter-spacing: .01em; }
.v29vp-net__label--core { fill: var(--v29-accent); font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; }
.v29vp-net__label--you { fill: var(--v29-ink); }
.v29vp-net__steps { display: grid; gap: 8px; margin: 12px 0 0; padding: 14px 0 0; border-top: 1px solid var(--v29-line); list-style: none; font-size: 15px; line-height: 1.4; }
.v29vp-net__steps li { display: flex; align-items: baseline; gap: 10px; color: var(--v29-ink); transition: opacity .4s, color .4s; }
.v29vp-net__steps li span { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(75, 46, 242, .1); color: var(--v29-accent); font-size: 12px; font-weight: 600; transform: translateY(-1px); }
.v29vp-net__note { margin: 12px 0 0; color: var(--v29-soft); font-size: 12.5px; line-height: 1.45; }

/* Entrées du schéma quand la hero reçoit .is-in (mêmes délais que neoo-motion.css), puis trois boucles : le module part
   de votre verticale, passe par Neoo et rejoint le client ; la pièce revient vers vous ; la légende suit l'étape en cours. */
.v29-js .v29vp-hero:not(.is-in) :is(.v29vp-pop, .v29vp-draw) { visibility: hidden; }
.v29-js .v29vp-hero.is-in :is(.v29vp-pop, .v29vp-draw) { animation-duration: var(--t, .6s); animation-timing-function: cubic-bezier(.22, 1, .36, 1); animation-fill-mode: both; animation-delay: calc(var(--d, 0s) + .35s); }
.v29-js .v29vp-hero.is-in .v29vp-pop { animation-name: v29vp-pop; }
.v29-js .v29vp-hero.is-in .v29vp-draw { --t: 1s; animation-name: v29vp-draw; }
.v29-js .v29vp-hero.is-in .v29vp-loop { animation-duration: 2.8s; animation-timing-function: linear; animation-iteration-count: 3; animation-fill-mode: both; animation-delay: calc(var(--d, 2s) + .35s); }
.v29-js .v29vp-hero.is-in .v29vp-net__ping { animation-name: v29vp-ping; animation-timing-function: ease-out; }
.v29-js .v29vp-hero.is-in .v29vp-net__chip { animation-name: v29vp-chip; animation-duration: 4.2s; transform-box: view-box; transform-origin: 0 0; }
.v29-js .v29vp-hero.is-in .v29vp-net__coin { animation-name: v29vp-coin; animation-duration: 4.2s; transform-box: view-box; transform-origin: 0 0; }
.v29-js .v29vp-hero.is-in .v29vp-net__steps li { animation: v29vp-step-1 4.2s linear 2.35s 3; }
.v29-js .v29vp-hero.is-in .v29vp-net__steps li:nth-child(2) { animation-name: v29vp-step-2; }
.v29-js .v29vp-hero.is-in .v29vp-net__steps li:nth-child(3) { animation-name: v29vp-step-3; }
@keyframes v29vp-pop { 0% { opacity: 0; transform: scale(.55); } 70% { opacity: 1; transform: scale(1.06); } 100% { opacity: 1; transform: none; } }
@keyframes v29vp-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes v29vp-ping { 0% { opacity: .8; transform: none; } 80%, 100% { opacity: 0; transform: scale(1.6); } }
@keyframes v29vp-chip { 0% { opacity: 0; transform: translate(318px, 206px); } 8% { opacity: 1; } 45% { transform: translate(210px, 116px); } 55% { transform: translate(210px, 116px); } 92% { opacity: 1; transform: translate(102px, 206px); } 100% { opacity: 0; transform: translate(102px, 206px); } }
@keyframes v29vp-coin { 0% { opacity: 0; transform: translate(118px, 236px); } 12% { opacity: 1; } 88% { opacity: 1; } 100% { opacity: 0; transform: translate(302px, 236px); } }
/* Chaque étape est mise en avant pendant un tiers du cycle du module (1,4 s), les autres restent estompées ; hors des
   trois cycles, la légende est entière. */
@keyframes v29vp-step-1 { 0%, 32% { opacity: 1; color: var(--v29-accent); } 34%, 100% { opacity: .42; } }
@keyframes v29vp-step-2 { 0%, 32% { opacity: .42; } 34%, 65% { opacity: 1; color: var(--v29-accent); } 67%, 100% { opacity: .42; } }
@keyframes v29vp-step-3 { 0%, 65% { opacity: .42; } 67%, 100% { opacity: 1; color: var(--v29-accent); } }

/* ---------- 01 Le constat ---------- */
.v29vp-pain__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; margin: 22px 0 0; padding: 0; list-style: none; }
.v29vp-pain__item { display: grid; align-content: start; gap: 14px; padding-top: 26px; border-top: 1px solid var(--v29-line); }
.v29vp-pain__num { color: var(--v29-accent); font-size: 14px; font-weight: 500; letter-spacing: .1em; }
.v29vp-pain__item h3 { margin: 0; font-size: clamp(22px, 1.8vw, 28px); font-weight: 300; letter-spacing: -.035em; line-height: 1.15; }
.v29vp-pain__item p { margin: 0; color: var(--v29-muted); font-size: 17px; line-height: 1.55; }

/* ---------- 02 La répartition ---------- */
.v29vp-role__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; gap: clamp(40px, 6vw, 100px); margin-top: 56px; }
.v29vp-role__skills .v29vp-label { margin: 0 0 12px; }
.v29vp-skills { display: grid; margin: 28px 0 0; padding: 0; list-style: none; }
.v29vp-skills li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 18px 0; border-top: 1px solid var(--v29-line); }
.v29vp-skills li:last-child { border-bottom: 1px solid var(--v29-line); }
.v29vp-skills li > span { color: var(--v29-accent); font-size: 14px; font-weight: 500; letter-spacing: .08em; line-height: 1.9; }
.v29vp-skills strong { display: block; font-size: 19px; font-weight: 400; letter-spacing: -.01em; }
.v29vp-skills p { margin: 4px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.5; }
.v29vp-proofcard { margin: 0; }
.v29vp-proofcard img { display: block; width: 100%; height: auto; }
.v29vp-proofcard figcaption { margin-top: 26px; padding: 26px 28px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); }
.v29vp-proofcard figcaption .v29-micro { color: var(--v29-accent); font-size: 12px; font-weight: 500; }
.v29vp-proofcard figcaption h3 { margin: 10px 0 0; font-size: clamp(22px, 1.8vw, 28px); font-weight: 300; letter-spacing: -.035em; line-height: 1.2; }
.v29vp-proofcard figcaption p:not(.v29-micro) { margin: 12px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.55; }
.v29vp-proofcard figcaption small { display: block; margin-top: 14px; color: var(--v29-soft); font-size: 13px; letter-spacing: .03em; }
.v29vp-neighbours { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(40px, 6vw, 110px); margin-top: 72px; }
.v29vp-neighbours > .v29-micro { grid-column: 1 / -1; margin-bottom: 4px; font-size: 12px; font-weight: 500; }
.v29vp-neighbours .v29s-related__link strong { display: block; font-weight: 300; }
.v29vp-neighbours .v29s-related__link small { display: block; margin-top: 4px; color: var(--v29-soft); font-size: 15px; letter-spacing: 0; }

/* ---------- 03 Marchés à saisir ---------- */
.v29vp-markets { position: relative; overflow: hidden; isolation: isolate; padding: clamp(110px, 14vh, 160px) 0 clamp(90px, 12vh, 130px); }
.v29vp-markets > .v29-plate--soft { transform: translate3d(0, calc(var(--p, 0) * 3%), 0) scale(1.06); }
.v29vp-markets::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--v29-cream) 0, rgba(251, 247, 241, .45) 22%, rgba(251, 247, 241, .45) 78%, var(--v29-cream) 100%); pointer-events: none; }
.v29vp-markets__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 56px; }
.v29vp-market { display: grid; align-content: start; gap: 16px; padding: 26px 24px 24px; border-radius: 12px; background: var(--v29-glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 24px 60px -40px rgba(60, 40, 10, .5), 0 0 0 1px rgba(21, 23, 46, .05); }
.v29vp-market h3 { margin: 0; font-size: 21px; font-weight: 400; letter-spacing: -.015em; line-height: 1.25; }
.v29vp-market p { margin: 0; }
.v29vp-market .v29-micro { display: block; margin-bottom: 4px; font-size: 11.5px; }
.v29vp-market__fit strong { display: block; color: var(--v29-accent); font-size: clamp(34px, 2.6vw, 42px); font-weight: 300; letter-spacing: -.05em; line-height: 1; }
.v29vp-market__need { color: var(--v29-muted); font-size: 15.5px; line-height: 1.5; }
.v29vp-market--cta { align-content: space-between; background: var(--v29-paper); box-shadow: 0 0 0 1.5px var(--v29-accent), 0 30px 70px -40px rgba(75, 46, 242, .45); }
.v29vp-market--cta h3 { font-size: 24px; font-weight: 300; letter-spacing: -.03em; }
.v29vp-market--cta .v29-btn { justify-self: start; min-height: 50px; padding: 0 18px; font-size: 16px; }
.v29vp-markets__foot { margin-top: 36px; }
.v29vp-boundaries { max-width: 900px; margin-top: 18px; border-top: 1px solid var(--v29-line); }
.v29vp-boundaries > div { padding: 0 56px 26px 0; color: var(--v29-muted); font-size: 16px; line-height: 1.6; }
.v29vp-boundaries > div p { margin: 0; padding: 0; }
.v29vp-boundaries ul { display: grid; gap: 6px; margin: 14px 0 0; padding-left: 20px; }
.v29vp-markets + .v29s-section { padding-top: clamp(64px, 9vh, 100px); }

/* ---------- 04 Propriété ---------- */
.v29vp-ownership__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
.v29vp-owner { padding: 32px 30px 30px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); }
.v29vp-owner--you { box-shadow: 0 0 0 1.5px var(--v29-accent), 0 30px 70px -40px rgba(75, 46, 242, .45); }
.v29vp-owner h3 { margin: 0 0 22px; font-size: clamp(21px, 1.6vw, 25px); font-weight: 300; letter-spacing: -.03em; line-height: 1.2; }
.v29vp-owner--you h3 { color: var(--v29-accent); }
.v29vp-owner ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; font-size: 16.5px; line-height: 1.4; }
.v29vp-owner li { display: flex; align-items: flex-start; gap: 12px; }
.v29vp-owner .v29-i { flex: none; width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: rgba(75, 46, 242, .1); color: var(--v29-accent); stroke-width: 2.6; }

/* ---------- 05 Modèle économique ---------- */
.v29vp-economics__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: 36px clamp(40px, 6vw, 110px); }
.v29vp-economics .v29vp-label { margin-top: 36px; }
.v29vp-streams { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.v29vp-streams li { padding: 8px 15px; border-radius: 999px; background: var(--v29-paper); box-shadow: inset 0 0 0 1px var(--v29-line); font-size: 15px; }
.v29vp-economics__cards { display: grid; gap: 18px; }
.v29vp-revenue { display: grid; grid-template-columns: 54px minmax(0, 1fr); column-gap: 12px; padding: 26px 28px; border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); }
.v29vp-revenue > span { grid-row: span 2; color: var(--v29-accent); font-size: 14px; font-weight: 500; letter-spacing: .08em; line-height: 2; }
.v29vp-revenue h3 { margin: 0; font-size: 22px; font-weight: 400; letter-spacing: -.02em; }
.v29vp-revenue p { margin: 8px 0 0; color: var(--v29-muted); font-size: 16px; line-height: 1.55; }
.v29vp-economics__note { grid-column: 1 / -1; margin-top: 0; }

/* ---------- 06 Qualification (carte du parcours, comme « Du brouillon à la facture ») ---------- */
.v29vp-journey { margin-top: 0; }
.v29vp-journey__steps .v29s-flow__step h3 { font-size: 19px; }
.v29vp-journey .v29s-actions { margin-top: 30px; }

/* ---------- FAQ, principes ---------- */
.v29-vertical .v29s-faq .v29-kicker { margin-bottom: 18px; }
.v29vp-principles { padding-top: 0; }
.v29vp-principles__box { border-radius: 12px; background: var(--v29-paper); box-shadow: 0 0 0 1px var(--v29-line); }
.v29vp-principles__box > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 30px; cursor: pointer; list-style: none; }
.v29vp-principles__box > summary::-webkit-details-marker { display: none; }
.v29vp-principles__box > summary strong { display: block; font-size: clamp(20px, 1.6vw, 24px); font-weight: 300; letter-spacing: -.025em; }
.v29vp-principles__box > summary small { display: block; margin-top: 4px; color: var(--v29-soft); font-size: 15px; }
.v29vp-principles__box > summary .v29-i { flex: none; width: 34px; height: 34px; padding: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--v29-line); color: var(--v29-accent); transition: transform .35s var(--v29-ease), background-color .25s, color .25s; }
.v29vp-principles__box[open] > summary .v29-i { transform: rotate(45deg); background: var(--v29-accent); color: #fff; box-shadow: none; }
.v29vp-principles__body { padding: 8px 30px 32px; border-top: 1px solid var(--v29-line); }
.v29vp-principles__body .v29vp-h3 { margin-top: 26px; }
.v29vp-principles__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 36px; margin-top: 30px; }
.v29vp-principles__grid h3 { margin: 0; font-size: 18px; font-weight: 500; letter-spacing: -.01em; }
.v29vp-principles__grid p { margin: 8px 0 0; color: var(--v29-muted); font-size: 15.5px; line-height: 1.55; }

/* ---------- Appel final (pied de page V29) ---------- */
.v29-final.v29vp-final p.v29-micro { margin: 0 0 18px; color: var(--v29-accent); font-size: 13px; font-weight: 500; }
.v29vp-final__actions { justify-items: end; }
.v29vp-final__actions .v29-btn { min-width: 290px; min-height: 56px; }
.v29-final .v29vp-final__micro { max-width: 40ch; margin: 4px 0 0; color: var(--v29-muted); font-size: 14px; line-height: 1.5; text-align: right; }

/* ---------- Adaptatif ---------- */
@media (max-width: 1180px) {
  .v29vp-pain__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v29vp-markets__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v29vp-principles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Sous 1100 px, la carte ne tient plus à côté du texte : texte sur crème, photo, puis carte qui chevauche la photo. */
@media (max-width: 1100px) {
  .v29vp-hero { min-height: 0; background: var(--v29-cream); }
  .v29vp-hero > .v29-plate { display: block; position: relative; inset: auto; order: 2; width: 100%; aspect-ratio: 16 / 10; transform: none; }
  .v29vp-hero > .v29-plate img { object-position: 78% 40%; }
  .v29vp-hero .v29-hero__wash, .v29vp-hero .v29-hero__sun { display: none; }
  .v29vp-hero__copy { order: 1; padding-top: 128px; padding-bottom: 40px; }
  .v29vp-hero__copy > * { max-width: 680px; }
  .v29vp-net { position: relative; top: auto; left: auto; order: 3; width: min(100% - 2 * var(--v29-gutter), 520px); margin: -140px auto 0; translate: none; }
  .v29vp-hero__foot { position: static; order: 4; padding: 28px 0 8px; }
  .v29vp-role__grid, .v29vp-economics__grid { grid-template-columns: minmax(0, 1fr); }
  .v29vp-ownership__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
@media (max-width: 860px) {
  .v29vp-hero__copy { padding-top: 104px; }
  .v29vp-crumbs ol { font-size: 13px; }
  .v29vp-hero .v29s-hero__kicker { margin-bottom: 16px; }
  .v29vp-hero > .v29-plate { aspect-ratio: 5 / 4; }
  .v29vp-net { margin-top: -90px; padding: 20px 18px 18px; }
  .v29vp-net__steps { font-size: 14.5px; }
  .v29vp-proof { flex-direction: column; gap: 10px; }
  .v29vp-pain__list, .v29vp-markets__grid, .v29vp-principles__grid { grid-template-columns: minmax(0, 1fr); }
  .v29vp-label { margin-top: 36px; }
  .v29vp-role__grid { margin-top: 40px; }
  .v29vp-neighbours { grid-template-columns: minmax(0, 1fr); margin-top: 48px; }
  .v29vp-markets { padding: 84px 0 72px; }
  .v29vp-markets__grid { margin-top: 40px; }
  .v29vp-boundaries > div { padding-right: 0; }
  .v29vp-owner { padding: 26px 22px 24px; }
  .v29vp-revenue { grid-template-columns: minmax(0, 1fr); padding: 22px; }
  .v29vp-revenue > span { grid-row: auto; }
  .v29vp-principles__box > summary { padding: 20px; }
  .v29vp-principles__body { padding: 4px 20px 24px; }
  .v29vp-final__actions { justify-items: start; }
  .v29vp-final__actions .v29-btn { min-width: 0; width: 100%; }
  .v29-final .v29vp-final__micro { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .v29-js .v29vp-hero:not(.is-in) :is(.v29vp-pop, .v29vp-draw) { visibility: visible; }
  .v29-js .v29vp-hero.is-in :is(.v29vp-pop, .v29vp-draw, .v29vp-loop), .v29-js .v29vp-hero.is-in .v29vp-net__steps li { animation: none !important; }
}
