/*
 * style.css — Meilleur Manager website
 * Copié en l'état du mm-website source en Phase 1B (avril 2026).
 * À terme, les variables, composants et typographies seront extraits dans le package
 * @mm-universe/design-system partagé entre mm-website, mm-companion et potentiellement
 * les vues servies par edusaas (Phase 5).
 * Toute modification ici doit rester cohérente avec cet objectif d'extraction future.
 */

/* ═══════════════════════════════════════
   RESET & VARIABLES — Design System v2
   ═══════════════════════════════════════ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    --noir: #191917;
    --blanc: #FFFFFF;
    --gris-80: rgba(25,25,23,0.80);
    --gris-60: rgba(25,25,23,0.40);
    --gris-20: rgba(25,25,23,0.20);
    --gris-10: rgba(25,25,23,0.08);
    --gris-05: rgba(25,25,23,0.04);
    --fond-clair: #F7F7F5;
    --violet: #8B6AFF;
    --violet-hover: #7B5AEF;
    --violet-glow: rgba(139,106,255,0.15);
    --violet-subtle: rgba(139,106,255,0.06);
    --pangaia: 'PP Pangaia', 'Georgia', serif;
    --satoshi: 'Satoshi', 'Helvetica Neue', sans-serif;

    /* Typography scale — Golden Ratio (φ = 1.618, step = √φ ≈ 1.272) */
    --text-hero: clamp(36px, 7vw, 76px);       /* 18 × φ³   */
    --text-display: clamp(32px, 4.5vw, 60px);  /* 18 × φ²·⁵ */
    --text-h1: clamp(27px, 3.5vw, 47px);       /* 18 × φ²   */
    --text-h2: clamp(23px, 2.8vw, 37px);       /* 18 × φ¹·⁵ */
    --text-h3: clamp(19px, 2vw, 29px);         /* 18 × φ    */
    --text-body-lg: clamp(18px, 1.4vw, 23px);  /* 18 × √φ   */
    --text-body: 18px;                          /* base       */
    --text-sm: 14px;                            /* 18 ÷ √φ   */
    --text-xs: 11px;                            /* 18 ÷ φ    */

    /* Spacing scale (base 8) */
    --space-xs: 8px;
    --space-sm: 16px;
    --space-md: 24px;
    --space-lg: 32px;
    --space-xl: 48px;
    --space-2xl: 64px;
    --space-3xl: 96px;
}

html { scroll-behavior: smooth; font-size: 16px; scrollbar-gutter: stable; background: var(--noir); }

