/* ── index-structure.css — structure de index.html, indépendante du style ──
   Zéro valeur en dur : toutes les couleurs/tailles/rotations/ombres/polices
   viennent de tokens/style/<style>.css (personnalité visuelle) et
   tokens/layout/index.css (cardinalité liée au contenu — colonnes).
   Chaque propriété a un point de surcharge PAR SÉLECTEUR (ex. --pq-card-fw-heavy
   avant --fw-heavy) pour que deux styles puissent diverger sur un même axe
   partagé (ex. base : poids de police différent par élément ; grunge : 800
   uniforme partout). Un style qui ne redéfinit rien hérite du comportement
   de lv-common.css via la chaîne de repli.
   Charger dans cet ordre :
     lv-common.css → tokens/style/<style>.css → tokens/layout/index.css → index-structure.css
   Remplace les fichiers styles/index-<style>-0.css : une seule structure
   pour toutes les variantes graphiques de cette page (grunge, base...). */

body     { background: var(--body-background, var(--paper)); color: var(--body-color, var(--ink)); background-image: var(--texture-noise); }

h1, h2, h3, h4     { font-family: var(--h1-group-font-family, var(--h1-group-font-heading, var(--font-heading))); font-weight: var(--h1-group-fw-heavy, var(--fw-heavy)); letter-spacing: var(--h1-group-ls-heading, var(--ls-heading)); }
h1    { font-size: var(--h1-fs, clamp(2rem, 1.8rem + 1.8vw, 3.4rem)); }
h2    { font-size: var(--h2-fs, clamp(1.4rem, 1.2rem + 1.1vw, 2.2rem)); }
h3    { font-size: var(--h3-fs, clamp(1rem, 0.9rem + 0.45vw, 1.25rem)); }
h4    { font-size: var(--h4-fs, 0.95rem); }
.nav-links    { gap: var(--nav-links-gap, 1.5rem); }
h1, h2     { text-transform: var(--h1-group-case-loud, var(--case-loud)); }

.label     { display: var(--label-display, inline-block); color: var(--label-color, var(--accent)); font-weight: var(--label-fw-heavy, var(--fw-heavy)); letter-spacing: var(--label-ls-loud, var(--ls-loud)); border: var(--label-border, var(--label-border-w, var(--border-w)) var(--label-border-style-a, var(--border-style-a)) var(--accent)); padding: var(--label-label-padding, var(--label-padding)); transform: var(--label-transform, rotate(var(--label-tilt-label, var(--tilt-label)))); border-radius: var(--label-rad, var(--rad)); opacity: var(--label-op-90, var(--op-90)); }
.process .label     { color: var(--process-label-color, var(--tone-on-dark)); border-color: var(--process-label-border-color, var(--tone-on-dark)); }

[contenteditable]:hover     { box-shadow: var(--contenteditable-hover-box-shadow, inset 0 0 0 var(--ce-outline-w) var(--accent-tint)); }
[contenteditable]:focus     { box-shadow: var(--contenteditable-focus-box-shadow, inset 0 0 0 var(--ce-focus-outline-w) var(--accent)); background: var(--contenteditable-focus-background, var(--accent-tint)); }

#export-btn     { background: var(--export-btn-background, var(--ink)); border-radius: var(--export-btn-rad, var(--rad)); }

/* Nav */
nav     { background: var(--nav-background, var(--nav-nav-bg, var(--nav-bg))); backdrop-filter: var(--nav-backdrop-filter, blur(var(--nav-nav-blur, var(--nav-blur)))); border-bottom: var(--nav-border-bottom, var(--nav-border-w, var(--border-w)) var(--nav-border-style-a, var(--border-style-a)) var(--ink)); }
.nav-back     { color: var(--nav-back-color, var(--ink2)); }
.nav-back:hover     { color: var(--nav-back-hover-color, var(--accent)); }
.nav-links a     { color: var(--nav-links-a-color, var(--ink)); font-weight: var(--nav-links-a-fw-strong, var(--fw-strong)); text-transform: var(--nav-links-a-case-loud, var(--case-loud)); font-size: var(--nav-links-a-nav-link-fs, var(--nav-link-fs)); letter-spacing: var(--nav-links-a-ls-tight, var(--ls-tight)); }
.nav-links a:hover     { color: var(--nav-links-a-hover-color, var(--accent)); text-decoration: var(--nav-links-a-hover-decoration-hover, var(--decoration-hover)); }
.nav-badge     { border-radius: var(--nav-badge-rad, var(--rad)); background: var(--nav-badge-background, var(--accent)); transform: var(--nav-badge-transform, rotate(var(--nav-badge-tilt-nav-badge, var(--tilt-nav-badge)))); }
.nav-cta     { background: var(--nav-cta-background, var(--ink)); color: var(--nav-cta-color, var(--paper)); border-radius: var(--nav-cta-rad, var(--rad)); font-weight: var(--nav-cta-fw-heavy, var(--fw-heavy)); text-transform: var(--nav-cta-case-loud, var(--case-loud)); transform: var(--nav-cta-transform, rotate(var(--nav-cta-tilt-nav-cta, var(--tilt-nav-cta)))); }
.nav-cta:hover     { opacity: var(--op-100); background: var(--nav-cta-hover-background, var(--accent)); }

