/* Homepage ohmGym, maquette du 19/10/2026.
   Jetons et polices de la charte (assets/site.css, theme.js) ; rien d'autre. */
:root {
  --ink: #0B0D10; --surface: #15181E; --raised: #1E222A; --line: #2A2F39;
  --lime: #C5FF41; --lime-h: #d4ff6b; --t1: #F5F7FA; --t2: #9BA3B0; --t3: #6A7280;
  --disp: "Barlow Condensed", ui-sans-serif, system-ui, sans-serif;
  --sans: "Barlow", ui-sans-serif, system-ui, sans-serif;
  --hdr: 64px;
  --scene: max(620px, calc(100svh - var(--hdr)));
}
html { scroll-behavior: smooth; scroll-padding-top: var(--hdr); }
body { background: var(--ink); }
.om-wrap { max-width: 72rem; margin: 0 auto; padding: 0 20px; width: 100%; }
.om-center { text-align: center; }
strong { color: var(--t1); font-weight: 600; }
svg use { pointer-events: none; }
.om-hero svg, .om-scene svg, .om-how svg, .om-footer svg, .om-mbar svg, .om-bridge svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* ── Typographie ───────────────────────────────────────────── */
.om-h1 { font-family: var(--disp); font-weight: 800; text-transform: uppercase; line-height: .9; letter-spacing: -.01em; font-size: clamp(3.1rem, 6.4vw, 6.2rem); }
.om-h1-l { display: block; }
.om-h2 { font-family: var(--disp); font-weight: 800; text-transform: uppercase; line-height: .93; letter-spacing: -.005em; font-size: clamp(2.3rem, 4.1vw, 4rem); }
.om-lead { color: var(--t2); font-size: 1.125rem; line-height: 1.55; max-width: 34em; }
.om-lead + .om-lead { margin-top: .75rem; }
.om-ask { margin-top: 1.6rem; font-weight: 600; color: var(--t1); font-size: .95rem; }
.om-note { margin-top: 1.25rem; display: flex; gap: .5rem; align-items: center; color: var(--t3); font-size: .9rem; }
.om-note svg { width: 18px; height: 18px; color: var(--lime); flex: none; }
.om-foot-note { margin-top: 1rem; color: var(--t3); font-size: .85rem; }
.om-soon { display: inline-block; margin-left: .35rem; color: var(--t3); font-weight: 600; }

/* ── Boutons, champs ──────────────────────────────────────── */
.om-btn { height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: 0 1.5rem; border-radius: 12px; background: var(--lime); color: var(--ink); font-family: var(--disp); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 1.125rem; white-space: nowrap; transition: background .2s, transform .2s, box-shadow .2s; cursor: pointer; }
.om-btn:hover { background: var(--lime-h); box-shadow: 0 12px 34px -12px rgba(197,255,65,.55); }
.om-btn:focus-visible, .om-input:focus-visible, .om-chips button:focus-visible, .om-seg button:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
.om-btn-ghost { background: transparent; color: var(--t1); border: 1px solid var(--line); }
.om-btn-ghost:hover { background: transparent; border-color: var(--lime); color: var(--lime); box-shadow: none; }
.om-btn-sm { height: 40px; font-size: 1rem; padding: 0 1.1rem; }
.om-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--lime); font-weight: 600; }
.om-link svg { width: 18px; height: 18px; transition: transform .2s; }
.om-link:hover svg { transform: translateX(3px); }