body {
    font-family: var(--satoshi);
    color: var(--noir);
    background: var(--blanc);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

::selection { background: var(--violet); color: var(--blanc); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ═══════════════════════════════════════
   UTILITIES
   ═══════════════════════════════════════ */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 clamp(24px, 5vw, 80px);
}
.container--narrow { max-width: 780px; }
.container--wide { max-width: 1400px; }

.section { padding: clamp(60px, 8vw, 100px) 0; }
.section--noir { background: var(--noir); color: var(--blanc); }
.section--gris { background: var(--fond-clair); }

/* Accroche — section de transition hero → contenu */
.accroche {
    background: var(--fond-clair);
    padding: clamp(48px, 6vw, 80px) 0;
}
.accroche .container { max-width: 1200px; }
.accroche__title {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.15;
    margin-bottom: var(--space-sm);
}
.accroche__text {
    font-size: clamp(18px, 2.2vw, 24px); line-height: 1.4;
    color: var(--gris-60); max-width: 700px;
}

.sn {
    font-family: var(--satoshi); font-weight: 300; font-size: var(--text-body);
    color: var(--gris-60); letter-spacing: 0.02em;
    margin-bottom: var(--space-lg); display: block;
}
.sn--light { color: rgba(255,255,255,0.40); }

/* ═══════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════ */
.btn {
    display: inline-block;
    font-family: var(--satoshi); font-weight: 700; font-size: 14px;
    letter-spacing: 0.08em; text-transform: uppercase;
    padding: 18px 44px; border: none; cursor: pointer;
    transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
}
.btn--sm { padding: 10px 24px; font-size: 13px; }
.btn--primary { background: var(--noir); color: var(--blanc); }
.btn--primary:hover { background: var(--violet); }
.btn--accent { background: var(--violet); color: var(--blanc); }
.btn--accent:hover { background: var(--violet-hover); box-shadow: 0 8px 32px var(--violet-glow); }
.btn--outline-light { background: transparent; color: var(--blanc); border: 1px solid rgba(255,255,255,0.25); }
.btn--outline-light:hover { background: var(--blanc); color: var(--noir); border-color: var(--blanc); }
.btn--white { background: var(--blanc); color: var(--noir); }
.btn--white:hover { background: var(--violet); color: var(--blanc); }
.btn--outline { background: transparent; color: var(--noir); border: 1px solid var(--gris-20); }
.btn--outline:hover { border-color: var(--noir); }

/* ═══════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════ */
.nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 250;
    padding: 20px 0; background: var(--noir); transition: padding 0.4s ease;
}
.nav--scrolled { padding: 14px 0; }
.nav--menu-open { background: transparent; padding: 20px 0; }
.nav--menu-open .nav__center,
.nav--menu-open .nav__cta { opacity: 0; pointer-events: none; }
.nav__inner {
    display: flex; justify-content: space-between; align-items: center;
    max-width: 1200px; margin: 0 auto;
    padding: 0 clamp(24px, 5vw, 80px);
}
.nav__logo {
    font-family: var(--pangaia); font-weight: 500; font-size: 28px;
    letter-spacing: 0.02em; text-transform: lowercase; color: var(--blanc);
}
.nav__center { display: flex; gap: 32px; list-style: none; }
.nav__center a {
    font-family: var(--satoshi); font-weight: 400; font-size: 18px;
    color: var(--blanc); opacity: 0.6; transition: opacity 0.3s;
}
.nav__center a:hover, .nav__center a.active { opacity: 1; }
.nav__right { display: flex; align-items: center; gap: 24px; }
.nav__cta {
    font-family: var(--satoshi); font-weight: 700; font-size: 13px;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--blanc);
    padding: 10px 24px; border: 1px solid rgba(255,255,255,0.35); transition: all 0.3s;
}
.nav__cta:hover { background: var(--blanc); color: var(--noir); }
.nav__account {
    font-family: var(--satoshi); font-weight: 500; font-size: 13px;
    letter-spacing: 0.04em; color: rgba(255,255,255,0.6); transition: color 0.3s;
}
.nav__account:hover { color: var(--blanc); }
.nav__burger {
    position: relative;
    width: 28px; height: 20px;
    background: none; border: none; cursor: pointer; padding: 0;
}
.nav__burger-icon {
    width: 100%; height: 100%; position: relative; display: block;
}
.nav__burger-icon span {
    position: absolute; left: 0; width: 100%; height: 2.5px;
    background: var(--blanc);
    transform-origin: center center;
    transition: top 0.35s ease, transform 0.35s ease, opacity 0.25s ease;
    will-change: transform, top, opacity;
}
.nav__burger-icon span:nth-child(1) { top: 0; }
.nav__burger-icon span:nth-child(2) { top: calc(50% - 1.25px); }
.nav__burger-icon span:nth-child(3) { top: calc(100% - 2.5px); }

/* Cross state */
.nav__burger.active .nav__burger-icon span:nth-child(1) {
    top: calc(50% - 1.25px); transform: rotate(45deg);
}
.nav__burger.active .nav__burger-icon span:nth-child(2) { opacity: 0; }
.nav__burger.active .nav__burger-icon span:nth-child(3) {
    top: calc(50% - 1.25px); transform: rotate(-45deg);
}

/* ═══ OVERLAY MENU ═══ */
.overlay {
    position: fixed; inset: 0; z-index: 200;
    background: var(--noir);
    display: flex; flex-direction: column;
    opacity: 0; visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s;
}
.overlay.open { opacity: 1; visibility: visible; }
.overlay__header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 20px clamp(24px, 5vw, 80px);
    max-width: 1200px; width: 100%; margin: 0 auto;
}
.overlay__body {
    flex: 1; display: flex; flex-direction: column;
    justify-content: center; align-items: flex-end; text-align: right;
    padding: 0 clamp(48px, 10vw, 160px);
}
.overlay__link {
    font-family: var(--pangaia); font-weight: 500;
    font-size: clamp(36px, 6vw, 64px); line-height: 1.3;
    color: var(--blanc); opacity: 0.4;
    transition: opacity 0.3s, transform 0.3s;
}
.overlay__link:hover, .overlay__link.active { opacity: 1; transform: translateX(12px); }
.overlay__footer {
    display: flex; justify-content: space-between; align-items: flex-end;
    padding: 32px clamp(24px, 5vw, 80px) 40px;
    max-width: 1200px; width: 100%; margin: 0 auto;
}
.overlay__social { display: flex; gap: 24px; }
.overlay__social a {
    font-family: var(--satoshi); font-weight: 400; font-size: 14px;
    color: rgba(255,255,255,0.4); transition: color 0.3s;
}
.overlay__social a:hover { color: var(--blanc); }
.overlay__cta-group { display: flex; gap: 16px; align-items: center; }
.overlay__cta-btn {
    font-family: var(--satoshi); font-weight: 700; font-size: 13px;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--blanc);
    padding: 14px 32px; border: 1px solid rgba(255,255,255,0.35);
    transition: all 0.3s; display: inline-block;
}
.overlay__cta-btn:hover { background: var(--blanc); color: var(--noir); }
.overlay__cta-btn--accent { background: var(--violet); border-color: var(--violet); }
.overlay__cta-btn--accent:hover { background: var(--violet-hover); border-color: var(--violet-hover); }

