/* ──────────────────────────────────────────────────────────────────────
 * MERIDIAN — page : /methodologie
 * Overrides spécifiques. Charger après index.css.
 * Couche : @layer pages (déclarée dans index.css).
 *
 * Layout : Hero pleine largeur, puis 2 colonnes (TOC sticky | sections).
 * Container : 1280px max — assez large pour respirer, pas trop pour
 * casser la lisibilité de la prose éditoriale.
 * ─────────────────────────────────────────────────────────────────────── */

@layer pages {

  /* ═══════════════════════════════════════════════
   * HERO — pleine largeur, au-dessus du grid
   * ═══════════════════════════════════════════════ */

  .meth-hero {
    padding: var(--space-20) 0 var(--space-12);
    border-bottom: 1px solid var(--border-default);
    background: var(--bg-surface);
  }
  .meth-hero__inner {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--space-8);
  }
  .meth-hero__eyebrow {
    display: inline-flex; align-items: center; gap: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: var(--space-5);
  }
  .meth-hero__eyebrow::before {
    content: ''; width: 32px; height: 1px; background: var(--accent);
  }
  .meth-hero__title {
    font-family: var(--font-display);
    font-size: clamp(44px, 5.6vw, 80px);
    font-weight: 600;
    letter-spacing: var(--tracking-tight);
    line-height: 1.08;
    color: var(--text-primary);
    margin-bottom: var(--space-5);
    overflow-wrap: break-word;
    padding-bottom: 0.05em;
    max-width: 20ch;
  }
  .meth-hero__title em {
    font-family: var(--font-editorial);
    font-style: italic;
    font-weight: 400;
    color: var(--accent);
  }
  .meth-hero__lede {
    font-family: var(--font-editorial);
    font-size: 20px;
    line-height: 1.62;
    color: var(--text-secondary);
    max-width: 70ch;
  }

  /* ═══════════════════════════════════════════════
   * LAYOUT 2 COLONNES : TOC sticky | content
   * ═══════════════════════════════════════════════ */

  .meth-layout {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: var(--space-10);
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--space-8);
  }

  @media (max-width: 980px) {
    .meth-layout { grid-template-columns: 1fr; gap: 0; }
    .meth-toc { display: none; }
  }

  /* ═══════════════════════════════════════════════
   * TOC sticky
   * ═══════════════════════════════════════════════ */

  .meth-toc {
    position: sticky;
    top: calc(56px + var(--space-8));
    align-self: start;
    padding-top: var(--space-12);
  }
  .meth-toc__lbl {
    font-family: var(--font-mono);
    font-size: var(--text-micro);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--text-tertiary);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: var(--space-4);
  }
  .meth-toc__list {
    list-style: none;
    display: flex; flex-direction: column;
    gap: var(--space-1);
  }
  .meth-toc__item a {
    display: flex; align-items: baseline; gap: var(--space-3);
    padding: var(--space-2) 0 var(--space-2) var(--space-3);
    margin-left: -2px;
    font-size: var(--text-sm);
    color: var(--text-secondary);
    line-height: 1.4;
    border-left: 2px solid transparent;
    transition:
      color var(--duration-fast) var(--ease-out),
      border-color var(--duration-fast) var(--ease-out);
  }
  .meth-toc__item a:hover {
    color: var(--text-primary);
  }
  .meth-toc__item--active a {
    color: var(--accent);
    border-left-color: var(--accent);
  }
  .meth-toc__num {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-muted);
    flex-shrink: 0;
    letter-spacing: 0.04em;
  }
  .meth-toc__item--active .meth-toc__num {
    color: var(--accent);
  }

  /* ═══════════════════════════════════════════════
   * SECTIONS — colonne content (right)
   * ═══════════════════════════════════════════════ */

  .meth-content > .meth-section {
    padding-block: var(--space-12);
    border-bottom: 1px solid var(--border-subtle);
  }
  .meth-content > .meth-section:last-of-type { border-bottom: 0; }
  .meth-content > .meth-section:first-of-type { padding-top: var(--space-12); }

  .meth-section__inner {
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    width: 100%;
  }

  .meth-section__num {
    display: block;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-widest);
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: var(--space-4);
  }
  .meth-section__title {
    font-family: var(--font-display);
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 600;
    letter-spacing: var(--tracking-tight);
    line-height: 1.15;
    color: var(--text-primary);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--border-default);
  }
  .meth-section__body {
    font-family: var(--font-editorial);
    font-size: 17px;
    line-height: 1.78;
    color: var(--text-primary);
    max-width: 70ch;
  }
  .meth-section__body p + p { margin-top: var(--space-5); }
  .meth-section__body strong { font-weight: 600; }
  .meth-section__body a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* ─── Composants internes : pleine largeur de la colonne content ─── */

  .meth-section .callout,
  .meth-section .level-list {
    max-width: none;
    width: 100%;
    margin-block: var(--space-6);
  }
  .meth-section .callout p {
    font-size: 15px;
    line-height: 1.65;
    max-width: 75ch;
  }
  .meth-section .level {
    padding: var(--space-3) var(--space-5);
  }
  .meth-section .level__body {
    font-size: 14px;
  }

  /* ─── Pillars : grille 4 cols à largeur de la colonne content ─── */

  .meth-section .pillars {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: var(--space-6);
    margin-bottom: var(--space-6);
  }
  .meth-section .pillar {
    padding: var(--space-5);
    gap: var(--space-3);
  }
  .meth-section .pillar__desc {
    font-size: 13px;
    line-height: 1.6;
  }
  @media (max-width: 1200px) {
    .meth-section .pillars {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (max-width: 540px) {
    .meth-section .pillars {
      grid-template-columns: 1fr;
    }
  }

  /* ═══════════════════════════════════════════════
   * CTA FINAL — pleine largeur
   * ═══════════════════════════════════════════════ */

  .meth-cta {
    padding: var(--space-20) 0;
    text-align: center;
    background: var(--bg-surface);
    border-top: 1px solid var(--border-default);
    margin-top: var(--space-8);
  }
  .meth-cta__inner {
    max-width: var(--container-narrow);
    margin-inline: auto;
    padding-inline: var(--space-6);
  }
  .meth-cta h2 {
    font-family: var(--font-display);
    font-size: clamp(32px, 4.2vw, 56px);
    font-weight: 600;
    letter-spacing: var(--tracking-tight);
    line-height: 1.10;
    color: var(--text-primary);
    margin-bottom: var(--space-5);
    padding-bottom: 0.05em;
  }
  .meth-cta p {
    font-family: var(--font-editorial);
    font-size: 17px;
    color: var(--text-secondary);
    margin-bottom: var(--space-8);
  }
  .meth-cta__actions {
    display: flex; gap: var(--space-3);
    justify-content: center;
    flex-wrap: wrap;
  }

  /* ═══════════════════════════════════════════════
   * FOOTER
   * ═══════════════════════════════════════════════ */

  .meth-footer {
    padding: var(--space-8) 0;
    border-top: 1px solid var(--border-subtle);
  }
  .meth-footer__inner {
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: var(--space-8);
    display: flex; align-items: center; justify-content: space-between;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-muted);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
  }
}
