/* V5 · 30.09.2026 · Photographic staging inspired by Hyperline.
   Contrast artwork, typography and interface colours remain independent of the imagery. */
.hero--cinematic .hero__veil {
  background: linear-gradient(90deg, rgb(15 15 15 / .74), rgb(15 15 15 / .42) 48%, rgb(15 15 15 / .08)),
              linear-gradient(180deg, rgb(15 15 15 / .30), transparent 30%, rgb(15 15 15 / .4));
}
.hero--cinematic-film .hero__veil {
  background: linear-gradient(90deg, rgb(15 15 15 / .66), rgb(15 15 15 / .32) 52%, transparent 82%),
              linear-gradient(180deg, rgb(15 15 15 / .22), transparent 28%, rgb(15 15 15 / .44));
}
.hero--cinematic .hero__lead { color: rgb(255 255 255 / .9); }
.hero--cinematic .hero__title-a { color: rgb(255 255 255 / .86); }
.hero--cinematic .hero__title-b { color: #fff; }
.ct-hero.hero--cinematic .hero__bg { object-position: 60% center; }
.ct-hero.hero--cinematic .ct-card { background: rgb(15 15 15 / .75); box-shadow: 0 30px 70px rgb(0 0 0 / .25); }
.im-hero--cinematic .im-hero__veil {
  background: linear-gradient(90deg, rgb(15 15 15 / .78), rgb(15 15 15 / .42) 50%, rgb(15 15 15 / .06)),
              linear-gradient(180deg, rgb(15 15 15 / .25), transparent 30%, rgb(15 15 15 / .7));
}
.im-hero--cinematic .im-dim { color: rgb(255 255 255 / .76); }
.aug-hero--cinematic .aug-hero__bg { inset: 0; height: 100%; object-position: center; }
.aug-hero--cinematic .aug-hero__veil {
  background: linear-gradient(180deg, rgb(15 15 15 / .12), rgb(15 15 15 / .15) 55%, var(--ink-2));
}
.aug-hero--cinematic .aug-hero__title-a { color: rgb(255 255 255 / .78); }
.hero.srv-cinematic { background: var(--ink-2); }
.hero.srv-cinematic .hero__bg { object-position: 60% center; }
.hero.srv-cinematic .hero__veil {
  background: linear-gradient(90deg, rgb(15 15 15 / .86), rgb(15 15 15 / .50) 50%, rgb(15 15 15 / .10)),
              linear-gradient(180deg, rgb(15 15 15 / .1), transparent 65%, rgb(15 15 15 / .4));
}
/* 01.10 (Diego) : pas de cadre autour de l'animation, elle reste incrustée dans la photo */
/* Vidéo Agents IA : son fond sombre est dans l'image ; « screen » le rend transparent, seuls les éléments clairs restent */
/* le contraste efface aussi le halo bleu autour des disques : seuls les disques restent sur la photo */
.hero.srv-cinematic .srv-hero__video { mix-blend-mode: screen; filter: contrast(2) brightness(.92) saturate(.9); }
.hero.srv-cinematic .srv-hero__frame { border: 0; border-radius: 0; background: none; padding: 0; box-shadow: none; }
.hero.srv-cinematic .srv-hero__frame--card::before { display: none; }
.hero.srv-cinematic .srv-hero__chip { right: 12px; }
.srv-methode__band { background: var(--ink-2); }
.srv-methode__band .srv-methode__head, .srv-methode__band .srv-methode__head .t-body { color: #fff; }
.srv-methode__band .srv-methode__bg { opacity: .55; }
@media (max-width: 640px) {
  .hero--cinematic .hero__veil, .hero--cinematic-film .hero__veil {
    background: linear-gradient(180deg, rgb(15 15 15 / .48), rgb(15 15 15 / .64) 55%, rgb(15 15 15 / .78));
  }
  .hero--cinematic .hero__bg { object-position: 60% center; }
  .im-hero--cinematic .im-hero__veil { background: linear-gradient(180deg, rgb(15 15 15 / .50), rgb(15 15 15 / .80)); }
  .hero.srv-cinematic .hero__veil { background: linear-gradient(180deg, rgb(15 15 15 / .68), rgb(15 15 15 / .25)); }
}

/* V5 · Positive studio heroes: show the work and keep daylight in the frame. */
.hero--positive-results .hero__veil,
.hero--cinematic-film .hero__veil {
  background: linear-gradient(90deg, rgb(28 20 13 / .73), rgb(28 20 13 / .54) 36%, transparent 66%),
              linear-gradient(180deg, rgb(22 20 17 / .35), transparent 22%, transparent 72%, rgb(22 20 17 / .25));
}
.hero--positive-results .hero__title,
.hero--cinematic-film .hero__title { max-width: 640px; }
.hero--positive-results .hero__lead,
.hero--cinematic-film .hero__lead { max-width: 550px; color: rgb(255 255 255 / .92); }
.hero--positive-results .hero__title-b { color: #fff; }
.hero--positive-results .hero__proof,
.hero--cinematic-film .hero__proof { color: rgb(255 255 255 / .85); }
@media (max-width: 640px) {
  .hero--positive-results,
  .hero--cinematic-film { background: #211b16; }
  .hero--positive-results .hero__bg { height: 390px; }
  .hero--positive-results .hero__bg { object-position: 76% center; }
  .hero--positive-results .hero__veil {
    height: 392px;
    background: linear-gradient(180deg, rgb(25 20 15 / .38), transparent 26%, transparent 60%, #211b16 100%);
  }
  .hero--positive-results .hero__content { padding-top: 330px; }
  /* Accueil · vidéo plein écran : l'écran respire en haut, le texte se pose en bas sur un fondu progressif */
  .hero--cinematic-film { min-height: 100svh; justify-content: flex-end; }
  .hero--cinematic-film .hero__media { inset: auto; top: -15%; left: 0; right: 0; height: 100%; }
  .hero--cinematic-film .hero__poster, .hero--cinematic-film .hero__film { object-position: 50% 18%; }
  .hero--cinematic-film .hero__veil {
    height: auto; inset: 0;
    background: linear-gradient(180deg, rgb(25 20 15 / .5) 0%, rgb(25 20 15 / .05) 14%, rgb(25 20 15 / 0) 30%,
      rgb(33 27 22 / .55) 40%, rgb(33 27 22 / .92) 50%, #211b16 62%, #211b16 100%);
  }
  .hero--cinematic-film .hero__content { padding-top: 44svh; padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
}
@media (max-width: 640px) {
  .hero--positive-results .hero__bg { transform: none !important; }
}

/* GPT Image 2.5 revision: neutral photographic light and a dedicated mobile crop. */
.hero--gpt25 .hero__veil {
  background: linear-gradient(90deg, rgb(20 20 18 / .56), rgb(20 20 18 / .32) 37%, transparent 63%),
              linear-gradient(180deg, rgb(20 20 18 / .28), transparent 24%, transparent 78%, rgb(20 20 18 / .15));
}
.hero--gpt25 .hero__title-b.is-shine { color: #fff; }
@media (max-width: 640px) {
  .hero--gpt25 { background: #25231f; }
  .hero--gpt25 .hero__bg { object-position: center center; }
  .hero--gpt25 .hero__veil {
    background: linear-gradient(180deg, rgb(20 20 18 / .42), transparent 27%, transparent 58%, #25231f 100%);
  }
}