/* ═══════════════════════════════════════
   HERO
   ═══════════════════════════════════════ */
.hero {
    min-height: 100vh; background: var(--noir);
    display: flex; flex-direction: column; justify-content: flex-start;
    padding: clamp(120px, 14vw, 160px) 0 clamp(80px, 10vw, 120px);
    position: relative; overflow: hidden;
}
.hero__bg-img {
    position: absolute; bottom: 0; right: 0;
    width: clamp(100px, 15vw, 200px);
    pointer-events: none;
}
.hero--short { min-height: auto; }
.hero--short .hero__title { font-size: var(--text-display); margin-bottom: var(--space-md); }
.hero .container { padding-left: clamp(16px, 3vw, 40px); padding-right: clamp(16px, 3vw, 40px); }
.hero__content { position: relative; z-index: 2; width: 100%; max-width: 800px; margin-left: auto; margin-right: auto; }
.hero__tagline {
    font-family: var(--satoshi); font-weight: 300; font-size: var(--text-sm);
    letter-spacing: 0.15em; text-transform: uppercase;
    color: rgba(255,255,255,0.35); margin-bottom: var(--space-xl);
}
.hero__title {
    font-family: var(--pangaia); font-weight: 700;
    font-size: var(--text-hero); line-height: 1;
    letter-spacing: -0.02em; color: var(--blanc); margin-bottom: var(--space-xl);
}
.hero__title .line { display: block; }
.hero__title .line--accent { color: var(--violet); }
.hero__subtitle {
    max-width: 620px;
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.5;
    color: rgba(255,255,255,0.55); margin-bottom: var(--space-xl);
}
.hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.hero__scroll {
    position: absolute; bottom: 40px; right: clamp(24px, 5vw, 80px);
    writing-mode: vertical-rl; font-family: var(--satoshi); font-weight: 300;
    font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase;
    color: rgba(255,255,255,0.25); animation: scrollPulse 2.5s ease-in-out infinite;
}
@keyframes scrollPulse {
    0%, 100% { opacity: 0.25; transform: translateY(0); }
    50% { opacity: 0.6; transform: translateY(4px); }
}

/* ═══════════════════════════════════════
   SECTION MIROIR
   ═══════════════════════════════════════ */
.miroir__grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 6vw, 100px); align-items: start;
}
.miroir__accroche {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h1); line-height: 1.05;
    letter-spacing: -0.01em; margin-bottom: 40px;
}
.miroir__citation {
    border-left: 3px solid var(--violet); padding-left: 24px; margin-top: 40px;
}
.miroir__citation p:first-child {
    font-family: var(--satoshi); font-style: italic; font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.6;
}
.miroir__citation .attribution {
    font-family: var(--satoshi); font-weight: 300; font-size: var(--text-sm);
    color: var(--gris-60); margin-top: 12px;
}
.miroir__right p {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.5;
}
.miroir__right p + p { margin-top: 20px; }
.miroir__stat { font-weight: 700; }

/* ═══════════════════════════════════════
   SECTION NEGATION (NOT/BUT)
   ═══════════════════════════════════════ */
.negation__intro { margin-bottom: var(--space-xl); max-width: 600px; }
.negation__intro h2 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.2;
}
.negation__row {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 0; border-bottom: 1px solid var(--gris-20);
}
.negation__row:first-of-type { border-top: 1px solid var(--gris-20); }
.negation__pas, .negation__mais { padding: 16px 0; }
.negation__pas { padding-right: 40px; border-right: 1px solid var(--gris-20); }
.negation__mais { padding-left: 40px; }
.negation__label {
    font-family: var(--satoshi); font-weight: 700; font-size: 11px;
    letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 12px;
}
.negation__label--non { color: var(--gris-60); }
.negation__label--oui { color: var(--violet); }
.negation__text {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.6;
}

/* ═══════════════════════════════════════
   INTERSTITIEL
   ═══════════════════════════════════════ */
.interstitiel { padding: clamp(80px, 10vw, 140px) 0; text-align: center; }
.interstitiel__text {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h1); line-height: 1.05;
    max-width: 800px; margin: 0 auto;
}

/* Interstitiel variant (coaching, narrative, livres, about pages) */
.inter {
    padding: clamp(60px, 8vw, 100px) 0; text-align: center;
    background: var(--fond-clair);
}
.inter--noir { background: var(--noir); color: var(--blanc); }
.inter__quote {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h1); line-height: 1.05;
    max-width: 800px; margin: 0 auto;
}
.inter__attr {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-sm); color: var(--gris-60);
    margin-top: var(--space-sm);
}
.inter--noir .inter__attr { color: rgba(255,255,255,0.40); }

/* ═══════════════════════════════════════
   SECTION PILIERS
   ═══════════════════════════════════════ */
