  @font-face { font-family: 'Metrify', 'DM Sans', sans-serif; src: url(../fonts/DMSans-Regular.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
  @font-face { font-family: 'Metrify', 'DM Sans', sans-serif; src: url(../fonts/DMSans-Medium.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
  @font-face { font-family: 'Metrify', 'DM Sans', sans-serif; src: url(../fonts/DMSans-SemiBold.woff2) format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
  @font-face { font-family: 'Metrify'; src: url(../fonts/Metrify-Regular.woff2) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
  @font-face { font-family: 'Metrify'; src: url(../fonts/Metrify-Medium.woff2) format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }

  :root {
    /* Neutres charte page 3 : blanc, noir, 3 gris */
    --bg: #FFFFFF;
    --bg-alt: #F3F3F1;
    --bg-light: #F3F3F1;
    --text: #000000;
    --text-2: #747474;
    --text-3: #747474;
    --border: #D0D0CB;
    --border-strong: #747474;
    --dark: #000000;
    --dark-2: #000000;
    --dark-3: #000000;
    /* Identité MediaBy page 5 */
    --lime: #F2FFAA;
    --lime-strong: #B5CA98; /* alias palette : olive p2 col C ligne 9, accompagne le lime */
    --sky: #D2EFF4;
    --mauve: #CFC0C0;
    --sage: #C8DACA;
    /* Palette page 2 colonnes A et C (10 lignes x 2 colonnes = 20 couleurs) */
    --p-blue: #91BFFF;
    --p-lime: #F2FFAA;
    --p-salmon: #FFAE98;
    --p-mint: #89EACB;
    --p-mauve: #CEC0C0;
    --p-ice: #C3F3F8;
    --p-cream: #FCE8D4;
    --p-tan: #D6AD96;
    --p-lavender: #E2C1F0;
    --p-turquoise: #8AD8E4;
    --p-green: #CBFBB6;
    --p-coral: #FF9798;
    --p-camel: #E6C49C;
    --p-violet: #C0A7CA;
    --p-yellow: #FFEBA7;
    --p-sage: #C8D9CA;
    --p-periwinkle: #BFB9FF;
    --p-pink: #FFB6D6;
    --p-olive: #B5CA98;
    --p-apricot: #FFCA8E;
    /* Mapping canaux sur la palette charte */
    --c-display: var(--p-lavender);
    --c-audio: var(--p-turquoise);
    --c-search: var(--p-salmon);
    --c-dooh: var(--p-olive);
    --c-youtube: var(--p-mint);
    --c-social: var(--p-blue);
    --c-netflix: var(--p-tan);
    --c-video: var(--p-yellow);
    --c-ingame: var(--p-pink);
    --c-tf1: var(--p-coral);
    --c-sea: var(--p-violet);
    --logo: url(../img/logo-mediaby-dark.png);
    --logo-white: url(../img/logo-mediaby-white.png);
    --lsg-logo: url(../img/brands/les-sales-gosses.png);
    --livenation-logo: url("../img/brands/livenation.svg");
    --ml-deezer:    url(../img/media-logos/deezer.svg);
    --ml-elpais:    url(../img/media-logos/elpais.svg);
    --ml-facebook:  url(../img/media-logos/facebook.svg);
    --ml-google:    url(../img/media-logos/google.svg);
    --ml-guardian:  url(../img/media-logos/guardian.svg);
    --ml-instagram: url(../img/media-logos/instagram.svg);
    --ml-jcdecaux:  url(../img/media-logos/jcdecaux.svg);
    --ml-lemonde:   url(../img/media-logos/lemonde.svg);
    --ml-netflix:   url(../img/media-logos/netflix.svg);
    --ml-roblox:    url(../img/media-logos/roblox.svg);
    --ml-spotify:   url(../img/media-logos/spotify.svg);
    --ml-youtube:   url(../img/media-logos/youtube.svg);
    --illu-achat:  url("../img/illustrations/achat.svg");
    --illu-optim:  url("../img/illustrations/optim.svg");
    --illu-data:   url("../img/illustrations/data.svg");
    --illu-report: url("../img/illustrations/report.svg");
    --illu-crea:   url("../img/illustrations/crea.svg");
  }
  .pic-illu {
    display: block;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
  .pic-illu.achat  { background-image: var(--illu-achat); }
  .pic-illu.optim  { background-image: var(--illu-optim); }
  .pic-illu.data   { background-image: var(--illu-data); }
  .pic-illu.report { background-image: var(--illu-report); }
  .pic-illu.crea   { background-image: var(--illu-crea); }

  * { box-sizing: border-box; }
  html, body {
    margin: 0; padding: 0;
    background: var(--bg);
    color: var(--text);
    font-family: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
  }
  a { color: inherit; text-decoration: none; }
  button { font-family: inherit; }
  .mb-logo { display: inline-block; background: var(--logo) no-repeat left center / contain; height: 28px; width: 118px; }
  .mb-logo.white { background-image: var(--logo-white); }

  /* Accent Lime marker — le rectangle de couleur se peint au scroll de gauche à droite */
  .accent {
    color: var(--text);
    background-image: linear-gradient(transparent 48%, var(--lime) 48%, var(--lime) 96%, transparent 96%);
    background-size: 0% 100%;
    background-position: 0 0;
    background-repeat: no-repeat;
    padding: 0 0.12em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    transition: background-size 1.6s cubic-bezier(.22,.61,.36,1);
  }
  .accent.swept-in { background-size: 100% 100%; }

  /* Pill */
  .pill {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 16px;
    border-radius: 999px;
    background: var(--bg);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text-2);
  }
  .pill .pill-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime-strong); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lime) 55%, transparent); }

  /* Topbar */
  .topbar {
    position: sticky; top: 0; z-index: 100;
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .topbar-inner {
    max-width: 1320px; margin: 0 auto;
    padding: 18px 32px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px;
  }
  .topbar-left { display: flex; align-items: center; gap: 36px; }
  .nav { display: flex; gap: 28px; }
  .nav button {
    background: transparent; border: 0;
    color: var(--text-2); font-size: 13.5px; font-weight: 500;
    cursor: pointer; padding: 4px 0; position: relative;
    transition: color 0.15s;
  }
  .nav button:hover { color: var(--text); }
  .nav button.active { color: var(--text); }
  .nav button.active::after {
    content: ""; position: absolute;
    left: 0; right: 0; bottom: -22px;
    height: 2px; background: var(--text);
  }
  .topbar-right { display: flex; align-items: center; gap: 10px; }
  .lang-picker {
    background: var(--bg);
    border-radius: 999px; padding: 2px;
    display: inline-flex; gap: 2px;
  }
  .lang-btn {
    background: transparent; border: 0;
    padding: 5px 9px; border-radius: 999px;
    font-size: 11px; font-weight: 600;
    color: var(--text-3); cursor: pointer;
    text-transform: uppercase;
    font-family: inherit;
  }
  .lang-btn.active { background: var(--text); color: var(--bg); }

  .btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 22px;
    border-radius: 999px;
    font-size: 13.5px; font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer; transition: all 0.18s;
    text-decoration: none; font-family: inherit;
    white-space: nowrap;
  }
  .btn-primary { background: var(--text); color: #fff; border-color: var(--text); }
  .btn-primary:hover { background: var(--dark-2); }
  .btn-ghost { background: transparent; color: var(--text); border-color: var(--text); }
  .btn-ghost:hover { background: var(--text); color: #fff; }
  .btn-lime { background: var(--lime); color: var(--text); border-color: var(--lime-strong); font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
  .btn-lime:hover { background: var(--lime-strong); border-color: var(--lime-strong); box-shadow: 0 4px 14px rgba(0,0,0,0.1); }
  .btn-large { padding: 14px 28px; font-size: 14.5px; }
  .btn-dark-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,0.25); }
  .btn-dark-ghost:hover { border-color: #fff; }

  /* Page layout */
  .page { display: none; }
  .page.active { display: block; }
  body.page { display: block !important; }
  .container { max-width: 1320px; margin: 0 auto; padding: 0 32px; }

  /* Hero */
  .hero {
    padding: 88px 32px 56px;
    max-width: 1280px; margin: 0 auto;
    text-align: center;
    position: relative;
  }
  .hero.left-align { text-align: left; }
  /* Tagline en filigrane (SVG auto-fit, toujours entièrement visible) */
  .tagline-watermark {
    position: absolute;
    left: 4%; right: 4%;
    bottom: 12px;
    width: 92%;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    color: var(--text);
    opacity: 0.05;
  }
  .tagline-watermark svg { display: block; width: 100%; height: auto; }
  .hero > *:not(.tagline-watermark) { position: relative; z-index: 1; }

  /* Variante verticale (À propos) */
  .tagline-vertical {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%) rotate(90deg);
    transform-origin: right center;
    color: var(--text);
    opacity: 0.05;
    pointer-events: none;
    user-select: none;
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  /* Variante horizontale entre sections (Plateforme, Démo) */
  .tagline-divider {
    width: 100%;
    margin: 0 auto;
    padding: 24px 4% 32px;
    text-align: center;
    color: var(--text);
    opacity: 0.14;
    pointer-events: none;
    user-select: none;
  }
  .tagline-divider svg { display: block; width: 92%; max-width: 1280px; margin: 0 auto; height: auto; }
  .page[data-page="demo"] .tagline-divider { padding: 8px 4% 12px; opacity: 0.18; }
  .page[data-page="demo"] .tagline-divider svg { max-width: 360px; }
  /* Compaction de la page Demander une démo : tout le formulaire visible sans scroll */
  .page[data-page="demo"] .hero { padding: 56px 32px 20px; }
  .page[data-page="demo"] h1.hero-title { font-size: clamp(32px, 4.5vw, 52px); margin: 14px auto 14px; }
  .page[data-page="demo"] .hero-lede { font-size: 15px; margin: 0 auto 0; max-width: 560px; }
  .page[data-page="demo"] .section { padding: 0 32px 32px; }
  .page[data-page="demo"] .demo-form-card { padding: 24px 28px; }
  .page[data-page="demo"] .demo-form-grid { gap: 10px; }
  .page[data-page="demo"] .demo-form .form-row { gap: 10px; }
  .page[data-page="demo"] .demo-form label { font-size: 10.5px; margin-bottom: 4px; }
  .page[data-page="demo"] .demo-form input,
  .page[data-page="demo"] .demo-form select { padding: 10px 14px; font-size: 14px; border-radius: 10px; }
  .page[data-page="demo"] .demo-form select { padding-right: 32px; }
  .page[data-page="demo"] .demo-form-btn { padding: 12px 0; font-size: 14.5px; }

  /* Compaction de la page Nous contacter : tout le formulaire visible sans scroll (desktop / tablette) */
  @media (min-width: 721px) {
    .page[data-page="contact"] .tagline-divider { padding: 6px 4% 10px; opacity: 0.16; }
    .page[data-page="contact"] .tagline-divider svg { max-width: 280px; }
    .page[data-page="contact"] .hero { padding: 44px 32px 14px; }
    .page[data-page="contact"] h1.hero-title { font-size: clamp(30px, 4vw, 46px); margin: 10px auto 10px; }
    .page[data-page="contact"] .hero-lede { font-size: 14.5px; margin: 0 auto; max-width: 600px; line-height: 1.55; }
    .page[data-page="contact"] .section { padding: 0 32px 24px; }
    .page[data-page="contact"] .demo-form-card { padding: 20px 24px; max-width: 720px; }
    .page[data-page="contact"] .demo-form-grid { gap: 8px; }
    .page[data-page="contact"] .demo-form .form-row { gap: 8px; }
    .page[data-page="contact"] .contact-subject-row { margin-bottom: 8px; }
    .page[data-page="contact"] .demo-form label { font-size: 10.5px; margin-bottom: 3px; }
    .page[data-page="contact"] .demo-form input,
    .page[data-page="contact"] .demo-form select,
    .page[data-page="contact"] .demo-form textarea { padding: 9px 14px; font-size: 14px; border-radius: 10px; }
    .page[data-page="contact"] .demo-form textarea { min-height: 70px; line-height: 1.45; }
    .page[data-page="contact"] .demo-form select { padding-right: 32px; }
    .page[data-page="contact"] .demo-form-btn { padding: 11px 0; font-size: 14.5px; margin-top: 10px !important; }
    /* On resserre l'espace entre les groupes pour gagner en hauteur */
    .page[data-page="contact"] .demo-form > div > div[style*="margin-top"] { margin-top: 8px !important; }
  }
  /* Baseline éyebrow (remplace l'ancienne pill) */
  .hero-baseline {
    font-family: 'DM Sans', sans-serif;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: 0.04em;
    color: var(--text-2);
    margin: 0 0 8px;
    text-transform: uppercase;
  }
  .hero-baseline .dot {
    display: inline-block;
    width: 5px; height: 5px;
    border-radius: 50%;
    background: var(--lime-strong);
    margin-right: 8px;
    vertical-align: middle;
    transform: translateY(-1px);
  }
  h1.hero-title {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(40px, 6vw, 76px);
    line-height: 1.05;
    letter-spacing: -0.03em;
    margin: 28px auto 28px;
    max-width: 960px;
  }
  .rotating-channel {
    display: inline-block;
    color: var(--text);
    background-image: linear-gradient(transparent 62%, var(--lime) 62%, var(--lime) 96%, transparent 96%);
    padding: 0 0.15em;
    min-width: 240px;
    transition: opacity 0.28s ease, color 0.28s ease;
  }
  .hero-lede {
    font-size: clamp(15px, 1.2vw, 19px);
    color: var(--text-2);
    max-width: 640px;
    margin: 0 auto 36px;
    line-height: 1.6;
  }
  .hero.left-align .hero-lede { margin-left: 0; }
  .hero-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
  .hero.left-align .hero-ctas { justify-content: flex-start; }

  /* Trust logos marquee (pleine largeur, rotation infinie) */
  .trust-band {
    margin-top: 64px;
    padding: 24px 0;
  }
  .trust-label {
    text-align: center;
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 28px;
  }
  .trust-marquee {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
  }
  .trust-track {
    display: flex; align-items: center;
    gap: 72px;
    width: max-content;
    animation: scrollLogos 35s linear infinite;
  }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  @keyframes scaleIn {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
  }
  @keyframes pulseLime {
    0%, 100% { background-size: 100% 100%; }
    50% { background-size: 100% 110%; }
  }
  @keyframes drift {
    from { transform: translate(0,0); }
    to { transform: translate(-2%, -2%); }
  }
  /* Smooth scroll & motion-safe defaults */
  html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      transition-duration: 0.01ms !important;
    }
  }
  /* Gate global : tant que html n'est pas .is-ready, aucune animation ni transition.
     Cela évite que les effets d'entrée se déclenchent à l'ouverture de la page.
     Les éléments visibles au premier paint apparaissent en état final.
     Tout ce qui devient visible APRÈS l'ajout de .is-ready s'anime normalement. */
  html:not(.is-ready) *,
  html:not(.is-ready) *::before,
  html:not(.is-ready) *::after {
    animation-duration: 0s !important;
    animation-delay: 0s !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
  /* Page transition (fade-in on activation) */
  .page.active { animation: scaleIn 0.55s cubic-bezier(.16,1,.3,1) both; }
  /* Buttons : feedback fluide */
  .btn, .btn-primary, .btn-ghost, .btn-lime, .demo-form-btn {
    transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    will-change: transform;
  }
  .btn:hover, .btn-primary:hover, .btn-ghost:hover, .btn-lime:hover, .demo-form-btn:hover {
    transform: translateY(-2px);
  }
  .btn:active, .btn-primary:active, .btn-ghost:active, .btn-lime:active, .demo-form-btn:active {
    transform: translateY(0) scale(0.98);
    transition-duration: 0.08s;
  }
  .btn-primary:hover { box-shadow: 0 10px 24px rgba(0,0,0,0.18); }
  /* Pills : micro-interaction */
  .pill {
    transition: transform 0.25s cubic-bezier(.16,1,.3,1), background-color 0.25s ease, box-shadow 0.25s ease;
  }
  .pill:hover { transform: translateY(-1px); }
  .pill .pill-dot {
    animation: pulseDot 2.4s ease-in-out infinite;
  }
  @keyframes pulseDot {
    0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--lime) 55%, transparent); }
    50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--lime) 25%, transparent); }
  }
  /* Nav : sous-ligne animée pour l'item actif */
  #mainNav button {
    position: relative;
    transition: color 0.25s ease;
  }
  #mainNav button::after {
    content: "";
    position: absolute;
    left: 50%; bottom: -4px;
    width: 0; height: 2px;
    background: var(--text);
    transition: width 0.3s cubic-bezier(.16,1,.3,1), left 0.3s cubic-bezier(.16,1,.3,1);
  }
  #mainNav button.active::after,
  #mainNav button:hover::after { width: 60%; left: 20%; }
  /* Lang buttons : feedback */
  .lang-btn { transition: background 0.25s ease, color 0.25s ease, transform 0.18s ease; }
  .lang-btn:hover:not(.active) { transform: scale(1.05); }
  /* Cards canaux : hover plus riche */
  .channel-card-v2 {
    transition: transform 0.4s cubic-bezier(.16,1,.3,1), box-shadow 0.4s cubic-bezier(.16,1,.3,1);
  }
  .channel-card-v2:hover {
    transform: translateY(-6px) scale(1.015);
    box-shadow: 0 20px 50px color-mix(in srgb, var(--channel-c) 40%, transparent);
  }
  .channel-card-v2 .icon-wrap {
    transition: transform 0.3s cubic-bezier(.34,1.56,.64,1);
  }
  .channel-card-v2:hover .icon-wrap { transform: rotate(-6deg) scale(1.08); }
  /* Who-cards, val-cards, step-cards : hover doux */
  .who-card, .val-card, .step-card {
    transition: transform 0.32s cubic-bezier(.16,1,.3,1), box-shadow 0.32s cubic-bezier(.16,1,.3,1);
  }
  .who-card:hover, .val-card:hover, .step-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(0,0,0,0.08);
  }
  /* Feat-tabs : zoom plus net sur l'active */
  .feat-tab {
    transition: transform 0.3s cubic-bezier(.16,1,.3,1);
  }
  .feat-tab:hover:not(.active) { transform: translateY(-2px); }
  .feat-tab-icon { transition: transform 0.4s cubic-bezier(.34,1.56,.64,1), background 0.4s ease, box-shadow 0.4s ease; }
  .feat-tab.active .feat-tab-icon { transform: scale(1.12) rotate(-2deg); }
  /* Feat panel illu : entrée à chaque switch */
  .feat-panel-illu { animation: fadeUp 0.45s cubic-bezier(.16,1,.3,1) both; }
  /* Lime CTA visual : zoom subtil au survol */
  .lime-cta-visual img { transition: transform 0.8s cubic-bezier(.16,1,.3,1); }
  .lime-cta-visual:hover img { transform: scale(1.03); }
  /* Verbatim arrows : scale au survol */
  .verbatim-arrow { transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease; }
  .verbatim-arrow:hover { transform: scale(1.08); }
  /* Trust + media marquees : ralentit au survol */
  .trust-marquee:hover .trust-track,
  .media-logos-marquee:hover .media-logos-track {
    animation-play-state: paused;
  }
  .trust-logo, .media-mark { transition: transform 0.25s ease, opacity 0.25s ease; }
  .trust-logo:hover, .media-mark:hover { transform: translateY(-2px); }
  /* Form inputs : focus animé */
  .demo-form input, .demo-form select {
    transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  }
  .demo-form input:focus, .demo-form select:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--text) 8%, transparent);
  }
  .demo-form label {
    transition: color 0.25s ease;
  }
  .demo-form div:focus-within > label { color: var(--text); }
  /* Footer socials : feedback */
  .footer-social { transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, color 0.25s ease; }
  .footer-social:hover { transform: translateY(-2px) scale(1.05); }
  /* Logo en haut : feedback subtil */
  .mb-logo { transition: opacity 0.25s ease, transform 0.25s ease; }
  .mb-logo:hover { opacity: 0.78; }
  /* Rotating channel highlight : transition plus douce (opacity + background combinés) */
  .rotating-channel { transition: opacity 0.32s cubic-bezier(.16,1,.3,1), color 0.32s ease, background-size 1.6s cubic-bezier(.22,.61,.36,1); }
  /* Surlignage couleur sous le texte : peint au scroll lorsque le texte devient visible */
  .rotating-channel,
  .cta-banner h2 .rotating,
  .stat-v.s0,
  .stat-v.s1,
  .stat-v.s2,
  .stat-v.s3 {
    background-size: 0% 100%;
    background-position: 0 0;
    background-repeat: no-repeat;
    transition: background-size 1.6s cubic-bezier(.22,.61,.36,1);
  }
  .rotating-channel.swept-in,
  .cta-banner h2 .rotating.swept-in,
  .stat-v.swept-in {
    background-size: 100% 100%;
  }
  /* Tagline divider : reveal au scroll */
  .tagline-divider {
    transition: opacity 0.7s cubic-bezier(.16,1,.3,1), transform 0.7s cubic-bezier(.16,1,.3,1);
  }
  /* Eco-section : pulse subtil pour signaler l'identité lime */
  .eco-section { transition: transform 0.4s cubic-bezier(.16,1,.3,1); }
  /* Channel-card icon-wrap reset transforms after hover stops */
  .channel-card-v2:not(:hover) .icon-wrap { transform: rotate(0) scale(1); }
  /* Hero CTA buttons : entrée légèrement décalée */
  .hero-ctas .btn { animation-delay: calc(0.4s + (var(--i, 0) * 80ms)); }
  /* Channel card-bg color shifts on hover */
  .channel-card-v2 { background-position: 0 0; background-size: 100% 100%; }
  /* Timeline year dots : pulse léger pour les futures */
  .timeline-row.future.visible .timeline-year { animation: pulseDot 3s ease-in-out infinite; }
  .page.active .hero > * {
    animation: fadeUp 0.8s cubic-bezier(.16,1,.3,1) both;
  }
  .page.active .hero > *:nth-child(1) { animation-delay: 0.05s; }
  .page.active .hero > *:nth-child(2) { animation-delay: 0.15s; }
  .page.active .hero > *:nth-child(3) { animation-delay: 0.25s; }
  .page.active .hero > *:nth-child(4) { animation-delay: 0.35s; }
  .page.active .hero > *:nth-child(5) { animation-delay: 0.45s; }
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s cubic-bezier(.16,1,.3,1), transform 0.8s cubic-bezier(.16,1,.3,1);
  }
  .reveal.visible { opacity: 1; transform: translateY(0); }
  .reveal-stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s cubic-bezier(.16,1,.3,1), transform 0.7s cubic-bezier(.16,1,.3,1);
  }
  .reveal-stagger.visible > *:nth-child(1) { transition-delay: 0.05s; }
  .reveal-stagger.visible > *:nth-child(2) { transition-delay: 0.12s; }
  .reveal-stagger.visible > *:nth-child(3) { transition-delay: 0.19s; }
  .reveal-stagger.visible > *:nth-child(4) { transition-delay: 0.26s; }
  .reveal-stagger.visible > *:nth-child(5) { transition-delay: 0.33s; }
  .reveal-stagger.visible > *:nth-child(6) { transition-delay: 0.40s; }
  .reveal-stagger.visible > *:nth-child(7) { transition-delay: 0.47s; }
  .reveal-stagger.visible > *:nth-child(8) { transition-delay: 0.54s; }
  .reveal-stagger.visible > * { opacity: 1; transform: translateY(0); }
  @keyframes scrollLogos {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  .trust-logo {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 800;
    font-size: 26px;
    color: #000;
    letter-spacing: -0.025em;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    height: 48px;
  }
  .trust-logo.serif {
    font-family: 'Georgia', serif;
    font-weight: 700;
    letter-spacing: -0.01em;
  }
  .trust-logo.condensed {
    font-stretch: condensed;
    font-weight: 900;
    letter-spacing: -0.03em;
    text-transform: uppercase;
  }
  .trust-logo.img-logo {
    background: var(--lsg-logo) no-repeat center / contain;
    width: 124px; height: 48px;
    font-size: 0;
  }
  .trust-logo.livenation-logo {
    background: var(--livenation-logo) no-repeat center / contain;
    width: 168px; height: 40px;
    font-size: 0;
  }

  /* Channels section v2 : grille de cards canal alignée sur le style global */
  .channels-section {
    background: var(--bg);
  }
  .channels-stat {
    display: inline-flex; align-items: baseline; gap: 8px;
    margin-top: 18px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-3);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .channels-stat strong {
    font-family: 'DM Sans', sans-serif;
    font-weight: 600;
    font-size: 18px;
    color: var(--text);
    letter-spacing: -0.01em;
  }
  .channels-grid-v2 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 64px;
  }
  .channel-card-v2 {
    background: var(--channel-c);
    border-radius: 20px;
    padding: 28px 24px;
    display: flex; flex-direction: column; gap: 14px;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.18s ease;
    min-height: 220px;
    color: #000000;
  }
  .channel-card-v2:hover { transform: translateY(-4px) scale(1.01); }
  .channel-card-v2 .icon-wrap {
    width: 48px; height: 48px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    background: #000000;
    color: #fff;
  }
  .channel-card-v2 h3 {
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    font-size: 22px; letter-spacing: -0.02em;
    margin: 0;
    color: #000000;
  }
  .channel-card-v2 .platforms {
    font-size: 13px;
    color: rgba(15,15,18,0.78);
    line-height: 1.55;
    margin: 0;
    flex: 1;
  }
  .channel-card-v2 .count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10.5px;
    color: rgba(15,15,18,0.62);
    padding-top: 14px;
    border-top: 1px solid rgba(15,15,18,0.18);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
  }
  /* Bande logos médias : marquee comme "Ils nous font confiance" */
  .media-logos-band {
    margin-top: 32px;
    padding-top: 28px;
  }
  .media-logos-label {
    text-align: center;
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 500;
    margin: 0 0 6px;
  }
  .media-logos-sublabel {
    text-align: center;
    font-size: 12.5px;
    color: var(--text-2);
    margin: 0 0 56px;
  }
  .media-logos-marquee {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
  }
  .media-logos-track {
    display: flex; align-items: center;
    gap: 56px;
    width: max-content;
    animation: scrollLogos 45s linear infinite;
  }
  .media-mark {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 22px;
    color: var(--text);
    letter-spacing: -0.02em;
    opacity: 0.85;
    white-space: nowrap;
    flex-shrink: 0;
    transition: opacity 0.2s;
    display: inline-flex; align-items: center; gap: 10px;
    line-height: 1;
  }
  .media-mark:hover { opacity: 1; }
  .media-mark .picot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    opacity: 0.85;
  }
  .media-mark.italic { font-style: italic; font-weight: 700; }
  .media-mark.serif { font-family: 'Georgia', serif; font-weight: 700; }
  .media-mark.condensed { font-weight: 800; letter-spacing: -0.03em; }
  .media-mark.spaced { letter-spacing: 0.1em; font-weight: 700; }
  .media-logo {
    display: inline-block;
    height: 40px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex-shrink: 0;
  }
  .media-logo.deezer    { background-image: var(--ml-deezer);    width: 143px; }
  .media-logo.elpais    { background-image: var(--ml-elpais);    width: 180px; }
  .media-logo.facebook  { background-image: var(--ml-facebook);  width: 201px; }
  .media-logo.google    { background-image: var(--ml-google);    width: 252px; }
  .media-logo.guardian  { background-image: var(--ml-guardian);  width: 121px; }
  .media-logo.instagram { background-image: var(--ml-instagram); width: 140px; }
  .media-logo.jcdecaux  { background-image: var(--ml-jcdecaux);  width: 107px; }
  .media-logo.lemonde   { background-image: var(--ml-lemonde);   width: 184px; }
  .media-logo.netflix   { background-image: var(--ml-netflix);   width: 146px; }
  .media-logo.roblox    { background-image: var(--ml-roblox);    width: 158px; }
  .media-logo.spotify   { background-image: var(--ml-spotify);   width: 127px; }
  .media-logo.youtube   { background-image: var(--ml-youtube);   width: 209px; }

  /* Section */
  .section { max-width: 1320px; margin: 0 auto; padding: 80px 32px; }
  .tagline-divider + .section { padding-top: 0; }
  .section-head { text-align: center; max-width: 740px; margin: 0 auto 48px; }
  .section-head.left { text-align: left; max-width: none; }
  .section-head .pill { margin-bottom: 18px; }
  .section-title {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(32px, 4vw, 50px);
    line-height: 1.1;
    letter-spacing: -0.025em;
    margin: 0 0 18px;
  }
  .section-head.left .section-title { max-width: 740px; }
  .section-lede {
    font-size: 16px;
    color: var(--text-2);
    line-height: 1.65;
    margin: 0;
    max-width: 620px;
  }
  .section-head:not(.left) .section-lede { margin: 0 auto; }

  /* Solutions Tabs */
  .feat-tabs {
    display: flex; justify-content: center;
    gap: 16px; flex-wrap: wrap;
    margin-bottom: 48px;
  }
  .feat-tab {
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    padding: 16px 20px;
    background: transparent; border: 1px solid transparent;
    border-radius: 16px;
    cursor: pointer; transition: all 0.4s cubic-bezier(.16,1,.3,1);
    font-family: inherit;
    min-width: 110px;
  }
  .feat-tab:hover { background: var(--bg); }
  .feat-tab.active {
    transform: scale(1.08);
    background: var(--bg);
  }
  .feat-tab-icon {
    width: 56px; height: 56px;
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.4s;
    background: var(--bg);
    color: var(--text-3);
    font-size: 22px;
  }
  .feat-tab.active .feat-tab-icon {
    color: var(--text); background: var(--bg);
    box-shadow: 0 8px 32px rgba(0,0,0,0.06);
  }
  .feat-tab.tab-0.active .feat-tab-icon { background: color-mix(in srgb, var(--c-audio) 24%, var(--bg)); border-color: var(--c-audio); }
  .feat-tab.tab-1.active .feat-tab-icon { background: color-mix(in srgb, var(--lime) 32%, var(--bg)); border-color: var(--lime); }
  .feat-tab.tab-2.active .feat-tab-icon { background: color-mix(in srgb, var(--c-youtube) 28%, var(--bg)); border-color: var(--c-youtube); }
  .feat-tab.tab-3.active .feat-tab-icon { background: color-mix(in srgb, var(--c-display) 28%, var(--bg)); border-color: var(--c-display); }
  .feat-tab.tab-4.active .feat-tab-icon { background: color-mix(in srgb, var(--c-ingame) 36%, var(--bg)); border-color: var(--c-ingame); }
  .feat-tab .tab-label {
    font-size: 11px; font-weight: 600;
    color: var(--text-3);
    letter-spacing: 0.04em;
    transition: color 0.3s;
  }
  .feat-tab.active .tab-label { color: var(--text); }

  /* Feat panel */
  .feat-panel {
    background: var(--bg);
    border-radius: 24px;
    overflow: hidden;
  }
  .feat-panel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 320px;
  }
  .feat-panel-text {
    padding: 56px;
    display: flex; flex-direction: column; justify-content: center;
  }
  .feat-panel-head {
    display: inline-flex; align-items: center; gap: 10px;
    margin-bottom: 18px;
  }
  .feat-panel-head .ic {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: var(--bg);
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    color: var(--text);
  }
  .feat-panel-tag {
    font-size: 12px; font-weight: 600;
    color: var(--text-2);
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }
  .feat-panel h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(22px, 2.4vw, 30px);
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0 0 16px;
  }
  .feat-panel p {
    font-size: 15.5px; line-height: 1.7;
    color: var(--text-2); margin: 0 0 28px;
  }
  .feat-panel-visual {
    display: flex; align-items: center; justify-content: center;
    padding: 40px;
    background: var(--bg);
  }
  .feat-panel-illu {
    display: block;
    max-width: 100%;
    max-height: 240px;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: opacity 0.35s ease;
  }
  .feat-panel-progress { height: 3px; background: var(--border); }
  .feat-panel-progress-bar {
    height: 100%; background: var(--text);
    transition: width 0.4s ease;
  }

  /* Who */
  .who-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  .who-card {
    border-radius: 24px;
    padding: 36px 32px;
    color: #000000;
  }
  .who-card.c0 { background: var(--c-social); }
  .who-card.c1 { background: var(--c-youtube); }
  .who-card.c2 { background: var(--c-video); }
  .who-card h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 22px; letter-spacing: -0.015em;
    margin: 0 0 10px;
    color: #000000;
  }
  .who-card p { color: rgba(15,15,18,0.78); font-size: 14.5px; line-height: 1.65; margin: 0; }

  /* Verbatims clients */
  .verbatims {
    max-width: 1320px;
    margin: 0 auto;
    padding: 80px 32px 0;
  }
  .verbatim-card {
    background: var(--bg);
    border-radius: 28px;
    padding: 56px 72px 56px;
    position: relative;
    overflow: hidden;
  }
  .verbatim-card::before {
    content: "“";
    position: absolute;
    top: -40px; right: 40px;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 280px; line-height: 1;
    color: var(--lime); opacity: 0.55;
    pointer-events: none;
    user-select: none;
  }
  .verbatim-eyebrow {
    position: relative;
    margin-bottom: 28px;
    z-index: 1;
  }
  .verbatim-quote {
    position: relative;
    z-index: 1;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 500;
    font-size: clamp(22px, 2.4vw, 32px);
    line-height: 1.35;
    letter-spacing: -0.015em;
    margin: 0 0 36px;
    color: var(--text);
    transition: opacity 0.35s ease;
  }
  .verbatim-author {
    position: relative;
    z-index: 1;
    display: flex; align-items: center; gap: 18px;
    padding-top: 28px;
  }
  .verbatim-avatar {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--avatar-c, var(--p-mint));
    display: flex; align-items: center; justify-content: center;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 20px; color: var(--text);
    flex-shrink: 0;
    transition: background 0.35s ease;
  }
  .verbatim-author-name {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 16px;
    color: var(--text);
    margin: 0;
  }
  .verbatim-author-role {
    font-size: 13.5px;
    color: var(--text-2);
    margin: 4px 0 0;
    line-height: 1.5;
  }
  .verbatim-author-role strong {
    color: var(--text);
    font-weight: 600;
  }
  .verbatim-controls {
    display: flex; gap: 8px;
    margin-left: auto;
  }
  .verbatim-arrow {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--bg);
    border: 1px solid var(--text);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    color: var(--text);
    transition: all 0.15s;
  }
  .verbatim-arrow:hover { background: var(--text); color: var(--bg); border-color: var(--text); }
  .verbatim-arrow svg { width: 16px; height: 16px; }
  .verbatim-dots {
    display: inline-flex; gap: 8px; align-items: center;
    margin-right: 12px;
  }
  .verbatim-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--border);
    cursor: pointer;
    transition: background 0.25s, transform 0.25s;
    border: 0; padding: 0;
  }
  .verbatim-dot.active { background: var(--text); transform: scale(1.4); }

  /* Demo banner Lime CTA (pastel + cadre accentué) */
  .lime-cta {
    background: var(--lime);
    padding: 80px 0;
    margin-top: 80px;
    position: relative;
    border-top: 1px solid var(--lime-strong);
    border-bottom: 1px solid var(--lime-strong);
  }
  .lime-cta::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background:
      radial-gradient(circle at 12% 28%, rgba(0,0,0,0.04), transparent 35%),
      radial-gradient(circle at 88% 72%, rgba(0,0,0,0.03), transparent 40%);
    pointer-events: none;
  }
  .lime-cta-inner { position: relative; }
  .lime-cta-inner {
    max-width: 1280px; margin: 0 auto;
    padding: 0 56px;
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: center;
  }
  .lime-cta .pill { background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.1); color: var(--text); }
  .lime-cta .pill-dot { background: var(--text); box-shadow: 0 0 0 3px rgba(0,0,0,0.1); }
  .lime-cta h2 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(28px, 3.5vw, 42px);
    line-height: 1.12; letter-spacing: -0.02em;
    margin: 18px 0 18px;
    color: var(--text);
  }
  .lime-cta p {
    font-size: 16px; color: var(--text);
    line-height: 1.6; margin: 0 0 28px;
    opacity: 0.85; max-width: 480px;
  }
  .lime-cta-visual {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 24px 56px rgba(0,0,0,0.18);
  }
  .lime-cta-visual img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  /* Platform : Before / After */
  .pain-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0; align-items: stretch;
    margin: 56px 0 80px;
  }
  .pain-box {
    border-radius: 20px;
    padding: 36px 32px;
  }
  .pain-box.before {
    background: color-mix(in srgb, var(--p-coral) 16%, var(--bg));
  }
  .pain-box.after {
    background: color-mix(in srgb, var(--lime) 22%, var(--bg));
  }
  .pain-tag {
    font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.12em;
  }
  .pain-box.before .pain-tag { color: var(--p-coral); }
  .pain-box.after .pain-tag { color: #000000; }
  .pain-h {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 22px; letter-spacing: -0.015em;
    margin: 14px 0 24px; line-height: 1.2;
  }
  .pain-item {
    display: flex; align-items: flex-start; gap: 12px;
    margin-bottom: 14px;
    font-size: 14px; color: var(--text-2);
  }
  .pain-item .icon {
    width: 22px; height: 22px;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
  }
  .pain-box.before .pain-item .icon { background: color-mix(in srgb, var(--p-coral) 30%, var(--bg)); color: var(--p-coral); }
  .pain-box.after .pain-item .icon { background: var(--lime-strong); color: var(--text); }
  .pain-arrow {
    display: flex; align-items: center; justify-content: center;
    padding: 0 24px;
    position: relative;
  }
  .pain-arrow .arrow-circ {
    width: 72px; height: 72px;
    border-radius: 50%;
    /* Aplat : exactement la teinte du bloc « Avec MediaBy » */
    background: color-mix(in srgb, var(--lime) 22%, var(--bg));
    border: 0;
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
    position: relative;
    box-shadow: none;
    transition: transform 0.32s cubic-bezier(.34,1.56,.64,1);
  }
  .pain-arrow .arrow-circ svg {
    width: 26px; height: 26px;
    color: var(--text);
    position: relative;
    z-index: 1;
    transition: transform 0.4s cubic-bezier(.16,1,.3,1);
  }
  .pain-arrow:hover .arrow-circ {
    transform: scale(1.06);
  }
  .pain-arrow:hover .arrow-circ svg { transform: translateX(3px); }

  /* Même effet de survol que la flèche, appliqué aux items des blocs Avant / Avec MediaBy */
  .pain-item {
    transition: transform 0.3s cubic-bezier(.16,1,.3,1);
    border-radius: 10px;
    padding: 4px 6px;
    margin-left: -6px;
  }
  .pain-item .icon {
    transition: transform 0.32s cubic-bezier(.34,1.56,.64,1), box-shadow 0.32s ease;
  }
  .pain-item .icon svg {
    transition: transform 0.4s cubic-bezier(.16,1,.3,1);
  }
  .pain-item:hover {
    transform: translateX(3px);
  }
  .pain-item:hover .icon {
    transform: scale(1.18);
    box-shadow:
      0 8px 18px rgba(15,15,18,0.10),
      0 2px 6px rgba(15,15,18,0.05);
  }
  .pain-item:hover .icon svg { transform: translateX(0.5px); }

  /* Ecosystem */
  .eco-section {
    background: var(--bg);
    border-radius: 24px;
    padding: 36px 24px;
    margin-bottom: 80px;
    text-align: center;
  }
  .eco-h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(22px, 2.6vw, 32px);
    letter-spacing: -0.02em;
    margin: 14px 0 24px;
  }
  .eco-badges {
    display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center;
    gap: 12px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 8px;
  }
  .eco-badges .eco-badge {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 0;
    background: transparent;
    font-family: 'Metrify', 'DM Sans', sans-serif;
    font-size: clamp(15px, 1.5vw, 20px);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--text);
    flex-shrink: 0;
    opacity: 0;
    transform: translateY(20px) scale(0.92);
    transition: opacity 0.55s cubic-bezier(.34,1.46,.64,1), transform 0.55s cubic-bezier(.34,1.46,.64,1);
  }
  .eco-badges .eco-badge .dot {
    width: 12px; height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .eco-badges.visible .eco-badge { opacity: 1; transform: translateY(0) scale(1); }
  .eco-badges.visible .eco-badge:nth-child(1) { transition-delay: 0.08s; }
  .eco-badges.visible .eco-badge:nth-child(2) { transition-delay: 0.18s; }
  .eco-badges.visible .eco-badge:nth-child(3) { transition-delay: 0.28s; }
  .eco-badges.visible .eco-badge:nth-child(4) { transition-delay: 0.38s; }
  .eco-badges.visible .eco-badge:nth-child(5) { transition-delay: 0.48s; }
  .eco-badges.visible .eco-badge:nth-child(6) { transition-delay: 0.58s; }
  .eco-badges.visible .eco-badge:nth-child(7) { transition-delay: 0.68s; }
  .eco-badges.visible .eco-badge:nth-child(8) { transition-delay: 0.78s; }

  /* Feature row (platform) */
  .feature-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: center;
    padding: 64px 0;
  }
  .feature-row.reverse > :first-child { order: 2; }
  .feature-row-head { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 20px; }
  .feature-row-head .ic {
    width: 48px; height: 48px;
    border-radius: 14px;
    background: var(--bg);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px;
  }
  .feature-row-head .tag {
    font-size: 12px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--text-2);
  }
  .feature-row h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.12; letter-spacing: -0.025em;
    margin: 0 0 18px;
  }
  .feature-row p {
    font-size: 16px; color: var(--text-2);
    line-height: 1.7; margin: 0 0 28px;
  }
  .feature-row-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    max-width: 480px;
    margin-top: 8px;
  }
  .anim-stat {
    min-width: 0;
    overflow: hidden;
  }
  .anim-stat .v {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: clamp(20px, 2vw, 28px); letter-spacing: -0.02em;
    line-height: 1.05;
    color: color-mix(in srgb, var(--feat-c, var(--text)) 78%, #000);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    opacity: 0;
    transform: translateY(28px) scale(0.86);
    transition: opacity 0.65s cubic-bezier(.34,1.46,.64,1), transform 0.65s cubic-bezier(.34,1.46,.64,1);
  }
  .anim-stat .l {
    font-size: 11px;
    color: var(--text);
    text-transform: uppercase; letter-spacing: 0.08em;
    font-weight: 600;
    margin-top: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.55s cubic-bezier(.16,1,.3,1), transform 0.55s cubic-bezier(.16,1,.3,1);
  }
  .anim-stat.visible .v,
  .anim-stat.visible .l {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  /* Stagger : valeur d'abord, puis label, et chaque colonne décalée */
  .feature-row-stats .anim-stat:nth-child(1).visible .v { transition-delay: 0.05s; }
  .feature-row-stats .anim-stat:nth-child(1).visible .l { transition-delay: 0.20s; }
  .feature-row-stats .anim-stat:nth-child(2).visible .v { transition-delay: 0.22s; }
  .feature-row-stats .anim-stat:nth-child(2).visible .l { transition-delay: 0.37s; }
  .feature-row-stats .anim-stat:nth-child(3).visible .v { transition-delay: 0.39s; }
  .feature-row-stats .anim-stat:nth-child(3).visible .l { transition-delay: 0.54s; }
  .feature-visual {
    background: var(--bg); border-radius: 20px;
    padding: 24px;
    min-height: 320px;
    display: flex;
  }
  .feature-bigicon {
    flex: 1 1 auto;
    align-self: stretch;
    min-height: 280px;
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
  }
  .feature-bigicon .pic-illu {
    width: 100% !important;
    height: 100% !important;
    min-height: 280px;
  }

  /* Steps grid */
  .steps-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 2px; border-radius: 20px; overflow: hidden;
    background: var(--border);
    margin-bottom: 80px;
  }
  .step-card {
    padding: 44px 32px;
    position: relative; overflow: hidden;
    color: #000000;
  }
  .step-card.c0 { background: var(--c-audio); }
  .step-card.c1 { background: var(--lime); }
  .step-card.c2 { background: var(--c-ingame); }
  .step-card .num-bg {
    position: absolute; top: -20px; right: -10px;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 120px; line-height: 1;
    color: rgba(15,15,18,0.10);
  }
  .step-card .num-label {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 13px; margin-bottom: 16px;
    position: relative;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #000000;
  }
  .step-card h4 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 26px; letter-spacing: -0.02em;
    margin: 0 0 12px;
    position: relative;
    color: #000000;
  }
  .step-card p {
    font-size: 14.5px; line-height: 1.7;
    color: rgba(15,15,18,0.78); margin: 0;
    position: relative;
  }

  /* Stats final platform */
  .stats-grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 80px;
  }
  .stat-cell {
    background: var(--bg);
    border-radius: 16px;
    padding: 32px 20px;
    text-align: center;
  }
  .stat-v {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(32px, 4vw, 48px);
    letter-spacing: -0.03em;
    line-height: 1;
  }
  .stat-v.s0 { color: var(--text); }
  .stat-v.s0 { background-image: linear-gradient(transparent 62%, var(--c-audio) 62%, var(--c-audio) 96%, transparent 96%); display: inline-block; padding: 0 0.15em; }
  .stat-v.s1 { background-image: linear-gradient(transparent 62%, var(--lime) 62%, var(--lime) 96%, transparent 96%); display: inline-block; padding: 0 0.15em; }
  .stat-v.s2 { background-image: linear-gradient(transparent 62%, var(--c-youtube) 62%, var(--c-youtube) 96%, transparent 96%); display: inline-block; padding: 0 0.15em; }
  .stat-v.s3 { background-image: linear-gradient(transparent 62%, var(--c-display) 62%, var(--c-display) 96%, transparent 96%); display: inline-block; padding: 0 0.15em; }
  .stat-l {
    font-size: 11.5px; color: var(--text-3);
    text-transform: uppercase; letter-spacing: 0.08em;
    margin-top: 12px;
  }

  /* CTA Banner */
  .cta-banner {
    background: var(--bg);
    border-radius: 24px;
    padding: 80px 56px;
    text-align: center;
    margin-bottom: 40px;
    position: relative; overflow: hidden;
  }
  .cta-banner::before, .cta-banner::after {
    content: ""; position: absolute;
    width: 400px; height: 400px;
    border-radius: 50%; pointer-events: none;
    filter: blur(60px);
  }
  .cta-banner::before {
    top: -60%; left: -20%;
    background: radial-gradient(circle, color-mix(in srgb, var(--lime) 60%, transparent), transparent 70%);
  }
  .cta-banner::after {
    bottom: -60%; right: -20%;
    background: radial-gradient(circle, color-mix(in srgb, var(--lime-strong) 35%, transparent), transparent 70%);
  }
  .cta-banner > * { position: relative; }
  .cta-banner h2 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(28px, 4vw, 48px);
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0 0 18px;
  }
  .cta-banner h2 .rotating {
    display: inline-block;
    background-image: linear-gradient(transparent 62%, var(--lime) 62%, var(--lime) 96%, transparent 96%);
    padding: 0 0.2em;
    min-width: 200px;
    transition: opacity 0.3s ease, background-size 1.6s cubic-bezier(.22,.61,.36,1);
  }
  .cta-banner p {
    font-size: 17px; color: var(--text-2);
    line-height: 1.7; max-width: 520px;
    margin: 0 auto 32px;
  }

  /* About */
  .vals-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 16px; margin-bottom: 80px;
  }
  .val-card {
    border-radius: 20px;
    padding: 36px 32px;
    color: #000000;
  }
  .val-card.v0 { background: var(--c-audio); }
  .val-card.v1 { background: var(--lime); }
  .val-card.v2 { background: var(--p-salmon); }
  .val-card .ic {
    width: 48px; height: 48px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; margin-bottom: 20px;
    background: #000000;
    color: #fff;
  }
  .val-card h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 700;
    font-size: 22px; letter-spacing: -0.015em;
    margin: 0 0 10px;
    color: #000000;
  }
  .val-card p {
    font-size: 14.5px; line-height: 1.7;
    color: rgba(15,15,18,0.78); margin: 0;
  }

  /* Timeline */
  .timeline-block {
    max-width: 760px; margin: 0 auto 80px;
    position: relative;
    --timeline-progress: 0%;
  }
  /* Ligne grise de fond, tracée du début à la fin de la timeline */
  .timeline-block::before {
    content: ""; position: absolute;
    left: 23px; top: 0; bottom: 0;
    width: 2px;
    background: color-mix(in srgb, var(--text) 12%, transparent);
  }
  /* Ligne colorée qui se remplit selon le scroll */
  .timeline-block::after {
    content: ""; position: absolute;
    left: 23px; top: 0;
    width: 2px;
    height: var(--timeline-progress);
    background: linear-gradient(to bottom, var(--lime-strong) 0%, var(--c-audio) 100%);
    transition: height 0.15s linear;
    pointer-events: none;
  }
  .timeline-row {
    display: flex; gap: 32px;
    margin-bottom: 40px;
    opacity: 0;
    transform: translateX(-48px) translateY(24px) scale(0.94);
    transition:
      opacity 0.85s cubic-bezier(.16,1,.3,1),
      transform 0.85s cubic-bezier(.34,1.46,.64,1);
  }
  .timeline-row:last-child { margin-bottom: 0; }
  .timeline-row.visible {
    opacity: 1;
    transform: translateX(0) translateY(0) scale(1);
  }
  .timeline-year {
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--bg);
    border: 2px solid var(--lime);
    display: flex; align-items: center; justify-content: center;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600; font-size: 12px;
    color: var(--text);
    flex-shrink: 0;
    z-index: 1; position: relative;
    transform: scale(0.3) rotate(-12deg);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--lime) 0%, transparent);
    transition:
      transform 0.75s cubic-bezier(.34,1.56,.64,1) 0.15s,
      box-shadow 0.6s cubic-bezier(.16,1,.3,1) 0.35s,
      border-color 0.4s ease,
      color 0.4s ease;
  }
  .timeline-row.visible .timeline-year {
    transform: scale(1) rotate(0);
    box-shadow: 0 0 0 8px color-mix(in srgb, var(--lime) 22%, transparent);
  }
  .timeline-row.future .timeline-year {
    border-style: dashed;
    color: var(--text-2);
  }
  .timeline-row.future.visible .timeline-year {
    box-shadow: 0 0 0 8px color-mix(in srgb, var(--c-audio) 18%, transparent);
  }
  .timeline-content { padding-top: 6px; }
  .timeline-content h4 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 22px; letter-spacing: -0.015em;
    margin: 0 0 8px;
    line-height: 1.25;
    transform: translateX(-12px);
    transition: transform 0.7s cubic-bezier(.16,1,.3,1) 0.2s;
  }
  .timeline-row.visible .timeline-content h4 { transform: translateX(0); }
  .timeline-content p {
    font-size: 14.5px; color: var(--text-2);
    line-height: 1.7; margin: 0;
    max-width: 560px;
    transform: translateX(-8px);
    transition: transform 0.7s cubic-bezier(.16,1,.3,1) 0.3s;
  }
  .timeline-row.visible .timeline-content p { transform: translateX(0); }
  .timeline-row.future .timeline-content h4 { color: var(--text); }

  /* Team */
  .team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 80px;
  }
  .team-card {
    background: var(--bg);
    border-radius: 16px;
    padding: 24px 16px;
    text-align: center;
    transition: border-color 0.3s;
  }
  .team-card:hover { transform: translateY(-2px); }
  .team-avatar {
    width: 56px; height: 56px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 14px;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 20px;
    color: var(--text);
  }
  .team-card h4 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 14px; margin: 0 0 2px;
    line-height: 1.2;
  }
  .team-card p { font-size: 11px; color: var(--text-3); margin: 0; }

  /* Office */
  .office-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
  }
  .office-card {
    background: var(--bg);
    border-radius: 16px;
    padding: 28px 24px;
  }
  .office-card .head {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 12px;
  }
  .office-card .head .pin {
    display: flex; align-items: center; justify-content: center;
    color: var(--text);
  }
  .office-card .head .pin.lime { color: var(--lime-strong); }
  .office-card .head .pin.sky { color: var(--c-audio); filter: brightness(0.5); }
  .office-card .head .tag {
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.1em;
  }
  .office-card .head .tag.lime { color: #000000; }
  .office-card h4 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 20px; letter-spacing: -0.015em;
    margin: 0 0 6px;
  }
  .office-card p { font-size: 14px; color: var(--text-2); line-height: 1.6; margin: 0; }

  /* Demo form */
  .demo-form-card {
    background: var(--bg);
    border-radius: 20px;
    padding: 40px 36px;
    max-width: 640px; margin: 0 auto;
  }
  .demo-form-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .demo-form .form-row { display: flex; flex-direction: column; gap: 16px; }
  .demo-form label {
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px; display: block;
  }
  .demo-form input, .demo-form select, .demo-form textarea {
    width: 100%;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid var(--border-strong);
    background: var(--bg);
    color: var(--text);
    font-family: inherit; font-size: 15px;
    outline: none; box-sizing: border-box;
    transition: border-color 0.3s;
  }
  .demo-form input:focus, .demo-form select:focus, .demo-form textarea:focus { border-color: var(--text); }
  .demo-form select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 38px; }
  .demo-form textarea {
    line-height: 1.55;
    resize: vertical;
    min-height: 120px;
    font-family: inherit;
  }
  /* Champ Objet en lecture seule sur la page Contact */
  .contact-form .contact-subject-row input[readonly] {
    background: color-mix(in srgb, var(--lime) 14%, var(--bg));
    border-color: color-mix(in srgb, var(--lime-strong) 55%, var(--border-strong));
    font-weight: 600;
    cursor: default;
  }
  .demo-form .phone-group { display: flex; gap: 8px; }
  .demo-form .phone-group .phone-code { flex: 0 0 168px; }
  .demo-form .phone-group input[type="tel"] { flex: 1; min-width: 0; }
  .demo-form-btn {
    background: var(--text); border: 0; color: #fff;
    font-family: inherit; font-size: 15px; font-weight: 600;
    padding: 16px 0;
    border-radius: 12px;
    cursor: pointer; width: 100%;
    transition: background 0.2s;
  }
  .demo-form-btn:hover { background: var(--dark-2); }
  .demo-sent {
    text-align: center; padding: 32px 0;
  }
  .demo-sent .check {
    width: 64px; height: 64px;
    margin: 0 auto 16px;
    border-radius: 50%; background: var(--lime);
    display: flex; align-items: center; justify-content: center;
    font-size: 32px; color: var(--text); font-weight: 700;
  }
  .demo-sent h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 26px; letter-spacing: -0.02em;
    margin: 0 0 8px;
  }
  .demo-sent p { font-size: 15px; color: var(--text-2); margin: 0; }

  /* ============================================================
     PRICING — Offres et tarifs (page dédiée)
     ============================================================ */
  /* Trois principes : grille de 3 cartes claires */
  .principles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 72px;
  }
  .principle-card {
    background: var(--bg);
    border-radius: 20px;
    padding: 32px 28px;
    transition: transform 0.3s cubic-bezier(.16,1,.3,1);
  }
  .principle-card:hover { transform: translateY(-3px); }
  .principle-card .ic {
    width: 48px; height: 48px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 18px;
    color: var(--text);
  }
  .principle-card.p0 { background: color-mix(in srgb, var(--lime) 22%, var(--bg)); }
  .principle-card.p1 { background: color-mix(in srgb, var(--c-audio) 24%, var(--bg)); }
  .principle-card.p2 { background: color-mix(in srgb, var(--p-salmon) 22%, var(--bg)); }
  .principle-card.p0 .ic { background: var(--lime-strong); color: var(--text); }
  .principle-card.p1 .ic { background: var(--c-audio); color: var(--text); }
  .principle-card.p2 .ic { background: var(--p-salmon); color: var(--text); }
  .principle-card h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 19px; letter-spacing: -0.015em;
    margin: 0 0 10px;
    line-height: 1.25;
  }
  .principle-card p {
    font-size: 14.5px; line-height: 1.6;
    color: var(--text-2); margin: 0;
  }

  /* Quatre formules : grille 2x2 (1 col mobile) */
  .pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
  }
  .pricing-card {
    background: var(--bg);
    border-radius: 22px;
    padding: 32px 30px 30px;
    display: flex; flex-direction: column;
    border: 1px solid var(--border);
    transition: transform 0.3s cubic-bezier(.16,1,.3,1), border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(15,15,18,0.08);
  }
  .pricing-card.pc-core   { border-color: color-mix(in srgb, var(--lime-strong) 50%, var(--border)); }
  .pricing-card.pc-agence { border-color: color-mix(in srgb, var(--c-audio) 45%, var(--border)); }
  .pricing-card.pc-entite { border-color: color-mix(in srgb, var(--c-display) 55%, var(--border)); }
  .pricing-card.pc-reseau { border-color: color-mix(in srgb, var(--p-salmon) 55%, var(--border)); }
  .pricing-card-head { margin-bottom: 18px; }
  .pricing-category {
    display: inline-block;
    font-size: 11px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(15,15,18,0.05);
    color: var(--text);
    margin-bottom: 14px;
  }
  .pricing-card.pc-core .pricing-category   { background: color-mix(in srgb, var(--lime) 40%, var(--bg)); color: var(--text); }
  .pricing-card.pc-agence .pricing-category { background: color-mix(in srgb, var(--c-audio) 32%, var(--bg)); color: var(--text); }
  .pricing-card.pc-entite .pricing-category { background: color-mix(in srgb, var(--c-display) 38%, var(--bg)); color: var(--text); }
  .pricing-card.pc-reseau .pricing-category { background: color-mix(in srgb, var(--p-salmon) 36%, var(--bg)); color: var(--text); }
  .pricing-name {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 24px; letter-spacing: -0.02em;
    line-height: 1.18;
    margin: 0 0 8px;
  }
  .pricing-promise {
    font-size: 14.5px; line-height: 1.55;
    color: var(--text-2); margin: 0;
  }
  .pricing-price {
    margin: 22px 0 20px;
    padding: 18px 20px;
    background: rgba(15,15,18,0.025);
    border-radius: 14px;
  }
  .pricing-amount {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 32px; letter-spacing: -0.025em;
    color: var(--text);
    line-height: 1.05;
    margin-bottom: 6px;
  }
  .pricing-detail {
    font-size: 13px; line-height: 1.55;
    color: var(--text-3); margin: 0;
  }
  .pricing-features {
    list-style: none; padding: 0; margin: 0 0 24px;
    display: flex; flex-direction: column; gap: 10px;
    flex: 1;
  }
  .pricing-features li {
    display: flex; align-items: flex-start; gap: 12px;
    font-size: 14px; line-height: 1.5;
    color: var(--text);
  }
  .pricing-tick {
    flex-shrink: 0;
    width: 22px; height: 22px;
    border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    margin-top: 1px;
  }
  .pricing-card.pc-core .pricing-tick   { background: var(--lime-strong); color: var(--text); }
  .pricing-card.pc-agence .pricing-tick { background: color-mix(in srgb, var(--c-audio) 70%, transparent); color: var(--text); }
  .pricing-card.pc-entite .pricing-tick { background: color-mix(in srgb, var(--c-display) 70%, transparent); color: var(--text); }
  .pricing-card.pc-reseau .pricing-tick { background: color-mix(in srgb, var(--p-salmon) 70%, transparent); color: var(--text); }
  .pricing-cta { width: 100%; justify-content: center; }
  .pricing-foot-note {
    font-size: 13px;
    color: var(--text-3);
    line-height: 1.6;
    text-align: center;
    max-width: 760px; margin: 0 auto 72px;
    padding: 0 24px;
  }

  /* Comparatif */
  .compare-wrap {
    overflow-x: auto;
    margin: 0 -8px 72px;
    padding: 0 8px;
    -webkit-overflow-scrolling: touch;
  }
  .compare-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--bg);
    border-radius: 18px;
    overflow: hidden;
    font-size: 13.5px;
    min-width: 720px;
  }
  .compare-table thead th {
    text-align: left;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 12.5px; letter-spacing: -0.005em;
    padding: 18px 16px;
    background: rgba(15,15,18,0.04);
    color: var(--text);
    line-height: 1.25;
    vertical-align: top;
  }
  .compare-table tbody th {
    text-align: left;
    font-weight: 600;
    padding: 16px;
    color: var(--text);
    background: rgba(15,15,18,0.02);
    font-size: 13.5px;
    width: 220px;
  }
  .compare-table tbody td {
    padding: 16px;
    color: var(--text-2);
    line-height: 1.5;
    vertical-align: top;
  }
  .compare-table tbody tr { border-top: 1px solid var(--border); }
  .compare-table tbody tr:hover { background: rgba(15,15,18,0.012); }

  /* FAQ */
  .faq-list {
    max-width: 880px;
    margin: 0 auto 60px;
    display: flex; flex-direction: column; gap: 10px;
  }
  .faq-item {
    background: var(--bg);
    border-radius: 14px;
    border: 1px solid var(--border);
    padding: 0;
    transition: border-color 0.25s ease, background 0.25s ease;
  }
  .faq-item[open] {
    border-color: var(--text);
    background: rgba(15,15,18,0.018);
  }
  .faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 24px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 16px; letter-spacing: -0.01em;
    color: var(--text);
    line-height: 1.35;
  }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-chev {
    flex-shrink: 0;
    width: 28px; height: 28px;
    border-radius: 8px;
    background: rgba(15,15,18,0.05);
    display: flex; align-items: center; justify-content: center;
    font-family: 'DM Sans', sans-serif; font-weight: 500;
    font-size: 18px; color: var(--text);
    transition: transform 0.28s cubic-bezier(.34,1.56,.64,1);
  }
  .faq-item[open] .faq-chev { transform: rotate(45deg); }
  .faq-item p {
    padding: 0 24px 22px;
    margin: 0;
    font-size: 14.5px; line-height: 1.7;
    color: var(--text-2);
  }

  /* CTA final pricing */
  .pricing-final-cta { text-align: center; }

  /* ============================================================
     PAGES LÉGALES (Mentions, CGU, CGV, SLA, DPA, Cookies)
     Typographie cohérente avec le site, contenu FR comme référence.
     ============================================================ */
  .legal-page .hero { padding: 64px 32px 16px; }
  .legal-page .hero-lede { font-size: 13.5px; color: var(--text-3); margin-bottom: 8px; }
  /* Pas de bandeau Unified Buying, Smarter Spending au sommet des pages légales */
  .legal-page .tagline-divider { display: none; }
  /* L'encart d'avertissement n'est plus utile : la version EN existe pleinement. */
  .legal-fr-only-notice { display: none !important; }

  /* Affichage par langue : FR quand lang=fr, EN pour toutes les autres langues */
  /* .legal-content { display: none; } */
  html[lang="fr"] .legal-content[lang="fr"] { display: block; }
  html:not([lang="fr"]) .legal-content[lang="en"] { display: block; }

  /* Mention de référence légale en bas de la version EN */
  .legal-en-footnote {
    margin-top: 56px !important;
    padding: 16px 18px;
    background: color-mix(in srgb, var(--text) 4%, var(--bg));
    border-left: 3px solid color-mix(in srgb, var(--text) 24%, transparent);
    border-radius: 0 10px 10px 0;
    font-size: 13px !important;
    color: var(--text-3) !important;
    line-height: 1.55;
  }
  .legal-en-footnote em { font-style: normal; }

  .legal-content {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 32px 96px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--text-2);
  }
  .legal-content > :first-child { margin-top: 0; }
  .legal-content h2 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(20px, 2.4vw, 26px);
    letter-spacing: -0.018em;
    line-height: 1.25;
    margin: 44px 0 14px;
    color: var(--text);
  }
  .legal-content h3 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 17px;
    letter-spacing: -0.012em;
    line-height: 1.3;
    margin: 28px 0 10px;
    color: var(--text);
  }
  .legal-content h4 {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 15px;
    margin: 22px 0 6px;
    color: var(--text);
  }
  .legal-content p { margin: 0 0 14px; }
  .legal-content a {
    color: var(--text);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: color-mix(in srgb, var(--text) 35%, transparent);
    transition: text-decoration-color 0.2s ease;
  }
  .legal-content a:hover { text-decoration-color: var(--lime-strong); }
  .legal-content ul, .legal-content ol {
    margin: 0 0 18px;
    padding-left: 1.4em;
  }
  .legal-content li { margin: 4px 0; line-height: 1.65; }
  .legal-content strong { font-weight: 600; color: var(--text); }
  .legal-content em { font-style: italic; }
  .legal-content code {
    font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    background: color-mix(in srgb, var(--text) 6%, var(--bg));
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.9em;
  }
  @media (max-width: 720px) {
    .legal-page .hero { padding: 40px 22px 12px; }
    .legal-content { padding: 0 22px 64px; font-size: 15px; }
    .legal-content h2 { margin-top: 36px; }
    .legal-fr-only-notice { font-size: 12.5px; padding: 11px 14px; margin-top: 12px; }
  }

  /* Footer */
  .footer {
    background: var(--dark); color: #fff;
    padding: 80px 32px 0;
    position: relative;
  }
  .footer::before {
    content: ""; position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--lime-strong) 55%, transparent), color-mix(in srgb, var(--lime) 45%, transparent), transparent);
  }
  .footer-inner { max-width: 1320px; margin: 0 auto; }
  .footer-top {
    display: flex; justify-content: space-between; align-items: flex-start;
    flex-wrap: wrap; gap: 32px; margin-bottom: 56px;
  }
  .footer-brand { max-width: 360px; }
  .footer-brand .mb-logo { height: 40px; width: 168px; }
  .footer-brand p { color: rgba(255,255,255,0.6); font-size: 14px; margin: 20px 0 0; line-height: 1.7; }
  .footer-socials {
    display: flex; flex-direction: column; align-items: flex-end; gap: 12px;
  }
  .footer-socials-label {
    font-size: 11px; font-weight: 600;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase; letter-spacing: 0.12em;
  }
  .footer-socials-row { display: flex; gap: 8px; }
  .footer-social {
    width: 40px; height: 40px;
    border-radius: 12px;
    background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.55);
    font-size: 11px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
    text-transform: uppercase; cursor: pointer;
    transition: all 0.3s; text-decoration: none;
  }
  .footer-social:hover {
    background: color-mix(in srgb, var(--lime) 25%, transparent);
    border-color: color-mix(in srgb, var(--lime-strong) 60%, transparent);
    color: var(--lime);
  }
  /* Newsletter en bottom */
  .footer-newsletter {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
    padding: 36px 0 40px;
    border-top: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 12px;
  }
  .footer-newsletter-eyebrow {
    display: inline-block;
    font-size: 11px; font-weight: 600;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase; letter-spacing: 0.16em;
    margin-bottom: 14px;
  }
  .footer-newsletter-title {
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: clamp(22px, 2.2vw, 30px);
    letter-spacing: -0.02em; line-height: 1.18;
    color: #fff;
    margin: 0 0 12px;
  }
  .footer-newsletter-lede {
    font-size: 14px;
    color: rgba(255,255,255,0.6);
    line-height: 1.65;
    margin: 0;
    max-width: 460px;
  }
  .footer-newsletter-form { width: 100%; max-width: 520px; margin-left: auto; }
  .footer-newsletter-field {
    display: flex; align-items: stretch;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 14px;
    padding: 6px;
    gap: 6px;
    transition: border-color 0.25s ease, background 0.25s ease;
  }
  .footer-newsletter-field:focus-within {
    border-color: color-mix(in srgb, var(--lime-strong) 70%, transparent);
    background: rgba(255,255,255,0.07);
  }
  .footer-newsletter-field input {
    flex: 1; min-width: 0;
    background: transparent; border: 0; outline: 0;
    color: #fff;
    font-family: inherit; font-size: 15px;
    padding: 0 14px;
  }
  .footer-newsletter-field input::placeholder { color: rgba(255,255,255,0.4); }
  .footer-newsletter-btn {
    background: var(--lime);
    color: var(--text);
    border: 0; border-radius: 10px;
    padding: 12px 22px;
    font-family: inherit; font-size: 14px; font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.18s cubic-bezier(.34,1.56,.64,1), box-shadow 0.2s ease;
    white-space: nowrap;
  }
  .footer-newsletter-btn:hover {
    background: var(--lime-strong);
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.18);
  }
  .footer-newsletter-btn:active { transform: translateY(0) scale(0.98); }
  .footer-newsletter-success {
    display: inline-flex; align-items: center; gap: 10px;
    background: color-mix(in srgb, var(--lime) 22%, transparent);
    color: #fff;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 14px;
    border: 1px solid color-mix(in srgb, var(--lime-strong) 55%, transparent);
  }
  .footer-newsletter-success[hidden] { display: none !important; }
  .footer-newsletter-success svg { color: var(--lime); flex-shrink: 0; }
  .footer-newsletter-legal {
    font-size: 12px;
    color: rgba(255,255,255,0.4);
    line-height: 1.6;
    margin: 14px 0 0;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 36px;
    margin-bottom: 48px;
    padding-top: 36px;
    border-top: 1px solid rgba(255,255,255,0.1);
  }
  .footer-col h5 {
    font-size: 11px; font-weight: 600;
    color: #fff;
    text-transform: uppercase; letter-spacing: 0.12em;
    margin: 0 0 20px;
  }
  .footer-col a, .footer-col button {
    display: block; background: none; border: 0;
    color: rgba(255,255,255,0.6);
    font-family: inherit; font-size: 14px;
    cursor: pointer; padding: 6px 0;
    text-decoration: none; text-align: left;
    transition: color 0.2s;
  }
  .footer-col a:hover, .footer-col button:hover { color: #fff; }
  .footer-cert {
    display: flex; gap: 12px; align-items: center;
  }
  .footer-cert-badge {
    padding: 10px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.1);
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    color: rgba(255,255,255,0.7);
    font-size: 13px;
  }

  /* Giant wordmark : logo officiel MediaBy plein largeur */
  .footer-wordmark {
    padding: 56px 0;
    overflow: hidden;
  }
  .footer-wordmark-img {
    display: block;
    width: 100%;
    aspect-ratio: 1007 / 240;
    max-height: 320px;
    background: var(--logo-white) no-repeat center / contain;
    /* Animation « bondit du bas » : état initial */
    opacity: 0;
    transform: translateY(80px) scale(0.94);
    transform-origin: 50% 100%;
    transition:
      opacity 0.6s cubic-bezier(.16,1,.3,1),
      transform 1.05s cubic-bezier(.34,1.56,.64,1);
    will-change: transform, opacity;
  }
  .footer-wordmark-img.bounced-in {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding: 24px 0 56px;
    display: flex; justify-content: space-between;
    gap: 24px; flex-wrap: wrap;
    font-size: 12.5px; color: rgba(255,255,255,0.4);
  }
  .footer-bottom-links { display: flex; gap: 24px; flex-wrap: wrap; }
  .footer-bottom-links a { color: rgba(255,255,255,0.4); cursor: pointer; }
  .footer-bottom-links a:hover { color: #fff; }

  /* ============================================================
     MOBILE MENU (hamburger + overlay)
     ============================================================ */
  .burger {
    display: none;
    width: 40px; height: 40px;
    background: transparent;
    border: 1px solid var(--border-strong);
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    align-items: center; justify-content: center;
    flex-direction: column;
    gap: 4px;
    transition: background 0.2s, border-color 0.2s;
  }
  .burger:hover { background: var(--bg); }
  .burger span {
    display: block;
    width: 18px; height: 2px;
    background: var(--text);
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.2s ease;
    transform-origin: center;
  }
  .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .mobile-menu {
    position: fixed;
    top: 64px; left: 0; right: 0; bottom: 0;
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    z-index: 90;
    transform: translateY(-12px);
    opacity: 0; pointer-events: none;
    transition: transform 0.25s ease, opacity 0.2s ease;
    overflow-y: auto;
    visibility: hidden;
  }
  .mobile-menu.open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }
  .mobile-menu-inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 24px 24px 40px;
    display: flex; flex-direction: column;
    gap: 4px;
  }
  .mm-link {
    background: transparent; border: 0;
    text-align: left;
    font-family: 'Metrify', 'DM Sans', sans-serif; font-weight: 600;
    font-size: 22px;
    letter-spacing: -0.015em;
    color: var(--text);
    padding: 14px 4px;
    cursor: pointer;
    border-radius: 8px;
    transition: background 0.18s;
  }
  .mm-link:hover, .mm-link.active { background: var(--bg); }
  .mm-divider {
    height: 1px;
    background: var(--border);
    margin: 16px 4px 12px;
  }
  .mm-action {
    display: block;
    text-align: center;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 15px; font-weight: 600;
    text-decoration: none;
    margin-top: 8px;
    transition: transform 0.18s, background 0.2s, border-color 0.2s;
  }
  .mm-action-ghost {
    background: transparent;
    border: 1px solid var(--text);
    color: var(--text);
  }
  .mm-action-primary {
    background: var(--text);
    color: #fff;
    border: 1px solid var(--text);
  }
  .mm-action:active { transform: scale(0.98); }
  /* Sélecteur de langues dans le menu mobile */
  .mm-lang {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 8px 4px 4px;
  }
  .mm-lang-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.12em;
  }
  .mm-lang-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
  }
  .mm-lang-btn {
    flex: 1 1 0;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--bg);
    border: 1px solid var(--border);
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.18s, border-color 0.18s, color 0.18s;
    font-family: inherit;
  }
  .mm-lang-btn:hover { background: var(--bg-2, var(--bg)); border-color: var(--text); }
  .mm-lang-btn.active {
    background: var(--text);
    color: var(--bg);
    border-color: var(--text);
  }
  body.menu-open { overflow: hidden; }

  /* ============================================================
     RESPONSIVE — tablette, mobile, petit mobile
     ============================================================ */

  /* Tablette (≤ 1100px) : grilles principales se simplifient */
  @media (max-width: 1100px) {
    .feat-panel-grid { grid-template-columns: 1fr; }
    .feat-panel-visual { border-left: 0; border-top: 1px solid var(--border); }
    .pain-grid { grid-template-columns: 1fr; gap: 16px; }
    .pain-arrow { transform: rotate(90deg); padding: 8px 0; }
    .who-grid { grid-template-columns: 1fr; }
    .vals-grid { grid-template-columns: 1fr; }
    .steps-grid { grid-template-columns: 1fr; gap: 16px; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .feature-row { grid-template-columns: 1fr; gap: 32px; }
    .feature-row.reverse > :first-child { order: 0; }
    .lime-cta-inner { grid-template-columns: 1fr; gap: 32px; padding: 0 32px; }
    .footer-top { flex-direction: column; align-items: flex-start; }
    .footer-socials { align-items: flex-start; }
    .channels-grid-v2 { grid-template-columns: repeat(3, 1fr); }
  }

  /* Tablette portrait (≤ 1024px) : header passe en mode mobile, masquage nav inline */
  @media (max-width: 1024px) {
    .nav { display: none; }
    .burger { display: inline-flex; }
    .btn-login { display: none; }
    .lang-picker { padding: 1px; }
    .lang-btn { padding: 4px 7px; font-size: 10.5px; }
    .topbar-inner { padding: 14px 22px; gap: 12px; }
    .topbar-left { gap: 16px; }
    .topbar-right { gap: 8px; }
    .mobile-menu { top: 60px; }
  }

  /* Tablette/mobile large (≤ 900px) */
  @media (max-width: 900px) {
    .channels-grid-v2 { grid-template-columns: repeat(2, 1fr); }
    .tagline-vertical { display: none; }
    .section { padding: 64px 24px; }
    .section-head { margin-bottom: 36px; }
    .verbatim-card { padding: 36px 28px; }
    .verbatim-quote { font-size: clamp(18px, 3vw, 24px); margin-bottom: 28px; }
    .verbatim-author { flex-wrap: wrap; gap: 14px; padding-top: 22px; }
    .verbatim-controls { margin-left: 0; width: 100%; justify-content: flex-end; }
    .timeline-row { gap: 20px; }
    .timeline-content h4 { font-size: 20px; }
    .team-grid { grid-template-columns: repeat(3, 1fr); }
    .footer { padding: 64px 24px 0; }
  }

  /* Mobile (≤ 720px) */
  @media (max-width: 720px) {
    .topbar-inner { padding: 12px 18px; }
    .topbar-left { gap: 10px; }
    .mb-logo { height: 24px; width: 100px; }
    .btn-cta-top { display: none; }
    .lang-picker { display: none; }
    .channels-grid-v2 { grid-template-columns: 1fr; gap: 10px; }
    .channel-card-v2 { min-height: auto; padding: 22px 20px; }
    .channel-card-v2 h3 { font-size: 20px; }
    .channels-stat { font-size: 11px; margin-top: 14px; }
    .channels-stat strong { font-size: 16px; }
    .team-grid { grid-template-columns: repeat(2, 1fr); }
    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .feat-tabs { gap: 8px; flex-wrap: wrap; }
    .feat-tab { padding: 10px 12px; min-width: 0; flex: 1 0 calc(50% - 4px); font-size: 13px; }
    .feat-tab-icon { width: 36px; height: 36px; font-size: 15px; }
    .feat-panel-text { padding: 24px 20px; }
    .feat-panel-visual { padding: 24px; }
    .feat-panel-illu { max-height: 180px; }
    .feature-visual { padding: 24px 16px; min-height: 180px; }
    .feature-bigicon { width: 120px; height: 120px; font-size: 56px; }
    .feature-row h3 { font-size: 22px; }
    .feature-row p { font-size: 14.5px; }
    .feature-row-stats { gap: 14px; }
    .hero { padding: 56px 22px 40px; }
    .hero-title { font-size: clamp(32px, 8vw, 48px); margin: 22px auto; }
    .hero-lede { font-size: 15px; margin-bottom: 26px; }
    .hero-baseline { font-size: 12px; }
    .hero-ctas .btn { width: 100%; justify-content: center; }
    .section { padding: 48px 22px; }
    .section-title { font-size: clamp(26px, 6vw, 38px); }
    .section-lede { font-size: 15px; }
    .lime-cta { padding: 56px 0; margin-top: 56px; }
    .lime-cta-inner { padding: 0 22px; gap: 28px; }
    .lime-cta h2 { font-size: clamp(24px, 5.5vw, 32px); margin: 14px 0; }
    .lime-cta p { font-size: 15px; margin-bottom: 24px; }
    .pain-box { padding: 28px 22px; }
    .pain-h { font-size: 19px; }
    .eco-section { padding: 28px 14px; margin-bottom: 56px; overflow: hidden; }
    .eco-h3 { font-size: clamp(20px, 5vw, 26px); }
    /* Eco-badges : scroll horizontal pour voir les 8 canaux d'un swipe (au lieu d'un clip sur 4) */
    .eco-badges {
      display: flex !important;
      flex-wrap: nowrap !important;
      justify-content: flex-start !important;
      overflow-x: auto;
      scroll-snap-type: x proximity;
      gap: 18px !important;
      padding: 4px 14px 12px !important;
      margin: 0 -14px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(90deg, transparent 0, black 14px, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, transparent 0, black 14px, black calc(100% - 24px), transparent);
      max-width: none;
    }
    .eco-badges::-webkit-scrollbar { display: none; }
    .eco-badges .eco-badge {
      flex: 0 0 auto;
      font-size: 14px;
      scroll-snap-align: start;
      padding: 0;
    }
    .eco-badges .eco-badge .dot { width: 10px; height: 10px; }
    .step-card { padding: 24px 22px; }
    .step-card h4 { font-size: 20px; }
    .num-bg { font-size: 80px; }
    .cta-banner { padding: 48px 24px; }
    .cta-banner h2 { font-size: clamp(24px, 6vw, 36px); }
    .cta-banner p { font-size: 15px; }
    .stat-cell { padding: 18px 12px; }
    .stat-v { font-size: clamp(28px, 7vw, 40px); }
    .stat-l { font-size: 11px; }
    .timeline-block { padding-left: 4px; }
    .timeline-block::before { left: 20px; }
    .timeline-row { gap: 16px; margin-bottom: 28px; }
    .timeline-year { width: 40px; height: 40px; font-size: 11px; }
    .timeline-content { padding-top: 4px; }
    .timeline-content h4 { font-size: 18px; }
    .timeline-content p { font-size: 14px; }
    .team-card { padding: 20px 12px; }
    .team-avatar { width: 48px; height: 48px; font-size: 17px; margin-bottom: 10px; }
    .office-grid { grid-template-columns: 1fr; }
    .office-card { padding: 22px 18px; }
    .office-card h4 { font-size: 18px; }
    /* Demo form */
    .demo-form-grid { grid-template-columns: 1fr; gap: 10px; }
    .demo-form-card { padding: 24px 20px; }
    .demo-form .phone-group { flex-direction: column; gap: 8px; }
    .demo-form .phone-group .phone-code { flex: 1 1 auto; width: 100%; }
    .page[data-page="demo"] .hero { padding: 40px 22px 16px; }
    .page[data-page="demo"] .section { padding: 0 22px 32px; }
    /* Footer */
    .footer { padding: 56px 22px 0; }
    .footer-grid { gap: 24px; }
    .footer-wordmark { padding: 32px 0; }
    .footer-bottom { flex-direction: column; padding: 20px 0 40px; gap: 14px; }
    .footer-bottom-links { gap: 16px; }
    .footer-cert { flex-wrap: wrap; }
    /* Verbatim arrows: garder, mais réduire taille */
    .verbatim-arrow { width: 40px; height: 40px; }
    /* Trust band : marge moindre */
    .trust-band { margin-top: 40px; }
    .trust-track { gap: 48px; }
    /* Tagline divider entre sections : moins de hauteur */
    .tagline-divider { padding: 14px 4% 18px; }
    .tagline-divider svg { width: 96%; }
    /* Media logos band : labels plus petits */
    .media-logos-label { font-size: 10.5px; }
    .media-logos-sublabel { font-size: 12px; margin-bottom: 32px; }
    .media-logos-track { gap: 36px; }
    .media-logo { height: 30px; }
    .media-logo.deezer    { width: 110px; }
    .media-logo.elpais    { width: 138px; }
    .media-logo.facebook  { width: 154px; }
    .media-logo.google    { width: 194px; }
    .media-logo.guardian  { width: 94px; }
    .media-logo.instagram { width: 108px; }
    .media-logo.jcdecaux  { width: 82px; }
    .media-logo.lemonde   { width: 142px; }
    .media-logo.netflix   { width: 112px; }
    .media-logo.roblox    { width: 122px; }
    .media-logo.spotify   { width: 98px; }
    .media-logo.youtube   { width: 160px; }
  }

  /* Petit mobile (≤ 460px) : compaction supplémentaire */
  @media (max-width: 460px) {
    .topbar-inner { padding: 10px 14px; gap: 8px; }
    .mb-logo { height: 22px; width: 92px; }
    .burger { width: 38px; height: 38px; }
    .hero { padding: 44px 18px 32px; }
    .hero-title { font-size: clamp(28px, 9vw, 40px); }
    .rotating-channel { min-width: 0; padding: 0 0.12em; }
    .section { padding: 40px 18px; }
    .section-title { font-size: clamp(22px, 7vw, 32px); }
    .stats-grid { grid-template-columns: 1fr; }
    .feat-tab { flex: 1 0 100%; }
    .feature-row-stats { grid-template-columns: 1fr; gap: 10px; }
    .feature-bigicon { width: 100px; height: 100px; font-size: 48px; }
    .lime-cta-inner { padding: 0 18px; }
    .channels-grid-v2 { gap: 8px; }
    .channel-card-v2 { padding: 18px 16px; }
    .eco-section { padding: 22px 14px; }
    .eco-badges .eco-badge { font-size: 12px; padding: 7px 12px; }
    .team-card { padding: 16px 10px; }
    .team-card h4 { font-size: 13px; }
    .team-card p { font-size: 10.5px; }
    .pain-box { padding: 22px 18px; }
    .pain-h { font-size: 17px; }
    .pain-item { font-size: 13.5px; }
    .step-card h4 { font-size: 18px; }
    .num-bg { font-size: 64px; }
    .footer { padding: 48px 18px 0; }
    .footer-grid { grid-template-columns: 1fr; gap: 20px; padding-top: 28px; }
    .footer-bottom { padding: 18px 0 32px; }
    .footer-brand .mb-logo { height: 32px; width: 132px; }
    .demo-form-card { padding: 20px 16px; }
    .timeline-year { width: 36px; height: 36px; font-size: 10.5px; }
    .timeline-block::before { left: 18px; }
    .cta-banner { padding: 36px 18px; }
    .verbatim-card { padding: 28px 20px; }
    .verbatim-author-name { font-size: 15px; }
    .verbatim-author-role { font-size: 12.5px; }
    .verbatim-avatar { width: 48px; height: 48px; font-size: 17px; }
    .lang-btn { padding: 4px 6px; font-size: 10px; }
  }

  /* Mobile très étroit (≤ 360px) : ajustements supplémentaires */
  @media (max-width: 360px) {
    .hero-title { font-size: clamp(24px, 9vw, 34px); }
    .topbar-inner { padding: 8px 12px; }
    .mb-logo { width: 86px; }
  }

  /* Pricing : stacking responsive */
  @media (max-width: 1100px) {
    .principles-grid { grid-template-columns: 1fr; gap: 14px; }
    .pricing-grid { grid-template-columns: 1fr; gap: 16px; }
  }
  @media (max-width: 720px) {
    .principle-card { padding: 26px 22px; }
    .pricing-card { padding: 26px 22px 22px; }
    .pricing-name { font-size: 21px; }
    .pricing-amount { font-size: 28px; }
    .pricing-price { padding: 16px 18px; margin: 18px 0 16px; }
    .pricing-foot-note { margin-bottom: 48px; }
    .compare-table { font-size: 12.5px; }
    .compare-table thead th { padding: 14px 12px; }
    .compare-table tbody th { padding: 14px 12px; width: 180px; }
    .compare-table tbody td { padding: 14px 12px; }
    .faq-item summary { padding: 18px 18px; font-size: 15px; }
    .faq-item p { padding: 0 18px 20px; font-size: 14px; }
  }
  @media (max-width: 460px) {
    .principles-grid { gap: 12px; }
    .principle-card { padding: 22px 18px; }
    .pricing-card { padding: 22px 18px 18px; }
    .pricing-name { font-size: 19px; }
    .pricing-amount { font-size: 24px; }
    .faq-item summary { padding: 16px 16px; font-size: 14.5px; }
    .faq-item p { padding: 0 16px 18px; font-size: 13.5px; }
  }

  /* Newsletter : stacking responsive */
  @media (max-width: 900px) {
    .footer-newsletter { grid-template-columns: 1fr; gap: 24px; padding: 32px 0 32px; }
    .footer-newsletter-form { margin-left: 0; max-width: 100%; }
  }
  @media (max-width: 460px) {
    .footer-newsletter-field { flex-direction: column; padding: 8px; gap: 8px; }
    .footer-newsletter-field input { padding: 12px 14px; font-size: 16px; }
    .footer-newsletter-btn { width: 100%; padding: 14px 22px; min-height: 48px; }
    .footer-newsletter-title { font-size: 22px; }
    .footer-newsletter-lede { font-size: 13.5px; }
  }

  /* ============================================================
     QA MOBILE FINAL — version mobile irréprochable
     Bloc entièrement encapsulé en media queries, n'affecte JAMAIS le desktop.
     ============================================================ */

  /* Tablette et mobile : hygiène globale */
  @media (max-width: 1024px) {
    /* Anti-overflow horizontal universel */
    html, body { overflow-x: hidden; max-width: 100%; }
    body { width: 100%; }
    img, svg, video { max-width: 100%; }

    /* Tap highlight discret */
    a, button, [data-link], .lang-btn, .nav button, .mm-link,
    .verbatim-arrow, .verbatim-dot, .footer-social, .footer-col a,
    .footer-col button {
      -webkit-tap-highlight-color: rgba(15,15,18,0.06);
    }

    /* Pas d'effet de survol persistant après tap sur mobile (devices sans hover) */
    @media (hover: none) {
      .btn:hover, .btn-primary:hover, .btn-ghost:hover { transform: none; }
      .channel-card-v2:hover { transform: none; }
      .pain-arrow:hover .arrow-circ { transform: none; }
      .pain-arrow:hover .arrow-circ svg { transform: none; }
      .pain-item:hover { transform: none; }
      .pain-item:hover .icon { transform: none; box-shadow: none; }
    }
  }

  /* Mobile (≤ 720px) : QA approfondie */
  @media (max-width: 720px) {
    /* iOS safe-area pour les écrans à encoche */
    .topbar-inner {
      padding-left: max(18px, env(safe-area-inset-left));
      padding-right: max(18px, env(safe-area-inset-right));
    }
    .footer { padding-left: max(22px, env(safe-area-inset-left)); padding-right: max(22px, env(safe-area-inset-right)); }

    /* iOS : font-size 16px sur les inputs pour empêcher l'auto-zoom au focus.
       On surcharge même la compaction de la page Démo. */
    .demo-form input,
    .demo-form select,
    .page[data-page="demo"] .demo-form input,
    .page[data-page="demo"] .demo-form select {
      font-size: 16px;
      padding: 13px 16px;
      border-radius: 12px;
      min-height: 48px;
      box-sizing: border-box;
    }
    .demo-form label,
    .page[data-page="demo"] .demo-form label {
      font-size: 12px;
      margin-bottom: 6px;
    }
    .demo-form select,
    .page[data-page="demo"] .demo-form select {
      padding-right: 36px;
    }
    .demo-form-btn,
    .page[data-page="demo"] .demo-form-btn {
      padding: 16px 0;
      font-size: 15px;
      min-height: 50px;
      border-radius: 12px;
    }
    .page[data-page="demo"] .hero { padding: 44px 22px 16px; }
    .page[data-page="demo"] .section { padding: 0 22px 36px; }
    .page[data-page="demo"] h1.hero-title { font-size: clamp(28px, 8vw, 40px); margin: 12px auto; }
    .page[data-page="demo"] .hero-lede { font-size: 15px; }

    /* Touch targets ≥ 44px partout */
    .burger { width: 44px; height: 44px; border-radius: 12px; }
    .btn, .btn-primary, .btn-ghost, .btn-lime { min-height: 44px; padding-top: 12px; padding-bottom: 12px; }
    .btn-large { min-height: 50px; padding-top: 14px; padding-bottom: 14px; }
    .lang-btn { min-height: 28px; padding: 6px 9px; }
    .nav button, .mm-link { min-height: 44px; }
    .footer-social { width: 44px; height: 44px; }
    .footer-col a, .footer-col button { min-height: 40px; display: flex; align-items: center; padding: 8px 0; }
    .footer-bottom-links a { min-height: 36px; display: inline-flex; align-items: center; }

    /* Verbatim : controls plus accessibles au doigt */
    .verbatim-arrow { width: 44px; height: 44px; }
    .verbatim-dot {
      width: 10px; height: 10px;
      position: relative;
    }
    .verbatim-dot::before {
      content: "";
      position: absolute;
      inset: -10px;
    }
    .verbatim-dots { gap: 14px; margin-right: 14px; }

    /* Eco-badges : meilleur espacement */
    .eco-badges { justify-content: center; gap: 10px; }
    .eco-badges .eco-badge { min-height: 36px; }

    /* Hero CTAs : bien empilés et lisibles */
    .hero-ctas { flex-direction: column; gap: 10px; }
    .hero-ctas .btn { width: 100%; max-width: 360px; margin: 0 auto; justify-content: center; }
    .hero.left-align .hero-ctas { align-items: stretch; }

    /* Channel cards : meilleure aération */
    .channel-card-v2 { padding: 22px 20px; gap: 12px; min-height: auto; }
    .channel-card-v2 h3 { font-size: 20px; }
    .channel-card-v2 .platforms { font-size: 13.5px; line-height: 1.6; }
    .channel-card-v2 .count { font-size: 10.5px; padding-top: 12px; }

    /* Stats : 2x2 au lieu de 4 stacks, mieux à lire */
    .stats-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; }
    .stat-cell { padding: 20px 12px; }
    .stat-v { font-size: clamp(26px, 7vw, 38px); }
    .stat-l { font-size: 11px; line-height: 1.3; }

    /* Feature row stats : garder 3 colonnes lisibles plutôt que 1 */
    .feature-row-stats { grid-template-columns: repeat(3, 1fr) !important; gap: 10px; }
    .feature-row-stats .v { font-size: 22px; }
    .feature-row-stats .v[style*="font-size"] { font-size: 16px !important; }
    .feature-row-stats .l { font-size: 11px; line-height: 1.3; }

    /* Pain box : flèche bien centrée entre les blocs empilés */
    .pain-arrow { padding: 14px 0; transform: rotate(90deg); }
    .pain-arrow .arrow-circ { width: 60px; height: 60px; }
    .pain-arrow .arrow-circ svg { width: 22px; height: 22px; }

    /* Pain items : touch target augmenté */
    .pain-item { padding: 8px 6px; margin-left: -6px; margin-bottom: 10px; }
    .pain-item .icon { width: 24px; height: 24px; }

    /* Tagline-divider entre sections : font scaling propre */
    .tagline-divider { padding: 20px 6% 24px; opacity: 0.16; }
    .tagline-divider svg { width: 100%; max-width: 100%; }
    .page[data-page="demo"] .tagline-divider svg { max-width: 280px; }

    /* Topbar : empêche le wrap involontaire */
    .topbar-inner { flex-wrap: nowrap; }
    .topbar-left { flex-shrink: 1; min-width: 0; }
    .topbar-right { flex-shrink: 0; }

    /* Mobile menu items : confort de lecture */
    .mm-link { font-size: 22px; padding: 14px 6px; }
    .mm-action { min-height: 50px; display: flex; align-items: center; justify-content: center; }

    /* Trust marquee : ralentir pour la lisibilité au scroll mobile */
    .trust-track { animation-duration: 28s; }
    .media-logos-track { animation-duration: 36s; }

    /* Page transition : fade simple plus fluide sur mobile */
    .page.active { animation: fadeIn 0.32s ease both; }

    /* Office cards : padding aéré */
    .office-card { padding: 22px 20px; }
    .office-card h4 { font-size: 18px; }
    .office-card p { font-size: 14px; }

    /* Cards verbatim : auteur empilé proprement */
    .verbatim-author { gap: 12px; align-items: flex-start; }
    .verbatim-author > div:nth-child(2) { flex: 1; min-width: 0; }
    .verbatim-controls { width: 100%; justify-content: flex-end; margin-top: 6px; }
    .verbatim-author-role { font-size: 13px; line-height: 1.55; }

    /* Footer : aération + colonnes empilées proprement */
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 32px; }
    .footer-cert-badge { font-size: 12px; padding: 8px 14px; }
    .footer-brand p { font-size: 13.5px; line-height: 1.7; }
    .footer-wordmark-img { max-height: 200px; }

    /* CTA banner : titre sans saut de ligne forcé pénalisant */
    .cta-banner h2 br { display: none; }
    .cta-banner h2 .rotating { display: inline-block; padding: 0 0.18em; }
    .cta-banner p { font-size: 14.5px; }

    /* Step cards : numéro de fond moins envahissant */
    .step-card { padding: 26px 22px 22px; }
    .num-bg { font-size: 70px; opacity: 0.06; right: 14px; }

    /* Hero title : éviter coupures intempestives sur la rotation */
    .rotating-channel { min-width: 0; max-width: 100%; }

    /* Section padding adaptatif */
    .section { padding-top: 52px; padding-bottom: 52px; }
    .section + .section { padding-top: 0; }

    /* Sticky topbar : éviter qu'il cache le tagline-divider */
    .tagline-divider { scroll-margin-top: 80px; }
  }

  /* Petit mobile (≤ 460px) */
  @media (max-width: 460px) {
    /* Stats : conserver 2x2 lisible (override la rule 1col précédente) */
    .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .stat-v { font-size: clamp(22px, 7.5vw, 32px); }

    /* (Ancienne règle 2 colonnes désactivée : on garde 3 colonnes pour tenir sur une ligne) */
    .feature-row-stats .anim-stat:nth-child(3) { grid-column: auto; }

    /* Footer grid : single column propre */
    .footer-grid { grid-template-columns: 1fr; gap: 24px; }
    .footer-col h5 { margin-bottom: 8px; }
    .footer-col a, .footer-col button { padding: 6px 0; min-height: 36px; }

    /* Mobile menu : header plus haut, padding adapté */
    .mobile-menu { top: 56px; }
    .mobile-menu-inner { padding: 18px 18px 32px; }
    .mm-link { font-size: 20px; padding: 12px 6px; }

    /* Hero title : grade compact */
    .hero-title { line-height: 1.08; letter-spacing: -0.02em; }
    .rotating-channel { padding: 0 0.1em; }

    /* Trust band : éviter scroll-bouton */
    .trust-band { padding: 16px 0; margin-top: 32px; }
    .trust-label { font-size: 10.5px; margin-bottom: 18px; }

    /* Sticky topbar lisible */
    .topbar { background: rgba(255,255,255,0.94); }
  }

  /* Mobile très étroit (≤ 360px) supplémentaire */
  @media (max-width: 360px) {
    .channel-card-v2 { padding: 18px 16px; }
    .pain-box { padding: 22px 18px; }
    .pain-h { font-size: 17px; }
    .stats-grid { grid-template-columns: 1fr !important; gap: 12px; }
    .feature-row-stats { grid-template-columns: 1fr !important; }
    .feature-row-stats .anim-stat:nth-child(3) { grid-column: auto; }
    .step-card { padding: 22px 18px; }
    .hero { padding-left: 14px; padding-right: 14px; }
    .section { padding-left: 14px; padding-right: 14px; }
    .footer { padding-left: 14px; padding-right: 14px; }
    .footer-brand .mb-logo { width: 120px; }
  }

  /* ============================================================
     UX MOBILE — scroll horizontal et compaction
     Strictement encapsulé en media queries, n'affecte jamais le desktop.
     ============================================================ */
  @media (max-width: 720px) {
    /* --- 8 cartes canaux : carousel horizontal (scroll-snap) au lieu d'un stack vertical de 1600 px de haut --- */
    .channels-grid-v2 {
      display: flex !important;
      grid-template-columns: none !important;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 12px;
      padding-bottom: 12px;
      padding-left: 22px;
      padding-right: 22px;
      margin-left: -22px;
      margin-right: -22px;
      -webkit-overflow-scrolling: touch;
      scroll-padding-left: 22px;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }
    .channels-grid-v2::-webkit-scrollbar { display: none; }
    .channel-card-v2 {
      flex: 0 0 78%;
      max-width: 320px;
      min-width: 230px;
      scroll-snap-align: start;
      min-height: 220px;
    }
    /* Mention discrète d'invitation au swipe (gradient fade sur le bord droit) */
    .channels-grid-v2 {
      -webkit-mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
    }

    /* --- Onglets Solutions : scroll horizontal au lieu d'un wrap multi-lignes --- */
    .feat-tabs {
      display: flex !important;
      flex-wrap: nowrap !important;
      overflow-x: auto;
      scroll-snap-type: x proximity;
      gap: 8px;
      padding-left: 22px;
      padding-right: 22px;
      padding-bottom: 8px;
      margin-left: -22px;
      margin-right: -22px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }
    .feat-tabs::-webkit-scrollbar { display: none; }
    .feat-tab {
      flex: 0 0 auto !important;
      min-width: 110px;
      scroll-snap-align: start;
    }
    .feat-tab-icon { width: 32px; height: 32px; font-size: 14px; }

    /* --- Feature row stats : 3 colonnes condensées au lieu d'un stack vertical --- */
    .feature-row-stats {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: 8px !important;
      max-width: 100%;
    }
    .feature-row-stats .anim-stat {
      padding: 0;
      text-align: left;
    }
    .feature-row-stats .v { font-size: 18px !important; line-height: 1.05; }
    .feature-row-stats .v[style*="font-size"] { font-size: 14px !important; }
    .feature-row-stats .l { font-size: 10px !important; line-height: 1.25; letter-spacing: 0.04em; }

    /* --- Illustration des feature-rows : plus compacte --- */
    .feature-visual { padding: 16px 12px; min-height: 140px; }
    .feature-bigicon { width: 96px; height: 96px; font-size: 44px; }
    .feature-row { gap: 18px; }
    .feature-row h3 { font-size: 19px; }
    .feature-row p { font-size: 13.5px; line-height: 1.5; }

    /* --- Solutions feat-panel : illustration plus petite et padding réduit --- */
    .feat-panel-illu { max-height: 140px; }
    .feat-panel-visual { padding: 18px; }
    .feat-panel-text { padding: 22px 18px; }
    .feat-panel-text h3 { font-size: 20px; }
    .feat-panel-text p { font-size: 13.5px; }

    /* --- Cartes Pour qui (who-grid) : carousel horizontal au lieu d'un stack vertical de 900 px --- */
    .who-grid {
      display: flex !important;
      grid-template-columns: none !important;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 12px;
      padding-bottom: 12px;
      padding-left: 22px;
      padding-right: 22px;
      margin-left: -22px;
      margin-right: -22px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
    }
    .who-grid::-webkit-scrollbar { display: none; }
    .who-card {
      flex: 0 0 82%;
      max-width: 360px;
      min-width: 240px;
      scroll-snap-align: start;
      box-sizing: border-box;
    }

    /* --- Trois principes (principles-grid) : carousel horizontal --- */
    .principles-grid {
      display: flex !important;
      grid-template-columns: none !important;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 12px;
      padding-bottom: 12px;
      padding-left: 22px;
      padding-right: 22px;
      margin-left: -22px;
      margin-right: -22px;
      margin-bottom: 56px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
    }
    .principles-grid::-webkit-scrollbar { display: none; }
    .principle-card {
      flex: 0 0 82%;
      max-width: 340px;
      min-width: 240px;
      scroll-snap-align: start;
      box-sizing: border-box;
    }

    /* --- Nos valeurs (vals-grid) : carousel horizontal --- */
    .vals-grid {
      display: flex !important;
      grid-template-columns: none !important;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 12px;
      padding-bottom: 12px;
      padding-left: 22px;
      padding-right: 22px;
      margin-left: -22px;
      margin-right: -22px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
    }
    .vals-grid::-webkit-scrollbar { display: none; }
    .val-card {
      flex: 0 0 82%;
      max-width: 360px;
      min-width: 240px;
      scroll-snap-align: start;
      box-sizing: border-box;
    }

    /* --- Quatre formules pricing (pricing-grid) : carousel horizontal --- */
    .pricing-grid {
      display: flex !important;
      grid-template-columns: none !important;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      gap: 14px;
      padding-bottom: 12px;
      padding-left: 22px;
      padding-right: 22px;
      margin-left: -22px;
      margin-right: -22px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
      mask-image: linear-gradient(90deg, black 0, black calc(100% - 24px), transparent);
    }
    .pricing-grid::-webkit-scrollbar { display: none; }
    .pricing-card {
      flex: 0 0 86%;
      max-width: 380px;
      min-width: 260px;
      scroll-snap-align: start;
      box-sizing: border-box;
    }
  }

  /* Petit mobile (≤ 460px) : ajustements supplémentaires pour les carousels */
  @media (max-width: 460px) {
    .channel-card-v2 {
      flex: 0 0 82%;
      min-width: 220px;
      min-height: 200px;
      padding: 20px 18px;
    }
    .who-card,
    .principle-card,
    .val-card { flex: 0 0 86%; min-width: 220px; }
    .pricing-card { flex: 0 0 90%; min-width: 260px; }
    /* Stats : 3 colonnes forcées sur une seule ligne */
    .feature-row-stats { grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; }
    .feature-row-stats .anim-stat:nth-child(3) { grid-column: auto !important; }
    .feature-row-stats .v { font-size: 16px !important; }
    .feature-row-stats .v[style*="font-size"] { font-size: 12.5px !important; }
    .feature-row-stats .l { font-size: 9.5px !important; }
    .feature-bigicon { width: 84px; height: 84px; font-size: 38px; }
    .feature-visual { min-height: 120px; padding: 14px 10px; }
    .feat-tab { min-width: 100px; }
  }

  @media (max-width: 360px) {
    /* Override pour éviter le retour au 1-col qui rallongeait la page */
    .feature-row-stats { grid-template-columns: repeat(3, 1fr) !important; }
    .feature-row-stats .anim-stat:nth-child(3) { grid-column: auto !important; }
    .feature-row-stats .v { font-size: 15px !important; }
    .feature-row-stats .l { font-size: 9.5px !important; }
    .channel-card-v2 { min-width: 200px; flex: 0 0 86%; }
  }

  /* Réduction préférée du mouvement : on respecte les préférences système */
  @media (prefers-reduced-motion: reduce) {
    .trust-track, .media-logos-track { animation: none !important; }
    .page.active { animation: none !important; }
    .channels-grid-v2, .feat-tabs { scroll-behavior: auto; }
  }