/* ==========================================================================
   LP « Rejoins la nouvelle ère de l'IA avec les logiciels »
   Pensée d'abord pour le téléphone. Blanc, noir, gris, rouge. Rien qui bouge.
   ========================================================================== */

:root {
  --ink: #0d0f12;
  --g-600: #50555e;
  --g-500: #6b7079;
  --g-400: #9a9fa7;
  --g-200: #e4e6e9;
  --g-100: #f2f3f5;
  --paper: #ffffff;
  --red: #da291c;
  --red-deep: #b8200f;

  --ease: cubic-bezier(0.32, 0.72, 0, 1);
  --gutter: clamp(16px, 4vw, 48px);
  --font: "Geist", ui-sans-serif, system-ui, sans-serif;
  --display: "Montserrat", "Geist", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body.is-locked { overflow: hidden; }
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, p, ul, figure { margin: 0; padding: 0; }
p, li { text-wrap: pretty; }
ul { list-style: none; }
::selection { background: var(--red); color: #fff; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 8px; }

/* ---------- Titre empilé, tailles mélangées ---------- */
.title {
  display: flex; flex-direction: column; align-items: center;
  font-family: var(--display); font-weight: 900; text-transform: uppercase; text-align: center;
  line-height: 0.92; letter-spacing: -0.02em;
}
.title em { font-style: normal; color: var(--red); }
.title__s { font-size: clamp(1.15rem, 5.6vw, 2.5rem); font-weight: 800; }
.title__m { font-size: clamp(1.4rem, 6.8vw, 3rem); font-weight: 800; margin: 0.08em 0 0.02em; }
.title__xl { font-size: clamp(3.1rem, 16vw, 8.4rem); }

/* ---------- Bouton + prix ---------- */
.buy { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; }
.cta {
  width: 100%; max-width: 440px;
  padding: 19px 28px; border-radius: 999px; text-align: center;
  background: var(--red); color: #fff;
  font-size: clamp(14px, 4.3vw, 17px); font-weight: 650; letter-spacing: -0.01em; line-height: 1.2;
  box-shadow: 0 14px 30px -14px rgba(218, 41, 28, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: background 0.3s var(--ease), transform 0.3s var(--ease);
}
.cta:hover { background: var(--red-deep); }
.cta:active { transform: scale(0.98); }

.price { display: flex; align-items: center; justify-content: center; gap: 16px; font-family: var(--display); line-height: 1; }
.price sup { font-size: 0.48em; vertical-align: 0.82em; margin-left: 0.04em; }
.price__old { position: relative; font-size: 1.7rem; font-weight: 800; color: var(--g-400); }
.price__old::after {
  content: ""; position: absolute; left: -8%; right: -8%; top: 46%; height: 2.5px; border-radius: 3px;
  background: var(--red); transform: rotate(-11deg);
}
.price__new { font-size: 2.7rem; font-weight: 900; letter-spacing: -0.02em; }
.price small { font-size: 0.34em; font-weight: 800; letter-spacing: 0.03em; vertical-align: baseline; margin-right: 0.14em; }
.price__new small { color: var(--g-500); }
.price__old small { color: inherit; font-size: 0.44em; }

/* ==========================================================================
   HERO + DÉMOS
   ========================================================================== */
.hero {
  display: flex; flex-direction: column; align-items: center;
  gap: clamp(28px, 5vw, 44px);
  padding: max(40px, env(safe-area-inset-top)) var(--gutter) 0;
}

/* Les quatre vidéos en deux rangées, penchées, qui se chevauchent — aussi sur téléphone */
.screens {
  width: min(1240px, calc(100% + 2 * var(--gutter) - 8px)); /* sur téléphone, les vidéos prennent presque toute la largeur */
  display: grid; grid-template-columns: 1fr 1fr;
  padding-bottom: 32%;
  margin-top: 8px;
}
.screen { position: relative; display: flex; flex-direction: column; gap: 12px; }
.screen--a { transform: rotate(-3deg) translateX(5%); z-index: 1; }
.screen--b { transform: rotate(3deg) translate(-5%, 22%); z-index: 2; }
/* 2e rangée : restaurant et immobilier, même jeu de cartes penchées */
.screen--c { transform: rotate(2.5deg) translate(5%, 30%); z-index: 3; }
.screen--d { transform: rotate(-2.5deg) translate(-5%, 52%); z-index: 4; }
.screen__frame {
  padding: 4px; border-radius: 16px; background: #fff;
  box-shadow: 0 0 0 1px rgba(13, 15, 18, 0.07), 0 24px 44px -22px rgba(13, 15, 18, 0.45);
}
.screen video, .screen img { width: 100%; height: auto; aspect-ratio: 1440 / 808; object-fit: cover; border-radius: 12px; background: var(--g-100); pointer-events: none; }
.screen figcaption { font-size: 12px; font-weight: 500; color: var(--g-500); text-align: center; }

@media (min-width: 768px) {
  .screen { gap: 16px; }
  .screen__frame { padding: 6px; border-radius: 26px; }
  .screen video, .screen img { border-radius: 20px; }
  .screen figcaption { font-size: 14px; }
}

/* ==========================================================================
   MIKA + OFFRE
   ========================================================================== */
.deal {
  width: min(1100px, 100%); margin: 0 auto;
  padding: 24px var(--gutter) 48px;
  display: flex; flex-direction: column; align-items: center;
}
.deal__stage { width: min(78%, 360px); }
.deal__mika {
  width: 100%; height: auto;
  -webkit-mask: linear-gradient(180deg, #000 70%, transparent 97%); mask: linear-gradient(180deg, #000 70%, transparent 97%);
}
/* La carte remonte un peu sur la photo */
.deal__card {
  position: relative; z-index: 1; width: min(460px, 100%); margin-top: -64px;
  display: flex; flex-direction: column; gap: 24px;
  padding: 26px 22px 22px; border-radius: 28px; background: #fff;
  box-shadow: 0 0 0 1px rgba(13, 15, 18, 0.06), 0 30px 60px -30px rgba(13, 15, 18, 0.35);
}
.deal__card .cta { padding-left: 18px; padding-right: 18px; }
.deal__list { display: flex; flex-direction: column; gap: 12px; font-size: 15.5px; }
.deal__list li { display: flex; gap: 12px; align-items: baseline; }
.deal__list li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 2px; background: var(--red); transform: translateY(-2px); }
.secure { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: -8px; font-size: 11px; color: var(--g-400); }
.stripe { height: 13px; width: auto; }
.whop { height: 14px; width: auto; vertical-align: -2px; margin-left: 2px; }

@media (min-width: 900px) {
  .deal { flex-direction: row; align-items: flex-end; justify-content: center; gap: 56px; padding-top: 80px; padding-bottom: 72px; }
  .deal__stage { width: 400px; }
  .deal__card { margin-top: 0; margin-bottom: 40px; padding: 34px 30px 26px; }
}

/* ---------- Pied ---------- */
.foot { display: flex; justify-content: center; gap: 22px; padding: 0 var(--gutter) max(28px, env(safe-area-inset-bottom)); font-size: 12px; color: var(--g-400); }
.foot a:hover { color: var(--ink); }

/* ==========================================================================
   OPT-IN (pop-up bloquant)
   ========================================================================== */
.optin { position: fixed; inset: 0; z-index: 10; display: grid; place-items: center; padding: 24px 16px; overflow-y: auto; }
.optin[hidden] { display: none; }
.optin__veil { position: fixed; inset: 0; background: rgba(250, 250, 251, 0.6); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.optin__box {
  position: relative; width: min(420px, 100%);
  padding: 32px clamp(20px, 5vw, 32px) 24px; border-radius: 28px; background: #fff;
  box-shadow: 0 50px 100px -40px rgba(13, 15, 18, 0.45), 0 0 0 1px rgba(13, 15, 18, 0.06);
  display: flex; flex-direction: column;
}
.optin__title { font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: 1.7rem; line-height: 1; }
.optin__text { margin: 10px 0 22px; font-size: 15px; color: var(--g-500); }
.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; font-size: 13px; color: var(--g-600); }
.field input {
  font: inherit; font-size: 16px; color: var(--ink);
  padding: 14px 16px; border-radius: 14px; border: 0; background: var(--g-100);
  box-shadow: inset 0 0 0 1px rgba(13, 15, 18, 0.06); transition: box-shadow 0.3s var(--ease), background 0.3s var(--ease);
}
.field input:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 1.5px var(--red), 0 0 0 4px rgba(218, 41, 28, 0.12); }
.field input.is-bad { box-shadow: inset 0 0 0 1.5px var(--red); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.optin__err { color: var(--red); font-size: 13px; margin-bottom: 8px; }
.optin__err:empty { margin: 0; }
.optin .cta { max-width: none; margin-top: 6px; padding: 16px 24px; }
.optin .cta.is-loading { opacity: 0.7; pointer-events: none; }
.optin__legal { margin-top: 14px; font-size: 11.5px; color: var(--g-500); text-align: center; }
.optin__legal a { text-decoration: underline; text-underline-offset: 2px; }
/* Première visite : le formulaire s'affiche d'emblée, le site reste masqué derrière un fond uni */
html.gate, html.gate body { overflow: hidden; }
html.gate .optin[hidden] { display: grid; }
html.gate body > header, html.gate main, html.gate footer { visibility: hidden; }
html.gate .optin__veil { background: var(--g-100, #f4f4f5); -webkit-backdrop-filter: none; backdrop-filter: none; }

/* ---------- Ordinateur : bouton et prix à l'échelle du titre ---------- */
@media (min-width: 768px) {
  .hero .cta { max-width: 520px; padding: 22px 32px; font-size: 19px; }
  .hero .price__old { font-size: 2.2rem; }
  .hero .price__new { font-size: 3.6rem; }
}

/* ---------- Bandeau noir en haut : « Offre de lancement » + compte à rebours ---------- */
.launch {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: calc(8px + env(safe-area-inset-top)) var(--gutter) 8px;
  background: linear-gradient(180deg, #1b1e23, #0d0f12); color: #fff;
}
.launch__label { font-family: var(--display); font-weight: 800; font-size: 12px; line-height: 1.15; letter-spacing: 0.12em; text-transform: uppercase; }
.launch + main .hero { padding-top: 28px; }
.clock__cells { display: flex; align-items: flex-start; gap: 4px; }
.clock__cells i { font-style: normal; font-family: var(--display); font-weight: 900; font-size: 14px; line-height: 30px; color: rgba(255, 255, 255, 0.3); }
.clock__cell {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  min-width: 38px; padding: 5px 4px 4px; border-radius: 9px;
  background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.clock__cell b { font-family: var(--display); font-weight: 900; font-size: 17px; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
.clock__cell small { font-size: 8px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); }
@media (max-width: 359px) {
  .launch__label { font-size: 10.5px; }
  .clock__cell { min-width: 33px; }
  .clock__cell b { font-size: 15px; }
}
@media (min-width: 768px) {
  .launch { justify-content: center; gap: 28px; padding-top: 10px; padding-bottom: 10px; }
  .launch__label { font-size: 14px; }
  .clock__cell { min-width: 48px; padding: 6px 6px 5px; }
  .clock__cell b { font-size: 21px; }
  .clock__cells i { font-size: 17px; line-height: 36px; }
}

/* ---------- Phrase sous les vidéos ---------- */
.fits { max-width: 30ch; text-align: center; font-size: clamp(17px, 4.6vw, 22px); font-weight: 500; line-height: 1.35; letter-spacing: -0.015em; color: var(--ink); }
.fits strong { font-weight: 700; }

/* ==========================================================================
   LES LOGICIELS D'AUJOURD'HUI : trois captures empilées, barrées d'une croix rouge
   ========================================================================== */
.old { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 64px var(--gutter) 8px; }
.old__stack { position: relative; width: min(320px, 56%); aspect-ratio: 4 / 3; }
.old__img {
  position: absolute; width: 74%; height: auto; border-radius: 9px;
  box-shadow: 0 0 0 1px rgba(13, 15, 18, 0.08), 0 20px 40px -20px rgba(13, 15, 18, 0.45);
  filter: grayscale(0.25);
}
.old__img--1 { left: 0; top: 4%; transform: rotate(-6deg); }
.old__img--2 { right: 0; top: 0; transform: rotate(5deg); }
.old__img--3 { left: 14%; bottom: 0; width: 70%; transform: rotate(-1deg); }
.old__x { position: absolute; inset: 6% 8%; width: 84%; height: 88%; overflow: visible; }
.old__x path { fill: none; stroke: var(--red); stroke-width: 8; stroke-linecap: round; vector-effect: non-scaling-stroke; }
/* Aura rouge discrète qui pulse lentement autour de la croix */
.old__x { animation: x-glow 3.2s ease-in-out infinite; will-change: filter; }
@keyframes x-glow {
  0%, 100% { filter: drop-shadow(0 0 1px rgba(255, 50, 30, 0.35)); }
  50% { filter: drop-shadow(0 0 3px rgba(255, 60, 40, 0.6)) drop-shadow(0 0 8px rgba(255, 40, 20, 0.3)); }
}
@media (prefers-reduced-motion: reduce) { .old__x { animation: none; filter: drop-shadow(0 0 8px rgba(255, 40, 20, 0.8)); } }
.old__text { max-width: 30ch; text-align: center; font-size: clamp(15px, 4vw, 18px); font-weight: 500; line-height: 1.35; letter-spacing: -0.015em; color: var(--ink); }
.old__text strong { font-weight: 800; }
.old__text + .old__text { margin-top: 14px; }
.old__text .num { color: var(--red); font-weight: 900; font-size: 1.5em; letter-spacing: -0.02em; white-space: nowrap; }
@media (min-width: 768px) {
  .old { padding-top: 96px; }
  .old__img { border-radius: 12px; }
  .old__x path { stroke-width: 12; }
}
.flags { white-space: nowrap; margin: 0 0.15em; }

/* ---------- Valeur du marché, sous le prix ---------- */
.value { max-width: 38ch; margin-top: -8px; text-align: center; font-size: clamp(15px, 4vw, 18px); font-weight: 500; line-height: 1.45; letter-spacing: -0.015em; color: var(--ink); }
.value .num { color: var(--red); font-weight: 900; font-size: 1.45em; letter-spacing: -0.02em; white-space: nowrap; }

/* ---------- Bandeau de logos qui défile ---------- */
.tools { width: calc(100% + 2 * var(--gutter)); max-width: 1240px; margin-top: 18px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.tools__label { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--g-400); }
.tools__track {
  width: 100%; display: flex; overflow: hidden;
  -webkit-mask: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.tools__list { flex: none; display: flex; align-items: center; gap: 44px; padding-right: 44px; animation: tools-scroll 38s linear infinite; }
.tools__list li { display: flex; align-items: center; gap: 10px; height: 34px; font-size: 17px; font-weight: 700; letter-spacing: -0.01em; color: #8b9099; white-space: nowrap; }
.tools__list img { width: auto; height: 28px; }
.tools__list img.wordmark { width: auto; height: 24px; }
.tools__track:hover .tools__list { animation-play-state: paused; }
@keyframes tools-scroll { to { transform: translateX(-100%); } }
@media (min-width: 768px) {
  .tools__list { gap: 64px; padding-right: 64px; }
  .tools__list li { font-size: 19px; }
  .tools__list img { width: auto; height: 32px; }
  .tools__list img.wordmark { height: 28px; }
}

/* ---------- Ce qui est inclus : carte surélevée, contour rouge animé ---------- */
@property --incl-a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.incl { padding: 72px var(--gutter) 0; display: flex; justify-content: center; }
.incl__card {
  position: relative; isolation: isolate; width: min(620px, 100%);
  padding: 30px clamp(20px, 5vw, 38px) 28px; border-radius: 28px; background: #fff;
  box-shadow: 0 40px 80px -36px rgba(218, 41, 28, 0.35), 0 18px 40px -24px rgba(13, 15, 18, 0.3);
  transform: translateY(0); animation: incl-float 6s ease-in-out infinite;
}
.incl__card::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 2px;
  background: conic-gradient(from var(--incl-a), rgba(218, 41, 28, 0.12) 0deg, rgba(218, 41, 28, 0.12) 220deg, var(--red) 290deg, #ff8a6e 320deg, rgba(218, 41, 28, 0.12) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: incl-spin 4s linear infinite;
}
.incl__kicker { font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.incl__title { margin: 6px 0 20px; font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: clamp(1.45rem, 5.6vw, 2rem); line-height: 1.05; }
.incl__title em { font-style: normal; color: var(--red); }
.incl__list { display: flex; flex-direction: column; gap: 12px; font-size: 15.5px; line-height: 1.4; }
.incl__list li { position: relative; padding-left: 32px; }
.incl__list li::before {
  content: ""; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--red);
  -webkit-mask: none; box-shadow: 0 6px 12px -6px rgba(218, 41, 28, 0.6);
}
.incl__list li::after {
  content: ""; position: absolute; left: 7px; top: 5px; width: 6px; height: 10px;
  border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.incl__list strong { font-weight: 700; }
@keyframes incl-spin { to { --incl-a: 360deg; } }
@keyframes incl-float { 50% { transform: translateY(-6px); } }
@media (min-width: 900px) { .incl { padding-top: 96px; } .incl__list { font-size: 16.5px; } }
@media (prefers-reduced-motion: reduce) {
  .tools__list, .incl__card, .incl__card::before { animation: none; }
}

/* ---------- Avis : captures penchées qui se chevauchent, comme les démos ---------- */
.reviews { padding: 72px var(--gutter) 0; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.reviews__label { font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.reviews__stack { width: min(640px, 100%); display: flex; flex-direction: column; }
.review { position: relative; width: 88%; }
.review + .review { margin-top: -10px; }
.review img, .review video { display: block; width: 100%; height: auto; border-radius: 12px; background: #0d0f12; }
.review--1 { align-self: flex-start; transform: rotate(-2.5deg); z-index: 1; }
.review--2 { align-self: flex-end; transform: rotate(2deg); z-index: 3; }
.review--3 { align-self: center; width: 80%; transform: rotate(-1.5deg); z-index: 2; margin-top: 6px !important; }
.review--4 { align-self: flex-end; transform: rotate(2.5deg); z-index: 4; }
.review--5 { align-self: flex-start; transform: rotate(-2deg); z-index: 5; }
.review .screen__frame { position: relative; }
.review__sound {
  position: absolute; right: 12px; bottom: 12px; display: flex; align-items: center; gap: 8px;
  height: 38px; padding: 0 14px 0 10px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--red); color: #fff; font: inherit; font-size: 13px; font-weight: 700;
  box-shadow: 0 10px 24px -8px rgba(218, 41, 28, 0.7); animation: sound-pulse 1.8s ease-in-out infinite;
}
.review__sound svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.review__sound svg path:first-child { fill: currentColor; }
.review__sound .i-on { display: none; }
.review__sound.is-on { background: #fff; color: var(--ink); animation: none; box-shadow: 0 8px 20px -10px rgba(13, 15, 18, 0.5); }
.review__sound.is-on .i-on { display: block; }
.review__sound.is-on .i-off { display: none; }
@keyframes sound-pulse { 50% { transform: scale(1.06); } }
@media (min-width: 768px) {
  .reviews { padding-top: 96px; }
  .review + .review { margin-top: -18px; }
  .review img, .review video { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) { .review__sound { animation: none; } }

/* ---------- Bas de page : phrase d’accroche ---------- */
.deal__pitch { font-family: var(--display); font-weight: 900; font-size: clamp(1.35rem, 5.4vw, 1.75rem); line-height: 1.15; letter-spacing: -0.01em; text-transform: uppercase; color: var(--ink); text-align: center; }
.deal__pitch em { font-style: normal; color: var(--red); }

/* ---------- Logos en couleur : texte en encre ---------- */
.tools__list li { color: var(--ink); }
@media (max-width: 520px) {
  .review__sound { right: 8px; bottom: 8px; height: 32px; width: 32px; padding: 0; justify-content: center; }
  .review__sound span { display: none; }
  .review__sound svg { width: 18px; height: 18px; }
}

/* ---------- Bandeau du haut : un peu plus haut, avec le prix après l’offre ---------- */
.launch { padding-top: calc(12px + env(safe-area-inset-top)); padding-bottom: 12px; }
.launch__txt { display: flex; flex-direction: column; gap: 4px; }
.launch__note { font-size: 11px; font-weight: 500; line-height: 1.2; color: rgba(255, 255, 255, 0.7); }
.launch__note b { font-weight: 800; color: #ff6a5c; }
@media (min-width: 768px) {
  .launch { padding-top: 14px; padding-bottom: 14px; }
  .launch__note { font-size: 13px; }
}

/* ---------- Opt-in : plus chaleureux, touches de rouge ---------- */
html.gate .optin__veil { background: #fff; }
.optin__box { overflow: hidden; box-shadow: 0 0 70px -10px rgba(218, 41, 28, 0.35), 0 40px 80px -40px rgba(218, 41, 28, 0.45), 0 0 0 1px rgba(218, 41, 28, 0.12); }
.optin__box::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--red), #ff7a5c, var(--red)); }
.optin__badge { align-self: flex-start; margin-bottom: 14px; padding: 6px 12px; border-radius: 999px; background: rgba(218, 41, 28, 0.1); color: var(--red); font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.optin__title em { font-style: normal; color: var(--red); }
.optin__text { color: var(--g-600); }
.optin .cta span { display: inline-block; margin-left: 6px; transition: transform 0.3s var(--ease); }
.optin .cta:hover span { transform: translateX(4px); }

/* ---------- Phrase de valeur : même taille que « Le prompt s'adapte… » ---------- */
.value { max-width: 32ch; margin-top: 0; font-size: clamp(17px, 4.6vw, 22px); font-weight: 500; line-height: 1.4; letter-spacing: -0.015em; }
.value strong { font-weight: 700; }
.value .num { font-family: var(--display); font-weight: 900; font-size: 1.2em; letter-spacing: -0.01em; color: var(--red); }
.value .nowrap { white-space: nowrap; }

/* ---------- Notification « personnes qui regardent la page » ---------- */
.live {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 9;
  display: flex; align-items: center; gap: 12px; max-width: min(340px, calc(100vw - 32px));
  padding: 12px 16px 12px 12px; border-radius: 16px; background: #fff; color: var(--ink);
  box-shadow: 0 18px 40px -16px rgba(13, 15, 18, 0.35), 0 0 0 1px rgba(13, 15, 18, 0.06);
  opacity: 0; transform: translateY(16px); transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}
.live.is-on { opacity: 1; transform: none; }
.live[hidden] { display: none; }
.live__emoji { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--g-100); font-size: 20px; }
.live__text { font-size: 14px; line-height: 1.35; }
.live__text strong { font-weight: 800; }
@media (max-width: 520px) { .live { left: 16px; right: 16px; max-width: none; } }

/* ---------- Bande rouge : « Se connecte à tes outils » + logos ---------- */
body { overflow-x: clip; }
.tools {
  width: 100vw; max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  margin-top: 26px; padding: 22px 0 24px; gap: 16px;
  background: linear-gradient(180deg, #e0301f, var(--red));
  box-shadow: 0 24px 50px -30px rgba(218, 41, 28, 0.8);
}
.tools__label { color: #fff; font-size: 12px; letter-spacing: 0.16em; }
.tools__list { gap: 14px; padding-right: 14px; }
.tools__list li { height: 50px; padding: 0 18px; border-radius: 14px; background: #fff; box-shadow: 0 8px 18px -10px rgba(90, 10, 5, 0.55); }
@media (min-width: 768px) {
  .tools { padding: 26px 0 28px; }
  .tools__list { gap: 18px; padding-right: 18px; }
  .tools__list li { height: 56px; padding: 0 22px; }
}

/* ---------- Avis : « Ce que disent les pros » ---------- */
.reviews__label--pros { margin-top: 34px; }
.reviews__note { margin: -14px 0 0; font-size: 12px; color: var(--g-500, #888); }
@media (min-width: 768px) { .reviews__label--pros { margin-top: 46px; } }

/* ---------- Photo de Mika : coupée sous les manches (bras masqués) ---------- */
.deal__stage { aspect-ratio: 1024 / 790; overflow: hidden; }
.deal__mika {
  display: block;
  -webkit-mask: linear-gradient(180deg, #000 42%, transparent 67%); mask: linear-gradient(180deg, #000 42%, transparent 67%);
}
@media (max-width: 899px) { .deal__card { margin-top: -30px; } }

/* ---------- Pop-up upsell : pack 5 prompts métiers ---------- */
.upsell { position: fixed; inset: 0; z-index: 12; display: grid; place-items: center; padding: 20px 14px; overflow-y: auto; }
.upsell[hidden] { display: none; }
.upsell__veil { position: fixed; inset: 0; background: rgba(13, 15, 18, 0.45); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: up-fade 0.25s ease; }
.upsell__box { position: relative; width: min(500px, 100%); padding: 24px 22px 18px; border-radius: 26px; background: #fff; text-align: center; overflow: hidden;
  box-shadow: 0 0 70px -10px rgba(218, 41, 28, 0.35), 0 40px 80px -40px rgba(13, 15, 18, 0.5); animation: up-pop 0.35s cubic-bezier(0.2, 1.2, 0.4, 1); }
.upsell__box::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--red), #ff7a5c, var(--red)); }
.upsell__close { position: absolute; top: 12px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--g-100); font-size: 22px; line-height: 1; color: var(--g-500); cursor: pointer; }
.upsell__badge { display: inline-block; padding: 6px 12px; border-radius: 999px; background: rgba(218, 41, 28, 0.1); color: var(--red); font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.upsell__title { margin-top: 12px; font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: clamp(1.25rem, 4.6vw, 1.6rem); line-height: 1.04; }
.upsell__title em { font-style: normal; color: var(--red); }
.upsell__text { margin: 10px auto 0; max-width: 42ch; font-size: 14px; line-height: 1.45; color: var(--g-600); }
.upsell__text strong { color: var(--ink); font-weight: 800; }
.upsell__first { margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--red); }
.upsell__fan { position: relative; height: clamp(104px, 26vw, 138px); margin: 16px 0 10px; }
.upsell__fan figure { position: absolute; top: 0; left: 50%; width: 37%; margin: 0; transform-origin: 50% 120%; transition: transform 0.35s cubic-bezier(0.2, 1.2, 0.4, 1); }
.upsell__fan img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; border: 3px solid #fff; background: var(--g-100); box-shadow: 0 0 0 1px rgba(13, 15, 18, 0.08), 0 18px 30px -14px rgba(13, 15, 18, 0.45); }
.upsell__fan figcaption { margin-top: 5px; font-size: 10px; font-weight: 700; color: var(--g-500); white-space: nowrap; }
.upsell__fan figure:nth-child(1) { transform: translateX(-124%) translateY(16px) rotate(-11deg); z-index: 1; }
.upsell__fan figure:nth-child(2) { transform: translateX(-87%) translateY(5px) rotate(-5.5deg); z-index: 2; }
.upsell__fan figure:nth-child(3) { transform: translateX(-50%) rotate(0deg); z-index: 5; }
.upsell__fan figure:nth-child(4) { transform: translateX(-13%) translateY(5px) rotate(5.5deg); z-index: 4; }
.upsell__fan figure:nth-child(5) { transform: translateX(24%) translateY(16px) rotate(11deg); z-index: 3; }
.upsell .cta { width: 100%; max-width: none; padding: 14px 20px; }
.upsell .cta strong { font-weight: 900; }
.upsell__no { margin-top: 8px; width: 100%; padding: 11px; border: 1px solid var(--g-200, #e4e4e7); border-radius: 999px; background: #fff; color: var(--g-600); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.upsell__no:hover { background: var(--g-100); }
@keyframes up-fade { from { opacity: 0; } }
@keyframes up-pop { from { opacity: 0; transform: translateY(14px) scale(0.96); } }

@media (max-width: 520px) { .upsell__fan figcaption { display: none; } .upsell__fan { height: 104px; margin: 16px 0 10px; } }
.upsell__fan figcaption { display: none; }

/* ---------- Mèche rouge de 15 s en haut du pop-up (offre limitée dans le temps) ---------- */
.upsell__box::before { display: none; }
.fuse { position: absolute; left: 0; right: 0; top: 0; height: 7px; background: #f1e3e1; overflow: visible; }
.fuse__cord { position: relative; height: 100%; width: var(--fuse-start, 100%); background: repeating-linear-gradient(115deg, #b3261e 0 6px, #da291c 6px 12px); box-shadow: 0 0 10px rgba(218, 41, 28, 0.55); }
.upsell.is-burning .fuse__cord { animation: fuse-burn var(--fuse-ms, 15000ms) linear forwards; }
.fuse__spark { position: absolute; right: -7px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%;
  background: radial-gradient(circle, #fff7d6 0 22%, #ffb347 38%, #ff4d1f 60%, rgba(255, 77, 31, 0) 72%);
  box-shadow: 0 0 14px 5px rgba(255, 110, 40, 0.75), 0 0 28px 10px rgba(218, 41, 28, 0.35); animation: spark-flicker 0.12s steps(2) infinite; }
.fuse__spark::before, .fuse__spark::after { content: ""; position: absolute; left: 50%; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #ffd27a; box-shadow: 6px -5px 0 #ff8a3d, -5px -7px 0 #ffe7a3, 8px 4px 0 #ff5a1f, -7px 5px 0 #ffb347; animation: spark-fly 0.35s ease-out infinite; }
.fuse__spark::after { animation-delay: 0.17s; transform: rotate(90deg); }
.upsell:not(.is-burning) .fuse__spark { display: none; }
.fuse__time { position: absolute; top: 14px; left: 18px; margin: 0; font-size: 12px; font-weight: 800; color: var(--red); font-variant-numeric: tabular-nums; }
.upsell__expired { margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--g-500); }
.upsell.is-expired .fuse__time, .upsell.is-expired [data-upsell="1"] { display: none; }
@keyframes fuse-burn { from { width: var(--fuse-start, 100%); } to { width: 0; } }
@keyframes spark-flicker { 50% { transform: scale(1.25); filter: brightness(1.3); } }
@keyframes spark-fly { from { transform: translate(-50%, -50%) scale(0.6); opacity: 1; } to { transform: translate(-50%, -50%) scale(1.9); opacity: 0; } }
.upsell.is-expired .fuse__cord { width: 0; animation: none; }
.upsell__last { display: none; }
.upsell.is-last .upsell__std, .upsell.is-last .upsell__no, .upsell.is-last .upsell__expired { display: none; }
.upsell.is-last .upsell__last { display: block; }

/* ---------- Hero compact : titres remontés, 4 vidéos resserrées, bouton visible dès l'arrivée ---------- */
.launch + main .hero { padding-top: 14px; }
.hero { gap: clamp(16px, 3vw, 26px); }
.screens { padding-bottom: 9%; margin-top: 0; }
.screen { gap: 6px; }
.screen figcaption { font-size: 11px; }
.screen--a { transform: rotate(-3deg) translate(5%, 0); }
.screen--b { transform: rotate(3deg) translate(-5%, 7%); }
.screen--c { transform: rotate(2.5deg) translate(5%, 1%); }
.screen--d { transform: rotate(-2.5deg) translate(-5%, 7%); }
@media (min-width: 900px) {
  /* Sur ordinateur : les 4 vidéos sur une seule rangée */
  .screens { width: min(1180px, 100%); grid-template-columns: repeat(4, 1fr); padding-bottom: 3%; }
  .screen--a { transform: rotate(-3deg) translate(4%, 0); }
  .screen--b { transform: rotate(2.5deg) translate(-1%, 9%); }
  .screen--c { transform: rotate(-2.5deg) translate(1%, 0); }
  .screen--d { transform: rotate(3deg) translate(-4%, 9%); }
  .screen figcaption { font-size: 13px; }
}
.upsell__was { margin: 0 4px 0 2px; font-weight: 600; opacity: 0.7; text-decoration-thickness: 2px; }
.upsell__price { display: flex; align-items: baseline; justify-content: center; gap: 14px; margin: 2px 0 12px; font-family: var(--display); font-weight: 900; line-height: 1; }
.upsell__price s { position: relative; font-size: clamp(1.4rem, 5vw, 1.9rem); color: var(--g-500); text-decoration: none; }
.upsell__price s::after { content: ""; position: absolute; left: -6%; right: -6%; top: 52%; height: 4px; border-radius: 2px; background: var(--red); transform: rotate(-12deg); box-shadow: 0 1px 6px rgba(218, 41, 28, 0.45); }
.upsell__price b { font-size: clamp(2rem, 7.5vw, 2.8rem); color: var(--red); }

/* ---------- Éventail du pop-up : glisser à gauche / à droite ---------- */
.upsell__fan { touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; }
.upsell__fan.is-dragging { cursor: grabbing; }
.upsell__fan figure { transition: transform 0.55s cubic-bezier(0.22, 1.25, 0.36, 1), opacity 0.4s ease, filter 0.4s ease; will-change: transform; }
.upsell__fan.is-dragging figure { transition: none; }
.upsell__fan figure:nth-child(n) { transform: none; }
.upsell__fan img { pointer-events: none; -webkit-user-drag: none; }
.upsell__sector { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin: -2px 0 10px; font-size: 13px; font-weight: 800; color: var(--ink); }
.upsell__sector small { font-size: 11px; font-weight: 600; color: var(--g-500); }
.upsell__sector .js-sector { display: inline-block; transition: opacity 0.2s, transform 0.2s; }
.upsell__sector .js-sector.is-swap { opacity: 0; transform: translateY(4px); }
.title__price { font-size: clamp(2.6rem, 12.5vw, 6.6rem); }
/* « logiciels 3D » (plus long que « CRM 3D ») : tient sur une ligne, même sur petit téléphone */
.title__xl:not(.title__price) { font-size: clamp(2.2rem, 11.2vw, 6.4rem); white-space: nowrap; }

/* ---------- Vidéo de présentation en haut + les 4 démos sous le prix ---------- */
.herovid { width: min(640px, calc(100% + 2 * var(--gutter) - 16px)); margin: 0; padding: 5px; border-radius: 22px; background: #fff;
  box-shadow: 0 0 0 1px rgba(13, 15, 18, 0.07), 0 30px 60px -28px rgba(13, 15, 18, 0.45); }
.herovid video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 18px; background: var(--g-100); }
.buy + .screens { margin-top: 10px; }
.review--0 { align-self: center; width: 74%; transform: rotate(1deg); z-index: 0; }
@media (min-width: 900px) { .herovid { width: min(500px, 100%); } }

/* Vidéo du haut : clic = pause/lecture, bouton son dans le coin */
.herovid { position: relative; }
.herovid video { cursor: pointer; }
.herovid__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%;
  background: rgba(13, 15, 18, 0.62); display: grid; place-items: center; pointer-events: none; opacity: 0; transform: scale(0.85); transition: opacity .2s, transform .2s; }
.herovid__play svg { width: 30px; height: 30px; fill: #fff; margin-left: 4px; }
.herovid.is-paused .herovid__play { opacity: 1; transform: scale(1); }
.herovid__sound { position: absolute; right: 14px; bottom: 14px; display: flex; align-items: center; gap: 6px; padding: 7px 12px 7px 9px;
  border: 0; border-radius: 999px; background: rgba(13, 15, 18, 0.72); color: #fff; font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1; cursor: pointer;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background .2s; }
.herovid__sound:hover { background: rgba(13, 15, 18, 0.88); }
.herovid__sound svg { width: 20px; height: 20px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.herovid__sound .spk { fill: #fff; }
.herovid__sound .on, .herovid.is-sound .herovid__sound .off { display: none; }
.herovid.is-sound .herovid__sound .on { display: inline; }
.herovid.is-sound .herovid__sound { padding: 7px; }
.herovid.is-sound .herovid__sound span { display: none; }

/* Bonus consultation dans le pop-up du pack */
.upsell__bonus { margin: 2px auto 10px; padding: 7px 12px; border-radius: 12px; background: #fdecea; color: var(--ink); font-size: 13px; line-height: 1.35; max-width: 36ch; }
.upsell__bonus strong { color: var(--red); font-weight: 800; }

/* Avis « acompte de 5'000 » en tête, chiffre entouré au stylo rouge */
.review--top { margin-bottom: 4px; }
.review .pen { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.review .pen path { fill: none; stroke: var(--red); stroke-width: 9; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 1px rgba(218, 41, 28, 0.5)); }
.review .pen.is-drawn path { animation: pen-draw 0.9s cubic-bezier(.55, .1, .35, 1) 0.2s forwards; }
@keyframes pen-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .review .pen path { stroke-dashoffset: 0; animation: none; } }

/* Pop-up du pack : valeur exprimée en temps (plus de prix barré) */
.upsell__time { margin: 2px auto 8px; display: inline-block; padding: 6px 12px; border-radius: 999px; background: #fdecea; color: var(--red); font-size: 14px; font-weight: 800; }

/* ==========================================================================
   COMMENT ÇA MARCHE — texte seul sur le fond blanc, sans bloc
   ========================================================================== */
.how { width: min(560px, 100%); margin: 0 auto; padding: 64px var(--gutter) 8px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.how__title { font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: clamp(1.45rem, 5.6vw, 2rem); line-height: 1.05; letter-spacing: -0.01em; }
.how__time { margin-top: 8px; font-size: 14px; color: var(--g-500); }
.how__steps { margin: 26px auto 30px; display: flex; flex-direction: column; gap: 12px; width: max-content; max-width: 100%; text-align: left; }
.how__steps li { display: grid; grid-template-columns: 44px 1fr; align-items: baseline; gap: 4px; }
.how__n { font-family: var(--display); font-weight: 900; font-size: 15px; color: var(--red); letter-spacing: 0.02em; }
.how__steps p { font-size: 14.5px; line-height: 1.45; color: var(--g-500); }
.how__steps strong { display: block; font-size: 17.5px; font-weight: 750; color: var(--ink); letter-spacing: -0.01em; }

/* Bouton « C'est parti » : même rouge et même typo que les autres, plus étroit, flèche animée */
.cta.go { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: auto; max-width: none; padding-left: 40px; padding-right: 40px; }
.go__arrow { display: inline-block; animation: go-nudge 1.8s var(--ease) infinite; }
@keyframes go-nudge { 0%, 55%, 100% { transform: translateX(0); } 30% { transform: translateX(5px); } }
@media (prefers-reduced-motion: reduce) { .go__arrow { animation: none; } }
@media (min-width: 900px) { .how { padding-top: 88px; } }

/* Avis en paires : deux colonnes indépendantes (pas de trou), décalées et qui se chevauchent légèrement */
.reviews__stack--pairs { display: grid; grid-template-columns: 1fr 1fr; align-items: start; width: min(760px, 100%); isolation: isolate; }
.pairs__col { display: flex; flex-direction: column; gap: 10px; align-self: stretch; }
.pairs__col--r { padding-top: 26px; }
.reviews__stack--pairs .review { width: 108%; margin: 0 !important; }
.reviews__stack--pairs .rv-l { transform: rotate(-2deg); z-index: 1; }
.reviews__stack--pairs .rv-r { margin-left: -8% !important; transform: rotate(2deg); z-index: 2; }
.reviews__stack--pairs .review img, .reviews__stack--pairs .review video { border-radius: 10px; box-shadow: 0 12px 26px -16px rgba(13, 15, 18, 0.55); }
.reviews__stack--pairs .review--top { margin-bottom: 0; }
/* Le vocal : grand, centré sous les paires et au-dessus de tous, pour que le bouton « son » reste cliquable */
.reviews__stack--pairs .pairs__audio { grid-column: 1 / -1; justify-self: center; width: 86%; margin-top: -6px !important; z-index: 20; transform: rotate(-1.5deg); }
.reviews__stack--pairs .pairs__audio video { box-shadow: 0 18px 34px -14px rgba(13, 15, 18, 0.65); }
@media (min-width: 768px) { .pairs__col { gap: 18px; } .pairs__col--r { padding-top: 40px; } .reviews__stack--pairs .review img, .reviews__stack--pairs .review video { border-radius: 16px; } }

/* Dernière chance : version épurée (titre, images, prix barré, bouton) */
.upsell__old, .upsell__yes-last { display: none; }
.upsell.is-last .upsell__time { display: none; }
.upsell.is-last .upsell__title--last { margin-top: 18px; font-size: clamp(1.9rem, 7.6vw, 2.5rem); line-height: 1; }
.upsell.is-last .upsell__old { display: inline; font-size: clamp(1.7rem, 6.4vw, 2.3rem); }
.upsell.is-last .upsell__price { gap: 18px; margin: 6px 0 16px; }
.upsell.is-last .upsell__price b { font-size: clamp(2.6rem, 10vw, 3.5rem); }
.upsell.is-last .upsell__yes { display: none; }
.upsell.is-last .upsell__yes-last { display: inline; }

/* Téléphone fixe dans le creux de la colonne gauche */
/* Le téléphone remplit tout le creux (hauteur restante de la colonne), sans vide au-dessus ni en dessous */
.pairs__hand { position: relative; flex: 1 1 0; min-height: 180px; }
.pairs__hand img { position: absolute; inset: 4px 0; margin: auto; display: block; height: calc(100% - 8px); width: auto; max-width: 100%; object-fit: contain; }

/* Premier bouton d'achat : grand, prix intégré en blanc, légère pulsation */
.cta--big { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 18px; padding-bottom: 16px; animation: cta-pulse 2.6s ease-in-out infinite; }
.cta--big .cta__label { display: block; }
.price--in { gap: 12px; color: #fff; }
.price--in .price__old { font-size: 1.35rem; color: rgba(255, 255, 255, 0.72); }
.price--in .price__old::after { background: #fff; box-shadow: none; }
.price--in .price__new { font-size: 2.3rem; color: #fff; }
.price--in .price__new small, .price--in .price__old small { color: inherit; }
@keyframes cta-pulse { 0%, 100% { transform: scale(1); box-shadow: 0 14px 30px -14px rgba(218, 41, 28, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.2); } 50% { transform: scale(1.025); box-shadow: 0 18px 38px -12px rgba(218, 41, 28, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.2); } }
.cta--big:active { animation: none; transform: scale(0.98); }
@media (min-width: 768px) { .hero .cta--big { padding-top: 22px; padding-bottom: 20px; } .hero .price--in .price__old { font-size: 1.7rem; } .hero .price--in .price__new { font-size: 2.9rem; } }
@media (prefers-reduced-motion: reduce) { .cta--big { animation: none; } }

/* Vidéos des 4 domaines : visuel seul en boucle, aucun bouton (lecture, son, plein écran) */
.screen video::-webkit-media-controls, .screen video::-webkit-media-controls-panel,
.screen video::-webkit-media-controls-start-playback-button, .screen video::-webkit-media-controls-play-button,
.screen video::-webkit-media-controls-overlay-play-button { display: none !important; -webkit-appearance: none; opacity: 0; }
.screen video { pointer-events: none; }
.screen .anim { display: block; width: 100%; height: auto; aspect-ratio: 1440 / 808; object-fit: cover; border-radius: 12px; background: var(--g-100); }
@media (min-width: 768px) { .screen .anim { border-radius: 20px; } }

/* iPhone des avis : contour blanc + ombre douce */
.pairs__hand img { filter: drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 16px 22px rgba(13, 15, 18, 0.32)); }
/* Bouton d'achat tout en bas : légère pulsation */
.deal__card .cta { animation: cta-pulse 2.6s ease-in-out infinite; }
.deal__card .cta:active { animation: none; transform: scale(0.98); }
@media (prefers-reduced-motion: reduce) { .deal__card .cta { animation: none; } }

/* Vidéos rendues sur leur propre couche graphique : lecture plus fluide */
.screen__frame { transform: translateZ(0); }
.screen video { will-change: transform; backface-visibility: hidden; }

/* Avis en paires : chevauchements alternés (un coup la colonne de droite passe dessus, un coup celle de gauche) */
/* Ordre de superposition choisi avis par avis (un coup la gauche dessus, un coup la droite) */
.reviews__stack--pairs .z1 { z-index: 1; } .reviews__stack--pairs .z2 { z-index: 2; } .reviews__stack--pairs .z3 { z-index: 3; } .reviews__stack--pairs .z4 { z-index: 4; }

/* « Dernière chance » : pas de mèche ni de secondes (plus de renvoi automatique vers le paiement) */
.upsell.is-last .fuse, .upsell.is-last .fuse__time { display: none; }