.piliers__intro h2 {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h1); line-height: 1.05;
    color: var(--blanc); max-width: 600px;
}
.piliers__grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0; margin-top: var(--space-2xl);
}
.pilier {
    padding: clamp(32px, 4vw, 56px);
    border-left: 1px solid rgba(255,255,255,0.08);
}
.pilier:first-child { border-left: none; }
.pilier__number {
    font-family: var(--pangaia); font-weight: 700;
    font-size: clamp(64px, 7vw, 96px); line-height: 1;
    color: rgba(255,255,255,0.12); margin-bottom: var(--space-md);
}
.pilier__label {
    font-family: var(--satoshi); font-weight: 700; font-size: 11px;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--violet); margin-bottom: var(--space-sm);
}
.pilier__title {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h3); line-height: 1.2;
    color: var(--blanc); margin-bottom: 20px;
}
.pilier__text {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    line-height: 1.5; color: rgba(255,255,255,0.55);
}
.pilier__duration {
    margin-top: 24px; font-family: var(--satoshi); font-weight: 500;
    font-size: var(--text-sm); color: rgba(255,255,255,0.50);
}

/* ═══════════════════════════════════════
   SECTION SIGNES (TU TE RECONNAIS?)
   ═══════════════════════════════════════ */
.signes__intro h2 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.2; margin-bottom: var(--space-xs);
}
.signes__intro p {
    font-family: var(--satoshi); font-size: var(--text-body); line-height: 1.6;
    color: var(--gris-60); margin-top: var(--space-xs); max-width: 500px;
}
.signes__list { margin-top: var(--space-xl); }
.signe {
    display: flex; align-items: flex-start; gap: 24px;
    padding: 28px 0; border-bottom: 1px solid var(--gris-20);
}
.signe:first-child { border-top: 1px solid var(--gris-20); }
.signe__brace {
    font-family: var(--satoshi); font-weight: 200; font-size: 28px;
    color: var(--violet); line-height: 1; flex-shrink: 0; margin-top: 2px;
}
.signe__text {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.55;
}
.signes__conclusion {
    font-family: var(--satoshi); font-style: italic; font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.6; margin-top: var(--space-xl);
}

/* ═══════════════════════════════════════
   SECTION PROCESSUS (COMMENT CA MARCHE)
   ═══════════════════════════════════════ */
.processus__intro h2 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.2;
}
.processus__intro p {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.4;
    color: var(--gris-60); max-width: 500px; margin-top: var(--space-sm);
}
.processus__steps {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 0; margin-top: var(--space-2xl);
}
.step {
    padding: var(--space-xl); border: 1px solid var(--gris-20);
    margin-top: -1px; margin-left: -1px; transition: background 0.3s;
}
.step:hover { background: var(--violet-subtle); }
.step__number {
    font-family: var(--satoshi); font-weight: 700; font-size: 48px;
    color: var(--gris-20); line-height: 1; margin-bottom: var(--space-md);
}
.step__title {
    font-family: var(--satoshi); font-weight: 700; font-size: 20px; margin-bottom: 12px;
}
.step__text {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    line-height: 1.6; color: var(--gris-60);
}

/* ═══════════════════════════════════════
   SECTION PRINCIPES
   ═══════════════════════════════════════ */
.principes__intro h2 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.2; margin-bottom: var(--space-xs);
}
.principes__intro p {
    font-family: var(--satoshi); font-size: var(--text-body);
    color: var(--gris-60); margin-top: var(--space-xs);
}
.principes__grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0; margin-top: var(--space-2xl);
}
.principe {
    padding: clamp(32px, 3vw, 48px);
    border-right: 1px solid var(--gris-20);
}
.principe:last-child { border-right: none; }
.principe__num {
    font-family: var(--satoshi); font-weight: 700; font-size: 48px;
    color: var(--gris-20); margin-bottom: var(--space-md);
}
.principe__title {
    font-family: var(--satoshi); font-weight: 700; font-size: 20px; margin-bottom: 6px;
}
.principe__subtitle {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-sm);
    color: var(--gris-60); margin-bottom: 20px;
}
.principe__text {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    line-height: 1.5; color: var(--gris-60);
}

/* ═══════════════════════════════════════
   SECTION TEMOIGNAGES
   ═══════════════════════════════════════ */
.temoignages__intro h2 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h2); line-height: 1.2; color: var(--blanc);
}
.temoignages__intro p {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.4;
    color: rgba(255,255,255,0.45); max-width: 400px; margin-top: 12px;
}
.temoignages__grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 24px; margin-top: var(--space-xl);
}
.temoignage {
    padding: var(--space-xl); border: 1px solid rgba(255,255,255,0.08);
    transition: border-color 0.3s;
}
.temoignage:hover { border-color: rgba(139,106,255,0.25); }
.temoignage__quote {
    font-family: var(--satoshi); font-style: italic; font-weight: 400;
    font-size: var(--text-body); line-height: 1.4;
    color: rgba(255,255,255,0.70); margin-bottom: var(--space-md);
}
.temoignage__author {
    font-family: var(--satoshi); font-weight: 500; font-size: var(--text-sm); color: var(--blanc);
}
.temoignage__role {
    font-family: var(--satoshi); font-weight: 400; font-size: 13px;
    color: rgba(255,255,255,0.35); margin-top: 4px;
}