/* Hero (index : .hero-tag / .hero h1 / .btn-rose) */
.hero     { background: var(--hero-background, var(--paper)); background-image: var(--hero-bg-glow-hero, var(--bg-glow-hero)), var(--texture-noise); color: var(--hero-color, var(--ink)); padding: var(--hero-hero-padding, var(--hero-padding)); position: relative; overflow: hidden; border-bottom: var(--hero-border-bottom, var(--hero-border-w, var(--border-w)) var(--hero-border-style-a, var(--border-style-a)) var(--ink)); }

.hero::before,
.visibility::before,
.voice-panel::before,
.leads-cta-block::before     { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-size: var(--bg-image-fit, cover); background-position: var(--bg-image-position, center); background-blend-mode: var(--bg-image-blend, normal); filter: var(--bg-image-filter, none); opacity: var(--bg-image-opacity, 1); }

.hero::before            { background-image: var(--bg-image-treatment-gradient, none), var(--bg-image-hero, none); }
.visibility::before      { background-image: var(--bg-image-treatment-gradient, none), var(--bg-image-visibility, none); }
.voice-panel::before     { background-image: var(--bg-image-treatment-gradient, none), var(--bg-image-voice-panel, none); }
.leads-cta-block::before     { background-image: var(--bg-image-treatment-gradient, none), var(--bg-image-leads-cta, none); }

