// Proposition A — "Cabinet" (avec FlipCards)
// Pur N&B · grille stricte · cartes services et méthode flippables au survol

// ─── REGISTRE D'IMAGES ────────────────────────────────────────────
// Photos N&B compressées (sips q82, max 1800px). Sources PNG ~15 MB → JPG ~2.6 MB.
const IMAGES = {
  heroPortrait:   'assets/photos/heroPortrait.jpg',   // 3:4 — fondateur en costume, bureau privé
  atelierBanner:  'assets/photos/atelierBanner.jpg',  // 16:5 — atelier, table de travail, lumière haute
  service01:      'assets/photos/service01.jpg',      // 3:4 — plan d'architecte + compas + règle (Audit)
  service02:      'assets/photos/service02.jpg',      // 3:4 — COO à la demande
  service03:      'assets/photos/service03.jpg',      // 3:4 — Systems Sprint
  method01:       'assets/photos/method01.jpg',       // 4:5 — Mesurer
  method02:       'assets/photos/method02.jpg',       // 4:5 — Tailler (sculpteur)
  method03:       'assets/photos/method03.jpg',       // 4:5 — Transmettre (passation de clé)
};

const A = () => {
  const ink = (typeof window !== 'undefined' && window.__boInk) || '#000000';
  const paper = (typeof window !== 'undefined' && window.__boPaper) || '#ffffff';
  const borderI = (typeof window !== 'undefined' && window.__boBorder) || 0.16;
  const muted = `rgba(255,255,255,${Math.max(0.3, borderI * 3)})`;
  const muted2 = `rgba(255,255,255,${Math.max(0.55, borderI * 4.5)})`;
  const line = `rgba(255,255,255,${borderI})`;
  const isItalic = typeof window !== 'undefined' ? window.__boItalic !== false : true;
  const isUpper = typeof window !== 'undefined' ? window.__boUppercase !== false : true;
  const showHint = typeof window !== 'undefined' ? window.__boFlipHint !== false : true;

  const wrap = {
    width: 1440, background: ink, color: paper,
    fontFamily: 'var(--bo-body, "Inter", -apple-system, sans-serif)',
    fontSize: 'calc(var(--bo-base, 14px))', lineHeight: 1.5,
  };
  const display = {
    fontFamily: 'var(--bo-display, "Cormorant Garamond", "Times New Roman", serif)',
    fontWeight: 400,
    fontStyle: isItalic ? 'italic' : 'normal',
    letterSpacing: 'var(--bo-letter-spacing, 0)',
  };
  const mono = {
    fontFamily: 'var(--bo-mono, "JetBrains Mono", monospace)',
    fontSize: 10,
    letterSpacing: 'var(--bo-mono-tracking, 0.18em)',
    textTransform: isUpper ? 'uppercase' : 'none',
  };
  const accent = 'var(--bo-accent, #ffffff)';
  const menuVariant = (typeof window !== 'undefined' && window.__boMenu) || 'pill';

  const Photo = ({ label, hint, src, alt, h = '100%', ratio, withHint = true }) => (
    <div style={{
      width: '100%', height: h, background: '#0a0a0a',
      position: 'relative', overflow: 'hidden',
      border: `1px solid ${line}`,
    }}>
      {src ? (
        <img
          src={src}
          alt={alt || hint || label}
          style={{
            position: 'absolute', inset: 0,
            width: '100%', height: '100%',
            objectFit: 'cover', display: 'block',
          }}
          loading="lazy"
        />
      ) : (
        <React.Fragment>
          <svg width="100%" height="100%" preserveAspectRatio="xMidYMid slice" style={{ position: 'absolute', inset: 0 }}>
            <defs>
              <pattern id={`pa-${label}`} width="3" height="3" patternUnits="userSpaceOnUse">
                <line x1="0" y1="0" x2="0" y2="3" stroke="#fff" strokeWidth="0.4" opacity="0.05" />
              </pattern>
              <linearGradient id={`ga-${label}`} x1="0" y1="0" x2="1" y2="1">
                <stop offset="0%" stopColor="#222" stopOpacity="0.6" />
                <stop offset="100%" stopColor="#000" stopOpacity="0.95" />
              </linearGradient>
            </defs>
            <rect width="100%" height="100%" fill={`url(#pa-${label})`} />
            <rect width="100%" height="100%" fill={`url(#ga-${label})`} />
          </svg>
          {withHint && (
            <div style={{
              position: 'absolute', inset: 0, padding: 20,
              display: 'flex', flexDirection: 'column', justifyContent: 'space-between',
              pointerEvents: 'none',
            }}>
              <div style={{ display: 'flex', justifyContent: 'space-between', ...mono, fontSize: 9, color: muted }}>
                <span>● {label}</span>
                {ratio && <span>{ratio}</span>}
              </div>
              <div>
                <div style={{ ...mono, fontSize: 9, color: muted, marginBottom: 8 }}>Suggestion</div>
                <div style={{ ...display, fontSize: 18, fontStyle: 'italic', fontWeight: 400, lineHeight: 1.3, color: paper, maxWidth: '90%' }}>
                  « {hint} »
                </div>
              </div>
            </div>
          )}
        </React.Fragment>
      )}
    </div>
  );

  const Grid = ({ children, style: s = {} }) => (
    <div style={{
      display: 'grid', gridTemplateColumns: 'repeat(12, 1fr)', gap: 16,
      padding: '0 48px', ...s,
    }}>
      {children}
    </div>
  );

  const services = [
    {
      ref: '01', title: 'Audit Opérations',
      hint: 'Plan d\'architecte vu de haut, calque, compas.',
      desc: 'Cartographie complète de vos process et de votre stack. Diagnostic chirurgical livré sous 14 jours, dossier complet et feuille de route à 90 jours.',
      dur: '14 jours',
      list: ['Entretiens fondateur · équipe', 'Cartographie systèmes', 'Diagnostic priorisé', 'Feuille de route'],
    },
    {
      ref: '02', title: 'COO à la demande',
      hint: 'Bureau privé en N&B — fauteuil, carnets, lumière du soir.',
      desc: 'Présence continue à temps partiel. Stratégie, exécution, processus, recrutement clé, gouvernance produit.',
      dur: '3 — 12 mois',
      list: ['Présence 1–3 j/sem.', 'Pilotage opérationnel', 'Recrutement clé', 'Comité mensuel'],
    },
    {
      ref: '03', title: 'Systems Sprint',
      hint: 'Établi d\'horloger — outils alignés, mécanisme ouvert.',
      desc: 'Intervention courte sur un système précis : automation, stack SaaS, finance, RH, data. Diagnostic, redesign, installation.',
      dur: '4 semaines',
      list: ['Périmètre unique', 'Conception sur mesure', 'Mise en place', 'Transfert documenté'],
    },
  ];

  const methode = [
    {
      k: 'I.', t: 'Mesurer',
      hint: 'Plan de bureau vu de haut — carnet, mètre, esquisses, lumière rasante.',
      fr: 'Trois semaines pour cartographier votre opération. Entretiens, analyses, observation silencieuse.',
    },
    {
      k: 'II.', t: 'Tailler',
      hint: 'Mains d\'artisan en train de travailler la matière — gros plan.',
      fr: 'Conception de systèmes spécifiques à votre échelle. Aucun template. Mise en œuvre par étapes.',
    },
    {
      k: 'III.', t: 'Transmettre',
      hint: 'Passation d\'objet entre deux mains — clé, document, instrument.',
      fr: 'Documentation, formation, transition. Notre objectif final : votre indépendance opérationnelle.',
    },
  ];

  // ─── SERVICE CARD : flippable ─────────────────────────────────────
  const ServiceCard = ({ s }) => {
    const front = (
      <div style={{
        width: '100%', height: '100%', background: '#0a0a0a', position: 'relative',
        display: 'flex', flexDirection: 'column', justifyContent: 'space-between',
        padding: 0, overflow: 'hidden',
      }}>
        <Photo label={`service · ${s.ref}`} hint={s.hint} src={IMAGES[`service${s.ref}`]} ratio="3:4" h="100%" />
        <div style={{
          position: 'absolute', left: 0, right: 0, bottom: 0,
          padding: 28, background: 'linear-gradient(180deg, transparent, rgba(0,0,0,0.92))',
        }}>
          <div style={{ ...mono, color: paper, marginBottom: 16 }}>
            {s.ref}
          </div>
          <div style={{ ...display, fontSize: 38, fontWeight: 400, fontStyle: 'italic', lineHeight: 1.05 }}>
            {s.title}
          </div>
          {showHint && <div style={{ ...mono, fontSize: 9, color: muted, marginTop: 16, display: 'flex', alignItems: 'center', gap: 8 }}>
            ↻ Survoler
          </div>}
        </div>
      </div>
    );
    const back = (
      <div style={{
        width: '100%', height: '100%', background: paper, color: ink,
        padding: 32, display: 'flex', flexDirection: 'column',
      }}>
        <div style={{
          ...mono, fontSize: 10, color: ink, letterSpacing: '0.18em',
        }}>
          {s.ref}
        </div>
        <div style={{
          ...display, fontSize: 28, fontWeight: 400, fontStyle: 'italic', marginTop: 24,
          letterSpacing: '-0.01em',
        }}>
          {s.title}
        </div>
        <p style={{ fontSize: 13, lineHeight: 1.6, color: ink, marginTop: 20, marginBottom: 0 }}>
          {s.desc}
        </p>
        <div style={{
          marginTop: 24, paddingTop: 20, borderTop: '1px solid rgba(0,0,0,0.12)',
          display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8,
        }}>
          {s.list.map((x) => (
            <div key={x} style={{
              ...mono, fontSize: 9, color: ink, letterSpacing: '0.14em',
              display: 'flex', alignItems: 'center', gap: 8,
            }}>
              <span style={{ width: 4, height: 4, background: ink, borderRadius: '50%' }} />
              {x}
            </div>
          ))}
        </div>
        <div style={{ flex: 1 }} />
        <div style={{
          marginTop: 24, paddingTop: 20, borderTop: '1px solid rgba(0,0,0,0.12)',
        }}>
          <div style={{ ...mono, fontSize: 9, color: 'rgba(0,0,0,0.5)', marginBottom: 4 }}>Durée</div>
          <div style={{ ...mono, fontSize: 11, color: ink }}>{s.dur}</div>
        </div>
      </div>
    );
    return <FlipCard width="100%" height={520} front={front} back={back} />;
  };

  // ─── MÉTHODE CARD : flippable photo / explication ────────────────
  const MethodCard = ({ m }) => {
    const front = (
      <div style={{ width: '100%', height: '100%', position: 'relative' }}>
        <Photo label={`atelier · ${m.k}`} hint={m.hint} src={IMAGES[{ 'I.': 'method01', 'II.': 'method02', 'III.': 'method03' }[m.k]]} ratio="4:5" h="100%" />
        <div style={{
          position: 'absolute', left: 0, right: 0, bottom: 0,
          padding: 24, background: 'linear-gradient(180deg, transparent, rgba(0,0,0,0.92))',
        }}>
          <div style={{ ...mono, color: muted, marginBottom: 8 }}>— {m.k}</div>
          <div style={{ ...display, fontSize: 40, fontWeight: 400, fontStyle: 'italic', letterSpacing: '-0.01em' }}>
            {m.t}
          </div>
        </div>
      </div>
    );
    const back = (
      <div style={{
        width: '100%', height: '100%', background: '#0a0a0a',
        padding: 32, display: 'flex', flexDirection: 'column',
        border: `1px solid ${line}`,
      }}>
        <div style={{ ...mono, color: muted }}>— {m.k}</div>
        <div style={{ ...display, fontSize: 48, fontWeight: 400, fontStyle: 'italic', marginTop: 12 }}>
          {m.t}
        </div>
        <p style={{ fontSize: 14, lineHeight: 1.7, color: paper, marginTop: 24 }}>{m.fr}</p>
        <div style={{ flex: 1 }} />
        {showHint && <div style={{ ...mono, fontSize: 9, color: muted, paddingTop: 24, borderTop: `1px solid ${line}` }}>
          ↻ Survoler pour la photo
        </div>}
      </div>
    );
    return <FlipCard width="100%" height={500} front={front} back={back} />;
  };

  const Logo = () => (
    <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
      <img src="assets/bo-mark.png" alt="Bespoke Operations" style={{ width: 40, height: 40, objectFit: 'contain' }} />
      <div style={{ ...mono, fontSize: 10 }}>BESPOKE OPERATIONS</div>
    </div>
  );
  const ResaBtn = () => (
    <button className="bo-resa" style={{ background: accent, color: ink, border: 'none', padding: '10px 18px', ...mono, cursor: 'pointer' }}>Réserver</button>
  );

  const NumberedNav = () => (
    <header style={{ borderBottom: `1px solid ${line}` }}>
      <Grid style={{ padding: '20px 48px' }}>
        <div style={{ gridColumn: 'span 3' }}><Logo /></div>
        <nav style={{ gridColumn: 'span 6', display: 'flex', justifyContent: 'center', gap: 40, ...mono, alignItems: 'center' }}>
          <a style={{ color: paper, textDecoration: 'none' }}>00 — Index</a>
          <a style={{ color: muted, textDecoration: 'none' }}>01 — Services</a>
          <a style={{ color: muted, textDecoration: 'none' }}>02 — Atelier</a>
          <a style={{ color: muted, textDecoration: 'none' }}>03 — Cabinet</a>
        </nav>
        <div style={{ gridColumn: 'span 3', display: 'flex', justifyContent: 'flex-end', alignItems: 'center', gap: 16 }}>
          <a href='/en/' style={{ ...mono, color: muted, textDecoration: 'none' }}>EN</a>
          <ResaBtn />
        </div>
      </Grid>
    </header>
  );
  const ClassicNav = () => (
    <header style={{ borderBottom: `1px solid ${line}` }}>
      <div style={{ padding: '24px 48px', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
        <Logo />
        <nav style={{ display: 'flex', gap: 36, ...mono, alignItems: 'center' }}>
          <a style={{ color: paper, textDecoration: 'none' }}>Sommaire</a>
          <a style={{ color: paper, textDecoration: 'none' }}>Services</a>
          <a style={{ color: paper, textDecoration: 'none' }}>Atelier</a>
          <a style={{ color: paper, textDecoration: 'none' }}>Cabinet</a>
        </nav>
        <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>
          <a href='/en/' style={{ ...mono, color: muted, textDecoration: 'none' }}>EN</a>
          <ResaBtn />
        </div>
      </div>
    </header>
  );
  const CenteredNav = () => (
    <header style={{ borderBottom: `1px solid ${line}`, textAlign: 'center', padding: '32px 48px 20px' }}>
      <div style={{ ...display, fontSize: 32, fontStyle: 'italic', letterSpacing: '0.01em' }}>Bespoke Operations</div>
      <nav style={{ display: 'flex', justifyContent: 'center', gap: 48, ...mono, marginTop: 18 }}>
        <a style={{ color: paper, textDecoration: 'none' }}>Services</a>
        <a style={{ color: paper, textDecoration: 'none' }}>Méthode</a>
        <a style={{ color: paper, textDecoration: 'none' }}>Cabinet</a>
        <a style={{ color: paper, textDecoration: 'none' }}>Carnet</a>
        <a style={{ color: paper, textDecoration: 'none' }}>Contact</a>
      </nav>
    </header>
  );
  const HamburgerNav = () => (
    <header style={{ borderBottom: `1px solid ${line}` }}>
      <div style={{ padding: '24px 48px', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
        <button style={{ background: 'transparent', border: 'none', color: paper, ...mono, cursor: 'pointer', display: 'flex', alignItems: 'center', gap: 10, padding: 0 }}>
          <span style={{ display: 'inline-flex', flexDirection: 'column', gap: 4 }}>
            <span style={{ width: 22, height: 1, background: paper }} />
            <span style={{ width: 22, height: 1, background: paper }} />
            <span style={{ width: 22, height: 1, background: paper }} />
          </span>
          Menu
        </button>
        <Logo />
        <ResaBtn />
      </div>
    </header>
  );
  const PillVariantNav = () => (
    <header style={{
      position: 'sticky', top: 0, zIndex: 50,
      background: '#000',
      isolation: 'isolate',
      borderBottom: `1px solid ${line}`,
    }}>
      <style>{`
        .bo-lang {
          display: inline-flex; align-items: center; gap: 6px;
          padding: 8px 14px; border-radius: 999px;
          color: rgba(255,255,255,0.75);
          border: 1px solid rgba(255,255,255,0.18);
          transition: color 220ms ease, border-color 220ms ease, background 220ms ease, transform 220ms ease;
        }
        .bo-lang::after { content: '↗'; font-size: 0.85em; opacity: 0.6; transition: transform 220ms ease, opacity 220ms ease; }
        .bo-lang:hover { color: #fff; border-color: #fff; background: rgba(255,255,255,0.06); transform: translateY(-1px); }
        .bo-lang:hover::after { transform: translate(2px,-2px); opacity: 1; }
        .bo-resa { transition: opacity 200ms ease, transform 200ms ease, box-shadow 200ms ease; }
        .bo-resa:hover { opacity: 0.92; transform: translateY(-1px); box-shadow: 0 8px 24px rgba(255,255,255,0.12); }
      `}</style>
      <div style={{ padding: '20px 48px', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
        <Logo />
        {window.PillNav && <window.PillNav
          items={[
            { label: 'Sommaire', href: '#top' },
            { label: 'Services', href: '#services' },
            { label: 'Atelier',  href: '#atelier' },
            { label: 'Cabinet',  href: '#cabinet' },
            { label: 'Contact',  href: '#contact' },
          ]}
          color={paper} bg={ink} mono={mono}
        />}
        <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>
          <a className="bo-lang" href='/en/' style={{ ...mono, textDecoration: 'none' }}>EN</a>
          <ResaBtn />
        </div>
      </div>
    </header>
  );
  const Nav = () => {
    if (menuVariant === 'classic') return <ClassicNav />;
    if (menuVariant === 'centered') return <CenteredNav />;
    if (menuVariant === 'hamburger') return <HamburgerNav />;
    if (menuVariant === 'pill') return <PillVariantNav />;
    return <NumberedNav />;
  };

  return (
    <div style={wrap}>
      {/* ─── NAV ─── */}
      <Nav />

      {/* ─── HERO LAMP (animation d'entrée) ─── */}
      {window.HeroLamp && (
        <window.HeroLamp
          ink={ink} paper={paper} accent={accent} display={display} mono={mono}
          eyebrow="— No. 001 / Atelier d'opérations · scale-ups digitales"
          title="Bespoke Operations"
          subtitle="Cabinet privé d'opérations, taillé à la main."
          height={720}
        />
      )}

      {/* ─── HERO ─── */}
      <section>
        <Grid style={{ paddingTop: 64, paddingBottom: 96 }}>
          <div style={{ gridColumn: 'span 2' }}></div>
          <div style={{ gridColumn: 'span 7', minHeight: 520, display: 'flex', flexDirection: 'column' }}>
            <div style={{ ...mono, color: paper, marginBottom: 32, display: 'flex', alignItems: 'center', gap: 16 }}>
              <span style={{ width: 32, height: 1, background: paper, display: 'inline-block' }} />
              No. 001 / Atelier d'opérations · scale-ups digitales
            </div>
            <h1 style={{ ...display, fontSize: 124, lineHeight: 0.92, margin: 0, fontWeight: 300, letterSpacing: '-0.025em' }}>
              Un cabinet
              <br />
              d'<em style={{ fontStyle: 'italic', fontWeight: 400 }}>opérations</em>
              <br />
              taillé à la main.
            </h1>
            <p style={{ fontSize: 16, lineHeight: 1.6, margin: 0, color: paper, marginTop: 'auto', paddingTop: 40, maxWidth: 720 }}>
              Vous avez levé. Vous scalez. Mais structurer les opérations d'une entreprise digitale demande un COO — et le temps plein n'est ni dans votre budget, ni dans votre envie.
              Bespoke Operations devient votre COO à temps partiel : processus, outils SaaS, équipes hybrides, gouvernance. Taillé à la mesure de votre stack.
            </p>
          </div>
          <div style={{ gridColumn: 'span 3' }}>
            <FlipCard
              width="100%" height={520}
              front={<Photo label="hero · portrait" hint="Portrait N&B 3:4 — fondateur en mouvement, lumière naturelle, grain argentique." src={IMAGES.heroPortrait} ratio="3:4" h="100%" />}
              back={(
                <div style={{ width: '100%', height: '100%', background: paper, color: ink, padding: 28, display: 'flex', flexDirection: 'column' }}>
                  <div style={{ ...mono, fontSize: 10, color: 'rgba(0,0,0,0.5)' }}>— Le studio</div>
                  <div style={{ ...display, fontSize: 32, fontStyle: 'italic', fontWeight: 400, marginTop: 16, lineHeight: 1.1 }}>
                    Une seule main, plusieurs maisons.
                  </div>
                  <p style={{ fontSize: 13, lineHeight: 1.7, marginTop: 20, color: ink }}>
                    Bespoke Operations accompagne 4 à 8 entreprises digitales par an, par projet ou en mensuel.
                  </p>
                  <div style={{ flex: 1 }} />
                  {showHint && <div style={{ ...mono, fontSize: 9, color: 'rgba(0,0,0,0.5)' }}>↻ Recto / verso</div>}
                </div>
              )}
            />
          </div>
        </Grid>

        <div style={{ paddingLeft: 48, paddingRight: 48 }}>
          <Photo label="bandeau · atelier" hint="Vue large d'un atelier — bois, métal, lumière haute. 16:5, profondeur de champ marquée." src={IMAGES.atelierBanner} ratio="16:5" h={560} />
        </div>
      </section>

      {/* ─── SERVICES — flip cards ─── */}
      <section id="services" style={{ paddingTop: 120, paddingBottom: 120, scrollMarginTop: 100 }}>
        <Grid>
          <div style={{ gridColumn: '1 / 4' }}>
            <div style={{ ...mono, color: paper, marginBottom: 16 }}>No. 002 / Services</div>
          </div>
          <div style={{ gridColumn: '4 / 13' }}>
            <h2 style={{ ...display, fontSize: 72, lineHeight: 1, margin: 0, fontWeight: 300, letterSpacing: '-0.02em' }}>
              Trois engagements.
              <br />
              <em style={{ fontStyle: 'italic' }}>Un seul standard.</em>
            </h2>
            {showHint && <p style={{ ...mono, color: muted, marginTop: 24 }}>
              ↻ Survolez chaque carte pour voir les détails
            </p>}
          </div>
        </Grid>

        <Grid style={{ marginTop: 64 }}>
          {services.map((s, i) => (
            <div key={i} style={{ gridColumn: 'span 4' }}>
              <ServiceCard s={s} />
            </div>
          ))}
        </Grid>
      </section>

      {/* ─── MÉTHODE — triptyque flip ─── */}
      <section id="atelier" style={{ borderTop: `1px solid ${line}`, padding: '120px 0', scrollMarginTop: 100 }}>
        <Grid style={{ marginBottom: 64 }}>
          <div style={{ gridColumn: '1 / 4' }}>
            <div style={{ ...mono, color: paper, marginBottom: 16 }}>No. 003 / L'atelier</div>
          </div>
          <div style={{ gridColumn: '3 / 13' }}>
            <h2 style={{ ...display, fontSize: 56, lineHeight: 1.05, margin: 0, fontWeight: 300, letterSpacing: '-0.02em', whiteSpace: 'nowrap' }}>
              Une opération ne se <em style={{ fontStyle: 'italic' }}>copie</em> pas. Elle se <em style={{ fontStyle: 'italic' }}>taille</em>.
            </h2>
            <p style={{ fontSize: 14, lineHeight: 1.7, color: muted2, maxWidth: 480, marginTop: 32 }}>
              Trois mouvements. Aucun template, aucun playbook recyclé.
              Le travail commence par l'écoute, se termine par votre autonomie.
            </p>
          </div>
        </Grid>

        <Grid>
          {methode.map((m, i) => (
            <div key={i} style={{ gridColumn: 'span 4' }}>
              <MethodCard m={m} />
            </div>
          ))}
        </Grid>
      </section>

      {/* ─── QUOTE ─── */}
      <section style={{ borderTop: `1px solid ${line}`, padding: '140px 0' }}>
        <Grid>
          <div style={{ gridColumn: '1 / 2' }}>
            <div style={{ ...display, fontSize: 120, lineHeight: 0.8, fontWeight: 400, fontStyle: 'italic' }}>«</div>
          </div>
          <div style={{ gridColumn: '2 / 11' }}>
            <p style={{ ...display, fontSize: 48, lineHeight: 1.25, fontWeight: 300, fontStyle: 'italic', margin: 0, letterSpacing: '-0.01em' }}>
              Un partenaire d'opérations qui pense votre entreprise comme un objet
              singulier. Pas de méthode plaquée — la sienne, retaillée à chaque fois.
            </p>
            <div style={{ marginTop: 48, paddingTop: 24, borderTop: `1px solid ${line}`, display: 'flex', justifyContent: 'space-between', ...mono, color: muted }}>
              <span>Léa M. — fondatrice, Maison de Lune</span>
              <span>Engagement · 6 mois · 2025</span>
            </div>
          </div>
        </Grid>
      </section>

      {/* ─── CHIFFRES ─── */}
      <section id="cabinet" style={{ borderTop: `1px solid ${line}`, padding: '96px 0', scrollMarginTop: 100 }}>
        <Grid>
          {[
            ['IV', '4 — 8', 'Clients par an, jamais plus.'],
            ['V', '∞', 'Engagements par projet.'],
            ['VI', '14', 'Jours, du diagnostic à la feuille de route.'],
            ['VII', '100%', 'Conçu sur mesure.'],
          ].map(([n, big, fr], i) => (
            <div key={i} style={{ gridColumn: 'span 3', borderRight: i < 3 ? `1px solid ${line}` : 'none', paddingRight: 24 }}>
              <div style={{ ...mono, color: muted, marginBottom: 24 }}>— {n}</div>
              <div style={{ ...display, fontSize: 88, lineHeight: 1, fontWeight: 300, letterSpacing: '-0.025em' }}>{big}</div>
              <div style={{ ...mono, color: paper, fontSize: 10, marginTop: 24 }}>{fr}</div>
            </div>
          ))}
        </Grid>
      </section>

      {/* ─── TÉMOIGNAGES ─── */}
      {window.Testimonials && (
        <window.Testimonials
          ink={ink} paper={paper} line={line} muted={muted}
          display={display} mono={mono} accent={accent}
          speed={(typeof window!=='undefined' && window.__boTestimonialsSpeed) || 60}
          pauseOnHover={typeof window!=='undefined' ? window.__boTestimonialsPause !== false : true}
          variant={(typeof window!=='undefined' && window.__boTestimonialsVariant) || 'glass'}
        />
      )}

      {/* ─── CTA ─── */}
      <section id="contact" style={{ borderTop: `1px solid ${line}`, padding: '160px 0', scrollMarginTop: 100 }}>
        <Grid>
          <div style={{ gridColumn: '1 / 13', textAlign: 'center' }}>
            <div style={{ ...mono, color: muted, marginBottom: 40 }}>No. 005 / Premier rendez-vous</div>
            <h2 style={{ ...display, fontSize: 104, lineHeight: 0.95, margin: 0, fontWeight: 300, letterSpacing: '-0.02em' }}>
              Trente minutes
              <br />
              pour <em style={{ fontStyle: 'italic' }}>commencer</em>.
            </h2>
            <div style={{ maxWidth: 460, margin: '40px auto 0', fontSize: 13, lineHeight: 1.7, color: muted2 }}>
              Une consultation gratuite pour mesurer où vous en êtes, et juger si nous sommes le bon studio pour la suite.
            </div>
            <div style={{ display: 'flex', justifyContent: 'center', gap: 12, marginTop: 48 }}>
              <button style={{ background: paper, color: ink, border: 'none', padding: '20px 36px', ...mono, cursor: 'pointer', fontSize: 11 }}>
                ▸ Réserver le créneau
              </button>
              <button style={{ background: 'transparent', color: paper, border: `1px solid ${paper}`, padding: '20px 36px', ...mono, cursor: 'pointer', fontSize: 11 }}>
                hello@bespoke-ops.com
              </button>
            </div>
          </div>
        </Grid>
      </section>

      {/* ─── FOOTER ─── */}
      <footer style={{ borderTop: `1px solid ${line}`, padding: '48px 0' }}>
        <Grid>
          <div style={{ gridColumn: 'span 4' }}>
            <div style={{ ...mono, fontSize: 11, color: paper }}>BESPOKE / OPERATIONS</div>
            <div style={{ ...mono, fontSize: 9, color: muted, marginTop: 8 }}>Atelier d'opérations · Paris · MMXXIV</div>
          </div>
          {[
            ['Atelier', [
              { label: 'Services', href: '#services' },
              { label: 'L’atelier', href: '#atelier' },
              { label: 'Cabinet', href: '#cabinet' },
            ]],
            ['Contact', [
              { label: 'hello@bespoke-ops.com', href: 'mailto:hello@bespoke-ops.com' },
              { label: 'LinkedIn', href: 'https://www.linkedin.com/' },
              { label: 'Prendre rendez-vous', href: '#contact' },
            ]],
            ['Légal', [
              { label: 'Mentions légales', href: '/mentions-legales.html' },
              { label: 'Confidentialité',  href: '/confidentialite.html' },
              { label: 'CGV',              href: '/cgv.html' },
            ]],
          ].map(([t, items]) => (
            <div key={t} style={{ gridColumn: 'span 2' }}>
              <div style={{ ...mono, fontSize: 9, color: muted, marginBottom: 12 }}>{t}</div>
              {items.map((x) => (
                <a key={x.label} href={x.href}
                   style={{ ...mono, fontSize: 10, color: paper, marginBottom: 8, display: 'block', textDecoration: 'none' }}>
                  {x.label}
                </a>
              ))}
            </div>
          ))}
          <div style={{ gridColumn: 'span 2', textAlign: 'right' }}>
            <div style={{ ...mono, fontSize: 9, color: muted }}>© MMXXVI</div>
          </div>
        </Grid>
      </footer>
    </div>
  );
};

window.A = A;