/* ═══════════════════════════════════════
   SECTION BRUNO
   ═══════════════════════════════════════ */
.bruno__grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 6vw, 100px); align-items: start;
}
.bruno__label {
    font-family: var(--satoshi); font-weight: 700; font-size: 11px;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--gris-60); margin-bottom: var(--space-md);
}
.bruno__name {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h1); line-height: 1.05; margin-bottom: var(--space-md);
}
.bruno__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--space-lg); }
.bruno__tag {
    font-family: var(--satoshi); font-weight: 500; font-size: 13px;
    padding: 6px 16px; border: 1px solid var(--gris-20); color: var(--gris-60);
}
.bruno__bio p {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.5;
}
.bruno__bio p + p { margin-top: 20px; }
.bruno__quotes { display: flex; flex-direction: column; gap: 24px; padding-top: 16px; }
.bruno__quote { padding-left: 24px; }
.bruno__quote--accent { border-left: 3px solid var(--violet); }
.bruno__quote--muted { border-left: 3px solid var(--gris-20); }
.bruno__quote p {
    font-family: var(--satoshi); font-style: italic; font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.6;
}

/* ═══════════════════════════════════════
   CTA FINAL
   ═══════════════════════════════════════ */
.cta-final {
    min-height: 80vh; display: flex; align-items: center;
    justify-content: center; text-align: center;
    background: var(--noir);
}
.cta-final__content, .cta-final__inner { max-width: 700px; position: relative; z-index: 2; }
.cta-final__title {
    font-family: var(--pangaia); font-weight: 700;
    font-size: var(--text-display); line-height: 0.95;
    color: var(--blanc); margin-bottom: var(--space-lg);
}
.cta-final__text {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.5;
    color: rgba(255,255,255,0.50); margin-bottom: var(--space-xl);
    max-width: 500px; margin-left: auto; margin-right: auto;
}
.cta-final__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ═══════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════ */
.footer {
    background: var(--noir); padding: clamp(80px, 10vw, 140px) 0 48px;
}

/* Top row: CTA left + columns right */
.footer__top {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 60px; padding-bottom: clamp(48px, 6vw, 80px);
    margin-bottom: clamp(32px, 4vw, 48px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

/* CTA */
.footer__cta { flex: 0 0 auto; max-width: 360px; }
.footer__cta-label {
    font-family: var(--pangaia); font-size: clamp(28px, 3.5vw, 44px);
    color: var(--blanc); line-height: 1.15; margin-bottom: 32px;
}
.footer__cta-btn {
    display: inline-block; padding: 16px 40px;
    font-family: var(--satoshi); font-size: 18px; font-weight: 500; letter-spacing: 0.04em;
    color: var(--blanc); border: 1px solid rgba(255,255,255,0.25); border-radius: 0;
    transition: background 0.3s, color 0.3s;
}
.footer__cta-btn:hover { background: var(--blanc); color: var(--noir); }

/* Columns */
.footer__columns { display: flex; gap: clamp(32px, 4vw, 64px); }
.footer__col { display: flex; flex-direction: column; gap: 12px; }
.footer__col-title {
    font-family: var(--satoshi); font-size: var(--text-xs); font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: rgba(255,255,255,0.50); margin-bottom: 8px;
}
.footer__col a {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-sm);
    color: rgba(255,255,255,0.40); transition: color 0.3s;
}
.footer__col a:hover { color: var(--blanc); }

/* Bottom */
.footer__bottom {
    display: flex; justify-content: space-between; align-items: center;
}
.footer__copy {
    font-family: var(--satoshi); font-size: var(--text-xs); color: rgba(255,255,255,0.20);
}
.footer__legal {
    font-family: var(--satoshi); font-size: var(--text-xs); color: rgba(255,255,255,0.20);
}

/* ═══════════════════════════════════════
   BLOG
   ═══════════════════════════════════════ */
.blog-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 32px; margin-top: var(--space-xl);
}
.blog-card {
    border: 1px solid var(--gris-10); transition: border-color 0.3s, box-shadow 0.3s;
}
.blog-card:hover { border-color: var(--violet); box-shadow: 0 8px 32px var(--violet-glow); }
.blog-card__img {
    width: 100%; height: 200px; object-fit: cover;
    background: var(--fond-clair);
}
.blog-card__body { padding: 28px; }
.blog-card__date {
    font-family: var(--satoshi); font-weight: 300; font-size: 13px;
    color: var(--gris-60); margin-bottom: 12px;
}
.blog-card__title {
    font-family: var(--pangaia); font-weight: 500;
    font-size: 22px; line-height: 1.2; margin-bottom: 12px;
}
.blog-card__excerpt {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    line-height: 1.6; color: var(--gris-60);
}

