
  :root {
    --teal: #03969e;
    --teal-dark: #026e74;
    --gold: #C9A96A;
    --white: #ffffff;
    --cream: #faf8f3;
    --border: rgba(201,169,106,0.22);
    --border-teal: rgba(3,150,158,0.18);
    --text-dark: #1a1208;
    --text-body: #4a3e2a;
    --text-muted: #8a7a5e;
  }
  .lv-pv-cn * { box-sizing: border-box; margin: 0; padding: 0; }
  .lv-pv-cn [hidden] { display: none !important; }
  .lv-pv-cn {
    font-family: 'Lato', sans-serif;
    background: var(--cream);
    color: var(--text-dark);
    overflow-x: hidden;
  }
  /* HERO */
  .lv-pvcn-hero {
    background: var(--cream);
    border-bottom: 1px solid var(--border);
    padding: 100px 40px 80px;
    position: relative;
    overflow: hidden;
  }
  .lv-pvcn-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse 55% 75% at 85% 20%, rgba(3,150,158,0.18) 0%, transparent 65%),
      radial-gradient(ellipse 40% 50% at 5% 85%, rgba(201,169,106,0.08) 0%, transparent 60%);
    pointer-events: none;
  }
  .lv-pvcn-hero-ghost {
    position: absolute;
    right: -40px; top: 50%;
    transform: translateY(-50%);
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: clamp(200px, 26vw, 380px);
    color: rgba(3,150,158,0.04);
    line-height: 1;
    pointer-events: none;
    user-select: none;
  }
  .lv-pvcn-hero-inner {
    max-width: 860px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }
  .lv-pvcn-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #7a5a20;
    background: rgba(201,169,106,0.1);
    border: 1px solid rgba(201,169,106,0.3);
    padding: 8px 16px;
    margin-bottom: 28px;
  }
  .lv-pvcn-badge-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--gold);
    animation: lvpulse 2s ease-in-out infinite;
    flex-shrink: 0;
  }
  @keyframes lvpulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
  }
  @media (prefers-reduced-motion: reduce) {
    .lv-pvcn-badge-dot { animation: none; }
    .lv-pv-cn * { transition: none !important; }
  }
  .lv-pvcn-hero h1 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: clamp(36px, 5.5vw, 54px);
    line-height: 1.08;
    color: var(--text-dark);
    margin-bottom: 14px;
    letter-spacing: -0.02em;
    max-width: 860px;
  }
  .lv-pvcn-hero h1 em { font-style: normal; color: var(--teal); }
  .lv-pvcn-hero-sub {
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 300;
    line-height: 1.85;
    color: var(--text-body);
    max-width: 640px;
    margin-bottom: 40px;
  }
  .lv-pvcn-hero-sub strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-hero-specs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 36px;
  }
  .lv-pvcn-spec {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-dark);
    background: var(--white);
    border: 1px solid var(--border);
    padding: 7px 14px;
  }
  .lv-pvcn-spec.gold {
    color: #7a5a20;
    background: rgba(201,169,106,0.12);
    border-color: rgba(201,169,106,0.35);
  }
  /* PRIX BARRE */
  .lv-pvcn-strike {
    color: var(--text-muted);
    text-decoration: line-through;
    font-weight: 400;
    white-space: nowrap;
  }
  .lv-pvcn-price-hero {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 28px;
  }
  .lv-pvcn-price-hero .lv-pvcn-strike { font-size: 20px; }
  .lv-pvcn-price-hero-now {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: clamp(34px, 5vw, 48px);
    color: var(--teal);
    line-height: 1;
  }
  .lv-pvcn-price-hero-meta {
    font-size: 13px;
    font-weight: 400;
    color: var(--text-body);
    line-height: 1.5;
  }
  .lv-pvcn-price-hero-meta strong { font-weight: 700; color: var(--text-dark); }
  /* BOUTONS */
  .lv-pvcn-btn {
    display: inline-block;
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--text-dark);
    background: var(--gold);
    padding: 18px 44px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
  }
  .lv-pvcn-btn:hover { background: #d4b57a; transform: translateY(-2px); }
  .lv-pvcn-btn:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
  .lv-pvcn-btn.teal { background: var(--teal); color: #ffffff; }
  .lv-pvcn-btn.teal:hover { background: var(--teal-dark); }
  .lv-pvcn-btn.teal:focus-visible { outline-color: var(--gold); }
  .lv-pvcn-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
  }
  .lv-pvcn-link2 {
    font-size: 14px;
    font-weight: 400;
    color: var(--teal);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .lv-pvcn-link2:hover { color: var(--teal-dark); }
  .lv-pvcn-divider { height: 1px; background: var(--border); }
  /* PASTILLE CODE PROMO */
  .lv-pvcn-codechip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #7a5a20;
    background: rgba(201,169,106,0.16);
    border: 1px dashed rgba(201,169,106,0.75);
    padding: 6px 12px;
    white-space: nowrap;
  }
  .lv-pvcn-copy {
    font-family: 'Lato', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--teal);
    background: transparent;
    border: 1px solid var(--border-teal);
    padding: 4px 8px;
    cursor: pointer;
    transition: all 0.2s ease;
  }
  .lv-pvcn-copy:hover { background: rgba(3,150,158,0.08); }
  .lv-pvcn-copy:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
  /* SECTIONS */
  .lv-pvcn-section {
    padding: 80px 40px;
    /* 940 et non 860 : la page est en border-box, le padding est donc COMPRIS
       dans max-width. A 860 le contenu ne faisait que 780px, alors que les
       sections blanches portent leur padding sur la section et laissent leur
       -inner a 860 pleins. Les blocs sur fond creme etaient donc 40px plus
       etroits de chaque cote que ceux sur fond blanc (constate le 18/09).
       940 - 2x40 = 860 : une seule et meme colonne sur toute la page. */
    max-width: 940px;
    margin: 0 auto;
  }
  .lv-pvcn-section-white {
    background: var(--white);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 80px 40px;
  }
  .lv-pvcn-section-white-inner { max-width: 860px; margin: 0 auto; }
  .lv-pvcn-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .lv-pvcn-label::before {
    content: '';
    display: block;
    width: 24px;
    height: 1px;
    background: var(--gold);
  }
  .lv-pvcn-title {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: clamp(26px, 3.5vw, 42px);
    line-height: 1.15;
    color: var(--text-dark);
    margin-bottom: 24px;
  }
  .lv-pvcn-title em { font-style: normal; color: var(--teal); }
  .lv-pvcn-body p {
    font-size: 17px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--text-body);
    margin-bottom: 24px;
  }
  .lv-pvcn-body p:last-child { margin-bottom: 0; }
  .lv-pvcn-body p strong { font-weight: 700; color: var(--text-dark); }
  /* POUR QUI */
  /* DEUX PROFILS */
  .lv-pvcn-profiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px;
    margin-top: 32px;
    background: var(--border);
    border: 1px solid var(--border);
  }
  .lv-pvcn-profile {
    background: var(--white);
    padding: 28px 28px 26px;
    position: relative;
  }
  .lv-pvcn-profile::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 3px;
  }
  .lv-pvcn-profile.deja::before { background: var(--teal); }
  .lv-pvcn-profile.lance::before { background: var(--gold); }
  .lv-pvcn-profile-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 10px;
  }
  .lv-pvcn-profile.deja .lv-pvcn-profile-tag { color: var(--teal); }
  .lv-pvcn-profile.lance .lv-pvcn-profile-tag { color: #8a6020; }
  .lv-pvcn-profile h3,
  .lv-pvcn-profile h4 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 21px;
    line-height: 1.25;
    color: var(--text-dark);
    margin-bottom: 10px;
  }
  .lv-pvcn-profile p {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    margin: 0;
  }
  .lv-pvcn-profile p strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-for-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-top: 44px;
    margin-bottom: -14px;
  }
  .lv-pvcn-for-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 32px;
  }
  .lv-pvcn-for-item {
    padding: 20px 24px;
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 3px solid var(--teal);
    font-size: 15px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-body);
    transition: box-shadow 0.3s ease;
  }
  .lv-pvcn-for-item:hover { box-shadow: 0 4px 16px rgba(3,150,158,0.06); }
  .lv-pvcn-for-item strong { font-weight: 700; color: var(--text-dark); display: block; margin-bottom: 4px; }
  /* QUI JE SUIS */
  .lv-pvcn-about {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 48px;
    align-items: start;
    margin-top: 32px;
  }
  .lv-pvcn-about-media { position: sticky; top: 40px; }
  .lv-pvcn-about-media img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid var(--border);
  }
  .lv-pvcn-about-media::after {
    content: '';
    position: absolute;
    left: -10px; bottom: -10px;
    width: 70px; height: 70px;
    border-left: 3px solid var(--gold);
    border-bottom: 3px solid var(--gold);
    pointer-events: none;
  }
  .lv-pvcn-about-text p {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--text-body);
    margin-bottom: 20px;
  }
  .lv-pvcn-about-text p strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-about-quote {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 20px;
    line-height: 1.5;
    color: var(--teal);
    border-left: 3px solid var(--gold);
    padding: 4px 0 4px 20px;
    margin: 28px 0;
  }
  .lv-pvcn-creds {
    display: grid;
    /* Deux colonnes depuis que le groupe « Approche holistique » est renvoye sur la
       page A propos : a trois colonnes pour deux blocs, il resterait une case vide,
       exactement le trou corrige dans « Ce qui est inclus ». */
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    background: var(--border);
    border: 1px solid var(--border);
    margin-top: 32px;
  }
  .lv-pvcn-cred {
    background: var(--white);
    padding: 20px 22px;
  }
  .lv-pvcn-cred-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--teal);
    margin-bottom: 10px;
  }
  .lv-pvcn-cred ul { list-style: none; }
  .lv-pvcn-cred li {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.6;
    color: var(--text-body);
    padding: 4px 0 4px 14px;
    position: relative;
  }
  .lv-pvcn-cred li::before {
    content: '';
    position: absolute;
    left: 0; top: 12px;
    width: 5px; height: 5px;
    background: var(--gold);
  }
  .lv-pvcn-about-more {
    font-size: 14px;
    font-weight: 300;
    color: var(--text-muted);
    margin-top: 20px;
  }
  .lv-pvcn-about-more a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  /* THEMATIQUES */
  .lv-pvcn-sessions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    margin-top: 32px;
    /* Pas de align-items ici : l'étirement des cellules sur la plus haute est
       VOULU, il aligne le bas des deux blocs d'une rangée. Le bloc blanc du
       18/09 venait de ce qu'on pouvait déplier une thématique sans sa voisine ;
       c'est réglé dans lv-pvcn.js, qui les déplie par paires. */
  }
  .lv-pvcn-sess {
    background: var(--white);
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .lv-pvcn-sess-header {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border);
    position: relative;
  }
  .lv-pvcn-sess-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 3px;
  }
  .lv-pvcn-sess:nth-child(1) .lv-pvcn-sess-header::before { background: #03969e; }
  .lv-pvcn-sess:nth-child(2) .lv-pvcn-sess-header::before { background: #5ab8bc; }
  .lv-pvcn-sess:nth-child(3) .lv-pvcn-sess-header::before { background: var(--gold); }
  .lv-pvcn-sess:nth-child(4) .lv-pvcn-sess-header::before { background: #a07c3a; }
  .lv-pvcn-sess-num {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--teal);
    margin-bottom: 6px;
  }
  .lv-pvcn-sess-header h3,
  .lv-pvcn-sess-header h4 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 20px;
    color: var(--text-dark);
    line-height: 1.2;
    margin-bottom: 6px;
  }
  .lv-pvcn-sess-meta {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-muted);
    letter-spacing: 0.04em;
  }
  .lv-pvcn-sess-body { padding: 20px 24px; flex-grow: 1; }
  .lv-pvcn-module {
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
  .lv-pvcn-module:last-child { border-bottom: none; padding-bottom: 0; }
  .lv-pvcn-module-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 3px;
  }
  .lv-pvcn-module-num {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--teal);
    flex-shrink: 0;
    background: rgba(3,150,158,0.07);
    padding: 2px 6px;
  }
  .lv-pvcn-module-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-dark);
    line-height: 1.4;
  }
  .lv-pvcn-module-desc {
    font-size: 12px;
    font-weight: 300;
    line-height: 1.65;
    color: var(--text-muted);
  }
  /* FORMAT HYBRIDE */
  .lv-pvcn-hybrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 32px;
  }
  .lv-pvcn-hybrid-item {
    padding: 32px 28px;
    background: var(--cream);
    border: 1px solid var(--border);
    position: relative;
    overflow: hidden;
  }
  .lv-pvcn-hybrid-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 3px;
  }
  .lv-pvcn-hybrid-item.elearning::before { background: var(--gold); }
  .lv-pvcn-hybrid-item.visio::before { background: var(--teal); }
  .lv-pvcn-hybrid-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    margin-bottom: 12px;
  }
  .lv-pvcn-hybrid-item.elearning .lv-pvcn-hybrid-tag { color: #8a6020; }
  .lv-pvcn-hybrid-item.visio .lv-pvcn-hybrid-tag { color: var(--teal); }
  .lv-pvcn-hybrid-item h4 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 20px;
    color: var(--text-dark);
    margin-bottom: 12px;
  }
  .lv-pvcn-hybrid-item p {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-muted);
    margin: 0 0 12px;
  }
  .lv-pvcn-hybrid-item p:last-child { margin-bottom: 0; }
  .lv-pvcn-hybrid-item p strong { font-weight: 700; color: var(--text-dark); }
  /* CE QUI EST INCLUS */
  .lv-pvcn-incl {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    margin-top: 32px;
    background: var(--border);
    border: 1px solid var(--border);
  }
  .lv-pvcn-incl-item {
    background: var(--white);
    padding: 26px 26px 24px;
  }
  .lv-pvcn-incl-item.wide { grid-column: 1 / -1; }
  .lv-pvcn-incl-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 10px;
  }
  .lv-pvcn-incl-item h3,
  .lv-pvcn-incl-item h4 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 19px;
    line-height: 1.25;
    color: var(--text-dark);
    margin-bottom: 8px;
  }
  .lv-pvcn-incl-item p {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-body);
    margin: 0;
  }
  .lv-pvcn-incl-item p strong { font-weight: 700; color: var(--text-dark); }
  /* CTA MILIEU */
  .lv-pvcn-mid-cta {
    background: var(--white);
    border: 1px solid var(--border-teal);
    border-left: 4px solid var(--teal);
    padding: 32px 36px;
    margin-top: 40px;
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
  }
  .lv-pvcn-mid-cta-text { flex-grow: 1; flex-basis: 320px; }
  .lv-pvcn-mid-cta-text p {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-body);
    margin: 0;
  }
  .lv-pvcn-mid-cta-text p strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-mid-cta-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--teal);
    margin-bottom: 8px;
    display: block;
  }
  .lv-pvcn-mid-cta-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  /* TEMOIGNAGES */
  .lv-pvcn-testi-note {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    background: rgba(3,150,158,0.05);
    border: 1px solid var(--border-teal);
    padding: 16px 18px;
    margin-top: 8px;
  }
  .lv-pvcn-testi-note strong { font-weight: 700; color: var(--text-dark); }
  /* Le theme applique « p:not(.has-background):last-of-type { padding-bottom: 0 } »,
     plus specifique que la regle ci-dessus : l'encart avait donc 16px de padding en
     haut et 0 en bas, son texte colle au bord inferieur. Invisible tant que le texte
     faisait trois lignes, flagrant depuis qu'il n'en fait plus qu'une (etape 6).
     Le :last-of-type ici ne restreint rien : il ne fait qu'egaler la regle du theme
     sur le seul cas ou elle s'applique. */
  .lv-pv-cn .lv-pvcn-testi-note:last-of-type { padding-bottom: 16px; }
  .lv-pvcn-testis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;
  }
  .lv-pvcn-testi {
    background: var(--white);
    border: 1px solid var(--border);
    border-top: 3px solid var(--gold);
    padding: 26px 24px;
    display: flex;
    flex-direction: column;
  }
  .lv-pvcn-testi-stars {
    color: var(--gold);
    font-size: 14px;
    letter-spacing: 3px;
    margin-bottom: 14px;
  }
  .lv-pvcn-testi blockquote {
    font-size: 14px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.8;
    color: var(--text-body);
    flex-grow: 1;
    margin-bottom: 18px;
    /* Le theme pose « blockquote { border-left: 5px solid; padding-left: 20px } ».
       Notre propre reset « .lv-pv-cn * { padding: 0 } » est plus specifique : il
       annulait le padding en laissant le trait, qui se retrouvait colle au texte
       (signale par Laure le 18/09). On rend au filet sa respiration.
       La citation de « Qui vous forme » n'etait pas concernee : elle declare son
       propre padding. */
    padding-left: 18px;
  }
  .lv-pvcn-testi figcaption {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-dark);
    padding-top: 14px;
    border-top: 1px solid var(--border);
  }
  .lv-pvcn-testi figcaption span {
    display: block;
    font-size: 11px;
    font-weight: 400;
    font-style: italic;
    color: var(--text-muted);
    margin-top: 3px;
  }
  /* STATS */
  .lv-pvcn-prog-stats {
    display: flex;
    gap: 0;
    margin-bottom: 32px;
    border: 1px solid var(--border);
    background: var(--white);
    overflow: hidden;
  }
  .lv-pvcn-prog-stat {
    flex: 1;
    padding: 20px 16px;
    text-align: center;
    border-right: 1px solid var(--border);
  }
  .lv-pvcn-prog-stat:last-child { border-right: none; }
  .lv-pvcn-prog-stat-n {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 32px;
    color: var(--teal);
    line-height: 1;
    margin-bottom: 4px;
  }
  .lv-pvcn-prog-stat-l {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-muted);
    letter-spacing: 0.06em;
  }
  /* INVESTISSEMENT */
  .lv-pvcn-pricing-section {
    background: var(--white);
    /* 1px comme toutes les sections blanches de la page, et non plus un bandeau
       turquoise de 4px : c'etait le seul separateur de ce poids, il criait bien plus
       fort que les autres au moment ou l'on parle d'argent (signale par Laure). */
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 100px 40px;
    position: relative;
    overflow: hidden;
    scroll-margin-top: 80px;
  }
  .lv-pvcn-pricing-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse 50% 60% at 90% 10%, rgba(3,150,158,0.07) 0%, transparent 65%),
      radial-gradient(ellipse 40% 50% at 10% 90%, rgba(201,169,106,0.05) 0%, transparent 65%);
    pointer-events: none;
  }
  .lv-pvcn-pricing-inner {
    max-width: 860px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }
  .lv-pvcn-pricing-header { margin-bottom: 40px; }
  .lv-pvcn-pricing-header .lv-pvcn-label { color: var(--teal); }
  .lv-pvcn-pricing-header .lv-pvcn-label::before { background: var(--teal); }
  .lv-pvcn-pricing-header .lv-pvcn-title { font-size: clamp(28px, 4.2vw, 46px); margin-bottom: 20px; }
  .lv-pvcn-pricing-lead {
    font-size: 17px;
    font-weight: 300;
    line-height: 1.85;
    color: var(--text-body);
    max-width: 620px;
  }
  .lv-pvcn-pricing-lead strong { font-weight: 700; color: var(--text-dark); }
  /* ENCART CODE DU MOIS */
  .lv-pvcn-codebox {
    background: var(--cream);
    border: 1px solid rgba(201,169,106,0.45);
    border-left: 4px solid var(--gold);
    padding: 28px 30px;
    margin: 32px 0 8px;
  }
  .lv-pvcn-codebox-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #7a5a20;
    margin-bottom: 14px;
  }
  .lv-pvcn-codebox-price {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 14px;
  }
  .lv-pvcn-codebox-price .lv-pvcn-strike { font-size: 24px; }
  .lv-pvcn-codebox-now {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 46px;
    line-height: 1;
    color: var(--teal);
  }
  .lv-pvcn-codebox-save {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #ffffff;
    background: var(--teal);
    padding: 6px 12px;
  }
  .lv-pvcn-codebox-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
  }
  .lv-pvcn-codebox-row-label {
    font-size: 14px;
    font-weight: 400;
    color: var(--text-body);
  }
  .lv-pvcn-codebox p.lv-pvcn-codebox-how {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-body);
    margin: 0;
  }
  .lv-pvcn-codebox p.lv-pvcn-codebox-how strong { font-weight: 700; color: var(--text-dark); }
  /* GRILLE */
  .lv-pvcn-ladder {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 32px 0 16px;
    border: 1px solid var(--border);
    background: var(--border);
  }
  .lv-pvcn-ladder-head,
  .lv-pvcn-ladder-row {
    display: grid;
    grid-template-columns: 1.4fr 1fr 0.9fr auto;
    gap: 16px;
    align-items: center;
    padding: 20px 24px;
    background: var(--white);
  }
  .lv-pvcn-ladder-head {
    padding: 12px 24px;
    background: var(--cream);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .lv-pvcn-ladder-row.is-past { opacity: 0.42; }
  .lv-pvcn-ladder-row.is-current { background: var(--teal); opacity: 1; }
  .lv-pvcn-ladder-period {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-dark);
  }
  .lv-pvcn-ladder-row.is-current .lv-pvcn-ladder-period { color: var(--white); }
  .lv-pvcn-ladder-code {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #7a5a20;
  }
  .lv-pvcn-ladder-row.is-current .lv-pvcn-ladder-code { color: rgba(255,255,255,0.95); }
  .lv-pvcn-ladder-code.none {
    font-weight: 400;
    letter-spacing: 0;
    font-style: italic;
    color: var(--text-muted);
  }
  .lv-pvcn-ladder-row.is-current .lv-pvcn-ladder-code.none { color: rgba(255,255,255,0.8); }
  .lv-pvcn-ladder-price {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 26px;
    color: var(--teal);
    text-align: right;
  }
  .lv-pvcn-ladder-row.is-current .lv-pvcn-ladder-price { color: var(--white); }
  .lv-pvcn-ladder-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--white);
    background: rgba(255,255,255,0.22);
    border: 1px solid rgba(255,255,255,0.28);
    padding: 5px 10px;
    white-space: nowrap;
  }
  .lv-pvcn-ladder-tag:empty { display: none; }
  .lv-pvcn-ladder-foot {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-muted);
    margin-bottom: 40px;
  }
  /* COMPARATIF « ici / ailleurs »
     Mêmes conventions que la grille tarifaire juste au-dessus : conteneur en flex
     avec un gap de 2px sur fond --border, qui dessine les filets, en-tete en creme
     et lignes sur fond blanc. C'est ce qui fait que le bloc appartient a la page. */
  .lv-pvcn-vs {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 32px 0 14px;
    border: 1px solid var(--border);
    background: var(--border);
  }
  .lv-pvcn-vs-head,
  .lv-pvcn-vs-row {
    display: grid;
    grid-template-columns: 0.8fr 1.1fr 1fr;
    gap: 16px;
    /* start et non center : les deux colonnes n'ont jamais le meme nombre de lignes,
       un alignement sur le haut se lit mieux qu'un centrage flottant. */
    align-items: start;
    padding: 20px 24px;
    background: var(--white);
  }
  .lv-pvcn-vs-head {
    padding: 12px 24px;
    background: var(--cream);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .lv-pvcn-vs-head .lv-pvcn-vs-here { color: var(--teal); font-size: 10px; }
  .lv-pvcn-vs-head .lv-pvcn-vs-other { font-size: 10px; font-weight: 700; }
  .lv-pvcn-vs-crit {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-dark);
  }
  .lv-pvcn-vs-here {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--text-dark);
  }
  .lv-pvcn-vs-here strong { color: var(--teal); }
  .lv-pvcn-vs-here a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  .lv-pvcn-vs-other {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.6;
    color: var(--text-muted);
  }
  .lv-pvcn-vs-foot {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.7;
    font-style: italic;
    color: var(--text-muted);
  }
  /* FORMULAIRE */
  .lv-pvcn-form-card {
    background: var(--white);
    border: 1px solid var(--border);
    padding: 40px;
    margin-top: 8px;
    position: relative;
    overflow: hidden;
  }
  .lv-pvcn-form-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 4px;
    background: var(--gold);
  }
  .lv-pvcn-form-card h3 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 26px;
    line-height: 1.2;
    color: var(--text-dark);
    margin-bottom: 10px;
  }
  .lv-pvcn-form-card h3 em { font-style: normal; color: var(--teal); }
  .lv-pvcn-form-intro {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-body);
    margin-bottom: 24px;
  }
  .lv-pvcn-form-terms {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-body);
    background: rgba(3,150,158,0.06);
    border: 1px solid var(--border-teal);
    padding: 14px 16px;
    margin-bottom: 24px;
  }
  .lv-pvcn-form-terms strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 20px;
  }
  .lv-pvcn-field { display: flex; flex-direction: column; }
  .lv-pvcn-field.full { grid-column: 1 / -1; }
  .lv-pvcn-field label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-body);
    margin-bottom: 7px;
  }
  .lv-pvcn-field label .opt {
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-muted);
    font-style: italic;
  }
  .lv-pvcn-field input {
    font-family: 'Lato', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: var(--text-dark);
    background: var(--cream);
    border: 1px solid var(--border);
    padding: 13px 14px;
    width: 100%;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
  }
  .lv-pvcn-field input::placeholder { color: var(--text-muted); font-weight: 300; }
  .lv-pvcn-field input:focus {
    outline: none;
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(3,150,158,0.12);
  }
  .lv-pvcn-field-help {
    font-size: 12px;
    font-weight: 300;
    line-height: 1.55;
    color: var(--text-muted);
    margin-top: 6px;
  }
  .lv-pvcn-consent {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    background: rgba(3,150,158,0.05);
    border: 1px solid var(--border-teal);
    padding: 16px 18px;
    margin-bottom: 24px;
  }
  .lv-pvcn-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
    accent-color: var(--teal);
    cursor: pointer;
  }
  .lv-pvcn-consent input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
  }
  .lv-pvcn-consent label {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-body);
    cursor: pointer;
  }
  .lv-pvcn-consent label strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-consent label a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  .lv-pvcn-form-error {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
    color: #8a2f2f;
    background: rgba(138,47,47,0.06);
    border: 1px solid rgba(138,47,47,0.25);
    padding: 12px 14px;
    margin-top: 16px;
  }
  .lv-pvcn-form-error a { color: #8a2f2f; text-decoration: underline; text-underline-offset: 3px; }
  .lv-pvcn-btn[disabled] { opacity: 0.6; cursor: wait; transform: none; }
  .lv-pvcn-form-note {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-muted);
    font-style: italic;
    margin-top: 16px;
  }
  .lv-pvcn-form-alt {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.7;
    color: var(--text-body);
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
  }
  .lv-pvcn-form-alt a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  .lv-pvcn-hp {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
  }
  /* FAQ */
  .lv-pvcn-faq { margin-top: 32px; border-top: 1px solid var(--border); }
  .lv-pvcn-faq details {
    border-bottom: 1px solid var(--border);
    background: var(--white);
  }
  .lv-pvcn-faq summary {
    list-style: none;
    cursor: pointer;
    padding: 22px 52px 22px 24px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--text-dark);
    position: relative;
    transition: background 0.2s ease;
  }
  .lv-pvcn-faq summary::-webkit-details-marker { display: none; }
  .lv-pvcn-faq summary:hover { background: rgba(3,150,158,0.04); }
  .lv-pvcn-faq summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
  .lv-pvcn-faq summary::after {
    content: '';
    position: absolute;
    right: 24px; top: 50%;
    width: 11px; height: 11px;
    border-right: 2px solid var(--teal);
    border-bottom: 2px solid var(--teal);
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.25s ease;
  }
  .lv-pvcn-faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
  .lv-pvcn-faq-answer {
    padding: 0 24px 24px;
    font-size: 15px;
    font-weight: 300;
    line-height: 1.85;
    color: var(--text-body);
  }
  .lv-pvcn-faq-answer p { margin-bottom: 14px; }
  .lv-pvcn-faq-answer p:last-child { margin-bottom: 0; }
  .lv-pvcn-faq-answer strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-faq-answer a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  /* AUTODIAGNOSTIC */
  .lv-pvcn-diag {
    background: var(--cream);
    border-top: 1px solid var(--border);
    padding: 72px 40px;
  }
  /* Le lien vers l'autre formation ferme la page, sous l'autodiagnostic : s'inscrire,
     sinon se diagnostiquer, sinon aller voir ailleurs. Il s'aligne sur la meme colonne
     de 860px que l'encart au-dessus, et reprend le style discret qu'il avait dans le
     bloc « Derniere ligne droite » — ou il etait centre par la section elle-meme. */
  .lv-pvcn-diag-more {
    max-width: 860px;
    margin: 24px auto 0;
    font-size: 13px;
    font-weight: 300;
    font-style: italic;
    line-height: 1.7;
    color: var(--text-muted);
    text-align: center;
  }
  .lv-pvcn-diag-more a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  .lv-pvcn-diag-inner {
    max-width: 860px;
    margin: 0 auto;
    background: var(--white);
    border: 1px solid var(--border);
    border-left: 4px solid var(--gold);
    padding: 40px;
    display: flex;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
  }
  .lv-pvcn-diag-text { flex: 1 1 380px; }
  .lv-pvcn-diag-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 12px;
  }
  .lv-pvcn-diag-text h3 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: 25px;
    line-height: 1.25;
    color: var(--text-dark);
    margin-bottom: 12px;
  }
  .lv-pvcn-diag-text h3 em { font-style: normal; color: var(--teal); }
  .lv-pvcn-diag-text p {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    margin: 0;
  }
  .lv-pvcn-diag-action {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    flex-shrink: 0;
  }
  .lv-pvcn-diag-note {
    font-size: 12px;
    font-weight: 300;
    font-style: italic;
    color: var(--text-muted);
    line-height: 1.5;
  }
  /* CTA FINAL */
  .lv-pvcn-cta-final {
    padding: 80px 40px;
    background: var(--white);
    border-top: 1px solid var(--border);
    text-align: center;
    position: relative;
    overflow: hidden;
  }
  .lv-pvcn-cta-final::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(201,169,106,0.05) 0%, transparent 70%);
    pointer-events: none;
  }
  .lv-pvcn-cta-final-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }
  .lv-pvcn-cta-final .lv-pvcn-label { justify-content: center; }
  .lv-pvcn-cta-final .lv-pvcn-label::before { display: none; }
  .lv-pvcn-cta-final h2 {
    font-family: 'ZCOOL XiaoWei', serif;
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.15;
    color: var(--text-dark);
    margin-bottom: 16px;
  }
  .lv-pvcn-cta-final h2 em { font-style: normal; color: var(--teal); }
  .lv-pvcn-cta-final p {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    margin-bottom: 28px;
  }
  .lv-pvcn-cta-final p strong { font-weight: 700; color: var(--text-dark); }
  .lv-pvcn-cta-final .lv-pvcn-actions { justify-content: center; }
  .lv-pvcn-cta-note {
    font-size: 13px;
    font-weight: 300;
    color: var(--text-muted);
    font-style: italic;
    margin-top: 24px;
  }
  /* RESPONSIVE */
  @media (max-width: 900px) {
    .lv-pvcn-about { grid-template-columns: 1fr; gap: 32px; }
    .lv-pvcn-about-media { max-width: 300px; position: relative; top: auto; }
    .lv-pvcn-creds { grid-template-columns: 1fr; }
    .lv-pvcn-testis { grid-template-columns: 1fr; }
  }
  @media (max-width: 768px) {
    .lv-pvcn-hero { padding: 70px 24px 60px; }
    .lv-pvcn-hero-ghost { display: none; }
    .lv-pvcn-section { padding: 60px 24px; }
    .lv-pvcn-section-white { padding: 60px 24px; }
    .lv-pvcn-sessions { grid-template-columns: 1fr; }
    .lv-pvcn-hybrid { grid-template-columns: 1fr; }
    .lv-pvcn-incl { grid-template-columns: 1fr; }
    .lv-pvcn-for-grid { grid-template-columns: 1fr; }
    .lv-pvcn-profiles { grid-template-columns: 1fr; }
    .lv-pvcn-for-label { margin-top: 36px; }
    .lv-pvcn-prog-stats { flex-wrap: wrap; }
    .lv-pvcn-prog-stat { flex: 1 1 45%; border-bottom: 1px solid var(--border); }
    .lv-pvcn-pricing-section { padding: 70px 24px; }
    .lv-pvcn-mid-cta { padding: 24px; gap: 20px; }
    .lv-pvcn-mid-cta-action { width: 100%; }
    .lv-pvcn-mid-cta-action .lv-pvcn-btn { width: 100%; text-align: center; }
    .lv-pvcn-cta-final { padding: 60px 24px; }
    .lv-pvcn-cta-final .lv-pvcn-btn { width: 100%; text-align: center; }
    .lv-pvcn-ladder-head { display: none; }
    .lv-pvcn-ladder-row { grid-template-columns: 1fr; gap: 6px; text-align: left; }
    .lv-pvcn-ladder-price { text-align: left; }
    /* Comparatif : les trois colonnes s'empilent. On masque l'en-tete, MAIS chaque
       cellule reprend alors son libelle de colonne — sans quoi on ne saurait plus
       laquelle des deux reponses est celle de la formation. */
    .lv-pvcn-vs-head { display: none; }
    .lv-pvcn-vs-row { grid-template-columns: 1fr; gap: 12px; }
    .lv-pvcn-vs-here::before,
    .lv-pvcn-vs-other::before {
      content: attr(data-label);
      display: block;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 4px;
    }
    .lv-pvcn-vs-here::before { color: var(--teal); }
    .lv-pvcn-ladder-tag { justify-self: start; }
    .lv-pvcn-codebox { padding: 24px 20px; }
    .lv-pvcn-codebox-now { font-size: 38px; }
    .lv-pvcn-form-card { padding: 26px 20px; }
    .lv-pvcn-fields { grid-template-columns: 1fr; }
    .lv-pvcn-form-card .lv-pvcn-btn { width: 100%; text-align: center; }
    .lv-pvcn-hero .lv-pvcn-btn { width: 100%; text-align: center; }
    .lv-pvcn-actions { gap: 16px; }
    .lv-pvcn-faq summary { font-size: 15px; padding: 20px 46px 20px 18px; }
    .lv-pvcn-faq-answer { padding: 0 18px 20px; }
    .lv-pvcn-diag { padding: 50px 24px; }
    .lv-pvcn-diag-inner { padding: 28px 24px; gap: 24px; }
    .lv-pvcn-diag-action { width: 100%; }
    .lv-pvcn-diag-action .lv-pvcn-btn { width: 100%; text-align: center; }
  }
