    /* ═══════════════════════════════════════════════════════════
       RESET & BASE
    ═══════════════════════════════════════════════════════════ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html, body {
      width: 100%; height: 100%; overflow: hidden;
      background: #050E0A; color: #ECE9DF;
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      font-feature-settings: 'ss01', 'cv11';
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    /* ═══════════════════════════════════════════════════════════
       DESIGN SYSTEM · éditorial, corporate, restreint
    ═══════════════════════════════════════════════════════════ */
    :root {
      /* Couleurs - palette restreinte, plus de neon */
      --green-deep:    #0A1F15;
      --green-mid:     #0F2E1E;
      --green-accent:  #2EE68A;
      --green-thin:    rgba(46,230,138,0.55);
      --gold:          #2EE68A;
      --gold-bright:   #2EE68A;
      --gold-warning:  #E8A33D;
      --green-mid2:    #1AAF66;
      --paper:         #F5F2E9;
      --paper-dim:     rgba(245,242,233,0.82);
      --paper-low:     rgba(245,242,233,0.58);
      --hairline:      rgba(46,230,138,0.25);
      --hairline-soft: rgba(245,242,233,0.10);
      --frame-border:  rgba(46,230,138,0.20);
      --card-bg:       rgba(245,242,233,0.04);
      --card-border:   rgba(245,242,233,0.10);
      /* Aliases retro-compat (anciens noms toujours utilisés) */
      --text-primary:   #F5F2E9;
      --text-muted:     rgba(245,242,233,0.78);
      --text-secondary: rgba(245,242,233,0.78);
      --text-dim:      rgba(245,242,233,0.55);
      --border:        rgba(46,230,138,0.20);
      /* Typographie · Inter partout, mono pour labels */
      --font-display: 'Inter', -apple-system, sans-serif;
      --font-body:    'Inter', -apple-system, sans-serif;
      --font-mono:    'JetBrains Mono', ui-monospace, monospace;
      /* Géométrie */
      --radius:        4px;
      --radius-md:     8px;
      --radius-lg:     12px;
      --gutter:        clamp(48px, 6vw, 96px);
    }

    /* ═══════════════════════════════════════════════════════════
       PROGRESS BAR · fine ligne en bas, doré
    ═══════════════════════════════════════════════════════════ */
    #progress-bar {
      position: fixed; bottom: 0; left: 0; right: 0; height: 1px;
      background: rgba(201,169,97,0.08); z-index: 200;
    }
    #progress-fill {
      height: 100%; background: var(--gold);
      transition: width 0.55s cubic-bezier(0.22,1,0.36,1); width: 5%;
    }

    /* ═══════════════════════════════════════════════════════════
       ACTION BAR · fullscreen + télécharger PDF
    ═══════════════════════════════════════════════════════════ */
    #action-bar {
      position: fixed; top: 22px; right: 28px; z-index: 300;
      display: flex; gap: 8px; align-items: center;
    }
    #pdf-btn, #fs-btn {
      background: transparent; color: var(--paper);
      border: 1px solid rgba(46,230,138,0.35); border-radius: 2px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500; cursor: pointer;
      letter-spacing: 0.16em; text-transform: uppercase;
      display: inline-flex; align-items: center; gap: 8px;
      transition: border-color 0.2s, color 0.2s, background 0.2s;
    }
    #pdf-btn { padding: 8px 16px; }
    #fs-btn { padding: 8px 10px; }
    #pdf-btn:hover, #fs-btn:hover {
      border-color: var(--green-accent); color: var(--green-accent);
      background: rgba(46,230,138,0.06);
    }
    #pdf-btn:disabled { opacity: 0.6; cursor: wait; }

    /* Counter natif désactivé : remplacé par .slide-imprint */
    #slide-counter { display: none; }

    /* ═══════════════════════════════════════════════════════════
       NAVIGATION ARROWS · minimalistes
    ═══════════════════════════════════════════════════════════ */
    .nav-arrow {
      position: fixed; top: 50%; transform: translateY(-50%);
      z-index: 200; background: transparent;
      border: 1px solid rgba(201,169,97,0.25); border-radius: 50%;
      width: 38px; height: 38px; display: flex; align-items: center;
      justify-content: center; cursor: pointer;
      color: var(--gold); font-size: 14px;
      font-family: var(--font-mono);
      transition: border-color 0.2s, color 0.2s, background 0.2s;
    }
    .nav-arrow:hover { border-color: var(--gold); background: rgba(201,169,97,0.08); }
    .nav-arrow.disabled { opacity: 0.18; pointer-events: none; }
    #nav-prev { left: 28px; }
    #nav-next { right: 28px; }

    /* ═══════════════════════════════════════════════════════════
       SLIDE HEADER : logo Sustaincore (dots ring) · par slide
    ═══════════════════════════════════════════════════════════ */
    .slide-logo {
      position: absolute;
      top: clamp(24px, 3vh, 36px); left: clamp(40px, 4.5vw, 64px);
      z-index: 5;
      display: flex; align-items: center; gap: 12px;
      pointer-events: none;
    }
    .slide-logo-svg {
      width: 36px; height: 36px;
    }
    .slide-logo-text {
      display: flex; flex-direction: column; line-height: 1;
    }
    .slide-logo-name {
      font-size: 13px; font-weight: 800; letter-spacing: 2.4px;
      color: var(--paper); text-transform: uppercase;
    }
    .slide-logo-sub {
      font-size: 9px; font-weight: 500; letter-spacing: 1.2px;
      color: var(--green-accent); text-transform: uppercase; margin-top: 4px;
    }
    /* Variante pour slides claires */
    .slide.light .slide-logo-name { color: var(--green-deep); }
    .slide.light .slide-logo-sub  { color: #1AAF66; }
    /* Header global retiré : logo intégré par slide */
    #slide-header { display: none; }

    /* ═══════════════════════════════════════════════════════════
       SLIDES CONTAINER
    ═══════════════════════════════════════════════════════════ */
    #slides-wrapper {
      width: 100%; height: 100vh;
      overflow: hidden; position: relative;
      background:
        radial-gradient(ellipse 80% 60% at 50% 0%, #0F2818 0%, transparent 60%),
        radial-gradient(ellipse 100% 80% at 50% 100%, #07130C 0%, #030806 100%);
      padding: 18px;
    }
    /* Texture grain subtile sur tout le wrapper */
    #slides-wrapper::before {
      content: ''; position: absolute; inset: 0; pointer-events: none;
      background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.92 0 0 0 0 0.86 0 0 0 0 0.74 0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
      opacity: 0.55; mix-blend-mode: overlay; z-index: 1;
    }

    .slide {
      position: absolute;
      top: 18px; left: 18px;
      width: calc(100% - 36px); height: calc(100% - 36px);
      display: flex; flex-direction: column; align-items: stretch; justify-content: stretch;
      padding: 0;
      background:
        radial-gradient(ellipse 70% 50% at 15% 0%, rgba(46,230,138,0.08) 0%, transparent 55%),
        radial-gradient(ellipse 60% 45% at 95% 100%, rgba(46,230,138,0.05) 0%, transparent 60%),
        radial-gradient(ellipse 90% 70% at 85% 15%, rgba(15,46,30,0.5) 0%, transparent 70%),
        linear-gradient(165deg, #0E2419 0%, #081810 50%, #051109 100%);
      border: 1px solid var(--frame-border);
      border-radius: 2px;
      box-shadow:
        0 1px 0 0 rgba(46,230,138,0.04) inset,
        0 30px 80px -40px rgba(0,0,0,0.5);
      opacity: 0;
      --slide-tx: 40px;
      transform: translateX(var(--slide-tx));
      filter: blur(2px);
      transition: opacity 0.55s cubic-bezier(0.22,1,0.36,1),
                  transform 0.55s cubic-bezier(0.22,1,0.36,1),
                  filter 0.55s cubic-bezier(0.22,1,0.36,1);
      pointer-events: none;
      overflow: hidden;
    }
    /* Pattern grille architecturale subtile sur chaque slide */
    .slide > .slide-content::before {
      content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
      background-image:
        linear-gradient(rgba(201,169,97,0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(201,169,97,0.018) 1px, transparent 1px);
      background-size: 64px 64px;
      mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 0%, transparent 80%);
      -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 0%, transparent 80%);
    }
    /* Texture grain dorée sur chaque slide */
    .slide > .slide-content::after {
      content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
      background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n2'><feTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.79 0 0 0 0 0.66 0 0 0 0 0.38 0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n2)'/></svg>");
      opacity: 0.7; mix-blend-mode: overlay;
    }
    .slide.active {
      opacity: 1; transform: translateX(0); filter: blur(0);
      pointer-events: all;
      will-change: opacity, transform, filter;
    }
    .slide.exit-left {
      opacity: 0; transform: translateX(-40px); filter: blur(2px);
      will-change: opacity, transform, filter;
      transition: opacity 0.4s cubic-bezier(0.55,0,1,0.45),
                  transform 0.4s cubic-bezier(0.55,0,1,0.45),
                  filter 0.4s cubic-bezier(0.55,0,1,0.45);
    }
    .slide.exit-right {
      opacity: 0; transform: translateX(40px); filter: blur(2px);
      will-change: opacity, transform, filter;
      transition: opacity 0.4s cubic-bezier(0.55,0,1,0.45),
                  transform 0.4s cubic-bezier(0.55,0,1,0.45),
                  filter 0.4s cubic-bezier(0.55,0,1,0.45);
    }
    /* Repère angulaire en haut-droite : signature visuelle */
    .slide::before {
      content: '';
      position: absolute; top: 0; right: 0;
      width: 56px; height: 1px;
      background: var(--gold);
      opacity: 0.6;
      z-index: 5;
    }
    .slide::after {
      content: '';
      position: absolute; top: 0; right: 0;
      width: 1px; height: 56px;
      background: var(--gold);
      opacity: 0.6;
      z-index: 5;
    }

    /* ═══════════════════════════════════════════════════════════
       LAYOUT INTÉRIEUR : grille éditoriale
    ═══════════════════════════════════════════════════════════ */
    .slide-frame {
      position: relative; z-index: 2;
      width: 100%; height: 100%;
      display: grid;
      grid-template-rows: auto 1fr auto;
      padding: clamp(40px, 5vh, 64px) clamp(56px, 7vw, 96px) clamp(32px, 4vh, 56px);
    }
    .slide-meta {
      display: flex; align-items: center; justify-content: space-between;
      padding-bottom: clamp(20px, 3vh, 36px);
      border-bottom: 1px solid var(--hairline);
      gap: 24px;
    }
    .slide-meta-left {
      display: flex; align-items: baseline; gap: 18px;
    }
    .slide-section {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 500;
      color: var(--gold);
      letter-spacing: 0.12em; text-transform: uppercase;
    }
    .slide-section-title {
      font-family: var(--font-body);
      font-size: 11px; font-weight: 500;
      color: var(--paper-low);
      letter-spacing: 0.18em; text-transform: uppercase;
    }
    .slide-meta-right {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--paper-low);
      letter-spacing: 0.1em;
    }
    .slide-body {
      display: flex; flex-direction: column;
      padding-top: clamp(28px, 4vh, 56px);
      overflow-y: auto; overflow-x: hidden;
      scrollbar-width: none;
      min-height: 0;
    }
    .slide-body::-webkit-scrollbar { display: none; }
    .slide-foot {
      display: flex; align-items: center; justify-content: space-between;
      padding-top: clamp(16px, 2vh, 28px);
      border-top: 1px solid var(--hairline-soft);
      gap: 24px;
    }
    .slide-foot-left, .slide-foot-right {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--paper-low);
      letter-spacing: 0.1em; text-transform: uppercase;
    }

    /* ═══════════════════════════════════════════════════════════
       TYPOGRAPHIE ÉDITORIALE
    ═══════════════════════════════════════════════════════════ */
    .slide-eyebrow {
      font-family: var(--font-mono);
      font-size: clamp(10px, 0.85vw, 11px); font-weight: 500;
      letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--green-thin);
      margin-bottom: clamp(14px, 1.8vh, 22px);
      display: inline-flex; align-items: center; gap: 12px;
    }
    .slide-eyebrow::before {
      content: ''; width: 24px; height: 1px;
      background: var(--green-thin);
    }
    .slide-title {
      font-family: var(--font-display);
      font-size: clamp(26px, 3.2vw, 46px);
      font-weight: 800; line-height: 1.1;
      letter-spacing: -0.025em;
      color: var(--paper);
      max-width: 900px;
    }
    .slide-title em {
      font-style: normal; font-weight: 400;
      color: var(--gold-bright);
    }
    .slide-title .accent { color: var(--green-accent); font-style: normal; font-weight: 800; }
    .slide-title .gold   { color: var(--gold-bright); font-style: normal; font-weight: 400; }
    .slide-subtitle {
      font-family: var(--font-body);
      font-size: clamp(14px, 1.15vw, 17px);
      font-weight: 300;
      color: var(--paper-dim);
      max-width: 680px; margin-top: clamp(16px, 2vh, 24px);
      line-height: 1.55;
    }
    .slide-note {
      font-family: var(--font-mono);
      font-size: 13px; color: var(--paper-low); margin-top: 18px;
      letter-spacing: 0.04em;
    }
    /* Numéro de section géant pour slides clés */
    .section-numeral {
      font-family: var(--font-display);
      font-size: clamp(80px, 14vw, 200px);
      font-weight: 200; line-height: 0.9;
      color: var(--gold);
      letter-spacing: -0.04em;
      opacity: 0.92;
    }

    /* ═══════════════════════════════════════════════════════════
       COUVERTURE : split 55/45 photo + contenu éditorial
    ═══════════════════════════════════════════════════════════ */
    .slide-content.cover-split {
      display: grid;
      grid-template-columns: 55% 45%;
      align-items: stretch;
      width: 100%; height: 100%;
      overflow: hidden;
    }
    .cover-left {
      position: relative; z-index: 3;
      display: flex; flex-direction: column;
      padding: clamp(40px, 5vh, 64px) clamp(40px, 4.5vw, 72px);
      gap: 0;
      height: 100%;
      overflow: hidden;
    }
    /* Logo block sur la couverture */
    .cover-logo-block {
      display: flex; align-items: center; gap: 16px;
    }
    .cover-logo-meta {
      display: flex; flex-direction: column; line-height: 1;
    }
    .cover-logo-name {
      font-size: 16px; font-weight: 800; letter-spacing: 3px;
      color: var(--paper); text-transform: uppercase;
    }
    .cover-logo-sub {
      font-size: 10px; font-weight: 500; letter-spacing: 1.5px;
      color: var(--green-accent); text-transform: uppercase;
      margin-top: 6px;
    }

    .cover-meta {
      display: flex; align-items: center; gap: 14px;
      margin-top: clamp(24px, 4vh, 40px);
      padding-bottom: clamp(20px, 3vh, 32px);
      border-bottom: 1px solid var(--hairline);
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--gold);
      letter-spacing: 0.2em;
    }
    .cover-meta-sep {
      flex: 1; height: 1px; background: var(--hairline);
    }

    .cover-title {
      font-family: var(--font-display);
      font-size: clamp(36px, 4.4vw, 68px);
      font-weight: 800; line-height: 1.02;
      letter-spacing: -0.035em;
      color: var(--paper);
      margin-top: clamp(28px, 4.5vh, 56px);
    }
    .cover-title-em {
      font-weight: 300; font-style: italic;
      color: var(--gold-bright);
    }

    .cover-lede {
      font-size: clamp(13px, 1vw, 16px);
      font-weight: 300; line-height: 1.55;
      color: var(--paper-dim);
      max-width: 480px;
      margin-top: clamp(16px, 2.5vh, 28px);
    }

    .cover-foot {
      display: flex; gap: clamp(20px, 2.5vw, 44px);
      margin-top: auto;
      flex-shrink: 0;
      padding-top: clamp(18px, 2.5vh, 32px);
      border-top: 1px solid var(--hairline-soft);
    }
    .cover-foot-item { display: flex; flex-direction: column; gap: 4px; }
    .cover-foot-label {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 500;
      color: var(--paper-low);
      letter-spacing: 0.18em; text-transform: uppercase;
    }
    .cover-foot-val {
      font-size: 12px; font-weight: 500;
      color: var(--paper);
      letter-spacing: 0.01em;
    }

    .cover-right {
      position: relative; overflow: hidden;
      border-left: 1px solid var(--hairline);
    }
    .cover-photo {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; object-position: center 30%;
      filter: saturate(0.8) contrast(1.05);
    }
    .cover-photo-overlay {
      position: absolute; inset: 0;
      background:
        linear-gradient(90deg, rgba(8,24,16,0.55) 0%, rgba(8,24,16,0.18) 50%, rgba(8,24,16,0.55) 100%),
        linear-gradient(180deg, rgba(8,24,16,0.35) 0%, transparent 25%, transparent 75%, rgba(8,24,16,0.6) 100%);
    }
    .cover-photo-caption {
      position: absolute;
      left: 32px; bottom: 32px;
      display: flex; align-items: center; gap: 16px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      letter-spacing: 0.18em; text-transform: uppercase;
      color: var(--paper);
      z-index: 4;
    }
    .cover-caption-num {
      color: var(--gold-bright); font-size: 12px; font-weight: 600;
    }
    .cover-caption-line {
      width: 32px; height: 1px; background: var(--gold-bright); opacity: 0.7;
    }
    .cover-caption-text {
      color: var(--paper-dim); font-weight: 400;
    }


    /* ═══════════════════════════════════════════════════════════
       SPLIT 50/50 · slides photo + contenu (slides 18, 19)
    ═══════════════════════════════════════════════════════════ */
    .slide-content .split-50, .slide-content.split-50 {
      display: grid;
      grid-template-columns: 52% 48%;
      align-items: stretch;
      width: 100%; height: 100%;
      overflow: hidden;
    }
    .split-left {
      position: relative; z-index: 3;
      display: flex; flex-direction: column;
      padding: clamp(48px, 6vh, 76px) clamp(40px, 4.5vw, 72px) clamp(60px, 7vh, 88px) clamp(48px, 6vw, 96px);
    }
    .split-title {
      font-family: var(--font-display);
      font-size: clamp(30px, 3.4vw, 48px);
      font-weight: 800; line-height: 1.05;
      letter-spacing: -0.025em;
      color: var(--paper);
      margin-bottom: clamp(28px, 4vh, 44px);
    }
    .split-list {
      display: flex; flex-direction: column;
      gap: clamp(16px, 2.4vh, 26px);
    }
    .split-item {
      display: grid;
      grid-template-columns: 36px 1fr;
      gap: clamp(14px, 1.5vw, 20px);
      align-items: start;
      padding-bottom: clamp(14px, 1.8vh, 22px);
      border-bottom: 1px solid var(--hairline-soft);
    }
    .split-item:last-child { border-bottom: none; padding-bottom: 0; }
    .split-num {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 600;
      color: var(--gold-bright);
      letter-spacing: 0.1em;
      padding-top: 4px;
    }
    .split-item-title {
      font-size: clamp(14px, 1.1vw, 16px);
      font-weight: 600;
      color: var(--paper);
      margin-bottom: 4px;
      letter-spacing: -0.005em;
    }
    .split-item-body {
      font-size: clamp(12px, 0.95vw, 14px);
      font-weight: 300; line-height: 1.55;
      color: var(--paper-dim);
    }
    .split-right {
      position: relative; overflow: hidden;
      border-left: 1px solid var(--hairline);
    }
    .split-photo {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; object-position: center center;
      filter: saturate(0.85) contrast(1.05);
    }
    .split-photo-overlay {
      position: absolute; inset: 0;
      background:
        linear-gradient(125deg, rgba(8,24,16,0.4) 0%, rgba(8,24,16,0.1) 40%, rgba(8,24,16,0.55) 100%);
    }
    .split-photo-tag {
      position: absolute;
      left: 32px; bottom: 32px;
      display: flex; align-items: center; gap: 14px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      letter-spacing: 0.18em; text-transform: uppercase;
      z-index: 4;
    }
    .split-photo-tag-num { color: var(--gold-bright); font-weight: 600; }
    .split-photo-tag-line { width: 28px; height: 1px; background: var(--gold-bright); opacity: 0.7; }
    .split-photo-tag-text { color: var(--paper-dim); }


    /* ═══════════════════════════════════════════════════════════
       À PROPOS · slide 19 : photo bandeau + grille équipe
    ═══════════════════════════════════════════════════════════ */
    .slide-content .about-grid, .slide-content.about-grid {
      display: grid;
      grid-template-columns: 1fr;
      grid-template-rows: 38% 62%;
      align-items: stretch;
      width: 100%; height: 100%;
      overflow: hidden;
    }
    .about-banner {
      position: relative; overflow: hidden;
      border-bottom: 1px solid var(--hairline);
    }
    .about-banner-img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; object-position: center 65%;
      filter: saturate(0.85) contrast(1.05);
    }
    .about-banner-overlay {
      position: absolute; inset: 0;
      background:
        linear-gradient(180deg, rgba(8,24,16,0.55) 0%, rgba(8,24,16,0.30) 45%, rgba(8,24,16,0.70) 100%);
    }
    .about-banner-content {
      position: relative; z-index: 2;
      height: 100%;
      padding: clamp(32px, 4.5vh, 56px) clamp(48px, 6vw, 96px);
      display: flex; flex-direction: column; justify-content: space-between;
    }
    .about-banner-eyebrow {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--gold-bright);
      letter-spacing: 0.2em; text-transform: uppercase;
      display: inline-flex; align-items: center; gap: 12px;
    }
    .about-banner-eyebrow::before {
      content: ''; width: 24px; height: 1px; background: var(--gold-bright);
    }
    .about-banner-title {
      font-family: var(--font-display);
      font-size: clamp(28px, 3.2vw, 45px);
      font-weight: 800; line-height: 1;
      letter-spacing: -0.03em;
      color: var(--paper);
      max-width: 720px;
    }
    .about-banner-title em {
      font-style: normal; font-weight: 300;
      color: var(--gold-bright);
    }

    .about-bottom {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr;
      gap: 0;
      height: 100%;
    }
    .about-block {
      padding: clamp(28px, 4vh, 44px) clamp(28px, 3vw, 48px);
      border-right: 1px solid var(--hairline-soft);
      display: flex; flex-direction: column;
    }
    .about-block:last-child { border-right: none; }
    .about-block-label {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--gold);
      letter-spacing: 0.2em; text-transform: uppercase;
      margin-bottom: 14px;
    }
    .about-block-text {
      font-size: clamp(13px, 1vw, 15px);
      font-weight: 300; line-height: 1.55;
      color: var(--paper-dim);
    }
    .about-block-text strong {
      color: var(--paper); font-weight: 500;
    }
    .about-ceo {
      display: flex; flex-direction: column; gap: 14px;
      padding: clamp(28px, 4vh, 44px) clamp(28px, 3vw, 48px);
      border-right: 1px solid var(--hairline-soft);
    }
    .about-ceo-photo {
      width: clamp(72px, 8vh, 96px); height: clamp(72px, 8vh, 96px);
      border-radius: 50%;
      object-fit: cover;
      border: 1px solid var(--hairline);
    }
    .about-ceo-name {
      font-size: 16px; font-weight: 600;
      color: var(--paper);
      letter-spacing: -0.005em;
    }
    .about-ceo-role {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--gold-bright);
      letter-spacing: 0.16em; text-transform: uppercase;
      margin-top: 4px;
    }
    .about-ceo-bio {
      font-size: 12px; font-weight: 300; line-height: 1.55;
      color: var(--paper-dim);
      margin-top: 10px;
    }
    .about-contact-list {
      display: flex; flex-direction: column; gap: 12px;
      margin-top: 4px;
    }
    .about-contact-row {
      display: flex; align-items: center; gap: 10px;
      font-size: 12px; font-weight: 400;
      color: var(--paper-dim);
    }
    .about-contact-row strong {
      color: var(--gold-bright); font-weight: 500;
      font-family: var(--font-mono);
      font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
      min-width: 56px;
    }
    .about-contact-row a { color: var(--paper); text-decoration: none; }
    .about-contact-row a:hover { color: var(--gold-bright); }


    /* ═══════════════════════════════════════════════════════════
       CARDS GRID
    ═══════════════════════════════════════════════════════════ */
    .cards-grid {
      display: grid; gap: clamp(14px,1.4vw,22px); width: 100%; margin-top: clamp(20px,2.5vh,36px);
      flex: 1; align-content: center; flex-wrap: wrap;
    }
    .cards-grid > * { display: flex; flex-direction: column; }
    .cards-grid-3 { grid-template-columns: repeat(3, 1fr); }
    .cards-grid-4 { grid-template-columns: repeat(4, 1fr); }
    .cards-grid-2 { grid-template-columns: repeat(2, 1fr); }

    .card {
      position: relative;
      background: rgba(236,233,223,0.025);
      border: 1px solid rgba(236,233,223,0.08);
      border-radius: var(--radius);
      padding: clamp(18px,1.8vw,24px) clamp(18px,1.6vw,22px);
      transition: border-color 0.3s, background 0.3s;
    }
    .card::before {
      content: ''; position: absolute; top: 0; left: 0;
      width: 24px; height: 1px; background: var(--gold);
      opacity: 0.6;
    }
    .card-icon {
      width: 28px; height: 28px; margin-bottom: 14px;
      color: var(--green-accent);
    }
    .card-title {
      font-family: var(--font-display);
      font-size: clamp(14px, 1.1vw, 16px);
      font-weight: 600;
      color: var(--paper);
      margin-bottom: 8px;
      letter-spacing: -0.005em;
    }
    .card-body {
      font-size: clamp(12px, 0.95vw, 14px);
      font-weight: 300;
      color: var(--paper-dim);
      line-height: 1.55;
    }

    /* ═══════════════════════════════════════════════════════════
       BADGE
    ═══════════════════════════════════════════════════════════ */
    .badge {
      display: inline-flex; align-items: center;
      background: rgba(46,230,138,0.12); border: 1px solid rgba(46,230,138,0.3);
      color: var(--green-accent); border-radius: 100px;
      font-size: 11px; font-weight: 700; letter-spacing: 0.5px;
      padding: 5px 14px; text-transform: uppercase;
    }
    .badge-gold {
      background: rgba(244,191,79,0.12); border-color: rgba(244,191,79,0.3);
      color: var(--gold);
    }
    .badge-recommended {
      background: var(--green-accent); color: var(--green-deep);
      font-size: 10px; padding: 3px 10px;
    }

    /* Bg-radials retirés : remplacés par le fond multi-couches du .slide */
    .bg-radial { display: none; }

    /* ═══════════════════════════════════════════════════════════
       VARIANTE CLAIRE · slides bicolor (fond cream, texte vert)
    ═══════════════════════════════════════════════════════════ */
    .slide.light {
      background:
        radial-gradient(ellipse 70% 50% at 15% 0%, rgba(46,230,138,0.08) 0%, transparent 55%),
        radial-gradient(ellipse 60% 45% at 95% 100%, rgba(10,31,21,0.05) 0%, transparent 60%),
        linear-gradient(165deg, #F5F2E9 0%, #ECE9DF 60%, #E2DED3 100%);
      border-color: rgba(10,31,21,0.10);
      box-shadow:
        0 1px 0 0 rgba(10,31,21,0.04) inset,
        0 30px 80px -40px rgba(0,0,0,0.18);
    }
    .slide.light::before, .slide.light::after { background: var(--green-deep); opacity: 0.5; }

    .slide.light .slide-content::before {
      background-image:
        linear-gradient(rgba(10,31,21,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,31,21,0.04) 1px, transparent 1px);
    }
    .slide.light .slide-content::after { display: none; }

    /* Typographie inversée */
    .slide.light .slide-title       { color: var(--green-deep); }
    .slide.light .slide-title em    { color: var(--green-mid2); }
    .slide.light .slide-subtitle    { color: rgba(10,31,21,0.62); }
    .slide.light .slide-eyebrow     { color: var(--green-mid2); }
    .slide.light .slide-eyebrow::before { background: var(--green-mid2); }
    .slide.light .slide-note        { color: rgba(10,31,21,0.52); }

    /* Cards inversées */
    .slide.light .card {
      background: rgba(10,31,21,0.025);
      border-color: rgba(10,31,21,0.10);
    }
    .slide.light .card::before { background: var(--green-mid2); }
    .slide.light .card-title { color: var(--green-deep); }
    .slide.light .card-body  { color: rgba(10,31,21,0.65); }
    .slide.light .card-icon  { color: var(--green-mid2); }

    /* Number list, num-text, num-badge */
    .slide.light .num-list li {
      background: rgba(10,31,21,0.03);
      border-color: rgba(10,31,21,0.10);
    }
    .slide.light .num-text { color: var(--green-deep); }
    .slide.light .num-text strong { color: var(--green-mid2); }
    .slide.light .num-badge {
      background: rgba(46,230,138,0.16);
      border-color: rgba(46,230,138,0.45);
      color: #0E5A35;
    }

    /* Stepper / Timeline */
    .slide.light .stepper-num {
      background: rgba(46,230,138,0.18);
      border-color: rgba(46,230,138,0.45);
      color: #0E5A35;
    }
    .slide.light .stepper-label { color: var(--green-deep); }
    .slide.light .stepper-desc  { color: rgba(10,31,21,0.6); }
    .slide.light .stepper-item:not(:last-child)::after { background: rgba(46,230,138,0.45); }
    .slide.light .tl-dot {
      background: rgba(46,230,138,0.18);
      border-color: rgba(46,230,138,0.5);
    }
    .slide.light .tl-year { color: var(--green-deep); }
    .slide.light .tl-desc { color: rgba(10,31,21,0.6); }
    .slide.light .tl-item:not(:last-child)::after { background: rgba(46,230,138,0.4); }

    /* Scope blocks */
    .slide.light .scope-block-1,
    .slide.light .scope-block-2,
    .slide.light .scope-block-3 { background: rgba(46,230,138,0.08); border-color: rgba(46,230,138,0.28); }
    .slide.light .scope-block-title { color: var(--green-deep); }
    .slide.light .scope-block-body  { color: rgba(10,31,21,0.62); }
    .slide.light .scope-block-1 .scope-tag,
    .slide.light .scope-block-2 .scope-tag,
    .slide.light .scope-block-3 .scope-tag { color: var(--green-mid2); }

    /* Stats / KPIs */
    .slide.light .stat-card {
      background: rgba(10,31,21,0.03);
      border-color: rgba(10,31,21,0.1);
    }
    .slide.light .stat-value { color: var(--green-mid2); }
    .slide.light .stat-label { color: rgba(10,31,21,0.6); }

    /* Pricing cards */
    .slide.light .pricing-card {
      background: rgba(10,31,21,0.025);
      border-color: rgba(10,31,21,0.1);
    }
    .slide.light .pricing-card.featured {
      background: rgba(46,230,138,0.08);
      border-color: rgba(46,230,138,0.45);
    }
    .slide.light .pricing-name { color: var(--green-deep); }
    .slide.light .pricing-size { color: rgba(10,31,21,0.55); }
    .slide.light .pricing-price { color: var(--green-mid2); }
    .slide.light .pricing-price-unit, .slide.light .pricing-annual { color: rgba(10,31,21,0.55); }
    .slide.light .pricing-feat { color: rgba(10,31,21,0.65); }
    .slide.light .pricing-feat li::before { background: var(--green-mid2); }

    /* Norme / Service / Diff cards */
    .slide.light .norme-card,
    .slide.light .service-card,
    .slide.light .diff-card,
    .slide.light .action-step {
      background: rgba(10,31,21,0.025);
      border-color: rgba(10,31,21,0.1);
    }
    .slide.light .norme-tag,
    .slide.light .service-num { color: var(--green-mid2); }
    .slide.light .norme-desc,
    .slide.light .service-body,
    .slide.light .diff-text-body,
    .slide.light .action-step-body { color: rgba(10,31,21,0.62); }
    .slide.light .service-title,
    .slide.light .diff-text-title,
    .slide.light .action-step-title { color: var(--green-deep); }
    .slide.light .diff-icon,
    .slide.light .action-step-num {
      background: rgba(46,230,138,0.16);
      border-color: rgba(46,230,138,0.45);
      color: #0E5A35;
    }

    /* Quote box, badges, sectors */
    .slide.light .quote-box {
      background: rgba(46,230,138,0.07);
      border-left-color: var(--green-mid2);
    }
    .slide.light .quote-text { color: rgba(10,31,21,0.85); }
    .slide.light .badge {
      background: rgba(46,230,138,0.15);
      border-color: rgba(46,230,138,0.4);
      color: #0E5A35;
    }
    .slide.light .sector-tag {
      background: rgba(10,31,21,0.06);
      border-color: rgba(10,31,21,0.15);
      color: var(--green-deep);
    }

    /* Compare table */
    .slide.light .compare-table th { color: rgba(10,31,21,0.6); border-bottom-color: rgba(10,31,21,0.15); }
    .slide.light .compare-table td { color: rgba(10,31,21,0.7); border-bottom-color: rgba(10,31,21,0.06); }
    .slide.light .compare-table td:first-child { color: var(--green-deep); }
    .slide.light .compare-table tr:hover td { background: rgba(10,31,21,0.02); }
    .slide.light .compare-table .col-bad  { color: rgba(180,40,40,0.85); }
    .slide.light .compare-table .col-good { color: rgba(26,175,102,0.95); }

    /* Compare cols */
    .slide.light .compare-col-bad  { background: rgba(239,68,68,0.06); border-color: rgba(239,68,68,0.2); }
    .slide.light .compare-col-good { background: rgba(46,230,138,0.10); border-color: rgba(46,230,138,0.3); }
    .slide.light .compare-col-good .compare-col-head { color: var(--green-mid2); }
    .slide.light .compare-item { color: rgba(10,31,21,0.7); }

    /* Scope stat label (70–80% etc.) — paper-dim invisible sur fond clair */
    .slide.light .scope-stat-label { color: rgba(10,31,21,0.55); }
    .slide.light .scope-stat-num   { color: var(--green-mid2); }

    /* Klem chat */
    .slide.light .klem-chat {
      background: rgba(10,31,21,0.03);
      border-color: rgba(10,31,21,0.1);
    }
    .slide.light .klem-bubble { background: rgba(46,230,138,0.1); color: rgba(10,31,21,0.85); }
    .slide.light .klem-name { color: var(--green-mid2); }
    .slide.light .klem-role { color: rgba(10,31,21,0.55); }

    /* Imprint footer en mode clair */
    .slide.light .slide-imprint::before { background: rgba(10,31,21,0.12); }
    .slide.light .slide-imprint-left,
    .slide.light .slide-imprint-mid,
    .slide.light .slide-imprint-right { color: rgba(10,31,21,0.5); }
    .slide.light .slide-imprint-num { color: var(--green-mid2); }

    /* ═══════════════════════════════════════════════════════════
       SLIDE CONTENT WRAPPER (above bg)
    ═══════════════════════════════════════════════════════════ */
    .slide-content {
      position: relative; z-index: 2;
      display: flex; flex-direction: column;
      align-items: flex-start;
      width: 100%; height: 100%;
      /* padding vertical adaptatif : passe sous le bloc logo
         logo top: clamp(24px,3vh,36px) + height 36px = max 72px → gap 20px = 92px min */
      padding: clamp(92px, 9.5vh, 108px) clamp(40px, 5vw, 72px) clamp(56px, 7vh, 88px);
      overflow: hidden;
      gap: 0;
    }
    /* Le bloc "body" de chaque slide remplit la hauteur dispo */
    .slide-body-fill {
      flex: 1; width: 100%;
      display: flex; flex-direction: column; justify-content: center;
      min-height: 0;
    }
    .slide-content > *:not(.slide-imprint):not(.slide-logo) { max-width: 100%; width: 100%; }
    .slide-content.centered {
      align-items: center; justify-content: center;
    }
    /* Footer signature à l'intérieur de chaque slide */
    .slide-imprint {
      position: absolute; left: 0; right: 0; bottom: 0;
      padding: 0 clamp(56px, 7vw, 96px) clamp(20px, 2.5vh, 32px);
      display: flex; align-items: center; justify-content: space-between;
      pointer-events: none; z-index: 3;
      gap: 24px;
    }
    .slide-imprint::before {
      content: ''; position: absolute;
      left: clamp(56px, 7vw, 96px); right: clamp(56px, 7vw, 96px);
      top: 0; height: 1px; background: var(--hairline-soft);
    }
    .slide-imprint-left, .slide-imprint-right, .slide-imprint-mid {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      color: var(--paper-low);
      letter-spacing: 0.16em; text-transform: uppercase;
      padding-top: clamp(14px, 1.6vh, 20px);
    }
    .slide-imprint-num { color: var(--gold); }

    /* ═══════════════════════════════════════════════════════════
       TABLE COMPONENT
    ═══════════════════════════════════════════════════════════ */
    .compare-table {
      width: 100%; margin-top: 28px;
      border-collapse: collapse; font-size: 14px;
    }
    .compare-table th {
      padding: 12px 16px; text-align: left;
      border-bottom: 1px solid var(--border);
      font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
      color: var(--text-muted);
    }
    .compare-table td {
      padding: 13px 16px;
      border-bottom: 1px solid rgba(255,255,255,0.05);
      color: var(--text-muted);
    }
    .compare-table td:first-child { color: var(--text-primary); font-weight: 600; }
    .compare-table tr:hover td { background: rgba(255,255,255,0.02); }
    .compare-table .col-bad  { color: rgba(239,68,68,0.85); }
    .compare-table .col-good { color: var(--green-accent); }
    .compare-table .col-head { color: var(--text-primary); font-weight: 700; font-size: 13px; }

    /* ═══════════════════════════════════════════════════════════
       STEPPER
    ═══════════════════════════════════════════════════════════ */
    .stepper {
      display: flex; align-items: flex-start; gap: 0;
      width: 100%; margin-top: clamp(16px,2vh,28px);
    }
    .stepper-item {
      flex: 1; display: flex; flex-direction: column; align-items: center;
      position: relative;
    }
    .stepper-item:not(:last-child)::after {
      content: '';
      position: absolute; top: 19px;
      left: calc(50% + 19px); right: calc(-50% + 19px);
      height: 1px; background: rgba(46,230,138,0.25);
    }
    .stepper-num {
      width: 38px; height: 38px; border-radius: 50%;
      background: rgba(46,230,138,0.12); border: 1px solid rgba(46,230,138,0.35);
      color: var(--green-accent); font-weight: 800; font-size: 15px;
      display: flex; align-items: center; justify-content: center;
      position: relative; z-index: 1;
    }
    .stepper-label {
      font-size: 14px; font-weight: 700; color: var(--text-primary);
      margin-top: 10px; text-align: center;
    }
    .stepper-desc {
      font-size: 13px; color: var(--text-muted); margin-top: 5px;
      text-align: center; line-height: 1.4; padding: 0 6px;
    }

    /* ═══════════════════════════════════════════════════════════
       NUMBERED LIST
    ═══════════════════════════════════════════════════════════ */
    .num-list {
      list-style: none; display: flex; flex-direction: column;
      gap: clamp(10px,1.4vh,18px); margin-top: clamp(20px,2.5vh,32px); width: 100%; max-width: 100%;
      flex: 1; justify-content: center;
    }
    .num-list li {
      display: flex; align-items: center; gap: 14px;
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius); padding: clamp(10px,1.2vh,14px) 18px;
    }
    .num-badge {
      width: 32px; height: 32px; border-radius: 8px; flex-shrink: 0;
      background: rgba(46,230,138,0.15); border: 1px solid rgba(46,230,138,0.3);
      color: var(--green-accent); font-weight: 800; font-size: 14px;
      display: flex; align-items: center; justify-content: center;
    }
    .num-icon {
      width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
      background: rgba(46,230,138,0.12);
      border: 1px solid rgba(46,230,138,0.32);
      color: var(--green-accent);
      display: flex; align-items: center; justify-content: center;
    }
    .num-icon svg { width: 20px; height: 20px; }
    .slide.light .num-icon {
      background: rgba(46,230,138,0.16);
      border-color: rgba(46,230,138,0.45);
      color: #0E5A35;
    }
    .num-text { font-size: 14px; color: var(--text-primary); font-weight: 500; }
    .num-text strong { color: var(--green-accent); }

    /* ═══════════════════════════════════════════════════════════
       TIMELINE
    ═══════════════════════════════════════════════════════════ */
    .timeline {
      display: flex; align-items: center; gap: 0;
      width: 100%; margin-top: clamp(16px,2vh,26px);
    }
    .tl-item {
      flex: 1; display: flex; flex-direction: column; align-items: center;
      position: relative;
    }
    .tl-item:not(:last-child)::after {
      content: '';
      position: absolute; top: 14px;
      left: calc(50% + 14px); right: calc(-50% + 14px);
      height: 2px; background: rgba(46,230,138,0.2);
      z-index: 0;
    }
    .tl-dot {
      width: 28px; height: 28px; border-radius: 50%;
      background: rgba(46,230,138,0.1); border: 2px solid rgba(46,230,138,0.3);
      color: var(--green-accent); position: relative; z-index: 1;
    }
    .tl-dot.hot {
      background: var(--green-accent); border-color: var(--green-accent);
    }
    .tl-year {
      font-size: 14px; font-weight: 800; color: var(--paper-dim);
      margin-top: 10px;
    }
    .tl-year.hot { color: var(--gold-warning); }
    .tl-desc {
      font-size: 13px; color: var(--text-muted); margin-top: 4px;
      text-align: center; padding: 0 4px; line-height: 1.4;
    }
    .tl-desc.hot { color: var(--gold-warning); font-weight: 600; }

    /* ═══════════════════════════════════════════════════════════
       SECTORS BADGES
    ═══════════════════════════════════════════════════════════ */
    .sector-tags {
      display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
      margin-top: 16px;
    }
    .sector-tag {
      background: rgba(244,191,79,0.1); border: 1px solid rgba(244,191,79,0.25);
      color: var(--gold); border-radius: 100px;
      font-size: 12px; font-weight: 600; padding: 5px 14px;
    }

    /* ═══════════════════════════════════════════════════════════
       SCOPE BLOCKS
    ═══════════════════════════════════════════════════════════ */
    .scope-grid { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: repeat(3,1fr);
      gap: clamp(10px,1.2vw,18px); width: 100%; margin-top: clamp(14px,2vh,24px);
    }
    .scope-block {
      border-radius: var(--radius); padding: 28px 24px;
      display: flex; flex-direction: column; gap: 8px;
    }
    .scope-block-1,
    .scope-block-2,
    .scope-block-3 {
      background: rgba(46,230,138,0.06);
      border: 1px solid rgba(46,230,138,0.22);
    }
    .scope-tag {
      font-size: 11px; font-weight: 800; letter-spacing: 1.5px;
      text-transform: uppercase; margin-bottom: 6px;
    }
    .scope-block-1 .scope-tag,
    .scope-block-2 .scope-tag,
    .scope-block-3 .scope-tag { color: var(--green-accent); }
    .scope-block-title { font-size: 16px; font-weight: 700; color: #fff; }
    .scope-block-body { font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ═══════════════════════════════════════════════════════════
       STAT CARDS
    ═══════════════════════════════════════════════════════════ */
    .stats-row { flex: 1; align-items: center;
      display: flex; gap: clamp(10px,1.2vw,18px); width: 100%; margin-top: clamp(14px,2vh,24px);
    }
    .stat-card {
      flex: 1;
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius-lg); padding: 32px 24px;
      display: flex; flex-direction: column; align-items: center; gap: 6px;
    }
    .stat-value {
      font-size: clamp(42px, 5.5vw, 60px); font-weight: 900; color: var(--green-accent);
      line-height: 1;
    }
    .stat-label {
      font-size: 13px; color: var(--text-muted); text-align: center;
      margin-top: 4px;
    }

    /* ═══════════════════════════════════════════════════════════
       DASHBOARD MOCK
    ═══════════════════════════════════════════════════════════ */
    .dashboard-mock {
      width: 100%; background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius-lg); padding: clamp(14px, 1.8vh, 20px);
      margin-top: clamp(12px, 1.5vh, 20px);
    }
    .kpi-row {
      display: flex; gap: 14px; margin-bottom: 20px;
    }
    .kpi-card {
      flex: 1; background: rgba(255,255,255,0.03);
      border: 1px solid rgba(255,255,255,0.07);
      border-radius: 10px; padding: 16px 14px;
    }
    .kpi-label { font-size: 12px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; }
    .kpi-val   { font-size: 22px; font-weight: 800; margin-top: 4px; }
    .kpi-unit  { font-size: 13px; color: var(--text-muted); }
    .kpi-1 .kpi-val { color: var(--green-accent); }
    .kpi-2 .kpi-val { color: var(--gold); }
    .kpi-3 .kpi-val { color: rgba(200,255,220,0.8); }

    .chart-bars {
      display: flex; align-items: flex-end; gap: 8px;
      height: 80px; padding: 0 4px;
    }
    .bar-col { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; }
    .bar-fill {
      width: 100%; border-radius: 4px 4px 0 0;
      background: linear-gradient(180deg, var(--green-accent) 0%, rgba(46,230,138,0.4) 100%);
      transition: height 1s ease;
    }
    .bar-lbl { font-size: 11px; color: var(--text-dim); }

    .scope-bars { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
    .scope-bar-row { display: flex; align-items: center; gap: 10px; }
    .scope-bar-lbl { font-size: 12px; color: var(--text-muted); width: 52px; flex-shrink: 0; }
    .scope-bar-track {
      flex: 1; height: 8px; background: rgba(255,255,255,0.06); border-radius: 4px; overflow: hidden;
    }
    .scope-bar-fill { height: 100%; border-radius: 4px; }
    .scope-bar-s1 { background: var(--green-accent); }
    .scope-bar-s2 { background: var(--gold); }
    .scope-bar-s3 { background: rgba(200,220,255,0.5); }
    .scope-bar-val { font-size: 12px; color: var(--text-muted); width: 52px; text-align: right; }

    /* ═══════════════════════════════════════════════════════════
       COMPARE 2-COL
    ═══════════════════════════════════════════════════════════ */
    .compare-cols { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 20px; width: 100%; margin-top: 28px;
    }
    .compare-col {
      border-radius: var(--radius); padding: 24px 22px;
    }
    .compare-col-bad {
      background: rgba(239,68,68,0.06); border: 1px solid rgba(239,68,68,0.2);
    }
    .compare-col-good {
      background: rgba(46,230,138,0.06); border: 1px solid rgba(46,230,138,0.2);
    }
    .compare-col-head {
      font-size: 13px; font-weight: 800; letter-spacing: 1px;
      text-transform: uppercase; margin-bottom: 14px;
    }
    .compare-col-bad .compare-col-head  { color: rgba(239,68,68,0.9); }
    .compare-col-good .compare-col-head { color: var(--green-accent); }
    .compare-item {
      display: flex; align-items: center; gap: 9px;
      font-size: 13px; color: var(--text-muted); margin-bottom: 9px;
      line-height: 1.4;
    }
    .compare-dot {
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
    }
    .compare-col-bad  .compare-dot { background: rgba(239,68,68,0.7); }
    .compare-col-good .compare-dot { background: var(--green-accent); }

    /* ═══════════════════════════════════════════════════════════
       PRICING CARDS
    ═══════════════════════════════════════════════════════════ */
    .pricing-grid { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: clamp(10px,1vw,14px); width: 100%; margin-top: clamp(14px,2vh,22px);
    }
    .pricing-card {
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius-lg); padding: 24px 20px;
      display: flex; flex-direction: column; gap: 6px;
      position: relative;
    }
    .pricing-card.featured {
      background: rgba(46,230,138,0.05);
      border-color: rgba(46,230,138,0.35);
    }
    .pricing-name { font-size: 16px; font-weight: 800; color: #fff; }
    .pricing-size { font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
    .pricing-price {
      font-size: 26px; font-weight: 900; color: var(--green-accent);
      line-height: 1; margin: 6px 0 2px;
    }
    .pricing-price-unit { font-size: 13px; color: var(--text-muted); }
    .pricing-annual { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
    .pricing-feat { font-size: 13px; color: var(--text-muted); line-height: 1.6; }
    .pricing-feat li { list-style: none; display: flex; align-items: center; gap: 7px; margin-bottom: 4px; }
    .pricing-feat li::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--green-accent); flex-shrink: 0; }
    .pricing-badge {
      position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
    }

    /* ═══════════════════════════════════════════════════════════
       NORMES CARDS
    ═══════════════════════════════════════════════════════════ */
    .norme-cards { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: clamp(10px,1vw,14px); width: 100%; margin-top: clamp(14px,2vh,22px);
    }
    .norme-card {
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius); padding: 22px 18px;
    }
    .norme-tag {
      font-size: 12px; font-weight: 800; color: var(--green-accent);
      letter-spacing: 0.5px; margin-bottom: 8px;
    }
    .norme-desc { font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ═══════════════════════════════════════════════════════════
       CTA SLIDE (Slide 20)
    ═══════════════════════════════════════════════════════════ */
    .cta-buttons {
      display: flex; gap: 16px; margin-top: 32px; justify-content: center;
    }
    .cta-btn-primary {
      background: var(--green-accent); color: var(--green-deep);
      border: none; border-radius: 10px; padding: 14px 32px;
      font-size: 15px; font-weight: 800; cursor: pointer;
      text-decoration: none; display: inline-flex; align-items: center;
      transition: opacity 0.2s;
    }
    .cta-btn-primary:hover { opacity: 0.85; }
    .cta-btn-outline {
      background: transparent; color: #fff;
      border: 1.5px solid rgba(255,255,255,0.3); border-radius: 10px;
      padding: 14px 32px; font-size: 15px; font-weight: 600;
      cursor: pointer; text-decoration: none; display: inline-flex; align-items: center;
      transition: border-color 0.2s;
    }
    .cta-btn-outline:hover { border-color: rgba(255,255,255,0.6); }

    .contact-info {
      display: flex; flex-wrap: wrap; gap: 18px; justify-content: center;
      margin-top: 28px;
    }
    .contact-item {
      display: flex; align-items: center; gap: 8px;
      font-size: 13px; color: var(--text-muted);
    }
    .contact-item svg { color: var(--green-accent); flex-shrink: 0; }

    /* ═══════════════════════════════════════════════════════════
       COVER SLIDE SPECIFICS
    ═══════════════════════════════════════════════════════════ */
    .cover-logo {
      font-size: 28px; font-weight: 900; letter-spacing: -0.5px;
      color: #fff; margin-bottom: 16px;
    }
    .cover-logo span { color: var(--green-accent); }
    .cover-location {
      font-size: 12px; color: var(--text-dim); letter-spacing: 2px;
      text-transform: uppercase; margin-top: 24px;
    }
    .cover-divider {
      width: 60px; height: 2px; background: var(--green-accent);
      margin: 20px auto;
    }

    /* ═══════════════════════════════════════════════════════════
       SERVICES GRID
    ═══════════════════════════════════════════════════════════ */
    .services-grid { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: clamp(10px,1vw,14px); width: 100%; margin-top: clamp(14px,2vh,22px);
    }
    .service-card {
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius); padding: 20px 18px;
    }
    .service-num {
      font-size: 11px; font-weight: 800; color: var(--green-accent);
      letter-spacing: 1px; margin-bottom: 8px;
    }
    .service-title { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 6px; }
    .service-body { font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ═══════════════════════════════════════════════════════════
       DIFFERENTIATORS (Slide 18)
    ═══════════════════════════════════════════════════════════ */
    .diff-grid { flex: 1; align-content: center; flex-wrap: wrap;
      display: grid; grid-template-columns: repeat(2, 1fr);
      gap: clamp(10px,1.2vw,16px); width: 100%; margin-top: clamp(14px,2vh,22px);
    }
    .diff-card {
      background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius); padding: 24px 22px;
      display: flex; gap: 16px; align-items: flex-start;
    }
    .diff-icon {
      width: 44px; height: 44px; border-radius: 12px;
      background: rgba(46,230,138,0.1); border: 1px solid rgba(46,230,138,0.2);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; color: var(--green-accent);
    }
    .diff-text-title { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 6px; }
    .diff-text-body  { font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ═══════════════════════════════════════════════════════════
       QUOTE
    ═══════════════════════════════════════════════════════════ */
    .quote-box {
      background: rgba(46,230,138,0.06); border-left: 3px solid var(--green-accent);
      border-radius: 0 var(--radius) var(--radius) 0;
      padding: 18px 24px; margin-top: 24px; width: 100%; max-width: 720px;
    }
    .quote-text {
      font-size: 16px; color: rgba(255,255,255,0.85); font-style: italic;
      line-height: 1.6;
    }

    /* ═══════════════════════════════════════════════════════════
       ACTION PLAN STEPS (Slide 14)
    ═══════════════════════════════════════════════════════════ */
    .action-steps { flex: 1; align-items: center; flex-wrap: wrap;
      display: flex; gap: clamp(10px,1.2vw,18px); width: 100%; margin-top: clamp(14px,2vh,22px);
    }
    .action-step {
      flex: 1; background: var(--card-bg); border: 1px solid var(--card-border);
      border-radius: var(--radius); padding: 24px 20px;
      display: flex; flex-direction: column; gap: 10px;
      position: relative;
    }
    .action-step-num {
      width: 36px; height: 36px; border-radius: 10px;
      background: rgba(46,230,138,0.12); border: 1px solid rgba(46,230,138,0.3);
      color: var(--green-accent); font-weight: 900; font-size: 16px;
      display: flex; align-items: center; justify-content: center;
    }
    .action-step-title { font-size: 16px; font-weight: 700; color: #fff; }
    .action-step-body  { font-size: 13px; color: var(--text-muted); line-height: 1.5; }

    /* ═══════════════════════════════════════════════════════════
       KLEM CHAT BUBBLE
    ═══════════════════════════════════════════════════════════ */
    .klem-chat {
      background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius); padding: 20px 22px;
      width: 100%;
    }
    .klem-header {
      display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
    }
    .klem-avatar {
      width: 32px; height: 32px; border-radius: 50%;
      background: linear-gradient(135deg, var(--green-accent), #1ab865);
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; font-weight: 800; color: var(--green-deep);
    }
    .klem-name { font-size: 13px; font-weight: 700; color: var(--green-accent); }
    .klem-role { font-size: 11px; color: var(--text-muted); }
    .klem-bubble {
      background: rgba(46,230,138,0.07); border-radius: 8px;
      padding: 12px 16px; font-size: 13px; color: rgba(255,255,255,0.85);
      line-height: 1.55;
    }

    /* ═══════════════════════════════════════════════════════════
       PHASE 2 · ENRICHISSEMENTS ESTHÉTIQUES
    ═══════════════════════════════════════════════════════════ */

    /* ── SLIDE 5 · Scope pictos & hiérarchie ─────────────────── */
    .scope-picto {
      display: block;
      width: 28px; height: 28px;
      color: var(--green-accent);
      opacity: 0.85;
      margin-bottom: 10px;
      flex-shrink: 0;
    }

    /* Scope 3 : même traitement visuel que S1/S2 (uniforme) */
    .scope-block-3 .scope-tag { color: var(--green-accent); }
    .scope-block-3 .scope-block-title { color: var(--paper); }
    .slide.light .scope-block-3 .scope-block-title { color: var(--green-deep); }

    /* Badge priorité sur Scope 3 */
    .scope-block-3::before {
      content: 'PRIORITÉ';
      position: absolute; top: -10px; right: 16px;
      font-family: var(--font-mono);
      font-size: 9px; font-weight: 800; letter-spacing: 1.2px;
      background: var(--green-accent); color: var(--green-deep);
      padding: 3px 9px; border-radius: 100px;
      z-index: 2;
    }
    .scope-block { position: relative; }

    /* Stat oversized 70-80% dans Scope 3 */
    .scope-stat {
      display: flex; flex-direction: column; align-items: flex-start;
      margin-top: 10px; padding-top: 10px;
      border-top: 1px solid rgba(46,230,138,0.2);
    }
    .scope-stat-num {
      font-size: clamp(28px, 3.2vw, 42px);
      font-weight: 900; line-height: 1;
      color: var(--green-accent);
      letter-spacing: -0.02em;
    }
    .scope-stat-label {
      font-size: 11px; font-weight: 600;
      color: var(--paper-dim);
      margin-top: 3px; letter-spacing: 0.04em;
    }

    /* ── SLIDE 19 · Stats uniformes (4 cards égales) ────────── */
    .stat-card.stat-hero {
      flex: 1;
      background: rgba(46,230,138,0.06);
      border-color: rgba(46,230,138,0.25);
    }
    .stat-card.stat-hero .stat-value {
      font-size: clamp(42px, 5.5vw, 60px);
    }
    .stat-card.stat-hero .stat-unit-label {
      font-size: 14px; color: var(--green-accent); font-weight: 700; margin-top: 2px;
    }

    /* ── SLIDE 11 · Numeral "270 000+" en bg ─────────────────── */
    .slide-numeral-bg {
      position: absolute;
      right: clamp(24px, 4vw, 60px);
      top: 50%;
      transform: translateY(-45%);
      font-family: var(--font-display);
      font-size: clamp(180px, 22vw, 320px);
      font-weight: 900;
      line-height: 0.85;
      color: var(--green-accent);
      opacity: 0.025;
      pointer-events: none;
      z-index: 0;
      letter-spacing: -0.04em;
      white-space: nowrap;
      user-select: none;
    }

    /* ── SLIDE 12 · Klem cards bordure cohérente ────────────── */
    /* Harmoniser la border des 4 cards gauche avec klem-chat */
    [data-index="11"] .card {
      border-color: rgba(245,242,233,0.12);
    }

    /* ── SLIDE 15 · MACF featured ───────────────────────────── */
    /* MACF featured : badge urgence conservé, fond réduit pour ne pas casser la grille */
    .norme-card.norme-featured {
      background: rgba(46,230,138,0.05);
      border-color: rgba(232,163,61,0.25);
      position: relative;
    }
    .norme-card.norme-featured .norme-tag { color: var(--green-accent); }
    .norme-badge-urgence {
      display: inline-flex; align-items: center;
      background: rgba(232,163,61,0.10); border: 1px solid rgba(232,163,61,0.30);
      color: var(--gold-warning);
      font-family: var(--font-mono);
      font-size: 9px; font-weight: 800; letter-spacing: 1px;
      padding: 3px 9px; border-radius: 100px;
      text-transform: uppercase;
      margin-bottom: 8px;
    }

    /* Pictos normes 24px */
    .norme-picto {
      display: block;
      width: 24px; height: 24px;
      color: var(--green-accent);
      margin-bottom: 8px;
      opacity: 0.8;
    }
    .norme-card.norme-featured .norme-picto { color: var(--green-accent); }

    /* ── SLIDE 8 · Cards différenciées ──────────────────────── */
    /* Accent couleur subtil par module */
    .card-mod-collect {
      border-color: rgba(46,230,138,0.22);
    }
    .card-mod-collect .card-icon { color: var(--green-accent); }

    .card-mod-calcul {
      border-color: rgba(26,175,102,0.25);
    }
    .card-mod-calcul .card-icon { color: var(--green-mid2); }

    .card-mod-klem {
      border-color: rgba(200,230,255,0.18);
    }
    .card-mod-klem .card-icon { color: rgba(160,210,255,0.85); }

    .card-mod-report {
      border-color: rgba(232,163,61,0.20);
    }
    .card-mod-report .card-icon { color: var(--gold-warning); }

    /* Chiffre clé sous le titre de chaque module */
    .card-kpi {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 700;
      color: var(--green-accent);
      letter-spacing: 0.08em;
      margin-top: 4px; margin-bottom: 2px;
      opacity: 0.9;
    }
    /* Sous-titres techniques uniformes : tous en vert accent (brief client) */
    .card-mod-klem .card-kpi { color: var(--green-accent); }
    .card-mod-report .card-kpi { color: var(--green-accent); }

    /* C.1 · Numéros oversized bg supprimés (brief client : effet sale) */
    .num-list li { position: relative; }
    .num-list li > * { position: relative; z-index: 1; }
    .stepper-item { overflow: visible; }
    .action-step { overflow: hidden; }
    .action-step > * { position: relative; z-index: 1; }
    .service-card { position: relative; overflow: hidden; }
    .service-card > * { position: relative; z-index: 1; }

    /* ── C.2 · Lift hover sur toutes les cards ───────────────── */
    .card,
    .norme-card,
    .stat-card,
    .service-card,
    .pricing-card,
    .scope-block,
    .action-step {
      transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.3s, background 0.3s;
    }
    .card:hover,
    .norme-card:hover,
    .stat-card:hover,
    .service-card:hover,
    .pricing-card:hover,
    .scope-block:hover,
    .action-step:hover {
      transform: translateY(-3px);
      box-shadow: 0 8px 32px rgba(46,230,138,0.08);
    }
    /* PDF export : désactiver tous les transforms hover pour rendu propre */
    body.pdf-export .card,
    body.pdf-export .norme-card,
    body.pdf-export .stat-card,
    body.pdf-export .service-card,
    body.pdf-export .pricing-card,
    body.pdf-export .scope-block,
    body.pdf-export .action-step {
      transform: none !important;
      box-shadow: none !important;
      transition: none !important;
    }

    /* ═══════════════════════════════════════════════════════════
       PRINT / PDF
    ═══════════════════════════════════════════════════════════ */
    @media print {
      html, body {
        overflow: visible !important;
        background: #0A1F15 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      #progress-bar, #pdf-btn, #slide-counter, #nav-prev, #nav-next { display: none !important; }
      #slides-wrapper {
        overflow: visible !important;
        height: auto !important;
        position: static !important;
      }
      .slide {
        position: relative !important;
        opacity: 1 !important;
        transform: none !important;
        pointer-events: all !important;
        height: auto !important;
        min-height: 100vh;
        page-break-after: always;
        break-after: page;
        width: 100% !important;
        display: flex !important;
      }
    }
    /* ── Responsive breakpoints ───────────────────────────── */
    /* ═══════════════════════════════════════════════════════════
       MOBILE : conserver le format slide 16:9 (letterboxé)
    ═══════════════════════════════════════════════════════════ */
    @media (orientation: portrait), (max-width: 900px) {
      #slides-wrapper {
        padding: 0;
        display: flex; align-items: center; justify-content: center;
      }
      .slide {
        position: absolute;
        top: 50%; left: 50%;
        width: min(100vw - 24px, calc((100vh - 24px) * 16 / 9));
        height: auto; aspect-ratio: 16 / 9;
        --slide-tx: 30px;
        transform: translate(-50%, -50%) translateX(var(--slide-tx));
      }
      .slide.active { transform: translate(-50%, -50%); }
      .slide.exit-left  { transform: translate(-50%, -50%) translateX(-30px); }
      .slide.exit-right { transform: translate(-50%, -50%) translateX(30px); }
      #nav-prev { left: 6px; }
      #nav-next { right: 56px; }
    }