/* Blog article */
.article__meta {
    font-family: var(--satoshi); font-weight: 300; font-size: var(--text-sm);
    color: var(--gris-60); margin-bottom: var(--space-xl);
}
.article__content {
    font-family: var(--satoshi); font-weight: 400;
    font-size: var(--text-body-lg); line-height: 1.8; color: var(--gris-80);
}
.article__content h2 {
    font-family: var(--pangaia); font-weight: 500;
    font-size: var(--text-h2); line-height: 1.15;
    color: var(--noir); margin: 56px 0 24px;
}
.article__content h3 {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h3); line-height: 1.2;
    color: var(--noir); margin: 40px 0 16px;
}
.article__content p { margin-bottom: 20px; }
.article__content ul, .article__content ol { margin: 20px 0; padding-left: 24px; }
.article__content li { margin-bottom: 8px; }
.article__content blockquote {
    border-left: 3px solid var(--violet); padding: 16px 24px;
    margin: 32px 0; font-style: italic; color: var(--gris-60);
    background: var(--violet-subtle);
}
.article__content a { color: var(--violet); border-bottom: 1px solid var(--violet-glow); }
.article__content a:hover { border-color: var(--violet); }
.article__content img { margin: 32px 0; width: 100%; }

/* Comments */
.comments { margin-top: 80px; padding-top: 48px; border-top: 1px solid var(--gris-20); }
.comments__title {
    font-family: var(--satoshi); font-weight: 700;
    font-size: var(--text-h3); margin-bottom: 32px;
}
.comment {
    padding: 24px 0; border-bottom: 1px solid var(--gris-10);
}
.comment__author {
    font-family: var(--satoshi); font-weight: 700; font-size: 15px; margin-bottom: 4px;
}
.comment__date {
    font-family: var(--satoshi); font-weight: 300; font-size: 13px;
    color: var(--gris-60); margin-bottom: 12px;
}
.comment__body {
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    line-height: 1.5; color: var(--gris-80);
}

/* Blog empty */
.blog-empty {
    text-align: center; padding: 80px 0;
    font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body);
    color: var(--gris-60); line-height: 1.6;
}

/* ═══════════════════════════════════════
   FORMS
   ═══════════════════════════════════════ */
.form__group { margin-bottom: 24px; }
.form__label {
    display: block; font-family: var(--satoshi); font-weight: 500;
    font-size: var(--text-sm); margin-bottom: 8px; letter-spacing: 0.02em;
}
.form__input,
.form__textarea {
    width: 100%; font-family: var(--satoshi); font-size: var(--text-body);
    padding: 14px 16px; border: 1px solid var(--gris-20);
    background: var(--blanc); color: var(--noir);
    transition: border-color 0.3s;
}
.form__input:focus,
.form__textarea:focus {
    outline: none; border-color: var(--violet);
}
.form__textarea { resize: vertical; min-height: 140px; }
.form__error {
    color: #e74c3c; font-size: var(--text-sm); margin-bottom: 16px;
    padding: 12px 16px; background: rgba(231,76,60,0.08); border-left: 3px solid #e74c3c;
}
.form__success {
    color: #27ae60; font-size: var(--text-sm); margin-bottom: 16px;
    padding: 12px 16px; background: rgba(39,174,96,0.08); border-left: 3px solid #27ae60;
}

/* ═══════════════════════════════════════
   COACHING PAGE
   ═══════════════════════════════════════ */

/* Hook */
.hook__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.hook__title { font-family: var(--pangaia); font-weight: 500; font-size: var(--text-h1); line-height: 1.08; }
.hook__italic { font-family: var(--satoshi); font-style: italic; font-weight: 400; font-size: var(--text-body-lg); line-height: 1.6; color: var(--violet); margin-top: var(--space-md); }
.hook__right p { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body-lg); line-height: 1.5; }
.hook__right p + p { margin-top: 20px; }

/* Audiences */
.aud__header { margin-bottom: var(--space-2xl); max-width: 600px; }
.aud__header h2 { font-family: var(--pangaia); font-weight: 500; font-size: var(--text-h1); line-height: 1.08; color: var(--blanc); }
.aud__header p { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.4; color: rgba(255,255,255,0.45); margin-top: var(--space-sm); }
.aud__split { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.aud-card { padding: clamp(40px, 4vw, 64px); border-left: 1px solid rgba(255,255,255,0.08); }
.aud-card:first-child { border-left: none; }
.aud-card__label { font-family: var(--satoshi); font-weight: 700; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--violet); margin-bottom: 20px; }
.aud-card__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h3); line-height: 1.2; color: var(--blanc); margin-bottom: 20px; }
.aud-card__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.5; color: rgba(255,255,255,0.50); }
.aud-card__text + .aud-card__text { margin-top: 16px; }
.aud-card__sub { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); color: rgba(255,255,255,0.70); margin: 24px 0 12px; }