h2.lv-pvcn-title { font-weight: 400; font-family: 'ZCOOL XiaoWei', serif; }.lv-pvcn-module-title { font-size: 13px; font-weight: 700; line-height: 1.4; }.lv-pvcn-faq summary h3 { display: inline; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; color: inherit; letter-spacing: inherit; }
  /* Sauts de ligne du H1 : découpe maîtrisée en desktop, texte libre en mobile
     (sinon les coupures forcées produisent des lignes absurdes sur écran étroit). */
  @media (max-width: 768px) {
    .lv-pvcn-hero h1 br.lv-br { display: none; }
  }

  /* Échelle des tarifs : total en grand, mensualité en petit dessous (proposition du 17/09). */
  .lv-pvcn-ladder-month {
    display: block;
    margin-top: 2px;
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.02em;
    color: var(--text-muted);
  }
  .lv-pvcn-ladder-row.is-current .lv-pvcn-ladder-month { color: rgba(255,255,255,0.85); }

  /* Lot E — photos de la séance 2026, même traitement que la photo « Qui vous forme »
     (bordure fine + équerre dorée), placée en miroir côté droit. */
  .lv-pvcn-prog-intro {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 40px;
    align-items: center;
    margin-bottom: 32px;
  }
  .lv-pvcn-photo { position: relative; }
  .lv-pvcn-photo img { display: block; width: 100%; height: auto; border: 1px solid var(--border); }
  .lv-pvcn-photo::after {
    content: '';
    position: absolute;
    right: -10px;
    bottom: -10px;
    width: 60px;
    height: 60px;
    border-right: 3px solid var(--gold);
    border-bottom: 3px solid var(--gold);
    pointer-events: none;
  }
  .lv-pvcn-photo--center { max-width: 340px; margin: 48px auto 0; }
  .lv-pvcn-incl-item p a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
  @media (max-width: 768px) {
    .lv-pvcn-prog-intro { grid-template-columns: 1fr; gap: 24px; }
    .lv-pvcn-prog-intro .lv-pvcn-photo { max-width: 300px; }
  }

  /* Refonte étape 2 — thématiques dépliables.
     Le conteneur repasse en block : display:flex casserait le dépliage natif.
     L'en-tête est déjà en position relative, la flèche s'y ancre comme dans la FAQ. */
  details.lv-pvcn-sess { display: block; }
  .lv-pvcn-sess > summary.lv-pvcn-sess-header {
    cursor: pointer;
    list-style: none;
    padding-right: 46px;
    transition: background 0.2s ease;
  }
  .lv-pvcn-sess > summary::-webkit-details-marker { display: none; }
  .lv-pvcn-sess > summary:hover { background: rgba(3,150,158,0.04); }
  .lv-pvcn-sess > summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
  .lv-pvcn-sess > summary::after {
    content: '';
    position: absolute;
    right: 24px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--teal);
    border-bottom: 2px solid var(--teal);
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.2s ease;
  }
  .lv-pvcn-sess[open] > summary::after { transform: translateY(-30%) rotate(-135deg); }
  /* Ferme, l'en-tete occupe tout le bloc. Sans cela, une thematique dont le
     titre et la promesse tiennent chacun sur une seule ligne (la 3) avait un
     en-tete de 118px la ou les autres en font 162 : son trait de separation ne
     s'alignait pas avec celui de sa voisine de rangee, et 44px de blanc
     trainaient dessous (constate le 18/09). La grille etirant deja les cellules
     sur la plus haute, le bloc a une hauteur definie et le 100% se resout. */
  details.lv-pvcn-sess:not([open]) > summary.lv-pvcn-sess-header { height: 100%; }
  /* Les quatre en-tetes occupent la meme hauteur, qu'ils soient ouverts ou fermes :
     deux lignes reservees pour le titre, deux pour la promesse. Sans cela, une
     thematique dont le titre ET la promesse tiennent sur une seule ligne donnait un
     bloc plus court que ses voisines une fois FERME, et un trait de separation
     desaligne de celui de sa voisine de rangee une fois OUVERT — la regle height:100%
     ci-dessus ne corrige que l'etat ferme (signale le 18/09).
     Les valeurs suivent les line-height declares plus haut : 1.2 pour le titre,
     1.5 pour la promesse. En em, elles suivent la taille de police sans la figer. */
  .lv-pv-cn .lv-pvcn-sess-header h3,
  .lv-pv-cn .lv-pvcn-sess-header h4 { min-height: 2.4em; }
  .lv-pv-cn .lv-pvcn-sess-benefit { min-height: 3em; }
  .lv-pvcn-sess-benefit {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--teal);
    margin-top: 8px;
  }

  /* Images (02/10/2026, images-pages-vente/recettes/7584.js) : mêmes motifs que les autres pages de
     vente (hero sur image, image à côté d'un en-tête de section, appel final sur image). */
  .lv-pvcn-hero-photo { padding: 120px 40px 110px; }
  .lv-pvcn-hero-photo .lv-pvcn-hero-inner { max-width: 1100px; }
  .lv-pvcn-hero-photo .lv-pvcn-hero-inner > * { max-width: 580px; }
  .lv-pvcn-hero-photo h1 .lv-br { display: none; }
  .lv-pvcn-hero-media { position: absolute; top: 0; right: 0; bottom: 0; width: 54%; }
  .lv-pvcn-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
  .lv-pvcn-hero-media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--cream) 0%, rgba(250,248,243,0.6) 22%, rgba(250,248,243,0) 50%); }
  .lv-pvcn-head-photo { display: grid; grid-template-columns: 1fr 280px; gap: 40px; align-items: center; margin-bottom: 8px; }
  .lv-pvcn-head-photo .lv-pvcn-photo img { aspect-ratio: 4 / 3; object-fit: cover; }
  .lv-pvcn-prog-intro .lv-pvcn-photo img { aspect-ratio: 1 / 1; object-fit: cover; object-position: 48% center; }
  .lv-pvcn-cta-photo { padding: 130px 40px; }
  .lv-pvcn-cta-photo::before { display: none; }
  .lv-pvcn-cta-photo-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 50%; display: block; }
  .lv-pvcn-cta-photo::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 60% 75% at 50% 50%, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.78) 55%, rgba(255,255,255,0.55) 100%); }
  @media (max-width: 900px) {
    .lv-pvcn-hero-photo { padding: 0 0 60px; }
    .lv-pvcn-hero-photo .lv-pvcn-hero-inner { padding: 36px 40px 0; }
    .lv-pvcn-hero-media { position: relative; width: 100%; height: 280px; }
    .lv-pvcn-hero-media::after { background: linear-gradient(180deg, rgba(250,248,243,0) 65%, var(--cream) 100%); }
    .lv-pvcn-head-photo { grid-template-columns: 1fr; gap: 24px; }
    .lv-pvcn-head-photo .lv-pvcn-photo { max-width: 300px; }
  }
  @media (max-width: 768px) {
    .lv-pvcn-hero-photo .lv-pvcn-hero-inner { padding: 32px 24px 0; }
    .lv-pvcn-cta-photo { padding: 90px 24px; }
  }