#hero-canvas     { display: none; }
.hero-inner     { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto; gap: var(--hero-inner-hero-inner-gap, var(--hero-inner-gap)); align-items: center; }
.hero-tag     { background: var(--hero-tag-background, transparent); display: var(--hero-tag-display, inline-block); align-items: var(--hero-tag-align-items, normal); gap: var(--hero-tag-gap, 0); font-size: var(--hero-tag-hero-tag-fs, var(--hero-tag-fs)); font-weight: var(--hero-tag-fw-heavy, var(--fw-heavy)); letter-spacing: var(--hero-tag-ls-loud, var(--ls-loud)); text-transform: var(--hero-tag-case-loud, var(--case-loud)); color: var(--hero-tag-color, var(--accent)); border: var(--hero-tag-border, var(--border-w) var(--border-style-a) var(--accent)); border-radius: var(--hero-tag-rad, var(--rad)); padding: var(--hero-tag-hero-tag-padding, var(--hero-tag-padding)); margin-bottom: var(--hero-tag-hero-tag-margin-b, var(--hero-tag-margin-b)); transform: var(--hero-tag-transform, rotate(var(--hero-tag-tilt-hero-tag, var(--tilt-hero-tag)))); opacity: var(--hero-tag-op-90, var(--op-90)); }
.hero-tag::before     { content: var(--hero-tag-before-hero-tag-marker, var(--hero-tag-marker)); display: var(--hero-tag-dot-display, inline); width: var(--hero-tag-dot-w, auto); height: var(--hero-tag-dot-h, auto); border-radius: var(--hero-tag-dot-radius, 0); background: var(--hero-tag-before-background, var(--hero-tag-dot-bg, transparent)); }
.hero h1     { color: var(--hero-h1-color, var(--ink)); margin-bottom: var(--hero-h1-hero-h1-margin-b, var(--hero-h1-margin-b)); max-width: var(--hero-h1-hero-h1-max-w, var(--hero-h1-max-w)); transform: var(--hero-h1-transform, rotate(var(--hero-h1-tilt-hero-h1, var(--tilt-hero-h1)))); text-shadow: var(--hero-h1-text-shadow, var(--hero-h1-shadow-text-accent, var(--shadow-text-accent))); }
.hero-body     { font-size: var(--hero-body-hero-body-fs, var(--hero-body-fs)); color: var(--hero-body-color, var(--ink2)); margin-bottom: var(--hero-body-hero-body-margin-b, var(--hero-body-margin-b)); max-width: var(--hero-body-hero-body-max-w, var(--hero-body-max-w)); }
.hero-actions     { display: flex; gap: var(--hero-actions-hero-actions-gap, var(--hero-actions-gap)); align-items: center; flex-wrap: wrap; }
.btn-rose     { background: var(--btn-rose-background, var(--accent)); color: var(--btn-rose-color, var(--paper)); text-decoration: none; padding: var(--btn-rose-btn-rose-padding, var(--btn-rose-padding)); border: var(--btn-rose-border, var(--btn-rose-border-w, var(--border-w)) var(--btn-rose-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--btn-rose-rad, var(--rad)); font-weight: var(--btn-rose-fw-heavy, var(--fw-heavy)); font-size: var(--btn-rose-btn-rose-fs, var(--btn-rose-fs)); text-transform: var(--btn-rose-case-loud, var(--case-loud)); transform: var(--btn-rose-transform, rotate(var(--btn-rose-tilt-btn-rose, var(--tilt-btn-rose)))); transition: var(--btn-rose-transition, transform var(--btn-rose-transition-fast, var(--transition-fast))); display: inline-block; }
.btn-rose:hover     { transform: var(--btn-rose-hover-transform, rotate(var(--btn-rose-hover-tilt-flat, var(--tilt-flat))) translateY(var(--btn-rose-hover-lift-btn, var(--lift-btn)))); }
.hero-aside-link     { font-size: var(--hero-aside-link-hero-aside-fs, var(--hero-aside-fs)); color: var(--hero-aside-link-color, var(--ink)); text-decoration: none; font-weight: var(--hero-aside-link-fw-strong, var(--fw-strong)); border-bottom: var(--hero-aside-link-border-bottom, var(--hero-aside-link-border-w, var(--border-w)) var(--hero-aside-link-border-style-b, var(--border-style-b)) var(--accent)); }
.hero-aside-link:hover     { color: var(--hero-aside-link-hover-color, var(--accent)); }
.hero-mark     { width: var(--hero-mark-hero-mark-w, var(--hero-mark-w)); flex-shrink: 0; transform: var(--hero-mark-transform, rotate(var(--hero-mark-img-tilt-hero, var(--img-tilt-hero)))); }
.hero-mark canvas     { width: 100%; aspect-ratio: 1; border-radius: var(--hero-mark-canvas-img-shape, var(--img-shape)); border: var(--hero-mark-canvas-border, var(--hero-mark-canvas-border-w, var(--border-w)) var(--hero-mark-canvas-border-style-a, var(--border-style-a)) var(--ink)); filter: var(--hero-mark-canvas-img-filter-hero, var(--img-filter-hero)); box-shadow: var(--hero-mark-canvas-box-shadow, var(--hero-mark-canvas-img-shadow-hero, var(--img-shadow-hero))); }

/* Pulse strip */
.pulse-strip     { background: var(--pulse-strip-background, var(--ink)); color: var(--pulse-strip-color, var(--paper)); }
.pulse-item     { border-right: var(--pulse-item-border-right, var(--pulse-item-border-w, var(--border-w)) var(--pulse-item-border-style-b, var(--border-style-b)) rgb(from var(--paper) r g b / var(--op-30))); }
.pulse-num     { font-family: var(--pulse-num-font-family, var(--pulse-num-font-alt, var(--font-alt))); font-weight: var(--pulse-num-fw-heavy, var(--fw-heavy)); color: var(--pulse-num-color, var(--paper)); text-shadow: var(--pulse-num-text-shadow, var(--pulse-num-shadow-text-accent, var(--shadow-text-accent))); font-size: var(--pulse-num-pulse-num-fs, var(--pulse-num-fs)); }
.pulse-label     { color: var(--pulse-label-color, rgb(from var(--paper) r g b / var(--op-65))); }

/* Pour qui — affiches scotchées */
.pour-qui     { background: var(--pour-qui-background, var(--paper2)); background-image: var(--texture-noise); border-top: var(--pour-qui-border-top, var(--pour-qui-border-w, var(--border-w)) var(--pour-qui-border-style-a, var(--border-style-a)) var(--ink)); }
.pq-grid     { display: grid; grid-template-columns: repeat(var(--layout-pq-columns), 1fr); gap: var(--pq-grid-grid-gap-cards, var(--grid-gap-cards)); margin-top: var(--pq-grid-content-lead-gap, var(--content-lead-gap)); }
.pq-card     { display: flex; flex-direction: column; gap: var(--pq-card-pq-card-gap, var(--pq-card-gap)); padding: var(--pq-card-pq-card-padding, var(--pq-card-padding)); border: var(--pq-card-border, var(--pq-card-border-w, var(--border-w)) var(--pq-card-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--pq-card-rad, var(--rad)); background: var(--pq-card-background, var(--carte)); text-decoration: none; color: var(--pq-card-color, var(--ink)); position: relative; transition: var(--pq-card-transition, transform var(--pq-card-transition-med, var(--transition-med))); }
.pq-grid > .pq-card:nth-child(odd)     { transform: var(--pq-grid-pq-card-odd-transform, rotate(var(--pq-grid-pq-card-odd-tilt-pq-card-odd, var(--tilt-pq-card-odd)))); }
.pq-grid > .pq-card:nth-child(even)     { transform: var(--pq-grid-pq-card-even-transform, rotate(var(--pq-grid-pq-card-even-tilt-pq-card-even, var(--tilt-pq-card-even)))); }
.pq-card:hover     { transform: var(--pq-card-hover-transform, rotate(var(--pq-card-hover-tilt-flat, var(--tilt-flat))) translateY(var(--pq-card-hover-lift-card, var(--lift-card)))); }
.pq-card::before     { content: ''; position: absolute; top: var(--pq-card-before-stamp-offset-top, var(--stamp-offset-top)); left: 50%; transform: var(--pq-card-before-transform, translateX(-50%) rotate(var(--pq-card-before-tilt-stamp, var(--tilt-stamp)))); width: var(--pq-card-before-stamp-w-pq, var(--stamp-w-pq)); height: var(--pq-card-before-stamp-h-pq, var(--stamp-h-pq)); background: var(--pq-card-before-background, var(--pq-card-before-stamp-bg, var(--stamp-bg))); box-shadow: var(--pq-card-before-box-shadow, var(--pq-card-before-stamp-shadow, var(--stamp-shadow))); }
.pq-badge     { display: inline-block; font-size: var(--pq-badge-pq-badge-fs, var(--pq-badge-fs)); font-weight: var(--pq-badge-fw-heavy, var(--fw-heavy)); letter-spacing: var(--pq-badge-ls-badge, var(--ls-badge)); text-transform: var(--pq-badge-case-loud, var(--case-loud)); padding: var(--pq-badge-pq-badge-padding, var(--pq-badge-padding)); border-radius: var(--pq-badge-rad, var(--rad)); border: var(--pq-badge-border, var(--pq-badge-border-w, var(--border-w)) var(--pq-badge-border-style-a, var(--border-style-a)) var(--ink)); color: var(--pq-badge-color, var(--paper)); align-self: flex-start; transform: var(--pq-badge-transform, rotate(var(--pq-badge-tilt-label, var(--tilt-label)))); }
.pq-b2b .pq-badge     { background: var(--pq-b2b-pq-badge-background, var(--blue)); }
.pq-b2c .pq-badge     { background: var(--pq-b2c-pq-badge-background, var(--orange)); }
.pq-c2c .pq-badge     { background: var(--pq-c2c-pq-badge-background, var(--green)); }
.pq-card h3     { font-size: var(--pq-card-h3-pq-card-h3-fs, var(--pq-card-h3-fs)); }
.pq-card p      { font-size: var(--pq-card-p-fs-card-body, var(--fs-card-body)); color: var(--pq-card-p-color, var(--mid)); max-width: unset; flex: 1; }
.pq-arrow       { font-size: var(--pq-arrow-fs-arrow, var(--fs-arrow)); font-weight: var(--pq-arrow-fw-heavy, var(--fw-heavy)); text-transform: var(--pq-arrow-case-loud, var(--case-loud)); }
.pq-b2b .pq-arrow     { color: var(--pq-b2b-pq-arrow-color, var(--blue)); }
.pq-b2c .pq-arrow     { color: var(--pq-b2c-pq-arrow-color, var(--orange)); }
.pq-c2c .pq-arrow     { color: var(--pq-c2c-pq-arrow-color, var(--green)); }

/* Manifesto */
.manifesto     { background: var(--manifesto-background, var(--paper)); background-image: var(--texture-noise); }
.manifesto-lead     { display: grid; grid-template-columns: repeat(var(--layout-manifesto-columns), 1fr); gap: var(--manifesto-lead-manifesto-gap, var(--manifesto-gap)); margin-top: var(--manifesto-lead-content-lead-gap, var(--content-lead-gap)); }
.pilier     { padding: var(--pilier-pilier-padding, var(--pilier-padding)); border-top: var(--pilier-border-top, var(--pilier-border-w, var(--border-w)) var(--pilier-border-style-b, var(--border-style-b)) var(--ink)); }
.pilier-num     { display: var(--pilier-num-display, inline-block); font-size: var(--pilier-num-fs-pilier-num, var(--fs-pilier-num)); font-weight: var(--pilier-num-fw-heavy, var(--fw-heavy)); letter-spacing: var(--pilier-num-ls-badge, var(--ls-badge)); text-transform: var(--pilier-num-case-loud, var(--case-loud)); color: var(--pilier-num-color, var(--accent)); border: var(--pilier-num-border, var(--pilier-num-border-w, var(--border-w)) var(--pilier-num-border-style-a, var(--border-style-a)) var(--accent)); border-radius: var(--pilier-num-rad, var(--rad)); padding: var(--pilier-num-pilier-num-padding, var(--pilier-num-padding)); margin-bottom: var(--pilier-num-mb-tag, var(--mb-tag)); transform: var(--pilier-num-transform, rotate(var(--pilier-num-tilt-sm-neg-b, var(--tilt-sm-neg-b)))); opacity: var(--pilier-num-op-90, var(--op-90)); }
.pilier h3     { margin-bottom: var(--pilier-h3-mb-heading-sm, var(--mb-heading-sm)); }
.pilier p     { font-size: var(--pilier-p-fs-pilier-body, var(--fs-pilier-body)); color: var(--pilier-p-color, var(--mid)); max-width: var(--pilier-p-pilier-p-max-w, var(--pilier-p-max-w)); }

/* Visibility — charbon */
.visibility     { background: var(--visibility-background, var(--surface-dark)); color: var(--visibility-color, var(--paper)); position: relative; }
.visibility .label     { color: var(--visibility-label-color, var(--tone-on-dark)); border-color: var(--visibility-label-border-color, var(--tone-on-dark)); }
.visibility h2     { color: var(--visibility-h2-color, var(--paper)); }
.vis-grid     { display: grid; grid-template-columns: repeat(var(--layout-vis-columns), 1fr); gap: var(--vis-grid-vis-grid-gap, var(--vis-grid-gap)); align-items: center; margin-top: var(--vis-grid-content-lead-gap, var(--content-lead-gap)); position: relative; z-index: 1; }
.vis-body p     { color: var(--vis-body-p-color, rgb(from var(--paper) r g b / var(--op-70))); }
.vis-body p + p     { margin-top: var(--vis-body-p-p-p-stack-gap, var(--p-stack-gap)); }
.vis-pull     { font-family: var(--vis-pull-font-family, var(--vis-pull-font-alt, var(--font-alt))); font-weight: var(--vis-pull-fw-heavy, var(--fw-heavy)); font-style: var(--vis-pull-font-style, normal); text-transform: var(--vis-pull-case-loud, var(--case-loud)); font-size: var(--vis-pull-vis-pull-fs, var(--vis-pull-fs)); color: var(--vis-pull-color, var(--paper)); line-height: var(--vis-pull-vis-pull-lh, var(--vis-pull-lh)); border-left: var(--vis-pull-border-left, var(--vis-pull-vis-pull-border-w, var(--vis-pull-border-w)) var(--vis-pull-border-style-a, var(--border-style-a)) var(--accent)); padding-left: var(--vis-pull-vis-pull-padding-l, var(--vis-pull-padding-l)); margin: var(--vis-pull-vis-pull-margin, var(--vis-pull-margin)); max-width: var(--vis-pull-max-w-lead, var(--max-w-lead)); transform: var(--vis-pull-transform, rotate(var(--vis-pull-tilt-sm-neg, var(--tilt-sm-neg)))); }
.vis-canvas-wrap     { position: relative; }
#vis-canvas     { width: 100%; max-width: var(--vis-canvas-vis-canvas-max-w, var(--vis-canvas-max-w)); aspect-ratio: 1; margin: 0 auto; display: block; border-radius: var(--vis-canvas-img-shape, var(--img-shape)); background: var(--vis-canvas-background, var(--vis-canvas-img-bg-vis, var(--img-bg-vis))); filter: var(--vis-canvas-img-filter-vis, var(--img-filter-vis)); }

/* Communicate */
.communicate     { background: var(--communicate-background, var(--paper2)); background-image: var(--texture-noise); }
.comm-hero     { display: grid; grid-template-columns: repeat(var(--layout-comm-columns), 1fr); gap: var(--comm-hero-comm-hero-gap, var(--comm-hero-gap)); align-items: center; margin-top: var(--comm-hero-content-lead-gap, var(--content-lead-gap)); margin-bottom: var(--comm-hero-comm-hero-margin-b, var(--comm-hero-margin-b)); }
.voice-panel     { background: var(--voice-panel-background, var(--surface-dark)); border: var(--voice-panel-border, var(--voice-panel-border-w, var(--border-w)) var(--voice-panel-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--voice-panel-rad, var(--rad)); padding: var(--voice-panel-voice-panel-padding, var(--voice-panel-padding)); color: var(--voice-panel-color, var(--paper)); overflow: hidden; position: relative; transform: var(--voice-panel-transform, rotate(var(--voice-panel-tilt-voice-panel, var(--tilt-voice-panel)))); box-shadow: var(--voice-panel-box-shadow, var(--voice-panel-voice-panel-shadow, var(--voice-panel-shadow))); }
.voice-label     { display: var(--voice-label-display, inline-block); font-size: var(--voice-label-fs-voice-label, var(--fs-voice-label)); font-weight: var(--voice-label-fw-heavy, var(--fw-heavy)); letter-spacing: var(--voice-label-ls-loud, var(--ls-loud)); text-transform: var(--voice-label-case-loud, var(--case-loud)); color: var(--voice-label-color, var(--tone-on-dark)); border: var(--voice-label-border, var(--voice-label-border-w, var(--border-w)) var(--voice-label-border-style-a, var(--border-style-a)) var(--tone-on-dark)); border-radius: var(--voice-label-rad, var(--rad)); padding: var(--voice-label-voice-label-padding, var(--voice-label-padding)); margin-bottom: var(--voice-label-voice-label-margin-b, var(--voice-label-margin-b)); transform: var(--voice-label-transform, rotate(var(--voice-label-tilt-sm-neg-b, var(--tilt-sm-neg-b)))); }
.voice-quote     { font-size: var(--voice-quote-fs-voice-quote, var(--fs-voice-quote)); font-weight: var(--voice-quote-fw-strong, var(--fw-strong)); color: var(--voice-quote-color, var(--voice-quote-voice-quote-color, var(--voice-quote-color))); line-height: var(--voice-quote-voice-quote-lh, var(--voice-quote-lh)); margin-bottom: var(--voice-quote-voice-quote-margin-b, var(--voice-quote-margin-b)); }
.vb     { flex: 1; background: var(--vb-background, var(--accent)); border-radius: var(--vb-radius, 0); animation: var(--vb-animation, bar-pulse var(--vb-anim-duration, var(--anim-duration)) ease-in-out infinite alternate); }
.voice-bars     { display: flex; align-items: flex-end; gap: var(--voice-bars-voice-bars-gap, var(--voice-bars-gap)); height: var(--voice-bars-voice-bars-h, var(--voice-bars-h)); }
.vb:nth-child(1)    { height: var(--vb-nth-child-1-vb-h-1, var(--vb-h-1)); animation-delay: var(--vb-nth-child-1-vb-delay-1, var(--vb-delay-1)); } .vb:nth-child(2)    { height: var(--vb-nth-child-2-vb-h-2, var(--vb-h-2)); animation-delay: var(--vb-nth-child-2-vb-delay-2, var(--vb-delay-2)); }
.vb:nth-child(3)    { height: var(--vb-nth-child-3-vb-h-3, var(--vb-h-3)); animation-delay: var(--vb-nth-child-3-vb-delay-3, var(--vb-delay-3)); } .vb:nth-child(4)    { height: var(--vb-nth-child-4-vb-h-4, var(--vb-h-4)); animation-delay: var(--vb-nth-child-4-vb-delay-4, var(--vb-delay-4)); }
.vb:nth-child(5)    { height: var(--vb-nth-child-5-vb-h-5, var(--vb-h-5)); animation-delay: var(--vb-nth-child-5-vb-delay-5, var(--vb-delay-5)); } .vb:nth-child(6)    { height: var(--vb-nth-child-6-vb-h-6, var(--vb-h-6)); animation-delay: var(--vb-nth-child-6-vb-delay-6, var(--vb-delay-6)); }
.vb:nth-child(7)    { height: var(--vb-nth-child-7-vb-h-7, var(--vb-h-7)); animation-delay: var(--vb-nth-child-7-vb-delay-7, var(--vb-delay-7)); } .vb:nth-child(8)    { height: var(--vb-nth-child-8-vb-h-8, var(--vb-h-8)); animation-delay: var(--vb-nth-child-8-vb-delay-8, var(--vb-delay-8)); }
@keyframes bar-pulse { from { opacity: var(--vb-idle-opacity); transform: scaleY(var(--vb-idle-scale)); } to { opacity: var(--op-100); transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .vb { animation: none; height: var(--vb-static-h); } }
.process-steps     { display: grid; grid-template-columns: repeat(var(--layout-process-columns), 1fr); gap: 0; border: var(--process-steps-border, var(--process-steps-border-w, var(--border-w)) var(--process-steps-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--process-steps-rad, var(--rad)); overflow: hidden; background: var(--process-steps-background, var(--carte)); }
.pstep     { padding: var(--pstep-pstep-padding, var(--pstep-padding)); border-right: var(--pstep-border-right, var(--pstep-border-w, var(--border-w)) var(--pstep-border-style-b, var(--border-style-b)) var(--ink)); }
.pstep:last-child     { border-right: none; }
.pstep-n     { display: inline-block; width: var(--pstep-n-pstep-n-size, var(--pstep-n-size)); height: var(--pstep-n-pstep-n-size, var(--pstep-n-size)); border-radius: var(--pstep-n-radius-blob, var(--radius-blob)); background: var(--pstep-n-background, var(--accent)); color: var(--pstep-n-color, var(--paper)); font-size: var(--pstep-n-fs-pstep-n, var(--fs-pstep-n)); font-weight: var(--pstep-n-fw-heavy, var(--fw-heavy)); text-align: center; line-height: var(--pstep-n-pstep-n-size, var(--pstep-n-size)); margin-bottom: var(--pstep-n-pstep-n-margin-b, var(--pstep-n-margin-b)); font-variant-numeric: tabular-nums; }
.pstep h4     { margin-bottom: var(--pstep-h4-mb-heading-xs, var(--mb-heading-xs)); }
.pstep p     { font-size: var(--pstep-p-fs-pstep-body, var(--fs-pstep-body)); color: var(--pstep-p-color, var(--mid)); max-width: unset; }

/* Local */
.local-section     { background: var(--local-section-background, var(--paper)); background-image: var(--texture-noise); border-top: var(--local-section-border-top, var(--local-section-border-w, var(--border-w)) var(--local-section-border-style-a, var(--border-style-a)) var(--ink)); }
.local-cards     { display: grid; grid-template-columns: repeat(var(--layout-local-columns), 1fr); gap: var(--local-cards-grid-gap-cards, var(--grid-gap-cards)); margin-top: var(--local-cards-content-lead-gap, var(--content-lead-gap)); }
.lcard     { background: var(--lcard-background, var(--carte)); border: var(--lcard-border, var(--lcard-border-w, var(--border-w)) var(--lcard-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--lcard-rad, var(--rad)); padding: var(--lcard-lcard-padding, var(--lcard-padding)); box-shadow: var(--lcard-box-shadow, var(--lcard-lcard-shadow, var(--lcard-shadow))); }
.local-cards > .lcard:nth-child(odd)     { transform: var(--local-cards-lcard-odd-transform, rotate(var(--local-cards-lcard-odd-tilt-sm-neg, var(--tilt-sm-neg)))); }
.local-cards > .lcard:nth-child(even)     { transform: var(--local-cards-lcard-even-transform, rotate(var(--local-cards-lcard-even-tilt-sm-pos, var(--tilt-sm-pos)))); }
.lcard-tag     { font-size: var(--lcard-tag-fs-lcard-tag, var(--fs-lcard-tag)); font-weight: var(--lcard-tag-fw-heavy, var(--fw-heavy)); letter-spacing: var(--lcard-tag-ls-badge, var(--ls-badge)); text-transform: var(--lcard-tag-case-loud, var(--case-loud)); margin-bottom: var(--lcard-tag-mb-tag, var(--mb-tag)); display: block; }
.lcard h3     { margin-bottom: var(--lcard-h3-mb-heading-md, var(--mb-heading-md)); }
.lcard p     { font-size: var(--lcard-p-fs-card-body, var(--fs-card-body)); color: var(--lcard-p-color, var(--mid)); max-width: unset; }

/* Leads / CTA — charbon */
.leads     { background: var(--leads-background, var(--surface-dark)); color: var(--leads-color, var(--paper)); }
.leads .label     { color: var(--leads-label-color, var(--tone-on-dark)); border-color: var(--leads-label-border-color, var(--tone-on-dark)); }
.leads h2     { color: var(--leads-h2-color, var(--paper)); }
.leads-grid     { display: grid; grid-template-columns: repeat(var(--layout-leads-columns), 1fr); gap: var(--leads-grid-leads-grid-gap, var(--leads-grid-gap)); margin-top: var(--leads-grid-content-lead-gap, var(--content-lead-gap)); }
.lead-card     { border: var(--lead-card-border, var(--lead-card-border-w, var(--border-w)) var(--lead-card-border-style-b, var(--border-style-b)) var(--lead-card-cta-border, var(--cta-border))); border-radius: var(--lead-card-rad, var(--rad)); padding: var(--lead-card-padding-comfortable, var(--padding-comfortable)); }
.lead-card h3     { color: var(--lead-card-h3-color, var(--paper)); margin-bottom: var(--lead-card-h3-mb-heading-sm, var(--mb-heading-sm)); }
.lead-card p     { font-size: var(--lead-card-p-fs-card-body, var(--fs-card-body)); color: var(--lead-card-p-color, rgb(from var(--paper) r g b / var(--lead-card-p-op-60, var(--op-60)))); max-width: unset; }
.leads-cta-block     { margin-top: var(--leads-cta-block-leads-cta-margin-t, var(--leads-cta-margin-t)); padding: var(--leads-cta-block-leads-cta-padding, var(--leads-cta-padding)); border: var(--leads-cta-block-border, var(--leads-cta-block-border-w, var(--border-w)) var(--leads-cta-block-border-style-a, var(--border-style-a)) var(--paper)); border-radius: var(--leads-cta-block-rad, var(--rad)); background: var(--leads-cta-block-background, var(--accent)); position: relative; transform: var(--leads-cta-block-transform, rotate(var(--leads-cta-block-tilt-leads-cta, var(--tilt-leads-cta)))); display: flex; align-items: center; justify-content: space-between; gap: var(--leads-cta-block-leads-cta-gap, var(--leads-cta-gap)); flex-wrap: wrap; }
.leads-cta-block h2     { color: var(--leads-cta-block-h2-color, var(--paper)); max-width: var(--leads-cta-block-h2-max-w-lead, var(--max-w-lead)); margin-bottom: var(--leads-cta-block-h2-mb-heading-md, var(--mb-heading-md)); }
.leads-cta-block p     { color: var(--leads-cta-block-p-color, rgb(from var(--paper) r g b / var(--op-85))); font-size: var(--leads-cta-block-p-fs-leads-cta-p, var(--fs-leads-cta-p)); }
.leads-cta-block .btn-rose     { background: var(--leads-cta-block-btn-rose-background, var(--ink)); color: var(--leads-cta-block-btn-rose-color, var(--paper)); }

/* Responsive index */
@media (max-width: 820px) {
  .manifesto-lead { grid-template-columns: 1fr; }
  .vis-grid    { grid-template-columns: 1fr; }
  #vis-canvas  { display: none; }
  .comm-hero   { grid-template-columns: 1fr; }
  .process-steps { grid-template-columns: 1fr 1fr; }
  .pstep:nth-child(2) { border-right: none; }
  .pstep:nth-child(1), .pstep:nth-child(2) { border-bottom: var(--border-w) var(--border-style-b) var(--ink); }
  .pq-grid     { grid-template-columns: 1fr; }
  .local-cards { grid-template-columns: 1fr; }
  .leads-grid  { grid-template-columns: 1fr; }
  .leads-cta-block { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 520px) {
  .process-steps { grid-template-columns: 1fr; }
  .pstep { border-right: none; border-bottom: var(--border-w) var(--border-style-b) var(--ink); }
  .pstep:last-child { border-bottom: none; }
}

/* Process (générique, hérité de lv-common) */
.steps     { border: var(--steps-border, var(--steps-border-w, var(--border-w)) var(--steps-border-style-b, var(--border-style-b)) var(--steps-cta-border, var(--cta-border))); border-radius: var(--steps-rad, var(--rad)); }
.step     { border-right: var(--step-border-right, var(--step-border-w, var(--border-w)) var(--step-border-style-b, var(--border-style-b)) rgb(from var(--paper) r g b / var(--op-25))); }
.step-n     { background: var(--step-n-background, var(--paper)); color: var(--step-n-color, var(--ink)); border-radius: var(--step-n-radius-blob, var(--radius-blob)); font-weight: var(--step-n-fw-heavy, var(--fw-heavy)); }
.step p     { color: var(--step-p-color, rgb(from var(--paper) r g b / var(--step-p-op-60, var(--op-60)))); }

/* Témoignages */
.testimonials     { background: var(--testimonials-background, var(--paper)); background-image: var(--texture-noise); border-top: var(--testimonials-border-top, var(--testimonials-border-w, var(--border-w)) var(--testimonials-border-style-a, var(--border-style-a)) var(--ink)); }
.testi-grid     { align-items: var(--testi-grid-testi-align, var(--testi-align)); }
.testi-card     { background: var(--testi-card-background, var(--carte)); border: var(--testi-card-border, var(--testi-card-border-w, var(--border-w)) var(--testi-card-border-style-a, var(--border-style-a)) var(--ink)); border-radius: var(--testi-card-rad, var(--rad)); position: relative; }
.testi-grid > .testi-card:nth-child(odd)     { transform: var(--testi-grid-testi-card-odd-transform, rotate(var(--testi-grid-testi-card-odd-tilt-sm-neg, var(--tilt-sm-neg)))); }
.testi-grid > .testi-card:nth-child(even)     { transform: var(--testi-grid-testi-card-even-transform, rotate(var(--testi-grid-testi-card-even-tilt-sm-pos, var(--tilt-sm-pos)))); }
.testi-card::before     { content: ''; position: absolute; top: var(--testi-card-before-stamp-offset-top, var(--stamp-offset-top)); left: 50%; transform: var(--testi-card-before-transform, translateX(-50%) rotate(var(--testi-card-before-tilt-stamp, var(--tilt-stamp)))); width: var(--testi-card-before-stamp-w-testi, var(--stamp-w-testi)); height: var(--testi-card-before-stamp-h-testi, var(--stamp-h-testi)); background: var(--testi-card-before-background, var(--testi-card-before-stamp-bg, var(--stamp-bg))); box-shadow: var(--testi-card-before-box-shadow, var(--testi-card-before-stamp-shadow, var(--stamp-shadow))); }
.testi-quote     { color: var(--testi-quote-color, var(--ink2)); }
.testi-author     { border-top: var(--testi-author-border-top, var(--testi-author-border-w, var(--border-w)) var(--testi-author-border-style-b, var(--border-style-b)) var(--ink)); }
.testi-avatar     { background: var(--testi-avatar-background, var(--paper)); border: var(--testi-avatar-border, var(--testi-avatar-border-w, var(--border-w)) var(--testi-avatar-border-style-a, var(--border-style-a)) var(--ink)); color: var(--testi-avatar-color, var(--ink)); border-radius: var(--testi-avatar-radius-blob, var(--radius-blob)); }
.testi-name     { color: var(--testi-name-color, var(--ink)); }
.testi-role     { color: var(--testi-role-color, var(--mid)); }

/* CTA */
.cta-inner     { border: var(--cta-inner-border, var(--cta-inner-border-w, var(--border-w)) var(--cta-inner-border-style-b, var(--border-style-b)) rgb(from var(--paper) r g b / var(--op-50))); background: var(--cta-inner-background, transparent); border-radius: var(--cta-inner-rad, var(--rad)); }
.btn-outline-w     { border: var(--btn-outline-w-border, var(--btn-outline-w-border-w, var(--border-w)) var(--btn-outline-w-border-style-b, var(--border-style-b)) rgb(from var(--paper) r g b / var(--btn-outline-w-op-60, var(--op-60)))); border-radius: var(--btn-outline-w-rad, var(--rad)); text-transform: var(--btn-outline-w-case-loud, var(--case-loud)); font-weight: var(--btn-outline-w-fw-strong, var(--fw-strong)); }

/* Footer */
footer     { background: var(--footer-background, var(--surface-dark)); border-top: var(--footer-border-top, var(--footer-border-w, var(--border-w)) var(--footer-border-style-a, var(--border-style-a)) var(--ink)); }
.foot-copy     { color: var(--foot-copy-color, rgb(from var(--paper) r g b / var(--op-45))); }
.foot-links a     { color: var(--foot-links-a-color, rgb(from var(--paper) r g b / var(--op-55))); }
.foot-links a:hover     { color: var(--foot-links-a-hover-color, var(--paper)); text-decoration: var(--foot-links-a-hover-decoration-hover, var(--decoration-hover)); }
