/*
 * IBODE Academy — Landing Direction A (Editorial Surgical) styles
 * Page: /accueil/ (#3363)
 * Extracted from inline <style> on 2026-05-03 to escape wpautop corruption.
 * Loaded by mu-plugins/ibode-la-v2-styles.php
 */

/* @import retiré 2026-05-03 — chargé via mu-plugin pour optim LCP */

  /* ────────── SCOPED RESET ────────── */
  .ibode-la-v2, .ibode-la-v2 * { box-sizing: border-box; }
  .ibode-la-v2 {
    --la-paper: #f2ece0;
    --la-paper-2: #e8dfcb;
    --la-ink: #14110d;
    --la-ink-soft: #3a3530;
    --la-crimson: #7a0e0e;
    --la-crimson-soft: #c76a6a;
    --la-gold: #a07a3f;
    --la-rule: rgba(20, 17, 13, 0.18);
    font-family: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.55;
    color: var(--la-ink);
    background: var(--la-paper);
    -webkit-font-smoothing: antialiased;
    position: relative;
    margin: 0;
    overflow: hidden;
  }
  .ibode-la-v2 a { color: inherit; text-decoration: none; }
  .ibode-la-v2 button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
  .ibode-la-v2 h1, .ibode-la-v2 h2, .ibode-la-v2 h3, .ibode-la-v2 h4 { margin: 0; font-weight: inherit; }
  .ibode-la-v2 p { margin: 0; }
  .ibode-la-v2 ul, .ibode-la-v2 ol { padding: 0; margin: 0; list-style: none; }

  /* texture papier */
  .ibode-la-v2::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    background-image: radial-gradient(rgba(20, 17, 13, 0.035) 1px, transparent 1px);
    background-size: 3px 3px;
    mix-blend-mode: multiply;
    opacity: 0.55;
  }

  .ibode-la-v2__inner {
    position: relative;
    z-index: 2;
    max-width: 1440px;
    margin: 0 auto;
  }

  /* ────────── SOURCES TICKER (lambeau défilant sous la nav WP) ────────── */
  .ibode-la-v2__sources {
    padding: 12px 0;
    border-bottom: 1px solid var(--la-rule);
    background: var(--la-paper);
    overflow: hidden;
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, black 64px, black calc(100% - 64px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, black 64px, black calc(100% - 64px), transparent 100%);
  }
  .ibode-la-v2__sources-track {
    display: inline-flex;
    align-items: center;
    gap: 28px;
    white-space: nowrap;
    padding-left: 32px;
    animation: ibode-la-v2-sources-scroll 70s linear infinite;
    font-family: "Instrument Sans", sans-serif;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    will-change: transform;
  }
  .ibode-la-v2__sources:hover .ibode-la-v2__sources-track {
    animation-play-state: paused;
  }
  .ibode-la-v2__sources-track .intro {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 500;
    letter-spacing: -0.01em;
    text-transform: none;
    font-size: 15px;
    color: var(--la-crimson);
  }
  .ibode-la-v2__sources-track a {
    color: var(--la-ink);
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
    transition: color 0.25s, border-color 0.25s;
  }
  .ibode-la-v2__sources-track a:hover {
    color: var(--la-crimson);
    border-bottom-color: var(--la-crimson);
  }
  .ibode-la-v2__sources-track .sep {
    color: var(--la-crimson);
    opacity: 0.6;
    font-weight: 600;
  }
  @keyframes ibode-la-v2-sources-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
  }

  /* ────────── HERO ────────── */
  .ibode-la-v2__hero {
    padding: 56px 48px 48px;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 56px;
    align-items: end;
  }
  .ibode-la-v2__eyebrow {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--la-crimson);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .ibode-la-v2__eyebrow::before {
    content: "";
    width: 42px;
    height: 1px;
    background: var(--la-crimson);
  }
  .ibode-la-v2__title {
    font-family: "Fraunces", serif;
    font-weight: 380;
    font-size: clamp(44px, 7.2vw, 112px);
    line-height: 0.95;
    letter-spacing: -0.025em;
    margin-bottom: 32px;
    color: var(--la-ink);
    font-variation-settings: "SOFT" 50, "opsz" 144;
  }
  .ibode-la-v2__title em {
    font-style: italic;
    font-weight: 500;
    color: var(--la-crimson);
    display: inline-block;
  }
  .ibode-la-v2__title .amp {
    font-style: italic;
    font-weight: 300;
    color: var(--la-gold);
  }
  .ibode-la-v2__lede {
    font-size: 18px;
    line-height: 1.55;
    max-width: 500px;
    color: var(--la-ink-soft);
    margin-bottom: 40px;
    font-weight: 420;
  }
  .ibode-la-v2__lede::first-line { font-weight: 560; color: var(--la-ink); }
  .ibode-la-v2__cta {
    display: inline-flex;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap;
  }
  .ibode-la-v2__btn {
    background: var(--la-crimson);
    color: var(--la-paper);
    padding: 18px 32px;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    overflow: hidden;
    display: inline-block;
    font-weight: 500;
  }
  .ibode-la-v2__btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--la-crimson-deep, #5a0808);
    transform: translateY(100%);
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .ibode-la-v2__btn span { position: relative; z-index: 1; }
  .ibode-la-v2__btn:hover::before { transform: translateY(0); }
  .ibode-la-v2__btn-ghost {
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--la-ink);
    padding: 6px 0;
    transition: color 0.3s, border-color 0.3s;
    font-weight: 500;
  }
  .ibode-la-v2__btn-ghost:hover { color: var(--la-crimson); border-color: var(--la-crimson); }

  /* ────────── VIDEO FRAME ────────── */
  .ibode-la-v2__media {
    position: relative;
    aspect-ratio: 3/4;
    background: var(--la-paper-2);
    overflow: hidden;
    border: 1px solid var(--la-rule);
    box-shadow: 0 1px 0 rgba(20, 17, 13, 0.04), 0 30px 60px -30px rgba(20, 17, 13, 0.28);
    margin: 0;
  }
  .ibode-la-v2__media video,
  .ibode-la-v2__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: sepia(0.15) saturate(0.85) contrast(1.05);
  }
  .ibode-la-v2__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(242, 236, 224, 0.15) 0%, rgba(242, 236, 224, 0) 40%, rgba(20, 17, 13, 0.28) 100%);
    pointer-events: none;
  }
  .ibode-la-v2__media-num {
    position: absolute;
    top: 22px;
    left: 22px;
    color: var(--la-paper);
    font-family: "Fraunces", serif;
    font-style: italic;
    font-size: 16px;
    z-index: 2;
    opacity: 0.92;
  }
  .ibode-la-v2__media-tag {
    position: absolute;
    bottom: 22px;
    left: 22px;
    right: 22px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    color: var(--la-paper);
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    z-index: 2;
  }
  .ibode-la-v2__media-tag b {
    display: block;
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 26px;
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: none;
    margin-bottom: 4px;
  }

  /* ────────── MANIFESTO ────────── */
  .ibode-la-v2__manifesto {
    padding: 96px 48px 80px;
    border-top: 1px solid var(--la-rule);
  }
  .ibode-la-v2__section-label {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    margin-bottom: 20px;
  }
  .ibode-la-v2__manifesto-title {
    font-family: "Fraunces", serif;
    font-weight: 400;
    font-style: italic;
    font-size: clamp(32px, 3.8vw, 56px);
    line-height: 1.08;
    max-width: 900px;
    margin-bottom: 56px;
    color: var(--la-ink);
    letter-spacing: -0.015em;
  }
  .ibode-la-v2__manifesto-title em {
    color: var(--la-crimson);
    font-style: normal;
    font-weight: 500;
  }
  .ibode-la-v2__manifesto-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 72px;
    max-width: 1100px;
    font-size: 17px;
    line-height: 1.65;
    color: var(--la-ink-soft);
  }
  .ibode-la-v2__manifesto-body p { margin: 0 0 18px; }
  .ibode-la-v2__manifesto-body p:first-of-type::first-letter {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 500;
    font-size: 68px;
    line-height: 0.85;
    float: left;
    padding: 6px 10px 0 0;
    color: var(--la-crimson);
  }

  /* ────────── FIGURES ────────── */
  .ibode-la-v2__figures {
    padding: 60px 48px 90px;
    border-top: 1px solid var(--la-rule);
    border-bottom: 1px solid var(--la-rule);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 48px;
  }
  .ibode-la-v2__fig-num {
    font-family: "Fraunces", serif;
    font-weight: 380;
    font-size: clamp(54px, 5.5vw, 84px);
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--la-ink);
    margin-bottom: 10px;
    font-variation-settings: "opsz" 144;
  }
  .ibode-la-v2__fig-num em {
    font-style: italic;
    color: var(--la-crimson);
  }
  .ibode-la-v2__fig-label {
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    padding-top: 14px;
    border-top: 1px solid var(--la-rule);
    max-width: 220px;
  }

  /* ────────── PROGRAMME ────────── */
  .ibode-la-v2__programme {
    padding: 96px 48px 72px;
  }
  .ibode-la-v2__prog-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 56px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--la-rule);
    gap: 32px;
    flex-wrap: wrap;
  }
  .ibode-la-v2__prog-title {
    font-family: "Fraunces", serif;
    font-weight: 420;
    font-size: clamp(34px, 4.6vw, 70px);
    line-height: 0.98;
    letter-spacing: -0.02em;
    color: var(--la-ink);
  }
  .ibode-la-v2__prog-title em {
    font-style: italic;
    color: var(--la-crimson);
    font-weight: 500;
  }
  .ibode-la-v2__prog-meta {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    text-align: right;
  }
  .ibode-la-v2__prog-item {
    display: grid;
    grid-template-columns: 72px 1fr 1.4fr auto;
    gap: 40px;
    align-items: baseline;
    padding: 26px 0;
    border-bottom: 1px solid var(--la-rule);
    transition: background 0.4s, padding 0.4s;
    cursor: pointer;
  }
  .ibode-la-v2__prog-item:hover {
    background: rgba(122, 14, 14, 0.04);
    padding-left: 16px;
    padding-right: 16px;
  }
  .ibode-la-v2__prog-num {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 24px;
    color: var(--la-gold);
  }
  .ibode-la-v2__prog-name {
    font-family: "Fraunces", serif;
    font-weight: 450;
    font-size: 26px;
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: var(--la-ink);
  }
  .ibode-la-v2__prog-desc {
    font-size: 15px;
    color: var(--la-ink-soft);
    max-width: 440px;
    line-height: 1.5;
  }
  .ibode-la-v2__prog-stat {
    font-size: 12px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--la-crimson);
    white-space: nowrap;
  }

  /* ────────── TARIFS ────────── */
  .ibode-la-v2__tarifs {
    padding: 110px 48px 120px;
    border-top: 1px solid var(--la-rule);
    background: linear-gradient(180deg, var(--la-paper) 0%, var(--la-paper-2) 100%);
  }
  .ibode-la-v2__tarifs-head {
    text-align: center;
    margin-bottom: 64px;
  }
  .ibode-la-v2__tarifs-eyebrow {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--la-crimson);
    margin-bottom: 18px;
  }
  .ibode-la-v2__tarifs-title {
    font-family: "Fraunces", serif;
    font-weight: 420;
    font-size: clamp(34px, 4.6vw, 68px);
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--la-ink);
  }
  .ibode-la-v2__tarifs-title em {
    font-style: italic;
    color: var(--la-crimson);
    font-weight: 500;
  }
  .ibode-la-v2__tarifs-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 420px));
    justify-content: center;
    gap: 28px;
  }
  .ibode-la-v2__tarif {
    background: var(--la-paper);
    border: 1px solid var(--la-rule);
    padding: 44px 38px 38px;
    position: relative;
    display: flex;
    flex-direction: column;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.5s;
  }
  .ibode-la-v2__tarif:hover {
    transform: translateY(-6px);
    box-shadow: 0 40px 80px -30px rgba(20, 17, 13, 0.25);
  }
  .ibode-la-v2__tarif--featured {
    background: linear-gradient(170deg, #5a1111 0%, #3d0909 60%, #2a0606 100%);
    color: var(--la-paper);
    border-color: #3d0909;
  }
  .ibode-la-v2__tarif--featured::before {
    content: "Recommandé";
    position: absolute;
    top: -11px;
    left: 38px;
    background: var(--la-gold);
    color: var(--la-ink);
    font-size: 10px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    padding: 6px 14px;
    font-weight: 600;
  }
  .ibode-la-v2__tarif-label {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    margin-bottom: 20px;
  }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-label { color: var(--la-paper-2); opacity: 0.7; }
  .ibode-la-v2__tarif-name {
    font-family: "Fraunces", serif;
    font-weight: 440;
    font-size: 34px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 16px;
  }
  .ibode-la-v2__tarif-name em { font-style: italic; color: var(--la-crimson); }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-name em { color: var(--la-gold); }
  .ibode-la-v2__tarif-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding-bottom: 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--la-rule);
    flex-wrap: wrap;
  }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-price { border-color: rgba(242, 236, 224, 0.18); }
  .ibode-la-v2__tarif-price-num {
    font-family: "Fraunces", serif;
    font-weight: 350;
    font-size: 60px;
    line-height: 1;
    letter-spacing: -0.04em;
    font-variation-settings: "opsz" 144;
  }
  .ibode-la-v2__tarif-price-cur {
    font-family: "Fraunces", serif;
    font-size: 28px;
    font-weight: 350;
  }
  .ibode-la-v2__tarif-price-per {
    font-size: 13px;
    color: var(--la-ink-soft);
    margin-left: 8px;
  }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-price-per { color: var(--la-paper-2); opacity: 0.7; }
  .ibode-la-v2__tarif-features {
    flex: 1;
    margin-bottom: 32px;
  }
  .ibode-la-v2__tarif-features li {
    font-size: 15px;
    line-height: 1.4;
    padding: 10px 0 10px 26px;
    position: relative;
    color: var(--la-ink-soft);
  }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-features li { color: var(--la-paper-2); }
  .ibode-la-v2__tarif-features li::before {
    content: "→";
    position: absolute;
    left: 0;
    top: 10px;
    color: var(--la-crimson);
    font-family: "Fraunces", serif;
    font-weight: 500;
  }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-features li::before { color: var(--la-gold); }
  .ibode-la-v2__tarif-cta {
    width: 100%;
    padding: 16px;
    background: var(--la-crimson);
    color: var(--la-paper);
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    text-align: center;
    transition: background 0.3s, color 0.3s;
    font-weight: 500;
    display: block;
  }
  .ibode-la-v2__tarif-cta:hover { background: var(--la-ink); color: var(--la-paper); }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-cta { background: var(--la-gold); color: var(--la-ink); }
  .ibode-la-v2__tarif--featured .ibode-la-v2__tarif-cta:hover { background: var(--la-paper); color: var(--la-ink); }

  /* ────────── QUOTE ────────── */
  .ibode-la-v2__quote {
    padding: 96px 48px;
    border-top: 1px solid var(--la-rule);
    text-align: center;
    max-width: 1100px;
    margin: 0 auto;
  }
  .ibode-la-v2__quote blockquote {
    font-family: "Fraunces", serif;
    font-weight: 380;
    font-style: italic;
    font-size: clamp(28px, 3.2vw, 44px);
    line-height: 1.3;
    color: var(--la-ink);
    margin: 0 0 28px;
    letter-spacing: -0.01em;
  }
  .ibode-la-v2__quote blockquote::before {
    content: "“";
    display: block;
    font-family: "Fraunces", serif;
    font-size: 92px;
    line-height: 0.5;
    color: var(--la-crimson);
    margin-bottom: 16px;
  }
  .ibode-la-v2__quote cite {
    display: block;
    font-style: normal;
    font-size: 12px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
  }
  .ibode-la-v2__quote cite b {
    display: block;
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 500;
    font-size: 20px;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--la-ink);
    margin-bottom: 4px;
  }

  /* ────────── COLOPHON ────────── */
  .ibode-la-v2__colophon {
    padding: 48px;
    border-top: 1px solid var(--la-rule);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 32px;
    align-items: center;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
  }
  .ibode-la-v2__colo-brand {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 500;
    font-size: 22px;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--la-ink);
    justify-self: center;
  }
  .ibode-la-v2__colo-nav { justify-self: end; display: flex; gap: 24px; }
  .ibode-la-v2__colo-nav a:hover { color: var(--la-crimson); }

  /* ────────── FREE MODULE (extrait libre) ────────── */
  .ibode-la-v2__free {
    padding: 110px 48px 90px;
    border-top: 1px solid var(--la-rule);
    background: var(--la-paper-2);
    position: relative;
  }
  .ibode-la-v2__free::before {
    content: "";
    position: absolute;
    top: 0;
    left: 48px;
    right: 48px;
    height: 1px;
    background: repeating-linear-gradient(90deg, var(--la-ink) 0 8px, transparent 8px 16px);
    opacity: 0.35;
  }
  .ibode-la-v2__free-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 64px;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  .ibode-la-v2__free-title {
    font-family: "Fraunces", serif;
    font-weight: 420;
    font-size: clamp(38px, 5vw, 82px);
    line-height: 0.98;
    letter-spacing: -0.025em;
    margin-bottom: 28px;
    color: var(--la-ink);
  }
  .ibode-la-v2__free-title em {
    font-style: italic;
    color: var(--la-crimson);
    font-weight: 500;
  }
  .ibode-la-v2__free-desc {
    font-size: 17px;
    line-height: 1.6;
    max-width: 460px;
    color: var(--la-ink-soft);
    margin-bottom: 32px;
  }
  .ibode-la-v2__free-preview {
    position: relative;
    background: var(--la-paper);
    border: 1px solid var(--la-rule);
    padding: 44px 36px 36px;
    box-shadow: 0 30px 60px -30px rgba(20, 17, 13, 0.22);
    transform: rotate(-0.5deg);
    transition: transform 0.5s ease;
  }
  .ibode-la-v2__free-preview:hover { transform: rotate(0); }
  .ibode-la-v2__free-preview::before {
    content: "Extrait libre · Sans carte bancaire";
    position: absolute;
    top: -12px;
    left: 24px;
    background: var(--la-crimson);
    color: var(--la-paper);
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 6px 12px;
    font-weight: 500;
    font-family: "Instrument Sans", sans-serif;
  }
  .ibode-la-v2__free-tag {
    display: inline-block;
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--la-gold);
    margin-bottom: 14px;
    font-weight: 500;
  }
  .ibode-la-v2__free-lesson {
    font-family: "Fraunces", serif;
    font-weight: 440;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: var(--la-ink);
    margin-bottom: 16px;
  }
  .ibode-la-v2__free-meta {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--la-rule);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
  }
  .ibode-la-v2__free-meta span { position: relative; white-space: nowrap; }
  .ibode-la-v2__free-meta span + span::before {
    content: "·";
    position: absolute;
    left: -10px;
    color: var(--la-gold);
  }
  .ibode-la-v2__free-excerpt {
    font-size: 15px;
    line-height: 1.6;
    color: var(--la-ink-soft);
    margin-bottom: 22px;
  }
  .ibode-la-v2__free-excerpt::first-letter {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-weight: 500;
    font-size: 42px;
    line-height: 0.85;
    float: left;
    padding: 4px 8px 0 0;
    color: var(--la-crimson);
  }
  .ibode-la-v2__free-hint {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-size: 15px;
    color: var(--la-crimson);
    font-weight: 500;
    letter-spacing: -0.01em;
  }

  /* ────────── NEWSLETTER (lettre d'information) ────────── */
  .ibode-la-v2__news {
    padding: 96px 48px 96px;
    border-top: 1px solid var(--la-rule);
    background: var(--la-paper);
  }
  .ibode-la-v2__news-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    max-width: 1100px;
    margin: 0 auto;
    align-items: center;
  }
  .ibode-la-v2__news-title {
    font-family: "Fraunces", serif;
    font-weight: 420;
    font-size: clamp(36px, 4.6vw, 68px);
    line-height: 0.98;
    letter-spacing: -0.02em;
    margin-bottom: 22px;
    color: var(--la-ink);
  }
  .ibode-la-v2__news-title em {
    font-style: italic;
    color: var(--la-crimson);
    font-weight: 500;
  }
  .ibode-la-v2__news-desc {
    font-size: 16px;
    line-height: 1.6;
    color: var(--la-ink-soft);
  }
  .ibode-la-v2__news-form {
    padding: 36px;
    border: 1px solid var(--la-rule);
    background: var(--la-paper-2);
  }
  .ibode-la-v2__news-label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--la-ink-soft);
    margin-bottom: 14px;
  }
  .ibode-la-v2__news-input-wrap {
    display: flex;
    gap: 10px;
    align-items: baseline;
    border-bottom: 2px solid var(--la-ink);
    padding-bottom: 4px;
  }
  .ibode-la-v2__news-input {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    font-family: "Fraunces", serif;
    font-size: 22px;
    padding: 10px 0;
    color: var(--la-ink);
    outline: none;
  }
  .ibode-la-v2__news-input::placeholder {
    color: var(--la-ink-soft);
    opacity: 0.55;
    font-style: italic;
  }
  .ibode-la-v2__news-btn {
    padding: 10px 14px;
    background: transparent;
    border: none;
    font-family: "Instrument Sans", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--la-crimson);
    cursor: pointer;
    transition: color 0.3s, transform 0.3s;
    white-space: nowrap;
  }
  .ibode-la-v2__news-btn:hover {
    color: var(--la-ink);
    transform: translateX(4px);
  }
  .ibode-la-v2__news-consent {
    margin-top: 16px;
    font-size: 12px;
    color: var(--la-ink-soft);
    line-height: 1.5;
    font-style: italic;
  }

  /* ────────── OVERRIDE GLOBAL (cache le bandeau newsletter du thème parent) ────────── */
  /* S'active uniquement quand .ibode-la-v2 est rendu sur la page, via la classe body injectée par le JS en fin de bloc */
  body.ibode-la-v2-host .footer-width-fixer {
    display: none !important;
  }

  /* ────────── CHATBOT widget (recolor crimson/oxblood) ────────── */
  /* NB : hex en dur ici (pas de var(--la-*)) car le widget est hors scope .ibode-la-v2
     et les custom properties ne cascadent pas jusqu'a lui. */
  /* Bulle flottante */
  body.ibode-la-v2-host #ibode-chatbot-toggle {
    background: #7a0e0e !important;
    box-shadow: 0 10px 30px -10px rgba(122, 14, 14, 0.55), 0 4px 10px -2px rgba(20, 17, 13, 0.18) !important;
    transition: background 0.3s ease, transform 0.2s ease !important;
  }
  body.ibode-la-v2-host #ibode-chatbot-toggle:hover {
    background: #5a0808 !important;
    transform: translateY(-2px);
  }
  /* En-tete popup : gradient oxblood editorial */
  body.ibode-la-v2-host .ibode-chatbot-header {
    background: linear-gradient(170deg, #5a1111 0%, #3d0909 60%, #2a0606 100%) !important;
    font-family: "Instrument Sans", sans-serif !important;
  }
  /* Bouton envoi */
  body.ibode-la-v2-host #ibode-chatbot-send {
    background: #7a0e0e !important;
    transition: background 0.25s ease !important;
  }
  body.ibode-la-v2-host #ibode-chatbot-send:hover {
    background: #5a0808 !important;
  }
  /* Zones neutres : warmer tone (cream plutot que slate bleute) */
  body.ibode-la-v2-host #ibode-chatbot-messages,
  body.ibode-la-v2-host .ibode-chatbot-footer,
  body.ibode-la-v2-host #ibode-chatbot-input {
    background: #e8dfcb !important;
  }
  /* Bulles message */
  body.ibode-la-v2-host .ibode-msg-content {
    background: #f2ece0 !important;
    color: #14110d !important;
  }
  /* Typographie body du chat */
  body.ibode-la-v2-host #ibode-chatbot-popup {
    font-family: "Instrument Sans", sans-serif !important;
  }


  /* ────────── PARCOURS IBODE ────────── */
  .ibode-la-v2__parcours {
    padding: 72px 48px 80px;
    border-top: 1px solid var(--la-rule);
  }
  .ibode-la-v2__parcours-title {
    font-family: "Fraunces", serif;
    font-weight: 400;
    font-size: clamp(32px, 3.6vw, 52px);
    line-height: 1.1;
    margin: 0 0 16px;
    letter-spacing: -0.015em;
    color: var(--la-ink);
  }
  .ibode-la-v2__parcours-title em {
    color: var(--la-crimson);
    font-style: italic;
  }
  .ibode-la-v2__parcours-lede {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-size: clamp(18px, 1.4vw, 22px);
    line-height: 1.45;
    color: var(--la-ink-soft);
    max-width: 720px;
    margin: 0 0 48px;
  }
  .ibode-la-v2__parcours-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  .ibode-la-v2__parcours-card {
    border: 1px solid var(--la-rule);
    background: var(--la-paper-2);
    padding: 28px 26px 22px;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  }
  .ibode-la-v2__parcours-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(20, 17, 13, 0.10);
    border-color: var(--la-crimson);
  }
  .ibode-la-v2__parcours-num {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-size: 14px;
    color: var(--la-crimson);
    letter-spacing: 0.08em;
    margin-bottom: 14px;
  }
  .ibode-la-v2__parcours-name {
    font-family: "Fraunces", serif;
    font-weight: 400;
    font-size: 26px;
    line-height: 1.12;
    margin: 0 0 14px;
    color: var(--la-ink);
    letter-spacing: -0.01em;
  }
  .ibode-la-v2__parcours-name em {
    font-style: italic;
    color: var(--la-crimson);
  }
  .ibode-la-v2__parcours-desc {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--la-ink-soft);
    margin: 0 0 20px;
    flex-grow: 1;
  }
  .ibode-la-v2__parcours-meta {
    font-family: "JetBrains Mono", ui-monospace, monospace;
    font-size: 10.5px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--la-gold);
    margin-bottom: 14px;
  }
  .ibode-la-v2__parcours-cta {
    font-family: "Instrument Sans", sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: var(--la-crimson);
    letter-spacing: 0.02em;
    padding-top: 14px;
    border-top: 1px solid var(--la-rule);
  }
  .ibode-la-v2__parcours-card:hover .ibode-la-v2__parcours-cta {
    color: var(--la-ink);
  }

  /* ────────── RESPONSIVE ────────── */
  @media (max-width: 960px) {
    .ibode-la-v2__hero,
    .ibode-la-v2__manifesto,
    .ibode-la-v2__figures,
    .ibode-la-v2__programme,
    .ibode-la-v2__parcours,
    .ibode-la-v2__free,
    .ibode-la-v2__tarifs,
    .ibode-la-v2__quote,
    .ibode-la-v2__news,
    .ibode-la-v2__colophon {
      padding-left: 24px;
      padding-right: 24px;
    }
    .ibode-la-v2__news-grid { grid-template-columns: 1fr; gap: 40px; }
    .ibode-la-v2__news-form { padding: 24px; }
    .ibode-la-v2__free::before { left: 24px; right: 24px; }
.ibode-la-v2__parcours { padding: 56px 24px 64px; }
    .ibode-la-v2__parcours-grid { grid-template-columns: 1fr; gap: 16px; }
        .ibode-la-v2__free-grid { grid-template-columns: 1fr; gap: 40px; }
    .ibode-la-v2__free-preview { transform: none; }
    .ibode-la-v2__hero { grid-template-columns: 1fr; gap: 40px; padding-top: 40px; }
    .ibode-la-v2__media { aspect-ratio: 4/3; }
    .ibode-la-v2__manifesto-body { grid-template-columns: 1fr; gap: 0; }
    .ibode-la-v2__figures { grid-template-columns: repeat(2, 1fr); gap: 36px; }
    .ibode-la-v2__prog-item {
      grid-template-columns: 40px 1fr;
      grid-template-rows: auto auto auto;
      row-gap: 10px;
    }
    .ibode-la-v2__prog-desc { grid-column: 2; }
    .ibode-la-v2__prog-stat { grid-column: 2; }
    .ibode-la-v2__tarifs-grid { grid-template-columns: 1fr; }
    .ibode-la-v2__colophon { grid-template-columns: 1fr; text-align: center; gap: 16px; }
    .ibode-la-v2__colo-nav { justify-self: center; }
  }

  /* ────────── REVEAL (progressive enhancement, SEO-safe) ────────── */
  .ibode-la-v2 .reveal {
    transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .ibode-la-v2--js .reveal {
    opacity: 0;
    transform: translateY(24px);
  }
  .ibode-la-v2 .reveal.in { opacity: 1; transform: translateY(0); }
  @media (prefers-reduced-motion: reduce) {
    .ibode-la-v2 .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  }