/* Interventions */
.intv__header { margin-bottom: var(--space-2xl); }
.intv__header h2 { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h2); line-height: 1.2; }
.intv__header p { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.4; color: var(--gris-60); margin-top: 12px; max-width: 560px; }
.intv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.intv-col { padding: clamp(36px, 4vw, 56px) clamp(24px, 3vw, 48px); border-top: 1px solid var(--gris-20); transition: background 0.3s; }
.intv-col:nth-child(odd) { border-right: 1px solid var(--gris-20); }
.intv-col:hover { background: var(--violet-subtle); }
.intv-col__num { font-family: var(--satoshi); font-weight: 700; font-size: 13px; color: var(--violet); margin-bottom: 12px; }
.intv-col__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); margin-bottom: 8px; }
.intv-col__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.5; color: var(--gris-60); }

/* Method */
.meth__header { margin-bottom: var(--space-2xl); max-width: 600px; }
.meth__header h2 { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h2); line-height: 1.2; color: var(--blanc); }
.meth__header p { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.4; color: rgba(255,255,255,0.45); margin-top: 12px; }
.meth-scroll { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin-bottom: 80px; }
.meth-item { padding: 32px; border-left: 1px solid rgba(255,255,255,0.08); transition: background 0.3s; }
.meth-item:first-child { border-left: none; }
.meth-item:hover { background: rgba(139,106,255,0.05); }
.meth-item__num { font-family: var(--satoshi); font-weight: 700; font-size: 13px; color: var(--violet); margin-bottom: 16px; }
.meth-item__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); color: var(--blanc); margin-bottom: 8px; }
.meth-item__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.6; color: rgba(255,255,255,0.45); }

/* Expect */
.expect-title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h3); color: var(--blanc); margin-bottom: var(--space-xl); }
.expect-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.expect-card { padding: var(--space-lg); border: 1px solid rgba(255,255,255,0.08); transition: border-color 0.3s; }
.expect-card:hover { border-color: rgba(139,106,255,0.25); }
.expect-card__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); color: var(--blanc); margin-bottom: 8px; }
.expect-card__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.4; color: rgba(255,255,255,0.50); }

/* Format & Qualifiers */
.fmt__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 56px 0; }
.fmt-item { padding: clamp(24px, 3vw, 40px); border-right: 1px solid var(--gris-20); }
.fmt-item:last-child { border-right: none; }
.fmt-item__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); margin-bottom: 8px; }
.fmt-item__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.6; color: var(--gris-60); }
.qual__header { margin: var(--space-3xl) 0 var(--space-xl); }
.qual__header h3 { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h3); line-height: 1.2; }
.qual__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.qual-card { padding: var(--space-lg); border: 1px solid var(--gris-20); transition: all 0.3s; position: relative; }
.qual-card:hover { border-color: var(--violet); background: var(--violet-subtle); }
.qual-card__num { font-family: var(--satoshi); font-weight: 700; font-size: 40px; color: var(--gris-10); position: absolute; top: 16px; right: 24px; }
.qual-card__title { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); margin-bottom: 8px; }
.qual-card__text { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.6; color: var(--gris-60); }
.qual__yes { margin-top: var(--space-xl); font-family: var(--satoshi); font-style: italic; font-weight: 400; font-size: var(--text-body-lg); line-height: 1.6; }

/* FAQ */
.faq__header h2 { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-h2); line-height: 1.2; margin-bottom: var(--space-xl); }
.faq-item { border-bottom: 1px solid var(--gris-20); padding: 28px 0; }
.faq-item:first-child { border-top: 1px solid var(--gris-20); }
.faq-item summary { font-family: var(--satoshi); font-weight: 700; font-size: var(--text-body); cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; font-weight: 300; font-size: 24px; color: var(--gris-60); transition: transform 0.3s; }
.faq-item[open] summary::after { content: '\2212'; }
.faq-item__body { font-family: var(--satoshi); font-weight: 400; font-size: var(--text-body); line-height: 1.5; color: var(--gris-60); max-width: 600px; margin-top: var(--space-sm); }

/* ═══════════════════════════════════════
   ADMIN
   ═══════════════════════════════════════ */