.om-form { margin-top: 2rem; max-width: 30rem; }
.om-form-row { display: flex; gap: .5rem; }
.om-input { flex: 1; min-width: 0; height: 48px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); padding: 0 1rem; color: var(--t1); font-size: 1rem; transition: border-color .2s; }
.om-input::placeholder { color: var(--t3); }
.om-input:focus { outline: none; border-color: var(--lime); }
.om-platforms { margin-top: .75rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .875rem; }
.om-platforms legend { float: left; color: var(--t3); margin-right: .4rem; }
.om-platforms label { cursor: pointer; }
.om-platforms input { position: absolute; opacity: 0; pointer-events: none; }
.om-platforms span { display: inline-flex; align-items: center; height: 32px; padding: 0 .8rem; border-radius: 10px; border: 1px solid var(--line); color: var(--t2); transition: border-color .2s, color .2s; }
.om-platforms label:hover span { color: var(--t1); }
.om-platforms input:checked + span { border-color: var(--lime); color: var(--lime); }
.om-platforms input:focus-visible + span { outline: 2px solid var(--lime); outline-offset: 2px; }
.om-status { margin-top: .6rem; min-height: 1.3rem; font-size: .9rem; color: var(--t2); }
.om-status.is-ok { color: var(--lime); }
.om-status.is-bad { color: #FB923C; }

/* ── Pastilles de choix ───────────────────────────────────── */
.om-chips { margin-top: .6rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.om-chips button { height: 40px; padding: 0 1rem; border-radius: 12px; border: 1px solid var(--line); color: var(--t2); font-weight: 600; font-size: .95rem; transition: all .2s; cursor: pointer; }
.om-chips button:hover { color: var(--t1); border-color: #3a404c; }
.om-chips button[aria-checked="true"] { background: var(--lime); border-color: var(--lime); color: var(--ink); }

/* ── Scènes ───────────────────────────────────────────────── */
.om-scene { position: relative; min-height: var(--scene); display: flex; flex-direction: column; justify-content: center; padding: 48px 0 64px; }
.om-wide { max-width: none; }
.om-band { background: rgba(21,24,30,.55); border-top: 1px solid rgba(42,47,57,.6); border-bottom: 1px solid rgba(42,47,57,.6); }
.om-bridge { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: .5rem; color: var(--t3); font-size: .95rem; white-space: nowrap; transition: color .2s; }
.om-bridge svg { width: 16px; height: 16px; animation: om-nudge 2s ease-in-out infinite; }
.om-bridge:hover { color: var(--lime); }
@keyframes om-nudge { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) } }

.om-rv { opacity: 0; transform: translateY(16px); transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.om-rv.is-in { opacity: 1; transform: none; }

/* ── Téléphone (même cadre que les rendus de l'app) ─────────── */
.om-phone { position: relative; width: 272px; aspect-ratio: 9 / 19.3; border-radius: 46px; padding: 8px; background: linear-gradient(145deg, #3a3d42, #16181b 40%, #222428 70%, #3a3d42); box-shadow: 0 40px 90px -25px rgba(0,0,0,.85), inset 0 0 0 1px rgba(255,255,255,.08); }
.om-phone-sm { width: 250px; }
.om-screen { position: relative; height: 100%; border-radius: 38px; background: #0E1014; overflow: hidden; color: var(--t1); }
.om-island { position: absolute; top: 9px; left: 50%; transform: translateX(-50%); width: 84px; height: 24px; border-radius: 20px; background: #000; z-index: 5; }
.om-sbar { display: flex; justify-content: space-between; align-items: center; padding: 13px 22px 0 26px; font-size: 12px; font-weight: 600; height: 40px; }
.om-sbar-ic { display: flex; gap: 2px; align-items: flex-end; }
.om-sbar-ic i { width: 3px; background: var(--t1); border-radius: 1px; }
.om-sbar-ic i:nth-child(1) { height: 5px } .om-sbar-ic i:nth-child(2) { height: 7px } .om-sbar-ic i:nth-child(3) { height: 9px }
.om-sbar-ic b { width: 20px; height: 10px; margin-left: 5px; border-radius: 3px; border: 1.5px solid var(--t1); position: relative; }
.om-sbar-ic b::after { content: ""; position: absolute; inset: 1.5px 5px 1.5px 1.5px; background: var(--t1); border-radius: 1px; }

.om-ps { padding: 10px 16px 14px; display: flex; flex-direction: column; height: calc(100% - 40px); }
.om-ps-k { font-size: 11.5px; color: var(--t3); font-weight: 500; }
.om-ps-t { font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 25px; line-height: 1; margin-top: 3px; }
.om-ps-m { font-size: 11.5px; color: var(--t2); margin-top: 5px; }
.om-ps-live { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 10px; padding: 8px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
.om-ps-live > div { display: flex; flex-direction: column; }
.om-ps-timer { font-family: var(--disp); font-weight: 800; font-size: 38px; line-height: .9; color: var(--lime); font-variant-numeric: tabular-nums; }
.om-ps-cap { font-size: 10.5px; color: var(--t3); margin-top: 3px; }
.om-ps-bpm { align-items: flex-end; }
.om-ps-bpm svg { width: 16px; height: 16px; color: #FB7185; fill: #FB7185 !important; stroke: none !important; animation: om-beat .8s ease-in-out infinite; }
.om-ps-bpm span[data-bpm] { font-family: var(--disp); font-weight: 700; font-size: 24px; line-height: 1; font-variant-numeric: tabular-nums; }
@keyframes om-beat { 0%,100% { transform: scale(1) } 30% { transform: scale(1.22) } }
.om-ps-list { margin-top: 8px; display: flex; flex-direction: column; gap: 5px; }
.om-ps-list li { display: flex; justify-content: space-between; align-items: center; padding: 7px 12px; border-radius: 12px; background: var(--surface); font-size: 13px; font-weight: 500; transition: background .3s, color .3s; }
.om-ps-list li i { width: 18px; height: 18px; border-radius: 6px; border: 1.5px solid var(--line); position: relative; transition: all .3s; }
.om-ps-list li.done { color: var(--t2); }
.om-ps-list li.done i { background: var(--lime); border-color: var(--lime); }
.om-ps-list li.done i::after { content: ""; position: absolute; left: 5.5px; top: 2px; width: 5px; height: 9px; border: solid var(--ink); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.om-ps-bar { margin-top: 10px; height: 6px; border-radius: 6px; background: var(--raised); overflow: hidden; }
.om-ps-bar i { display: block; height: 100%; width: 0; background: var(--lime); border-radius: 6px; transition: width .4s; }
.om-ps-duel { margin-top: auto; flex: none; display: flex; gap: 10px; align-items: center; padding: 8px 12px; border-radius: 14px; border: 1px solid rgba(197,255,65,.35); background: rgba(197,255,65,.06); font-size: 11.5px; color: var(--t2); line-height: 1.35; }
.om-ps-duel b { color: var(--t1); font-weight: 600; }
.om-ava { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #3B4252; color: var(--t1); font-weight: 700; font-size: 13px; position: relative; }
.om-ava::after { content: ""; position: absolute; right: -1px; bottom: -1px; width: 9px; height: 9px; border-radius: 50%; background: var(--lime); border: 2px solid #0E1014; }

/* Feuille « séance prouvée » */
.om-proof-sheet { position: absolute; left: 10px; right: 10px; bottom: 10px; padding: 22px 18px 18px; border-radius: 28px; background: #12151A; border: 1px solid rgba(197,255,65,.45); box-shadow: 0 -20px 60px -10px rgba(0,0,0,.8), 0 0 50px -12px rgba(197,255,65,.35); text-align: center; transform: translateY(115%); transition: transform .7s cubic-bezier(.2,.8,.2,1); z-index: 3; }
.om-proof-seal { width: 58px; height: 58px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; background: var(--lime); color: var(--ink); transform: scale(.4); opacity: 0; transition: all .5s .35s cubic-bezier(.3,1.6,.4,1); }
.om-proof-seal svg { width: 32px; height: 32px; stroke-width: 2 !important; }
.om-proof-t { margin-top: 12px; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 23px; line-height: 1; }
.om-proof-m { margin-top: 4px; font-size: 12px; color: var(--t2); }
.om-proof-sig { margin-top: 14px; display: flex; justify-content: center; gap: 5px; }
.om-proof-sig span { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-family: var(--disp); font-weight: 800; font-size: 16px; border: 1px solid var(--line); color: var(--t3); transition: all .3s; }
.om-proof-sig span.on { color: var(--t3); }
.om-proof-l { margin-top: 9px; font-size: 11.5px; color: var(--t2); }
.om-proof-h { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 11px; color: var(--t3); font-variant-numeric: tabular-nums; }
.om-phone[data-phase="2"] .om-proof-sheet, .om-phone[data-phase="3"] .om-proof-sheet { transform: none; }
.om-phone[data-phase="2"] .om-proof-seal, .om-phone[data-phase="3"] .om-proof-seal { transform: none; opacity: 1; }
.om-phone[data-phase="2"] .om-proof-sig span.on, .om-phone[data-phase="3"] .om-proof-sig span.on { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.om-proof-sig span:nth-child(3) { transition-delay: .25s } .om-proof-sig span:nth-child(5) { transition-delay: .5s }

/* Notification */
.om-notif { position: absolute; top: 44px; left: 10px; right: 10px; display: flex; gap: 10px; align-items: center; padding: 11px 13px; border-radius: 18px; background: rgba(40,44,52,.94); backdrop-filter: blur(10px); font-size: 11.5px; line-height: 1.35; color: var(--t2); transform: translateY(-140%); opacity: 0; transition: all .6s cubic-bezier(.2,.8,.2,1); z-index: 6; }
.om-notif img { width: 30px; height: 30px; border-radius: 8px; background: var(--ink); flex: none; }
.om-notif b { color: var(--t1); }
.om-phone[data-phase="3"] .om-notif { transform: none; opacity: 1; }

/* ── 1. Hero ──────────────────────────────────────────────── */
.om-hero { position: relative; min-height: var(--scene); display: flex; flex-direction: column; overflow: hidden; }
.om-hero-grid { flex: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 2.5rem; align-items: center; padding-top: 22px; padding-bottom: 18px; }
.om-hero-lead { margin-top: 1.4rem; }
.om-hero-stores { margin-top: 1.8rem; }
.om-hero-note { margin-top: 1rem; color: var(--t3); font-size: .95rem; display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: center; }
.om-hero-later { color: var(--t2); text-decoration: underline; text-underline-offset: 3px; }
.om-hero-later:hover { color: var(--lime); }
.om-form-why { margin: 0 0 .7rem; font-weight: 600; color: #1E222A; }
.om-hero-visual { position: relative; display: flex; flex-direction: column; align-items: center; }
.om-hero-halo { position: absolute; inset: -10% -20%; background: radial-gradient(42% 42% at 50% 48%, rgba(197,255,65,.22), transparent 70%); filter: blur(10px); z-index: -1; }
.om-hero .om-phone { height: min(580px, calc(var(--scene) - 196px)); width: auto; }
.om-hero-cap { margin-top: 1rem; display: flex; gap: 1.1rem; font-size: .85rem; color: var(--t3); font-weight: 500; }
.om-hero-cap span { transition: color .3s; }
.om-hero-cap span.is-on { color: var(--lime); }
.om-assure { border-top: 1px solid rgba(42,47,57,.7); background: rgba(11,13,16,.6); }
.om-assure-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.om-assure-grid > div { padding: 14px 24px; display: flex; flex-direction: column; gap: 2px; }
.om-assure-grid > div + div { border-left: 1px solid var(--line); }
.om-assure-grid > div:first-child { padding-left: 0; }
.om-assure-grid b { font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.2rem; letter-spacing: .01em; }
.om-assure-grid span { color: var(--t2); font-size: .92rem; }

/* ── 2. Le problème ───────────────────────────────────────── */
.om-why { display: grid; grid-template-columns: 1.25fr .75fr; gap: 3.5rem; align-items: center; }
.om-why .om-lead { margin-top: 1.2rem; }
.om-figs { margin-top: 2rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.om-fig { display: grid; grid-template-rows: subgrid; grid-row: span 3; gap: .45rem; padding: 1.25rem; border-radius: 18px; background: var(--surface); border: 1px solid var(--line); }
.om-fig b { font-family: var(--disp); font-weight: 800; font-size: 2.2rem; line-height: 1; color: var(--lime); white-space: nowrap; }
.om-fig span { color: var(--t1); font-size: .95rem; line-height: 1.4; }
.om-fig small { color: var(--t3); font-size: .8rem; align-self: end; }
.om-figs .om-fig:nth-child(2) { transition-delay: .1s } .om-figs .om-fig:nth-child(3) { transition-delay: .2s }

.om-flip-zone { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.om-seg { display: inline-flex; padding: 4px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); }
.om-seg button { height: 38px; padding: 0 1.1rem; border-radius: 10px; color: var(--t2); font-weight: 600; font-size: .95rem; cursor: pointer; transition: all .25s; }
.om-seg button[aria-selected="true"] { background: var(--lime); color: var(--ink); }
.om-flip { width: 100%; max-width: 360px; perspective: 1400px; }
.om-flip-in { position: relative; display: grid; transition: transform .9s cubic-bezier(.3,.8,.25,1); transform-style: preserve-3d; }
.om-flip.is-back .om-flip-in { transform: rotateY(180deg); }
.om-flip-face { grid-area: 1 / 1; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 22px; padding: 1.4rem 1.4rem 1.2rem; }
.om-flip-back { transform: rotateY(180deg); }
.om-flip-face header { display: flex; align-items: center; gap: .55rem; font-weight: 600; font-size: .95rem; }
.om-flip-face header svg { width: 22px; height: 22px; }
.om-flip-face header em { margin-left: auto; font-style: normal; font-size: .8rem; color: var(--t3); font-weight: 500; }
.om-flip-face dl { margin-top: 1rem; display: flex; flex-direction: column; }
.om-flip-face dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid rgba(127,127,127,.18); font-size: .92rem; }
.om-flip-face dt { color: inherit; opacity: .6; }
.om-flip-face dd { font-weight: 600; text-align: right; }
.om-inv-note { margin-top: .9rem; font-size: .85rem; line-height: 1.45; opacity: .7; }
.om-invoice { background: #ECEEF1; color: #1E222A; box-shadow: 0 30px 70px -25px rgba(0,0,0,.8); transform: rotate(-1.5deg); }
.om-flip-face.om-invoice { transform: rotate(-1.5deg); }
.om-inv-who { margin-top: 1rem; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.6rem; line-height: 1; }
.om-inv-what { color: #5b6270; font-size: .92rem; margin-top: .2rem; }
.om-inv-q { color: #C2410C; }
.om-inv-stamp { position: absolute; right: 1.4rem; top: 4.4rem; padding: .15rem .7rem; border: 3px solid #C2410C; border-radius: 8px; color: #C2410C; font-family: var(--disp); font-weight: 800; font-size: 1.5rem; text-transform: uppercase; transform: rotate(-12deg); opacity: .8; }
.om-proofcard { background: var(--surface); border: 1px solid rgba(197,255,65,.5); box-shadow: 0 30px 70px -25px rgba(0,0,0,.8), 0 0 60px -20px rgba(197,255,65,.4); }
.om-proofcard header svg { color: var(--lime); }
.om-ok { color: var(--lime) !important; font-weight: 600 !important; }
.om-pc-when { margin-top: 1rem; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.6rem; line-height: 1; }
.om-pc-what { color: var(--t2); font-size: .92rem; margin-top: .2rem; }
.om-pc-sig { margin-top: .9rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; }
.om-pc-sig span { display: flex; align-items: center; gap: .4rem; padding: .35rem .5rem; border-radius: 9px; border: 1px solid var(--line); font-size: .78rem; color: var(--t3); }
.om-pc-sig b { font-family: var(--disp); font-weight: 800; font-size: 1rem; }
.om-pc-sig span.on { border-color: var(--lime); color: var(--t1); background: rgba(197,255,65,.08); }
.om-pc-sig span.on b { color: var(--lime); }

/* ── 3. Comment ça marche ─────────────────────────────────── */
.om-how { position: relative; background: rgba(21,24,30,.55); border-top: 1px solid rgba(42,47,57,.6); border-bottom: 1px solid rgba(42,47,57,.6); }
.om-how-track { height: 280vh; }
.om-how-sticky { position: sticky; top: var(--hdr); height: calc(100svh - var(--hdr)); min-height: 600px; display: flex; align-items: center; overflow: hidden; }
.om-how-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.om-steps { margin-top: 2rem; display: flex; flex-direction: column; }
.om-step { border-top: 1px solid var(--line); }
.om-step:last-child { border-bottom: 1px solid var(--line); }
.om-step button { width: 100%; display: flex; align-items: center; gap: 1rem; padding: 1rem 0; text-align: left; cursor: pointer; }
.om-step-n { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--line); font-family: var(--disp); font-weight: 800; font-size: 1.3rem; color: var(--t3); transition: all .35s; }
.om-step-t { font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.9rem; line-height: 1; color: var(--t3); transition: color .35s; }
.om-step p { color: var(--t2); font-size: 1.05rem; line-height: 1.55; max-width: 30em; padding-left: 56px; overflow: hidden; max-height: 0; opacity: 0; transition: max-height .5s, opacity .4s, padding .4s; }
.om-step.is-on p { max-height: 8rem; opacity: 1; padding-bottom: 1.1rem; }
.om-step.is-on .om-step-n { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.om-step.is-on .om-step-t, .om-step button:hover .om-step-t { color: var(--t1); }
.om-how-bar { margin-top: 1.5rem; height: 3px; border-radius: 3px; background: var(--raised); overflow: hidden; }
.om-how-bar i { display: block; height: 100%; width: 0; background: var(--lime); }
.om-how-visual { display: flex; justify-content: center; }
.om-how-stage { position: relative; height: min(540px, calc(100svh - var(--hdr) - 90px)); aspect-ratio: 9 / 19.3; }
.om-how-shot { position: absolute; inset: 0; display: flex; justify-content: center; opacity: 0; transform: translateY(24px) scale(.97); transition: opacity .55s, transform .55s cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.om-how-shot .om-phone { height: 100%; width: auto; }
.om-how-stage[data-active="0"] [data-shot="0"], .om-how-stage[data-active="1"] [data-shot="1"], .om-how-stage[data-active="2"] [data-shot="2"] { opacity: 1; transform: none; }
.om-shot-img { height: 100%; width: auto; filter: drop-shadow(0 40px 60px rgba(0,0,0,.7)); }
.om-week { margin-top: 12px; display: flex; justify-content: space-between; }
.om-week span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 600; color: var(--t3); border: 1px solid var(--line); }
.om-week span.d { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.om-week span.t { border-color: var(--lime); color: var(--lime); box-shadow: 0 0 0 3px rgba(197,255,65,.15); }
.om-wod { margin-top: 14px; padding: 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
.om-wod-t { font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 20px; line-height: 1; }
.om-wod-m { font-size: 11px; color: var(--t2); margin-top: 3px; }
.om-wod ul { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; }
.om-wod li { display: flex; gap: 8px; align-items: center; }
.om-wod li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); }
.om-pbtn { margin-top: 10px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--lime); color: var(--ink); font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 15px; letter-spacing: .02em; }
.om-pbtn:first-of-type { margin-top: auto; }
.om-pbtn-g { background: transparent; border: 1px solid var(--line); color: var(--t1); }
.om-big { margin-top: 10px; font-size: 13px; color: var(--t2); }
.om-big b { display: block; font-family: var(--disp); font-weight: 800; font-size: 56px; line-height: .9; color: var(--lime); }
.om-offer { margin-top: 9px; display: flex; gap: 10px; align-items: center; padding: 10px 11px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); font-size: 11.5px; color: var(--t2); line-height: 1.3; }
.om-offer svg { width: 20px; height: 20px; color: var(--lime); flex: none; }
.om-offer b { color: var(--t1); font-weight: 600; font-size: 12.5px; }
.om-offer em { margin-left: auto; font-style: normal; color: var(--t3); font-size: 11px; }
.om-ps-foot { margin-top: auto; font-size: 11px; color: var(--t3); text-align: center; }

/* ── 4. Prove to earn ─────────────────────────────────────── */
.om-punch { background: var(--lime); color: var(--ink); padding: 88px 0; }
.om-punch-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 3rem; align-items: end; }
.om-punch-t { font-family: var(--disp); font-weight: 800; text-transform: uppercase; line-height: .88; font-size: clamp(2.8rem, 6.2vw, 6rem); letter-spacing: -.01em; }
.om-punch-side p { font-size: 1.15rem; line-height: 1.5; font-weight: 500; color: #1E222A; }
.om-punch-side .om-punch-list { margin-top: 1.1rem; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.5rem; letter-spacing: .01em; color: var(--ink); }

/* ── 5. L'app ─────────────────────────────────────────────── */
.om-app { display: grid; grid-template-columns: 1fr auto 1fr; gap: 3rem; align-items: center; }
.om-app .om-lead { margin-top: 1.2rem; }
.om-app-phone .om-phone { height: min(520px, calc(var(--scene) - 130px)); width: auto; }
.om-gear-list { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.om-gear-list li { display: flex; justify-content: space-between; padding: 9px 12px; border-radius: 12px; background: var(--surface); font-size: 13px; font-weight: 500; animation: om-in .45s both; }
.om-gear-list li span { color: var(--t3); font-size: 12px; }
.om-gear-list li:nth-child(2) { animation-delay: .05s } .om-gear-list li:nth-child(3) { animation-delay: .1s } .om-gear-list li:nth-child(4) { animation-delay: .15s }
@keyframes om-in { from { opacity: 0; transform: translateY(8px) } to { opacity: 1; transform: none } }
.om-coach { margin-top: 12px; display: flex; gap: 9px; padding: 11px 12px; border-radius: 14px; background: rgba(197,255,65,.07); border: 1px solid rgba(197,255,65,.3); font-size: 11.5px; line-height: 1.4; color: var(--t2); }
.om-coach svg { width: 18px; height: 18px; color: var(--lime); flex: none; margin-top: 1px; }
.om-feats { display: flex; flex-direction: column; gap: 1.5rem; }
.om-feats li { display: flex; gap: 1rem; }
.om-feats li:nth-child(2) { transition-delay: .08s } .om-feats li:nth-child(3) { transition-delay: .16s } .om-feats li:nth-child(4) { transition-delay: .24s }
.om-ic { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); color: var(--lime); }
.om-ic svg { width: 22px; height: 22px; }
.om-feats b { font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.35rem; line-height: 1.05; }
.om-feats p { margin-top: .2rem; color: var(--t2); font-size: .98rem; line-height: 1.45; }

/* ── 6. Duel ──────────────────────────────────────────────── */
.om-duel { margin-top: 1.6rem; display: grid; grid-template-columns: .78fr 1.22fr; gap: 3rem; align-items: center; }
.om-duel-pts { margin-top: 1.2rem; display: flex; flex-direction: column; gap: .4rem; }
.om-duel-pts li { display: flex; gap: .9rem; align-items: flex-start; padding: .7rem .8rem; border-radius: 14px; border: 1px solid transparent; transition: all .25s; cursor: default; }
.om-duel-pts li > span { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line); font-family: var(--disp); font-weight: 800; color: var(--t3); transition: all .25s; }
.om-duel-pts b { font-weight: 600; font-size: 1.02rem; }
.om-duel-pts p { color: var(--t3); font-size: .92rem; margin-top: .1rem; }
.om-duel-pts li.is-on { background: var(--surface); border-color: var(--line); }
.om-duel-pts li.is-on > span { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.om-duel-cta { margin-top: 1.2rem; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.om-duel-cta span { color: var(--t3); font-size: .88rem; }
.om-duel-visual { position: relative; }
.om-duel-visual img { width: 100%; height: auto; filter: drop-shadow(0 40px 60px rgba(0,0,0,.7)); }
.om-hot { position: absolute; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; background: var(--ink); border: 2px solid var(--lime); color: var(--lime); font-family: var(--disp); font-weight: 800; font-size: 1.05rem; cursor: pointer; transition: all .25s; }
.om-hot::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid var(--lime); opacity: 0; animation: om-ping 2.2s ease-out infinite; }
.om-hot.is-on { background: var(--lime); color: var(--ink); transform: scale(1.12); }
@keyframes om-ping { 0% { opacity: .7; transform: scale(.7) } 100% { opacity: 0; transform: scale(1.5) } }

/* ── 7. Les six niveaux ───────────────────────────────────── */
.om-proof-head { margin-top: 1.2rem; display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: end; }
.om-proof-ctl .om-ask { margin-top: 0; }
.om-proof-foot { margin-top: 1rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1.5rem; }
.om-proof-foot .om-foot-note { margin-top: 0; }
.om-stairs { position: relative; margin-top: 1.5rem; height: 272px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; align-items: end; }
.om-stair { height: calc(55% + var(--i) * 9%); position: relative; }
.om-stair[data-lv="0"] { --i: 0 } .om-stair[data-lv="1"] { --i: 1 } .om-stair[data-lv="2"] { --i: 2 } .om-stair[data-lv="3"] { --i: 3 } .om-stair[data-lv="4"] { --i: 4 } .om-stair[data-lv="5"] { --i: 5 }
.om-stair-in { height: 100%; display: flex; flex-direction: column; padding: 12px 14px 11px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); transition: all .4s; opacity: .45; }
.om-stair-in svg { width: 22px; height: 22px; color: var(--t3); transition: color .4s; }
.om-stair-in b { margin-top: auto; font-family: var(--disp); font-weight: 800; font-size: 2.1rem; line-height: .9; color: var(--t3); transition: color .4s; }
.om-stair-in strong { font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.2rem; margin-top: .25rem; }
.om-stair-in p { color: var(--t2); font-size: .83rem; line-height: 1.3; margin-top: .2rem; }
.om-stair-in em { font-style: normal; font-size: .8rem; font-weight: 600; color: var(--t3); margin-top: .35rem; }
.om-stair-in em.om-live { color: var(--lime); }
.om-stair.is-ok .om-stair-in { opacity: 1; border-color: rgba(197,255,65,.5); box-shadow: 0 18px 40px -22px rgba(197,255,65,.5); }
.om-stair.is-ok .om-stair-in svg, .om-stair.is-ok .om-stair-in b { color: var(--lime); }
.om-bar-line { position: absolute; left: -8px; right: -8px; height: 0; border-top: 2px dashed var(--lime); bottom: calc(55% + var(--bar, 3) * 9%); transition: bottom .55s cubic-bezier(.3,.8,.25,1); pointer-events: none; }
.om-bar-line span { position: absolute; left: 8px; bottom: 7px; padding: .2rem .6rem; border-radius: 8px; background: var(--lime); color: var(--ink); font-weight: 600; font-size: .85rem; white-space: nowrap; }

/* ── 8. Données ───────────────────────────────────────────── */
.om-data-grid { margin-top: 1.6rem; display: grid; grid-template-columns: 1fr .8fr 1fr; gap: 1.5rem; align-items: center; }
.om-data-col { padding: 1.2rem 1.4rem; border-radius: 22px; background: var(--ink); border: 1px solid var(--line); }
.om-data-t { display: flex; align-items: center; gap: .6rem; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.5rem; }
.om-data-t svg { width: 24px; height: 24px; color: var(--lime); }
.om-data-col ul { margin-top: .7rem; display: flex; flex-direction: column; }
.om-data-col li { display: flex; align-items: center; gap: .7rem; padding: .5rem 0; border-top: 1px solid var(--line); color: var(--t1); font-size: 1rem; }
.om-data-col li svg { width: 18px; height: 18px; color: var(--t3); flex: none; }
.om-data-s { margin-top: .7rem; display: flex; align-items: center; gap: .5rem; color: var(--t2); font-size: .9rem; }
.om-data-s svg { width: 17px; height: 17px; color: var(--lime); flex: none; }
.om-data-flow { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1rem; }
.om-data-flow p { color: var(--t2); font-size: .95rem; line-height: 1.4; }
.om-flow-line { position: relative; width: 100%; height: 2px; background: linear-gradient(90deg, var(--line), rgba(197,255,65,.6), var(--line)); }
.om-flow-line i { position: absolute; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px var(--lime); animation: om-flow 3s linear infinite; }
.om-flow-line i:nth-child(2) { animation-delay: 1s } .om-flow-line i:nth-child(3) { animation-delay: 2s }
@keyframes om-flow { 0% { left: 0; opacity: 0 } 15% { opacity: 1 } 85% { opacity: 1 } 100% { left: calc(100% - 8px); opacity: 0 } }
.om-flow-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; border-radius: 12px; background: var(--surface); border: 1px solid rgba(197,255,65,.5); font-variant-numeric: tabular-nums; font-weight: 600; }
.om-flow-chip svg { width: 22px; height: 22px; color: var(--lime); }
.om-verify { margin-top: 1.2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem 2rem; padding: .9rem 1.4rem; border-radius: 18px; border: 1px solid var(--line); color: var(--t2); }
.om-verify b { color: var(--t1); }
.om-verify-links { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.om-verify-links a { display: inline-flex; align-items: center; gap: .4rem; color: var(--lime); font-weight: 600; }
.om-verify-links svg { width: 16px; height: 16px; transition: transform .2s; }
.om-verify-links a:hover svg { transform: translateX(3px); }

/* ── 9. Qui te paie ───────────────────────────────────────── */
.om-pay-head { display: grid; grid-template-columns: 1.15fr .85fr; gap: 3rem; align-items: end; }
.om-pay-cards { margin-top: 1.6rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.om-pcard { display: grid; grid-template-rows: subgrid; grid-row: span 5; gap: 0; border-radius: 22px; background: var(--surface); border: 1px solid var(--line); overflow: hidden; transition: transform .3s, box-shadow .3s, border-color .3s, opacity .6s; }
.om-pcard:hover { transform: translateY(-4px); border-color: #3a404c; box-shadow: 0 28px 50px -26px rgba(197,255,65,.45); }
.om-pay-cards .om-pcard:nth-child(2) { transition-delay: .08s } .om-pay-cards .om-pcard:nth-child(3) { transition-delay: .16s }
.om-pcard:hover { transition-delay: 0s !important; }
.om-pcard-vig { height: 78px; display: grid; place-items: center; background: var(--raised); border-bottom: 1px solid var(--line); background-image: radial-gradient(#2f3540 1px, transparent 1px); background-size: 16px 16px; }
.om-pcard-ic { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: var(--ink); border: 1px solid var(--line); color: var(--lime); }
.om-pcard-ic svg { width: 26px; height: 26px; }
.om-pcard h3 { padding: 1rem 1.4rem 0; text-align: center; font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.7rem; line-height: 1; }
.om-pcard > p { padding: .6rem 1.4rem 0; text-align: center; color: var(--t2); font-size: .97rem; line-height: 1.5; }
.om-pcard-fig { margin: .9rem 1.4rem 0; padding: .75rem 1rem; border-radius: 14px; background: var(--ink); text-align: center; display: flex; flex-direction: column; gap: .2rem; justify-content: center; }
.om-pcard-fig b { font-family: var(--disp); font-weight: 800; font-size: 1.9rem; line-height: 1; color: var(--lime); }
.om-pcard-fig span { color: var(--t2); font-size: .86rem; line-height: 1.35; }
.om-pcard footer { margin-top: .9rem; padding: .7rem 1.4rem; border-top: 1px solid var(--line); text-align: center; color: var(--t3); font-size: .86rem; }
.om-pay-foot { margin-top: 1.2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.om-pay-foot p { color: var(--t3); font-size: .92rem; }

/* ── 10. Prix ─────────────────────────────────────────────── */
.om-price { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; align-items: center; }
.om-price .om-lead:first-of-type { margin-top: 1.2rem; }
.om-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.om-plan { display: grid; grid-template-rows: subgrid; grid-row: span 7; gap: 0; padding: 1.5rem 1.4rem; border-radius: 22px; background: var(--ink); border: 1px solid var(--line); }
.om-plan-iron { border: 2px solid var(--lime); background: #12160c; box-shadow: 0 30px 60px -30px rgba(197,255,65,.45); }
.om-plan header { padding-bottom: 1rem; }
.om-plan h3 { font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.7rem; line-height: 1; }
.om-plan-iron h3 { color: var(--lime); }
.om-plan-p { margin-top: .35rem; font-family: var(--disp); font-weight: 700; font-size: 2.8rem; line-height: 1; }
.om-plan-p small { font-size: 1.1rem; color: var(--t2); font-weight: 600; margin-left: .2rem; }
.om-plan-s { color: var(--t3); font-size: .85rem; margin-top: .2rem; }
.om-plan-r { display: flex; flex-direction: column; gap: .1rem; padding: .62rem 0; border-top: 1px solid var(--line); }
.om-plan-r span { color: var(--t3); font-size: .82rem; }
.om-plan-r b { font-weight: 600; font-size: .98rem; }
.om-dim { color: var(--t3); }
.om-plan .om-btn { margin-top: 1.1rem; width: 100%; font-size: 1.02rem; padding: 0 1rem; }

/* ── 11. Feuille de route ─────────────────────────────────── */
.om-road-head { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; }
.om-road-line { position: relative; margin-top: 3.6rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.om-road-line::before { content: ""; position: absolute; top: 15px; left: 0; right: 0; height: 2px; background: var(--line); }
.om-road-line::after { content: ""; position: absolute; top: 15px; left: 0; width: 34%; height: 2px; background: var(--lime); }
.om-road-line > li { position: relative; padding-top: 3.2rem; }
.om-road-dot { position: absolute; top: 0; left: 0; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); border: 2px solid var(--line); }
.om-road-dot svg { width: 16px; height: 16px; stroke-width: 2.4 !important; }
.is-done .om-road-dot { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.is-now .om-road-dot { border-color: var(--lime); box-shadow: 0 0 0 6px rgba(197,255,65,.15); }
.is-now .om-road-dot::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--lime); animation: om-beat 1.4s ease-in-out infinite; }
.om-here { position: absolute; top: -30px; left: 0; padding: .1rem .55rem; border-radius: 8px; background: var(--lime); color: var(--ink); font-weight: 600; font-size: .82rem; }
.om-road-line h3 { font-family: var(--disp); font-weight: 800; text-transform: uppercase; font-size: 1.55rem; line-height: 1; }
.om-road-line ul { margin-top: .8rem; display: flex; flex-direction: column; }
.om-road-line ul li { padding: .5rem 0; border-top: 1px solid var(--line); color: var(--t2); font-size: .97rem; }
.is-done ul li, .is-now ul li { color: var(--t1); }

/* ── 12. Questions ────────────────────────────────────────── */
.om-faq { display: grid; grid-template-columns: .85fr 1.15fr; gap: 3.5rem; align-items: start; }
.om-team { margin-top: 2rem; }
.om-team-t { font-weight: 600; color: var(--t1); }
.om-team-row { margin-top: 1rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.om-team-row figure { text-align: center; }
.om-team-row img { width: 100%; max-width: 120px; margin: 0 auto; border-radius: 50%; }
.om-team-row figcaption { margin-top: .6rem; display: flex; flex-direction: column; }
.om-team-row b { font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.1rem; line-height: 1.1; }
.om-team-row span { color: var(--t3); font-size: .82rem; }
.om-team-s { margin-top: 1rem; color: var(--t3); font-size: .9rem; }
.om-acc { display: flex; flex-direction: column; }
.om-acc details { border-top: 1px solid var(--line); }
.om-acc details:last-child { border-bottom: 1px solid var(--line); }
.om-acc summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.05rem 0; cursor: pointer; font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.35rem; line-height: 1.1; transition: color .2s; }
.om-acc summary::-webkit-details-marker { display: none; }
.om-acc summary:hover { color: var(--lime); }
.om-acc summary svg { width: 22px; height: 22px; flex: none; color: var(--lime); transition: transform .3s; }
.om-acc details[open] summary svg { transform: rotate(45deg); }
.om-acc details p { padding: 0 2.5rem 1.15rem 0; color: var(--t2); font-size: 1.02rem; line-height: 1.55; }

/* ── 13. Appel final ──────────────────────────────────────── */
.om-final { background: var(--lime); color: var(--ink); padding: 96px 0; }
.om-final-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
.om-final-t { font-family: var(--disp); font-weight: 800; text-transform: uppercase; line-height: .9; font-size: clamp(2.6rem, 5vw, 4.8rem); }
.om-final-l { margin-top: 1.1rem; font-size: 1.15rem; line-height: 1.5; font-weight: 500; color: #1E222A; max-width: 30em; }
.om-form-dark { margin-top: 0; }
.om-form-dark .om-input { background: var(--ink); border-color: var(--ink); }
.om-form-dark .om-btn { background: var(--ink); color: var(--lime); }
.om-form-dark .om-btn:hover { background: var(--surface); box-shadow: none; }
.om-form-dark .om-platforms legend { color: #3d4a1a; }
.om-form-dark .om-platforms span { border-color: rgba(11,13,16,.25); color: #1E222A; }
.om-form-dark .om-platforms input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--lime); }
.om-form-dark .om-status { color: #1E222A; font-weight: 600; }
.om-form-dark .om-status.is-ok { color: var(--ink); }
.om-form-dark .om-status.is-bad { color: #9a3412; }

/* ── Pied de page ─────────────────────────────────────────── */
.om-footer { padding: 64px 0 28px; border-top: 1px solid rgba(42,47,57,.6); }
.om-foot-grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 2rem; }
.om-foot-brand p { margin: 1rem 0 1.2rem; color: var(--t2); font-size: .95rem; line-height: 1.5; max-width: 22em; }
.om-foot-grid h4 { font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.1rem; margin-bottom: .7rem; }
.om-foot-grid > div:not(.om-foot-brand) a { display: block; padding: .3rem 0; color: var(--t2); font-size: .93rem; transition: color .2s; }
.om-foot-grid > div:not(.om-foot-brand) a:hover { color: var(--lime); }
.om-foot-legal { margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; color: var(--t3); font-size: .82rem; }
.om-foot-legal a:hover { color: var(--t2); }

/* ── Barre mobile ─────────────────────────────────────────── */
.om-mbar { display: none; }

/* ── Écrans moyens ────────────────────────────────────────── */
@media (max-width: 1100px) {
  .om-app { grid-template-columns: 1fr auto; }
  .om-feats { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  .om-foot-grid { grid-template-columns: repeat(4, 1fr); }
  .om-foot-brand { grid-column: 1 / -1; }
}

/* ── Tablette et mobile ───────────────────────────────────── */
@media (max-width: 900px) {
  :root { --scene: auto; }
  .om-scene { min-height: 0; padding: 72px 0 84px; }
  .om-hero-grid { grid-template-columns: 1fr; gap: 2rem; padding-top: 28px; }
  .om-hero-visual { order: 2; }
  .om-hero .om-phone { height: 520px; }
  .om-assure-grid { grid-template-columns: 1fr; }
  .om-assure-grid > div { padding: 14px 0; }
  .om-assure-grid > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .om-why, .om-duel, .om-price, .om-faq, .om-final-grid, .om-proof-head, .om-pay-head, .om-road-head { grid-template-columns: 1fr; gap: 2rem; }
  .om-flip-zone { order: 2; }
  .om-how-track { height: 260vh; }
  .om-how-grid { grid-template-columns: 1fr; gap: 1rem; align-content: center; }
  .om-how-copy .om-h2 { font-size: 2.2rem; }
  .om-steps { margin-top: 1rem; }
  .om-step button { padding: .7rem 0; }
  .om-step-t { font-size: 1.45rem; }
  .om-step p { font-size: .95rem; padding-left: 56px; }
  .om-how-stage { height: clamp(250px, calc(100svh - var(--hdr) - 420px), 360px); }
  .om-how-bar { display: none; }
  .om-how-copy .om-h2 { margin-top: 0; }
  .om-app { grid-template-columns: 1fr; justify-items: start; }
  .om-app-phone { justify-self: center; }
  .om-app-phone .om-phone { height: 500px; }
  .om-feats { grid-template-columns: 1fr; }
  .om-punch { padding: 72px 0; }
  .om-punch-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .om-stairs { height: auto; grid-template-columns: 1fr 1fr; align-items: stretch; }
  .om-stair { height: auto; }
  .om-bar-line { display: none; }
  .om-data-grid { grid-template-columns: 1fr; }
  .om-data-flow { padding: .5rem 0; }
  .om-flow-line { width: 2px; height: 70px; background: linear-gradient(180deg, var(--line), rgba(197,255,65,.6), var(--line)); }
  .om-flow-line i { left: -3px !important; animation-name: om-flow-v; }
  @keyframes om-flow-v { 0% { top: 0; opacity: 0 } 15% { opacity: 1 } 85% { opacity: 1 } 100% { top: calc(100% - 8px); opacity: 0 } }
  .om-pay-cards { grid-template-columns: 1fr; }
  .om-pcard { grid-row: auto; display: flex; flex-direction: column; }
  .om-plans { grid-template-columns: 1fr; }
  .om-plan { grid-row: auto; display: flex; flex-direction: column; }
  .om-road-line { grid-template-columns: 1fr; gap: 0; padding-left: 0; }
  .om-road-line::before { top: 0; bottom: 0; left: 15px; right: auto; width: 2px; height: auto; }
  .om-road-line::after { top: 0; left: 15px; width: 2px; height: 40%; }
  .om-road-line > li { padding: 0 0 1.8rem 52px; }
  .om-here { position: static; display: inline-block; margin-bottom: .5rem; }
  .om-proof-head { grid-template-columns: 1fr; gap: 1rem; }
  .om-bridge { white-space: normal; text-align: center; width: calc(100% - 40px); justify-content: center; bottom: 24px; }
  .om-foot-grid { grid-template-columns: 1fr 1fr; }
  .om-final { padding: 72px 0 110px; }
  .om-mbar { position: fixed; z-index: 40; left: 12px; right: 12px; bottom: 12px; height: 52px; display: flex; align-items: center; justify-content: center; gap: .5rem; border-radius: 14px; background: var(--lime); color: var(--ink); font-family: var(--disp); font-weight: 700; text-transform: uppercase; font-size: 1.1rem; box-shadow: 0 16px 40px -10px rgba(0,0,0,.8); transform: translateY(140%); transition: transform .35s cubic-bezier(.2,.8,.2,1); }
  .om-mbar svg { width: 18px; height: 18px; }
  .om-mbar.is-on { transform: none; }
}
@media (max-width: 560px) {
  .om-h1 { font-size: 3.2rem; }
  .om-h2 { font-size: 2.35rem; }
  .om-form-row { flex-direction: column; }
  .om-form-row .om-input { flex: none; width: 100%; }
  .om-figs { grid-template-columns: 1fr; }
  .om-fig { grid-row: auto; display: flex; flex-direction: column; }
  .om-stairs { grid-template-columns: 1fr 1fr; gap: 8px; }
  .om-stair-in { padding: 10px 11px; }
  .om-stair-in b { font-size: 1.7rem; margin-top: .4rem; }
  .om-stair-in strong { font-size: 1.05rem; }
  .om-stair-in p { font-size: .8rem; }
  .om-hero-cap { gap: .7rem; font-size: .78rem; }
  .om-plan-p { font-size: 2.4rem; }
  .om-acc summary { font-size: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .om-rv { opacity: 1; transform: none; }
}

/* Appels ajoutés dans les scènes */
.om-how-cta { margin-top: 1.6rem; }
.om-app-cta { margin-top: 1.4rem; }
.om-road-cta { margin-top: 2.4rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; }
.om-faq-mail { margin-top: 1.4rem; }
@media (max-width: 900px) { .om-how-cta { display: none; } }

/* En-tête un peu plus opaque : le logo garde son fond noir au-dessus des scènes citron */
header.sticky { background-color: rgba(11,13,16,.94); }

/* ── Captures réelles de l'app (ajout du 21/10/2026) ───────────────────
   Les écrans du site sont de vraies captures de l'app, pas des écrans
   redessinés. Elles remplissent l'écran du cadre de téléphone. */
.om-screen .om-cap { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: opacity .7s ease; }
.om-phone[data-phase] .om-cap { opacity: 0; }
.om-phone[data-phase="1"] .om-cap[data-p="1"], .om-phone[data-phase="2"] .om-cap[data-p="2"], .om-phone[data-phase="3"] .om-cap[data-p="3"] { opacity: 1; }
.om-hero-cap span { cursor: pointer; }
/* La carte de preuve de l'étape 3 : une illustration, hors du téléphone. */
.om-how-card { align-self: center; width: min(320px, 92%); }
/* La liste des fonctions de l'app pilote l'écran du téléphone. */
.om-feats li[data-shot] { cursor: pointer; border-radius: 16px; padding: .6rem; margin: -.6rem; transition: background .25s; }
.om-feats li[data-shot]:hover, .om-feats li[data-shot].is-on { background: var(--surface); }
.om-feats li[data-shot].is-on .om-ic { color: var(--ink); background: var(--lime); border-color: var(--lime); }
.om-swap { position: relative; }
.om-swap .om-cap { opacity: 0; }
.om-swap .om-cap.is-on { opacity: 1; }

/* Une seule langue à la fois, quoi qu'en disent les règles d'affichage des
   composants (.om-pc-sig span, .om-platforms span…) qui l'emporteraient
   sinon sur le masquage de site.css. */
html:not([lang="en"]) [data-lang="en"], html:not([lang="fr"]) [data-lang="fr"], html:not([lang="zh"]) [data-lang="zh"] { display: none !important; }
.om-platforms label span { display: inline-flex; }
.om-platforms legend span { display: inline; height: auto; padding: 0; border: 0; }
/* Les deux faces de la carte partagent une case : elle ne doit jamais
   s'élargir au-delà de sa colonne. */
.om-flip-in { grid-template-columns: minmax(0, 1fr); }
.om-flip-face { min-width: 0; }
/* Un texte bilingue hérite TOUJOURS de son parent : les règles de
   composant (.om-pcard-fig span, .om-pc-sig span…) visent leurs propres
   éléments, pas les deux versions d'un texte qu'on y a glissées. */
html [data-lang] { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; border: 0; padding: 0; margin: 0; background: none; height: auto; min-height: 0; width: auto; border-radius: 0; box-shadow: none; }

/* La vidéo d'aperçu et la boucle du duel (21/10/2026) */
.om-screen video.om-cap { opacity: 1; }
.om-hero-cap { justify-content: center; }
.om-duel-video { display: block; width: 100%; height: auto; border-radius: 22px; border: 1px solid var(--line); box-shadow: 0 40px 80px -30px rgba(0,0,0,.85); background: #000; }

/* Une facture comme on en reçoit : en-tête, lignes, TVA, total. */
.om-bill { font-size: .88rem; padding: 1.3rem 1.3rem 1.1rem; transform: rotate(-1deg); }
.om-bill-top { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 2px solid #1E222A; }
.om-bill-co { font-weight: 700; font-size: .98rem; }
.om-bill-ad { color: #5b6270; font-size: .78rem; margin-top: .1rem; }
.om-bill-no { text-align: right; color: #5b6270; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.om-bill-no b { display: block; color: #1E222A; font-size: .95rem; letter-spacing: 0; }
.om-bill-to { margin-top: .7rem; color: #5b6270; font-size: .8rem; }
.om-bill-t { width: 100%; margin-top: .6rem; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.om-bill-t th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: #5b6270; font-weight: 600; padding: .35rem 0; border-bottom: 1px solid rgba(30,34,42,.18); }
.om-bill-t th:last-child, .om-bill-t td:last-child { text-align: right; }
.om-bill-t td { padding: .45rem 0; border-bottom: 1px solid rgba(30,34,42,.1); vertical-align: top; }
.om-bill-t td small { display: block; color: #5b6270; font-size: .72rem; }
.om-bill-t tfoot td { font-weight: 700; border-bottom: 0; padding-top: .55rem; font-size: .95rem; }
.om-bill-paid { margin-top: .5rem; display: inline-block; padding: .15rem .55rem; border-radius: 6px; background: rgba(22,163,74,.12); color: #15803d; font-weight: 600; font-size: .75rem; }
.om-bill-q { margin-top: .8rem; padding-top: .7rem; border-top: 1px dashed rgba(30,34,42,.3); color: #C2410C; font-weight: 600; font-size: .85rem; }

/* ── L'arène du duel, en paysage (même disposition que l'app) ─────────── */
.om-land { position: relative; width: 100%; aspect-ratio: 19.5 / 9; border-radius: 40px; padding: 9px; background: linear-gradient(145deg, #3a3d42, #16181b 40%, #222428 70%, #3a3d42); box-shadow: 0 40px 90px -25px rgba(0,0,0,.85), inset 0 0 0 1px rgba(255,255,255,.08); }
.om-land-screen { height: 100%; border-radius: 32px; overflow: hidden; display: grid; grid-template-columns: 29fr 20fr; background: #0B0D10; font-family: Manrope, var(--sans); color: #F5F7FA; }
.om-ar-video { position: relative; overflow: hidden; }
.om-ar-video > img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; }
.om-ar-band { position: absolute; top: 4%; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: .55em; padding: .32em .8em; border-radius: 12px; background: rgba(11,13,16,.78); backdrop-filter: blur(6px); font-size: clamp(8px, 1.05vw, 13px); white-space: nowrap; }
.om-ar-mode { color: #C5FF41; font-family: Archivo, var(--disp); font-weight: 800; letter-spacing: .04em; font-size: .85em; }
.om-ar-clock { font-family: Archivo, var(--disp); font-weight: 900; font-size: 1.9em; line-height: 1; font-variant-numeric: tabular-nums; }
.om-ar-lead { color: #9BA3B0; font-weight: 700; font-size: .85em; }
.om-ar-gauge { position: absolute; top: 19%; left: 22%; right: 22%; height: 4px; border-radius: 4px; background: #5EEAD4; overflow: hidden; }
.om-ar-gauge i { display: block; height: 100%; background: #C5FF41; }
.om-ar-pip { position: absolute; right: 3.5%; bottom: 20%; width: 13%; aspect-ratio: 3/4; object-fit: cover; border-radius: 10px; border: 2px solid rgba(255,255,255,.25); }
.om-ar-name { position: absolute; left: 3.5%; bottom: 21%; padding: .3em .7em; border-radius: 999px; background: rgba(11,13,16,.75); font-size: clamp(8px, .95vw, 12px); color: #9BA3B0; font-weight: 600; }
.om-ar-name b { color: #F5F7FA; margin-right: .35em; font-weight: 800; }
.om-ar-ctl { position: absolute; left: 50%; bottom: 5%; transform: translateX(-50%); display: flex; gap: .6em; }
.om-ar-ctl span { width: clamp(18px, 2.4vw, 30px); aspect-ratio: 1; border-radius: 50%; background: rgba(30,34,42,.85); border: 1px solid rgba(255,255,255,.12); }
.om-ar-ctl .om-ar-end { background: #EF4444; border-color: #EF4444; }
.om-ar-side { display: flex; flex-direction: column; padding: 5% 5% 4%; background: #15181E; border-left: 1px solid #2A2F39; font-size: clamp(8px, 1vw, 12.5px); }
.om-ar-k { color: #C5FF41; font-family: Archivo, var(--disp); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: .9em; }
.om-ar-list { margin-top: .6em; display: flex; flex-direction: column; gap: .35em; }
.om-ar-list li { display: flex; align-items: center; gap: .6em; padding: .45em .55em; border-radius: 10px; background: #1E222A; font-weight: 600; }
.om-ar-list li b { font-family: Archivo, var(--disp); font-weight: 800; margin-right: .25em; }
.om-ar-list li i { flex: none; width: 1.25em; height: 1.25em; border-radius: 50%; border: 1.5px solid #6A7280; }
.om-ar-list li.done { color: #6A7280; }
.om-ar-list li.done i { background: #C5FF41; border-color: #C5FF41; }
.om-ar-list li.now { outline: 1.5px solid rgba(197,255,65,.6); }
.om-ar-split { margin-top: auto; display: grid; gap: .25em; font-weight: 700; }
.om-ar-split > div:not(.bar) { display: flex; justify-content: space-between; color: #9BA3B0; font-size: .9em; }
.om-ar-split .bar { height: 5px; border-radius: 5px; background: #2A2F39; overflow: hidden; margin-bottom: .2em; }
.om-ar-split .bar i { display: block; height: 100%; border-radius: 5px; }
.om-ar-split .me { background: #C5FF41; } .om-ar-split .them { background: #5EEAD4; }
/* La règle de la maquette « .om-duel-visual img { width: 100% } » visait
   l'ancienne image du duel : elle ne doit pas étirer les photos de l'arène. */
.om-duel-visual .om-ar-video > img:first-child { width: 100%; height: 100%; filter: none; }
.om-duel-visual .om-ar-pip { width: 13%; height: auto; filter: none; }
.om-duel-visual .om-ar-pip { width: 17%; border: 2px solid rgba(245,247,250,.55); box-shadow: 0 8px 20px -6px rgba(0,0,0,.7); }
@media (max-width: 560px) {
  .om-land { border-radius: 26px; padding: 6px; }
  .om-land-screen { border-radius: 21px; }
  .om-ar-side { font-size: 7.5px; padding: 6% 5% 5%; }
  .om-ar-list li { padding: .35em .45em; }
  .om-ar-list li:nth-child(n+5) { display: none; }
}

/* Mobile : la carte de l'étape 3 n'est pas une capture, elle ne doit pas
   prendre la largeur étroite du cadre de téléphone (elle débordait sur le
   texte, signalé sur iPhone le 22 oct.). Elle sort du cadre en largeur et
   se resserre en hauteur. */
@media (max-width: 900px) {
  .om-how-shot .om-how-card { flex: none; width: min(340px, calc(100vw - 40px)); padding: .9rem 1rem .8rem; }
  .om-how-card .om-pc-when { margin-top: .6rem; font-size: 1.3rem; }
  .om-how-card dl { margin-top: .6rem; }
  .om-how-card dl > div { padding: .4rem 0; font-size: .9rem; }
  .om-how-card .om-inv-note { display: none; }
}