.admin-header {
    padding: clamp(120px, 14vw, 160px) 0 40px;
    background: var(--noir);
}
.admin-header h1 {
    font-family: var(--pangaia); font-weight: 700;
    font-size: clamp(32px, 5vw, 48px); color: var(--blanc);
}
.admin-header p {
    font-family: var(--satoshi); font-weight: 400; font-size: 16px;
    color: rgba(255,255,255,0.45); margin-top: 8px;
}
.admin-nav {
    background: var(--noir); border-bottom: 1px solid rgba(255,255,255,0.08);
    padding: 16px 0;
}
.admin-nav__links {
    display: flex; gap: 24px; list-style: none;
}
.admin-nav__links a {
    font-family: var(--satoshi); font-weight: 500; font-size: 14px;
    color: rgba(255,255,255,0.5); transition: color 0.3s;
}
.admin-nav__links a:hover, .admin-nav__links a.active { color: var(--blanc); }
.admin-stats {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
    margin: 40px 0;
}
.admin-stat {
    padding: 32px; border: 1px solid var(--gris-20); text-align: center;
}
.admin-stat__num {
    font-family: var(--pangaia); font-weight: 700;
    font-size: 48px; color: var(--violet); line-height: 1;
}
.admin-stat__label {
    font-family: var(--satoshi); font-weight: 500; font-size: 14px;
    color: var(--gris-60); margin-top: 8px; text-transform: uppercase;
    letter-spacing: 0.05em;
}
.admin-table {
    width: 100%; border-collapse: collapse; margin-top: 24px;
    font-family: var(--satoshi); font-size: 15px;
}
.admin-table th {
    text-align: left; font-weight: 700; font-size: 12px;
    text-transform: uppercase; letter-spacing: 0.06em;
    color: var(--gris-60); padding: 12px 16px;
    border-bottom: 2px solid var(--gris-20);
}
.admin-table td {
    padding: 16px; border-bottom: 1px solid var(--gris-10);
    vertical-align: top;
}
.admin-table tr:hover { background: var(--violet-subtle); }
.admin-table__actions { display: flex; gap: 8px; }
.admin-table__actions a, .admin-table__actions button {
    font-family: var(--satoshi); font-weight: 600; font-size: 13px;
    padding: 6px 14px; border: 1px solid var(--gris-20);
    background: transparent; cursor: pointer; transition: all 0.2s;
    color: var(--noir); text-decoration: none;
}
.admin-table__actions a:hover, .admin-table__actions button:hover {
    background: var(--noir); color: var(--blanc); border-color: var(--noir);
}
.admin-table__actions .danger { color: #e74c3c; border-color: rgba(231,76,60,0.3); }
.admin-table__actions .danger:hover { background: #e74c3c; color: #fff; border-color: #e74c3c; }
.badge {
    display: inline-block; font-size: 11px; font-weight: 700;
    padding: 3px 10px; border-radius: 2px; text-transform: uppercase;
    letter-spacing: 0.04em;
}
.badge--green { background: rgba(39,174,96,0.1); color: #27ae60; }
.badge--yellow { background: rgba(241,196,15,0.15); color: #d4a800; }
.badge--red { background: rgba(231,76,60,0.1); color: #e74c3c; }
.badge--grey { background: var(--gris-10); color: var(--gris-60); }

/* ═══════════════════════════════════════
   SCROLL REVEAL
   ═══════════════════════════════════════ */
.reveal {
    opacity: 1; transform: translateY(0);
    transition: opacity 0.8s cubic-bezier(0.25,0.46,0.45,0.94),
                transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
}
.reveal--hidden { opacity: 0; transform: translateY(40px); }
.reveal--hidden.visible { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.1s; }
.reveal-d2 { transition-delay: 0.2s; }
.reveal-d3 { transition-delay: 0.3s; }

/* ═══════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════ */
@media (max-width: 900px) {
    .nav__center { display: none; }
    .nav__cta, .nav__account { display: none; }
    .overlay__body { padding: 0 clamp(24px, 5vw, 80px); }
    .overlay__footer { flex-direction: column; gap: 24px; align-items: flex-start; }
    .miroir__grid, .bruno__grid { grid-template-columns: 1fr; }
    .negation__row { grid-template-columns: 1fr; }
    .negation__pas { border-right: none; padding-right: 0; padding-bottom: 20px; }
    .negation__mais { padding-left: 0; padding-top: 20px; }
    .piliers__grid, .principes__grid { grid-template-columns: 1fr; }
    .pilier { border-left: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .principe { border-right: none; border-bottom: 1px solid var(--gris-20); padding-left: 0; }
    .processus__steps, .temoignages__grid { grid-template-columns: 1fr; }
    .footer__top { flex-direction: column; gap: 48px; }
    .footer__columns { flex-direction: column; gap: 36px; }
    .footer__bottom { flex-direction: column; gap: 8px; text-align: center; }
    .blog-grid { grid-template-columns: 1fr; }
    .hook__grid, .aud__split, .intv-cols, .expect-grid, .qual__grid { grid-template-columns: 1fr; }
    .aud-card { border-left: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .meth-scroll { grid-template-columns: 1fr; }
    .meth-item { border-left: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .fmt__grid { grid-template-columns: 1fr; }
    .fmt-item { border-right: none; border-bottom: 1px solid var(--gris-20); }
    .intv-col:nth-child(odd) { border-right: none; }
}
