  /* Mise en page : univers sombre du sting de marque (noir, halo violet, néons), inspiré de visuvate.com.
     Titre centré + fenêtre de visio sous le titre, puis panneaux à coins arrondis. Un seul thème, sombre, assumé. */
  :root {
    color-scheme: dark;
    --bg: #08050D;
    --surface: #110B19;
    --surface-2: #181022;
    --line: #261B33;
    --line-strong: #3A2A4D;
    --text: #F6F1FB;
    --muted: #A99CBB;
    --faint: #75688A;
    --violet: #8B3DFF;
    --violet-brand: #6F15CB;
    --orchid: #CE3AF2;
    --live: #FF4D6D;
    --white: #FFFFFF;
    --on-white: #12081F;

    --sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --serif: "Instrument Serif", Georgia, "Times New Roman", serif;
    --radius: 16px;
    --radius-lg: 24px;

    /* Mouvement (skill motion-design, profil Premium) */
    --ease: cubic-bezier(0.4, 0, 0.2, 1);
    --t-quick: 150ms;
    --t-std: 350ms;
    --t-slow: 600ms;
  }

  *, *::before, *::after { box-sizing: border-box; }
  [hidden] { display: none !important; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--bg); }
  body {
    margin: 0; font-family: var(--sans); font-size: 16px; line-height: 1.6;
    color: var(--text); background: var(--bg);
    -webkit-font-smoothing: antialiased; -webkit-tap-highlight-color: transparent;
  }
  img, video, canvas { display: block; max-width: 100%; }
  a, button, summary { touch-action: manipulation; }
  a { color: inherit; }
  h1, h2, h3 { text-wrap: balance; }
  em { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -0.005em; }
  :focus-visible { outline: 2px solid var(--orchid); outline-offset: 3px; border-radius: 8px; }
  [id] { scroll-margin-top: 96px; }

  .wrap { max-width: 1180px; margin: 0 auto; padding-inline: 24px; }
  .visually-hidden {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  .skip-link {
    position: absolute; left: 16px; top: -60px; z-index: 60;
    background: var(--white); color: var(--on-white); padding: 10px 16px; border-radius: 999px;
    text-decoration: none; font-weight: 600;
  }
  .skip-link:focus { top: 12px; }

  /* ---------- Boutons ---------- */
  .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 48px; padding: 12px 22px; border-radius: 999px;
    font: inherit; font-weight: 600; font-size: 15px; line-height: 1.2; text-decoration: none; text-align: center;
    cursor: pointer; border: 1px solid transparent;
    transition: background-color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease);
  }
  .btn-lg { min-height: 54px; padding: 14px 26px; font-size: 16px; }
  .btn-light { background: var(--white); color: var(--on-white); }
  .btn-light:hover { background: #EBDDFB; }
  .btn-ghost { border-color: var(--line-strong); color: var(--text); background: rgba(255, 255, 255, .03); }
  .btn-ghost:hover { border-color: var(--orchid); }
  .btn-soft { background: rgba(255, 255, 255, .12); color: var(--text); }
  .btn-soft:hover { background: rgba(255, 255, 255, .2); }
  .btn svg { flex: none; }

  /* ---------- Menu flottant ---------- */
  .nav { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 12px); z-index: 40; padding-inline: 16px; margin-top: 12px; }
  .nav-inner {
    max-width: 980px; margin: 0 auto; display: flex; align-items: center; gap: 24px;
    padding: 8px 8px 8px 20px; border: 1px solid var(--line); border-radius: 999px;
    background: rgba(17, 11, 25, .74); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  }
  .nav-brand { display: inline-flex; align-items: center; min-height: 44px; line-height: 0; }
  .nav-brand img { width: 124px; height: auto; }
  .nav-links { display: flex; gap: 26px; margin: 0 0 0 auto; padding: 0; list-style: none; }
  .nav-links a { display: inline-flex; align-items: center; min-height: 40px; text-decoration: none; font-size: 14px; font-weight: 500; color: var(--muted); transition: color var(--t-quick) var(--ease); }
  .nav-links a:hover { color: var(--text); }
  .nav .btn { min-height: 40px; padding: 9px 18px; font-size: 14px; }
  .menu-toggle { display: none; margin-left: auto; }

  /* ---------- Haut de page ---------- */
  .hero { position: relative; overflow: hidden; padding-top: 72px; padding-bottom: 40px; margin-top: -72px; }
  .hero::before, .hero::after {
    content: ""; position: absolute; top: 0; bottom: 30%; width: 34vw; max-width: 480px; pointer-events: none;
    background: radial-gradient(60% 60% at 50% 40%, rgba(111, 21, 203, .55), transparent 70%);
    filter: blur(30px);
  }
  .hero::before { left: -14vw; }
  .hero::after { right: -14vw; }
  .sky { position: absolute; inset: 0; pointer-events: none; }
  .sky canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
  .hero .sky {
    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 88%);
    mask-image: linear-gradient(180deg, #000 55%, transparent 88%);
  }
  .hero-copy { position: relative; z-index: 1; text-align: center; padding-top: 140px; }
  .hero-copy::before {
    content: ""; position: absolute; inset: 90px -8% -30px; z-index: -1; pointer-events: none;
    background: radial-gradient(50% 50% at 50% 50%, rgba(8, 5, 13, .72), transparent 78%);
  }
  .hero-pill {
    display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 6px 14px; border-radius: 999px;
    border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .03);
    font-size: 13px; color: var(--muted);
  }
  .dot-live { width: 8px; height: 8px; border-radius: 50%; background: var(--live); box-shadow: 0 0 0 3px rgba(255, 77, 109, .2); }
  .hero-title {
    margin: 26px auto 0; max-width: 11.5em;
    font-size: clamp(2.7rem, 7.2vw, 6.2rem); line-height: 1.02; letter-spacing: -0.04em; font-weight: 700;
  }
  .hero-title em { color: #EBDDFB; letter-spacing: -0.01em; margin-right: -0.13em; }
  .hero-sub { margin: 24px auto 0; max-width: 40em; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.15rem); }
  .hero-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }
  .hero-note { margin: 14px 0 0; font-size: 13px; color: var(--faint); }

  /* Fenêtre de visio */
  .showcase { position: relative; z-index: 1; max-width: 1080px; margin: 64px auto 0; }
  .showcase::after {
    content: ""; position: absolute; left: 10%; right: 10%; bottom: -60px; height: 160px; z-index: -1;
    background: radial-gradient(50% 50% at 50% 50%, rgba(111, 21, 203, .55), transparent 70%); filter: blur(30px);
  }
  .window {
    border: 1px solid rgba(206, 58, 242, .3); border-radius: 20px; background: var(--surface); overflow: hidden;
    box-shadow: 0 0 0 6px rgba(139, 61, 255, .06), 0 40px 140px rgba(111, 21, 203, .4);
  }
  .window-bar {
    display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px;
    padding: 10px 14px; border-bottom: 1px solid var(--line);
  }
  .live { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; }
  .window-meta { justify-self: end; font-size: 13px; color: var(--muted); }
  .lang-switch { display: inline-flex; padding: 3px; gap: 2px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--bg); }
  .lang-switch a {
    display: inline-flex; align-items: center; text-decoration: none;
    position: relative; overflow: hidden; isolation: isolate;
    font: inherit; font-size: 14px; font-weight: 600; color: var(--muted);
    background: none; border: 0; border-radius: 999px; padding: 7px 18px; min-height: 40px; cursor: pointer;
    transition: color var(--t-std) var(--ease), box-shadow var(--t-std) var(--ease);
  }
  /* Le drapeau de la langue choisie apparaît en fond du bouton actif, en fondu */
  .lang-switch a::before {
    content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
    background-position: center; background-size: cover; background-repeat: no-repeat;
    opacity: 0;
    transition: opacity var(--t-std) var(--ease);
  }
  .lang-switch a[data-lang="en"]::before {
    background-image: linear-gradient(rgba(8, 5, 13, .34), rgba(8, 5, 13, .34)),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3CclipPath id='s'%3E%3Cpath d='M0,0 v30 h60 v-30 z'/%3E%3C/clipPath%3E%3CclipPath id='t'%3E%3Cpath d='M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23s)'%3E%3Cpath d='M0,0 v30 h60 v-30 z' fill='%23012169'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' stroke='%23fff' stroke-width='6'/%3E%3Cpath d='M0,0 L60,30 M60,0 L0,30' clip-path='url(%23t)' stroke='%23C8102E' stroke-width='4'/%3E%3Cpath d='M30,0 v30 M0,15 h60' stroke='%23fff' stroke-width='10'/%3E%3Cpath d='M30,0 v30 M0,15 h60' stroke='%23C8102E' stroke-width='6'/%3E%3C/g%3E%3C/svg%3E");
  }
  .lang-switch a[data-lang="es"]::before {
    background-size: 100% 100%;
    background-image: linear-gradient(rgba(8, 5, 13, .3), rgba(8, 5, 13, .3)),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 750 500' preserveAspectRatio='none'%3E%3Crect width='750' height='500' fill='%23C60B1E'/%3E%3Crect y='125' width='750' height='250' fill='%23FFC400'/%3E%3C/svg%3E");
  }
  .lang-switch a:hover { color: var(--text); }
  .lang-switch a[aria-current="page"] {
    color: var(--white); text-shadow: 0 1px 2px rgba(0, 0, 0, .7);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35);
  }
  .lang-switch a[aria-current="page"]::before { opacity: 1; }
  .window-body { position: relative; aspect-ratio: 16 / 9; background: #000; }
  .window-body video { width: 100%; height: 100%; object-fit: cover; }
  .video-controls { position: absolute; left: 14px; bottom: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
  .vc-btn {
    display: inline-flex; align-items: center; gap: 8px;
    font: inherit; font-size: 13px; font-weight: 600; color: var(--white);
    background: rgba(10, 6, 16, .62); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px;
    padding: 8px 14px; min-height: 40px; cursor: pointer; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    transition: background-color var(--t-quick) var(--ease);
  }
  .vc-btn:hover { background: rgba(10, 6, 16, .85); }

  /* ---------- Titres de section ---------- */
  .section { padding-block: 120px; }
  .section.flush-top { padding-top: 0; }
  .display { margin: 0; font-size: clamp(2rem, 4.2vw, 3.4rem); line-height: 1.06; letter-spacing: -0.035em; font-weight: 700; }
  .display em { color: #EBDDFB; margin-right: -0.11em; }
  .lead { margin: 18px 0 0; color: var(--muted); font-size: 17px; max-width: 36em; }
  .lead a { color: #D9C4FF; font-weight: 600; text-underline-offset: 3px; }
  .center { text-align: center; }
  .center .lead { margin-inline: auto; }

  /* ---------- L'école (mosaïque) ---------- */
  .split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: center; }
  .checks { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 12px; }
  .checks li { display: flex; gap: 12px; align-items: baseline; }
  .checks li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--orchid); transform: translateY(-2px); }
  .row-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
  .collage {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0 0 28px; list-style: none;
    -webkit-mask-image: radial-gradient(120% 110% at 50% 50%, #000 62%, transparent 100%);
    mask-image: radial-gradient(120% 110% at 50% 50%, #000 62%, transparent 100%);
  }
  .collage li:nth-child(3n + 2) { transform: translateY(28px); }
  .collage img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); }

  /* ---------- Premier cycle (cartes) ---------- */
  .bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 48px; }
  .card {
    position: relative; min-width: 0; overflow: hidden;
    display: flex; flex-direction: column; gap: 14px; padding: 28px;
    background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  }
  .card h3 { margin: 0; font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em; }
  .card p { margin: 0; color: var(--muted); }
  .span-2 { grid-column: span 2; }
  .big-figure { font-size: clamp(2.6rem, 4vw, 3.4rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }

  .phrase-intro { font-size: 14px; }
  .card .phrase { margin: 0; color: var(--text); }
  .phrase .l2 { display: block; font-size: clamp(1.9rem, 4.2vw, 3.4rem); font-weight: 700; line-height: 1.05; letter-spacing: -0.035em; }
  .phrase .gl { display: block; font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 1.8vw, 1.45rem); line-height: 1.3; color: var(--muted); margin: .25em 0 .6em .08em; }
  .phrase .gl:last-child { margin-bottom: 0; }

  .sessions { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 5px; margin-top: auto; }
  .sessions span { aspect-ratio: 1; border-radius: 4px; background: linear-gradient(135deg, var(--violet), var(--orchid)); }
  .sessions span:nth-child(n + 11) { opacity: .55; }
  .seats { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; }
  .seats span { width: 16px; height: 16px; border-radius: 50%; background: linear-gradient(135deg, var(--violet), var(--orchid)); }
  .seats span.opt { background: transparent; border: 1.5px dashed var(--line-strong); }
  .caption { font-size: 13px; color: var(--faint); }


  /* ---------- Panneau étoilé ---------- */
  .stars-panel {
    position: relative; overflow: hidden; isolation: isolate;
    display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; align-items: center;
    padding: 64px; border: 1px solid var(--line); border-radius: 28px;
    background: radial-gradient(90% 120% at 30% 100%, #170B26, #07040B 70%);
  }
  .stars-panel::before {
    content: ""; position: absolute; inset: -20%; z-index: -2; pointer-events: none;
    background: linear-gradient(118deg, transparent 30%, rgba(206, 58, 242, .16) 43%, rgba(139, 61, 255, .26) 50%, rgba(255, 214, 170, .12) 56%, transparent 69%);
    filter: blur(24px);
  }
  .stars-panel .sky { z-index: -1; }
  .stars-panel .display { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
  .stars-panel .lead { color: #C8BCD8; }
  .tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
  .tool-grid li {
    display: flex; flex-direction: column; gap: 14px; padding: 20px;
    border: 1px solid rgba(255, 255, 255, .1); border-radius: 18px; background: rgba(8, 5, 13, .55);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  }
  .tool-grid svg { width: 28px; height: 28px; color: #EBDDFB; }
  .tool-grid strong { font-size: 15px; }
  .tool-grid span { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }

  /* ---------- Formations (cartes de prix) ---------- */
  .pricing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 56px 0 0; padding: 0; list-style: none; text-align: left; }
  .price-card {
    display: flex; flex-direction: column; gap: 16px; padding: 26px; min-width: 0;
    background: linear-gradient(180deg, var(--surface-2), var(--surface)); border: 1px solid var(--line); border-radius: 22px;
  }
  .price-top { display: flex; align-items: center; gap: 12px; }
  .badge {
    flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden;
    display: grid; place-items: center; font-size: 13px; font-weight: 800; letter-spacing: -0.02em;
    background: linear-gradient(135deg, var(--violet-brand), var(--orchid)); color: var(--white);
  }
  .badge img { width: 100%; height: 100%; object-fit: cover; }
  .kind { font-size: 13px; color: var(--muted); }
  .price-card h3 { margin: 0; font-size: 1.2rem; font-weight: 700; }
  .tag { display: inline-block; margin-left: 6px; padding: 2px 9px; border-radius: 999px; vertical-align: 2px; font-size: 12px; font-weight: 600; background: rgba(139, 61, 255, .18); color: #D9C4FF; }
  .amount { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
  .amount strong { font-size: 2.1rem; font-weight: 700; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .amount span { color: var(--muted); font-size: 14px; }
  .price-card > p { margin: 0; color: var(--muted); font-size: 15px; }
  .features { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
  .features li { display: flex; gap: 10px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
  .features svg { flex: none; width: 14px; height: 14px; color: var(--orchid); transform: translateY(2px); }
  .price-card .btn { margin-top: auto; align-self: flex-start; min-height: 42px; padding: 10px 18px; font-size: 14px; }

  /* ---------- Bandeau défilant ---------- */
  .marquee { overflow: hidden; border-block: 1px solid var(--line); padding-block: 24px; }
  .marquee-track { display: flex; width: max-content; }
  .marquee-group { display: flex; align-items: center; gap: 40px; padding-right: 40px; }
  .marquee span { font-size: clamp(1.3rem, 2.4vw, 2rem); font-weight: 600; color: var(--faint); white-space: nowrap; letter-spacing: -0.02em; }
  .marquee i { width: 8px; height: 8px; border-radius: 50%; background: var(--orchid); flex: none; }

  /* ---------- Étapes ---------- */
  .steps-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 48px 0 0; padding: 0; list-style: none; }
  .card.step { padding: 0; gap: 0; }
  .step .visual { padding: 22px; min-height: 230px; display: flex; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--line); background: radial-gradient(80% 90% at 50% 0%, rgba(111, 21, 203, .22), transparent 70%); }
  .step .text { padding: 24px 28px 28px; display: flex; flex-direction: column; gap: 8px; }
  .step-num { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 700; background: var(--white); color: var(--on-white); }
  .mock { background: var(--bg); border: 1px solid var(--line-strong); border-radius: 14px; padding: 16px; }
  .mock-small { font-size: 12px; color: var(--faint); }
  .card .mock-q { margin: 6px 0 12px; font-weight: 600; font-size: 15px; color: var(--text); }
  .opts { display: flex; gap: 8px; flex-wrap: wrap; }
  .opts span { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 13px; }
  .opts .on { background: var(--violet); border-color: var(--violet); }
  .pay { display: grid; gap: 8px; }
  .pay div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line-strong); background: var(--bg); font-size: 14px; }
  .pay strong { font-weight: 600; }
  .pay span { color: var(--muted); font-size: 13px; }
  .call { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .call span { aspect-ratio: 16 / 11; border-radius: 8px; background: var(--surface-2); border: 1px solid var(--line-strong); display: grid; place-items: center; font-weight: 700; font-size: 13px; color: var(--muted); }
  .call .prof { border-color: var(--orchid); color: var(--text); box-shadow: 0 0 16px rgba(206, 58, 242, .3); }
  .call-bar { margin-top: 10px; display: flex; justify-content: center; gap: 8px; }
  .call-bar span { padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 12px; color: var(--muted); }

  /* ---------- Questions ---------- */
  .faq-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 64px; }
  .faq-list { border-top: 1px solid var(--line-strong); }
  .faq details { border-bottom: 1px solid var(--line); }
  .faq summary {
    list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px;
    padding: 22px 0; font-weight: 600; font-size: 1.08rem; transition: color var(--t-quick) var(--ease);
  }
  .faq summary::-webkit-details-marker { display: none; }
  .faq summary::after {
    content: ""; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--orchid); border-bottom: 2px solid var(--orchid);
    transform: rotate(45deg) translate(-3px, -3px); transition: transform var(--t-std) var(--ease);
  }
  .faq details[open] summary::after { transform: rotate(-135deg) translate(-3px, -3px); }
  .faq summary:hover { color: #EBDDFB; }
  .faq details p { margin: 0 0 22px; color: var(--muted); max-width: 40em; }
  .faq details a { color: #D9C4FF; font-weight: 600; text-underline-offset: 3px; }

  /* ---------- Contact ---------- */
  .cta-panel {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 300px); gap: 56px; align-items: center;
    padding: 64px; border: 1px solid var(--line); border-radius: 28px;
    background: radial-gradient(70% 90% at 85% 15%, rgba(111, 21, 203, .5), transparent 70%), var(--surface);
  }
  .contact-list { margin: 32px 0 0; display: grid; gap: 14px; }
  .contact-list div { display: grid; gap: 2px; }
  .contact-list dt { font-size: 13px; color: var(--faint); }
  .contact-list dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
  .reel-col { display: grid; gap: 14px; }
  .phone {
    margin: 0; border-radius: 34px; padding: 8px; background: #1B1426; border: 1px solid var(--line-strong);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
  }
  .phone video { width: 100%; height: auto; aspect-ratio: 9 / 16; border-radius: 26px; background: #000; }
  .phone figcaption { padding: 10px 4px 2px; font-size: 13px; color: var(--muted); text-align: center; }
  .reel-col .btn { width: 100%; }

  /* ---------- Pied de page ---------- */
  .site-footer { border-top: 1px solid var(--line); font-size: 15px; }
  .footer-grid { display: grid; grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2fr)); gap: 32px; padding-block: 64px 40px; }
  .footer-grid img { width: 140px; height: auto; }
  .footer-grid .tagline { margin: 16px 0 0; color: var(--muted); max-width: 22em; }
  .footer-grid h2 { margin: 0 0 12px; font-size: 14px; font-weight: 700; }
  .footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
  .footer-grid a { display: inline-flex; align-items: center; min-height: 40px; text-decoration: none; color: var(--muted); transition: color var(--t-quick) var(--ease); }
  .footer-grid a:hover { color: var(--text); }
  .footer-bottom { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-block: 20px 40px; border-top: 1px solid var(--line); color: var(--faint); font-size: 13px; }
  .footer-bottom p { margin: 0; }

  /* ---------- Écrans tactiles : cibles d'au moins 44 px ---------- */
  @media (pointer: coarse) {
    .lang-switch a, .vc-btn, .nav .btn, .price-card .btn, .nav-links a { min-height: 44px; }
    .footer-grid a { min-height: 44px; }
  }

  /* ---------- Barre d'action mobile ---------- */
  .mobile-cta { display: none; }

  /* ---------- Entrée orchestrée du haut de page + ambiance ---------- */
  @keyframes rise { from { opacity: 0; transform: translateY(18px); } }
  @keyframes gloss-in { from { opacity: 0; transform: translateY(-4px); } }
  @keyframes marquee { to { transform: translateX(-50%); } }
  @keyframes neon-drift { from { transform: translateY(-14px); } to { transform: translateY(14px); } }
  @keyframes pulse { 50% { box-shadow: 0 0 0 6px rgba(255, 77, 109, 0); } }
  @media (prefers-reduced-motion: no-preference) {
    .hero-pill, .hero-title, .hero-sub, .hero-ctas, .hero-note, .showcase { animation: rise var(--t-slow) var(--ease) backwards; }
    .hero-title { animation-delay: 80ms; }
    .hero-sub { animation-delay: 160ms; }
    .hero-ctas, .hero-note { animation-delay: 240ms; }
    .showcase { animation-duration: 900ms; animation-delay: 360ms; }
    .phrase .gl { animation: gloss-in var(--t-slow) var(--ease) backwards; }
    .phrase .gl:nth-of-type(2) { animation-delay: 200ms; }
    .phrase .gl:nth-of-type(4) { animation-delay: 350ms; }
    .phrase .gl:nth-of-type(6) { animation-delay: 500ms; }
    .marquee-track { animation: marquee 45s linear infinite; }
    .neon g { animation: neon-drift 16s ease-in-out infinite alternate; }
    .dot-live { animation: pulse 2s ease-in-out infinite; }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; }
  }

  /* ---------- Tablette ---------- */
  @media (max-width: 980px) {
    .nav-links, .nav .nav-cta { display: none; }
    .menu-toggle { display: inline-flex; }
    .nav.is-open .nav-inner { flex-wrap: wrap; border-radius: 24px; }
    .nav.is-open .nav-links { display: flex; flex-direction: column; gap: 0; width: 100%; margin: 4px 0 8px; }
    .nav.is-open .nav-links a { display: block; padding: 12px 4px; font-size: 16px; color: var(--text); border-bottom: 1px solid var(--line); }
    .nav.is-open .nav-cta { display: inline-flex; width: 100%; margin-bottom: 4px; }
    .hero-copy { padding-top: 112px; }
    .section { padding-block: 88px; }
    .split, .faq-grid, .stars-panel, .cta-panel { grid-template-columns: 1fr; gap: 40px; }
    .stars-panel, .cta-panel { padding: 40px; }
    .bento { grid-template-columns: 1fr 1fr; }
    .bento .span-2 { grid-column: 1 / -1; }
    .pricing { grid-template-columns: 1fr 1fr; }
    .steps-grid { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }    .reel-col { max-width: 320px; }
  }

  /* ---------- Tablette uniquement (641 à 980 px) ---------- */
  @media (min-width: 641px) and (max-width: 980px) {
    .nav .nav-cta { display: inline-flex; }
    .nav.is-open .nav-cta { width: 100%; }
    .tool-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .card.step { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
    .step .visual { min-height: 0; border-bottom: 0; border-right: 1px solid var(--line); }
    .step .text { justify-content: center; }
    .cta-panel { grid-template-columns: minmax(0, 1fr) 240px; gap: 40px; }
    .reel-col { max-width: none; }
  }

  /* ---------- Téléphone ou tablette tenus à l'horizontale (écran bas) ---------- */
  @media (max-height: 500px) and (orientation: landscape) {
    .hero-copy { padding-top: 92px; }
    .hero-title { font-size: clamp(2.4rem, 5.6vw, 4rem); }
    .showcase { margin-top: 40px; }
    .section { padding-block: 64px; }
    .nav { top: calc(env(safe-area-inset-top, 0px) + 8px); margin-top: 8px; }
  }

  /* ---------- Téléphone ---------- */
  @media (max-width: 640px) {
    .wrap { padding-inline: 16px; }
    .nav { padding-inline: 12px; }
    .nav-brand img { width: 110px; }
    .hero-copy { padding-top: 96px; }
    .hero-ctas .btn { width: 100%; }
    .window-bar { grid-template-columns: 1fr auto; }
    .window-meta { display: none; }
    .video-controls { left: 10px; bottom: 10px; }
    .vc-btn { padding: 7px 11px; font-size: 12px; }
    .section { padding-block: 72px; }
    .bento, .pricing { grid-template-columns: 1fr; }
    .card, .stars-panel, .cta-panel { padding: 24px; }
    .stars-panel, .cta-panel { border-radius: 22px; }
    .tool-grid li { padding: 16px; }
    .collage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .collage li:nth-child(3n + 2) { transform: none; }
    .collage li:nth-child(2n) { transform: translateY(20px); }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-bottom { padding-bottom: 104px; }
    .reel-col { justify-self: center; width: 100%; max-width: 300px; }

    .mobile-cta {
      display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
      padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
      background: rgba(8, 5, 13, .88); border-top: 1px solid var(--line);
      -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
      transform: translateY(110%); transition: transform var(--t-std) var(--ease);
    }
    .mobile-cta.is-visible { transform: none; }
    .mobile-cta .btn { min-height: 48px; }
    .mobile-cta .btn-light { flex: 1; }
    .mobile-cta .btn-ghost { width: 48px; padding: 0; }
  }
  @media (max-width: 360px) {
    .hero-title { font-size: 2.45rem; }
    .lang-switch a {
    display: inline-flex; align-items: center; text-decoration: none; padding-inline: 13px; }
    .card, .stars-panel, .cta-panel { padding: 20px; }
    .tool-grid { gap: 8px; }
    .amount strong { font-size: 1.85rem; }
  }


  /* =========================================================
     Ajouts multi-pages
     ========================================================= */

  /* ---------- Logos Zoom et Google Meet, devant chaque mention ---------- */
  .tool { display: inline-flex; align-items: center; gap: .32em; white-space: nowrap; vertical-align: baseline; }
  .brand-ico { width: 1.05em; height: 1.05em; flex: none; transform: translateY(.06em); }
  .display .brand-ico { width: .82em; height: .82em; transform: translateY(.02em); }
  .tool-grid .brand-ico { width: 28px; height: 28px; transform: none; }

  /* ---------- Menu : page en cours ---------- */
  .nav-links a[aria-current="page"] { color: var(--text); }
  .nav-links a[aria-current="page"]::after {
    content: ""; display: block; height: 2px; margin-top: 2px; border-radius: 2px;
    background: linear-gradient(90deg, var(--violet), var(--orchid));
  }
  .nav-links a { flex-direction: column; justify-content: center; }

  /* ---------- Néons (lignes courbes lumineuses) ---------- */
  .neon-section { position: relative; overflow: hidden; isolation: isolate; }
  .neon { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }

  /* ---------- Parcours en 15 cycles ---------- */
  .levels { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 6px 0 0; padding: 0; list-style: none; }
  .levels li { display: flex; gap: 3px; }
  .half {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 52px; padding: 9px 8px; text-align: center; font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums;
    background: var(--surface-2); border: 1px solid var(--line-strong); border-radius: 4px; text-decoration: none;
  }
  .levels li .half:first-child { border-top-left-radius: 10px; border-bottom-left-radius: 10px; }
  .levels li .half:last-child { border-top-right-radius: 10px; border-bottom-right-radius: 10px; }
  a.half:hover { border-color: var(--orchid); }
  .levels li:first-child .half:first-child { border-color: var(--orchid); box-shadow: inset 0 0 0 1px var(--orchid), 0 0 18px rgba(206, 58, 242, .35); }
  .half.is-closed { background: transparent; border-style: dashed; color: var(--faint); font-weight: 500; }

  /* ---------- Tourbillon des cours ---------- */
  .vortex-section { padding-block: 120px 80px; }
  .vortex-stage {
    position: relative; height: clamp(420px, 44vw, 560px); margin: 8px 0 8px; overflow: hidden;
    perspective: 1500px; perspective-origin: 50% 30%;
    touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none;
  }
  .vortex-stage.is-dragging { cursor: grabbing; }
  .vortex-word {
    position: absolute; left: 50%; top: 15%; transform: translate(-50%, -50%); z-index: 0; pointer-events: none;
    margin: 0; font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -0.02em;
    font-size: clamp(3rem, 9vw, 7.5rem); line-height: 1; color: rgba(235, 221, 251, .85); white-space: nowrap;
    text-shadow: 0 0 40px rgba(139, 61, 255, .45);
  }
  .vortex { position: absolute; left: 50%; top: 58%; width: 0; height: 0; transform-style: preserve-3d; z-index: 1; }
  .vx-card {
    --size: clamp(150px, 19vw, 250px); --shade: 0;
    position: absolute; left: 0; top: 0; width: var(--size); height: var(--size);
    margin: calc(var(--size) / -2) 0 0 calc(var(--size) / -2);
    border-radius: 18px; overflow: hidden; display: block; text-decoration: none;
    border: 1px solid rgba(255, 255, 255, .16); background: #F2F0EC;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .55);
    -webkit-user-drag: none; -webkit-backface-visibility: hidden; backface-visibility: hidden;
    transition: box-shadow var(--t-std) var(--ease);
  }
  .vx-card.is-front { box-shadow: 0 0 0 2px var(--orchid), 0 26px 70px rgba(111, 21, 203, .5); }
  .vx-controls { display: flex; justify-content: center; align-items: center; gap: 14px; margin: 0 0 14px; }
  .vx-arrow {
    flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; cursor: pointer;
    border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .04); color: var(--text);
    transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease);
  }
  .vx-arrow:hover { border-color: var(--orchid); background: rgba(206, 58, 242, .12); }
  .vx-arrow svg { width: 20px; height: 20px; }
  .vx-card img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
  .vx-card::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
    background: rgba(8, 5, 13, var(--shade));
  }
  .vx-card:focus-visible { outline: 3px solid var(--orchid); outline-offset: 4px; }
  .vx-tag {
    position: absolute; left: 10px; bottom: 10px; z-index: 1;
    padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--white);
    background: rgba(18, 8, 31, .82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  }
  .vortex-hint { margin: 0; text-align: center; font-size: 14px; color: var(--muted); }
  .level-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
  .level-links a {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border-radius: 999px;
    border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .03); text-decoration: none; font-weight: 600; font-size: 15px;
    transition: border-color var(--t-quick) var(--ease);
  }
  .level-links a:hover { border-color: var(--orchid); }
  .level-links small { font-weight: 500; color: var(--muted); font-size: 13px; }

  /* Visuel C1 (pas de visuel fourni : carte typographique dans le même esprit que les autres niveaux) */
  .c1-visual {
    width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 12%;
    background: #F2F0EC; color: #2B2B2B; text-align: left;
  }
  .c1-visual b {
    font-family: var(--sans); font-weight: 800; font-size: 3.4em; line-height: .9; letter-spacing: -0.05em;
    background: linear-gradient(135deg, var(--violet-brand), var(--orchid)); -webkit-background-clip: text; background-clip: text; color: transparent;
  }
  .c1-visual span { margin-top: .35em; font-weight: 700; font-size: 1.05em; line-height: 1.15; }
  .c1-visual small { margin-top: .5em; font-size: .72em; color: #5B5466; line-height: 1.3; }
  .vx-card .c1-visual { font-size: calc(var(--size) / 9); }

  /* ---------- Pages intérieures : en-tête ---------- */
  .page-hero { position: relative; overflow: hidden; margin-top: -72px; padding-top: 72px; }
  .page-hero::before, .page-hero::after {
    content: ""; position: absolute; top: 0; bottom: 20%; width: 34vw; max-width: 480px; pointer-events: none;
    background: radial-gradient(60% 60% at 50% 40%, rgba(111, 21, 203, .5), transparent 70%); filter: blur(30px);
  }
  .page-hero::before { left: -14vw; }
  .page-hero::after { right: -14vw; }
  .page-hero .sky { -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent 95%); mask-image: linear-gradient(180deg, #000 50%, transparent 95%); }
  .page-hero .wrap { position: relative; z-index: 1; padding-top: 128px; padding-bottom: 72px; }
  .page-hero h1 { margin: 18px 0 0; font-size: clamp(2.4rem, 6vw, 4.8rem); line-height: 1.03; letter-spacing: -0.04em; font-weight: 700; max-width: 14em; }
  .page-hero h1 em { color: #EBDDFB; margin-right: -0.11em; }
  .page-hero .lead { font-size: clamp(1rem, 1.5vw, 1.15rem); }
  .crumbs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--muted); }
  .crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--faint); }
  .crumbs a { text-decoration: none; color: var(--muted); display: inline-flex; align-items: center; min-height: 44px; }
  .crumbs a:hover { color: var(--text); }
  .crumbs [aria-current] { color: var(--text); display: inline-flex; align-items: center; min-height: 44px; }

  /* ---------- Fiche produit ---------- */
  .product-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: center; }
  .product-visual { position: relative; display: grid; place-items: center; min-height: 320px; }
  .product-visual::before {
    content: ""; position: absolute; inset: 10% 6%; border-radius: 50%; z-index: -1;
    background: radial-gradient(50% 50% at 50% 50%, rgba(139, 61, 255, .55), transparent 70%); filter: blur(30px);
  }
  .product-visual .shot {
    width: min(100%, 380px); aspect-ratio: 1; border-radius: 22px; overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16); box-shadow: 0 30px 80px rgba(0, 0, 0, .55); transform: rotate(-3deg);
  }
  .product-visual .shot img { width: 100%; height: 100%; object-fit: cover; }
  .product-visual .shot + .shot { position: absolute; width: min(56%, 220px); right: 0; bottom: -6%; transform: rotate(6deg); }
  .product-visual .c1-visual { font-size: 30px; }
  .fact-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
  .fact-row li {
    display: inline-block; line-height: 1.45; padding: 8px 14px; border-radius: 999px;
    border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .03); font-size: 14px;
  }
  .fact-row strong { font-weight: 700; }
  .buy { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 32px; }
  .buy .amount strong { font-size: 2.4rem; }

  .cycles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 48px 0 0; padding: 0; list-style: none; }
  .cycle { gap: 18px; }
  .cycle-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .cycle-code {
    display: inline-grid; place-items: center; min-width: 64px; height: 40px; padding: 0 12px; border-radius: 12px;
    font-weight: 800; font-size: 16px; font-variant-numeric: tabular-nums; color: var(--white);
    background: linear-gradient(135deg, var(--violet-brand), var(--orchid));
  }
  .cycle-meta { font-size: 14px; color: var(--muted); }
  .cycle h3 { font-size: 1.25rem; }
  .cycle h4 { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #D9C4FF; letter-spacing: .02em; }
  .cycle ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
  .cycle li { display: flex; gap: 10px; align-items: baseline; color: var(--muted); font-size: 15px; }
  .cycle li::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--orchid); transform: translateY(-2px); }
  .cycle li b { color: var(--text); font-weight: 600; }
  .cycle .btn { margin-top: auto; align-self: flex-start; }
  .cycle:target { border-color: var(--orchid); box-shadow: 0 0 0 1px var(--orchid), 0 0 40px rgba(206, 58, 242, .25); }

  .skills { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; }
  .skills li { padding: 24px; border-radius: 20px; border: 1px solid var(--line); background: var(--surface); }
  .skills strong { display: block; margin-bottom: 6px; font-size: 1.05rem; }
  .skills span { color: var(--muted); font-size: 15px; }

  .pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .pager a {
    display: flex; flex-direction: column; gap: 4px; padding: 22px 24px; border-radius: 20px; text-decoration: none;
    border: 1px solid var(--line); background: var(--surface); transition: border-color var(--t-quick) var(--ease);
  }
  .pager a:hover { border-color: var(--orchid); }
  .pager small { color: var(--muted); font-size: 13px; }
  .pager strong { font-size: 1.15rem; }
  .pager .next { text-align: right; grid-column: 2; }

  .detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; }
  .detail-grid li { padding: 22px 24px; border-radius: 20px; border: 1px solid var(--line); background: var(--surface); }
  .detail-grid dt, .detail-grid strong { display: block; font-weight: 700; margin-bottom: 4px; }
  .detail-grid span { color: var(--muted); font-size: 15px; }

  /* ---------- Formations : grille des niveaux ---------- */
  .level-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 40px 0 0; padding: 0; list-style: none; }
  .level-grid a {
    display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 12px 12px 16px; border-radius: 20px; text-decoration: none;
    border: 1px solid var(--line); background: var(--surface); transition: border-color var(--t-quick) var(--ease);
  }
  .level-grid a:hover { border-color: var(--orchid); }
  .level-grid .thumb { aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: #F2F0EC; }
  .level-grid img { width: 100%; height: 100%; object-fit: cover; }
  .level-grid .c1-visual { font-size: 15px; }
  .level-grid strong { font-size: 1.05rem; padding-inline: 4px; }
  .level-grid span { font-size: 13px; color: var(--muted); padding-inline: 4px; }

  /* ---------- Contact ---------- */
  .contact-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
  .contact-cards li { display: flex; flex-direction: column; gap: 10px; padding: 26px; border-radius: 22px; border: 1px solid var(--line); background: var(--surface); }
  .contact-cards svg { width: 26px; height: 26px; color: #EBDDFB; }
  .contact-cards h2 { margin: 0; font-size: 1.1rem; }
  .contact-cards p { margin: 0; color: var(--muted); }
  .contact-cards .value { color: var(--text); font-weight: 700; font-size: 1.15rem; font-variant-numeric: tabular-nums; user-select: all; }
  .contact-cards .btn { margin-top: auto; align-self: flex-start; }

  /* ---------- Texte long (politique de remboursement) ---------- */
  .prose { max-width: 46em; }
  .prose h2 { margin: 48px 0 12px; font-size: 1.4rem; letter-spacing: -0.02em; }
  .prose p, .prose li { color: var(--muted); }
  .prose ul { padding-left: 1.2em; display: grid; gap: 8px; }
  .prose strong { color: var(--text); }

  @media (max-width: 980px) {
    .product-hero { grid-template-columns: 1fr; gap: 40px; }
    .product-visual { min-height: 0; padding-bottom: 24px; }
    .product-visual .shot { width: min(70%, 320px); }
    .level-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vortex-section { padding-block: 88px 64px; }
  }
  @media (max-width: 640px) {
    .page-hero .wrap { padding-top: 104px; padding-bottom: 48px; }
    .cycles, .skills, .detail-grid, .contact-cards { grid-template-columns: 1fr; }
    .level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pager { grid-template-columns: 1fr; }
    .pager .next { grid-column: auto; }
    .half { min-width: 46px; padding: 8px 6px; font-size: 13px; }
    .vortex-stage { height: 340px; perspective: 1000px; }
    .vx-card { --size: 150px; border-radius: 14px; }
    .vortex-word { font-size: 3.2rem; top: 12%; }
    .vortex { top: 60%; }
    .buy .amount strong { font-size: 2rem; }
  }

  /* =========================================================
     Tout ce qui ressemble à un bouton mène quelque part
     ========================================================= */
  .is-clickable { transition: border-color var(--t-quick) var(--ease), transform var(--t-std) var(--ease), box-shadow var(--t-std) var(--ease); }
  .is-clickable:hover { border-color: rgba(206, 58, 242, .7); transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0, 0, 0, .35); }
  .price-card, .contact-cards li { position: relative; }
  .stretch::after, .stretch-link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
  .stretch-link { color: inherit; text-decoration: none; }
  .stretch-link:focus-visible, .stretch:focus-visible { outline: none; }
  .is-clickable:has(.stretch:focus-visible, .stretch-link:focus-visible) { outline: 2px solid var(--orchid); outline-offset: 3px; }
  .card-more {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: auto;
    font-weight: 600; font-size: 14px; color: #D9C4FF; align-self: flex-start;
  }
  .card-more::before { content: none; }
  .card-more span { transition: transform var(--t-quick) var(--ease); }
  .is-clickable:hover .card-more { text-decoration: underline; text-underline-offset: 3px; }

  /* Pastille du haut de page : un vrai lien */
  a.hero-pill { text-decoration: none; min-height: 40px; transition: border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
  a.hero-pill:hover { border-color: var(--orchid); color: var(--text); }

  /* Mosaïque : vignettes cliquables avec une étiquette visible au toucher */
  .collage a { position: relative; display: block; border-radius: 14px; overflow: hidden; text-decoration: none; }
  .collage a img { transition: transform var(--t-slow) var(--ease); }
  .collage a:hover img { transform: scale(1.05); }
  .collage a:hover, .collage a:focus-visible { box-shadow: 0 0 0 2px var(--orchid); outline: none; }
  .collage .vx-tag { left: 8px; bottom: 8px; padding: 4px 10px; font-size: 11.5px; }

  /* Tuiles des outils : des liens */
  .tool-grid li { padding: 0; border: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .tool-grid a {
    display: flex; flex-direction: column; gap: 14px; height: 100%; padding: 20px; text-decoration: none; color: var(--text);
    border: 1px solid rgba(255, 255, 255, .1); border-radius: 18px; background: rgba(8, 5, 13, .55);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    transition: border-color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease);
  }
  .tool-grid a:hover { border-color: var(--orchid); background: rgba(40, 18, 60, .6); }

  /* Coordonnées : appeler, écrire, itinéraire */
  .contact-list dd a { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: underline; text-decoration-color: rgba(206, 58, 242, .55); text-underline-offset: 4px; }
  .contact-list dd a:hover { color: #EBDDFB; }
  .contact-cards a.value { color: var(--text); font-weight: 700; font-size: 1.15rem; text-decoration: none; font-variant-numeric: tabular-nums; }
  .footer-logo { display: inline-flex; align-items: center; min-height: 44px; }

  /* Image des pages produits : mène au programme */
  .product-visual a.shot { display: block; transition: box-shadow var(--t-std) var(--ease); }
  .product-visual a.shot:hover { box-shadow: 0 0 0 2px var(--orchid), 0 30px 80px rgba(0, 0, 0, .55); }

  /* Informations : elles ne doivent pas ressembler à des boutons */
  .fact-row { gap: 8px 22px; }
  .fact-row li { padding: 0; border: 0; border-radius: 0; background: none; color: var(--muted); font-size: 15px; }
  .fact-row li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 9px; border-radius: 50%; background: var(--orchid); vertical-align: 2px; }
  .fact-row strong { color: var(--text); }
  .half.is-closed { cursor: pointer; }
  a.half.is-closed:hover { border-color: var(--orchid); color: var(--text); }

  /* ---------- Bandeau de suggestion (langue du visiteur, Algériens d'Espagne) ---------- */
  .suggest {
    position: fixed; z-index: 45; left: 50%; bottom: 20px; width: min(640px, calc(100% - 32px));
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 10px 10px 20px; border: 1px solid var(--line-strong); border-radius: 20px;
    background: rgba(24, 16, 34, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .45);
    transform: translate(-50%, 16px); opacity: 0; transition: transform var(--t-std) var(--ease), opacity var(--t-std) var(--ease);
  }
  .suggest.is-in { transform: translate(-50%, 0); opacity: 1; }
  .suggest[dir="rtl"] { padding: 10px 20px 10px 10px; }
  .suggest p { flex: 1; min-width: 0; margin: 0; font-size: 15px; line-height: 1.35; }
  .suggest p span { display: block; color: var(--muted); font-size: 13px; }
  .suggest a { display: inline-flex; align-items: center; min-height: 32px; font-weight: 600; text-underline-offset: 3px; }
  .suggest .btn { flex: none; min-height: 44px; padding: 8px 16px; font-size: 14px; }
  @media (max-width: 640px) { .suggest { bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); } }
  @media (prefers-reduced-motion: reduce) { .suggest { transition: none; } }

  /* Faire payer un proche en Algérie (lien WhatsApp sous le bouton S'inscrire) */
  .buy-relay { margin: 12px 0 0; }
  .buy-relay a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--muted); font-size: 14px; text-underline-offset: 3px; }
  .buy-relay a:hover { color: var(--text); }

  /* ---------- WordPress : le contenu existant dans un panneau clair ---------- */
  .page-hero--compact .wrap { padding-bottom: 40px; }
  .page-hero--compact h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); }
  .wp-panel {
    color-scheme: light; background: #fff; color: #1d1526; border-radius: var(--radius-lg);
    padding: clamp(20px, 4vw, 48px); overflow: hidden; overflow-wrap: anywhere;
  }
  .wp-panel h1, .wp-panel h2, .wp-panel h3, .wp-panel h4, .wp-panel h5, .wp-panel h6 { color: #12081F; line-height: 1.2; }
  .wp-panel a { color: var(--violet-brand); text-decoration: underline; text-underline-offset: 2px; }
  .wp-panel em { font-family: inherit; }
  .wp-panel img { height: auto; }
  .wp-panel input, .wp-panel select, .wp-panel textarea { font: inherit; color: #12081F; }
  .wp-panel :focus-visible { outline-color: var(--violet-brand); }
  .wp-panel .woocommerce a.button, .wp-panel .woocommerce button.button, .wp-panel .woocommerce input.button { border-radius: 999px; padding: .9em 1.6em; font-weight: 600; text-decoration: none; }
  .wp-panel .woocommerce a.button.alt, .wp-panel .woocommerce button.button.alt, .wp-panel .woocommerce input.button.alt { background: var(--violet-brand); color: #fff; }
  .wp-panel .lx-icon-text { margin: 0 0 16px; }
  .wp-panel .lx-icon-text h6 { margin: 0 0 4px; font-size: 16px; }
  .wp-panel .lx-teaser img { border-radius: 12px; }
  /* La barre d'administration WordPress (connecté) ne doit pas cacher le menu */
  .admin-bar .nav { top: calc(env(safe-area-inset-top, 0px) + 44px); }
  @media (max-width: 782px) { .admin-bar .nav { top: calc(env(safe-area-inset-top, 0px) + 54px); } }
  @media (max-width: 600px) { .admin-bar .nav { top: calc(env(safe-area-inset-top, 0px) + 8px); } }

  /* ---------- Langue du site : lien vers l'autre langue dans le menu ---------- */
  .site-langs { display: flex; gap: 4px; }
  .site-lang {
    display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px;
    border: 1px solid var(--line-strong); color: var(--muted); font-size: 14px; font-weight: 600; text-decoration: none;
    transition: border-color var(--t-quick) var(--ease), color var(--t-quick) var(--ease);
  }
  .site-lang:hover { border-color: var(--orchid); color: var(--text); }
  .site-lang[lang="ar"] { font-family: "IBM Plex Sans Arabic", var(--sans); }
  @media (pointer: coarse) { .site-lang { min-height: 44px; } }

  /* ---------- Arabe : polices et lecture de droite à gauche ---------- */
  html[lang^="ar"] {
    --sans: "IBM Plex Sans Arabic", "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --serif: "Amiri", "IBM Plex Sans Arabic", serif;
  }
  html[lang^="ar"] body { line-height: 1.8; }
  /* l'écriture arabe est liée : jamais d'espacement entre les lettres */
  html[lang^="ar"] *, html[lang^="ar"] *::before, html[lang^="ar"] *::after { letter-spacing: 0 !important; }
  html[lang^="ar"] em { font-style: normal; font-weight: 700; }
  html[lang^="ar"] .hero-title, html[lang^="ar"] .page-hero h1, html[lang^="ar"] .display { line-height: 1.3; }
  html[lang^="ar"] [lang="es"], html[lang^="ar"] [lang="en"], html[lang^="ar"] [translate="no"] { font-family: "Plus Jakarta Sans", system-ui, sans-serif; }
  html[lang^="ar"] .phrase .l2 { font-family: "Plus Jakarta Sans", system-ui, sans-serif; }

  [dir="rtl"] .skip-link { left: auto; right: 16px; }
  [dir="rtl"] .nav-links { margin: 0 auto 0 0; }
  [dir="rtl"] .menu-toggle { margin-left: 0; margin-right: auto; }
  [dir="rtl"] .hero-title em, [dir="rtl"] .display em, [dir="rtl"] .page-hero h1 em { margin-right: 0; }
  [dir="rtl"] .video-controls { left: auto; right: 14px; }
  [dir="rtl"] .pricing { text-align: right; }
  [dir="rtl"] .tag { margin-left: 0; margin-right: 6px; }
  [dir="rtl"] .marquee-track { direction: ltr; }
  [dir="rtl"] .marquee-group span { direction: rtl; }
  [dir="rtl"] .vx-tag { left: auto; right: 10px; }
  [dir="rtl"] .collage .vx-tag { left: auto; right: 8px; }
  [dir="rtl"] .vx-arrow svg { transform: scaleX(-1); }
  [dir="rtl"] .c1-visual { text-align: right; }
  [dir="rtl"] .crumbs li + li::before { margin-right: 0; margin-left: 6px; }
  [dir="rtl"] .product-visual .shot { transform: rotate(3deg); }
  [dir="rtl"] .product-visual .shot + .shot { right: auto; left: 0; transform: rotate(-6deg); }
  [dir="rtl"] .pager .next { text-align: left; }
  [dir="rtl"] .prose ul { padding-left: 0; padding-right: 1.2em; }
  [dir="rtl"] .fact-row li::before { margin-right: 0; margin-left: 9px; }
  [dir="rtl"] .wp-panel { text-align: right; }
  @media (min-width: 641px) and (max-width: 980px) {
    [dir="rtl"] .step .visual { border-right: 0; border-left: 1px solid var(--line); }
  }
  @media (max-width: 640px) {
    [dir="rtl"] .video-controls { right: 10px; }
  }
  [dir="rtl"] .phrase .l2 { text-align: right; }

  /* ---------- Accueil : une séance en direct (remplace la mosaïque de photos) ---------- */
  .live-class {
    margin: 0; border: 1px solid var(--line-strong); border-radius: 22px; overflow: hidden;
    background: linear-gradient(180deg, rgba(24, 16, 34, .92), rgba(12, 8, 19, .96)); box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
  }
  .lc-bar { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--muted); }
  .lc-bar .live { display: inline-flex; align-items: center; gap: 6px; color: var(--text); font-weight: 600; }
  .lc-title { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .lc-tools { display: inline-flex; gap: 6px; }
  .lc-tools .brand-ico { width: 18px; height: 18px; }
  .lc-stage { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 8px; padding: 12px; }
  .lc-prof {
    position: relative; display: grid; place-items: center; min-height: 150px; border-radius: 14px;
    background: radial-gradient(120% 120% at 30% 20%, rgba(139, 61, 255, .45), rgba(17, 11, 25, .9)); box-shadow: inset 0 0 0 2px var(--violet);
  }
  .lc-avatar { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(255, 255, 255, .12); font-size: 20px; font-weight: 700; }
  .lc-name { position: absolute; left: 10px; bottom: 8px; padding: 2px 8px; border-radius: 999px; background: rgba(0, 0, 0, .45); font-size: 12px; }
  .lc-wave { position: absolute; right: 10px; bottom: 10px; display: flex; align-items: flex-end; gap: 3px; height: 14px; }
  .lc-wave i { width: 3px; height: 8px; border-radius: 2px; background: var(--orchid); animation: lc-wave 900ms var(--ease) infinite alternate; }
  .lc-wave i:nth-child(2) { animation-delay: 200ms; }
  .lc-wave i:nth-child(3) { animation-delay: 400ms; }
  @keyframes lc-wave { from { height: 3px; } to { height: 14px; } }
  .lc-students { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
  .lc-students li { display: grid; place-items: center; min-height: 44px; border-radius: 12px; border: 1px solid var(--line); background: rgba(255, 255, 255, .05); color: var(--muted); font-size: 13px; font-weight: 600; }
  .lc-students li.is-you { border-color: var(--orchid); color: var(--text); }
  .lc-chat { display: grid; gap: 8px; margin: 0; padding: 4px 12px 14px; list-style: none; }
  .lc-chat li { max-width: 88%; padding: 10px 14px; border-radius: 16px; background: rgba(255, 255, 255, .06); }
  .lc-chat .from-you { justify-self: end; background: rgba(139, 61, 255, .22); }
  .lc-chat .is-fix { border: 1px solid rgba(37, 211, 102, .35); background: rgba(37, 211, 102, .1); }
  .lc-chat .who { display: block; color: var(--faint); font-size: 11.5px; font-weight: 600; }
  .lc-chat p { margin: 2px 0 0; font-weight: 600; }
  .lc-chat small { display: block; margin-top: 2px; color: var(--muted); font-size: 12.5px; }
  .lc-chat mark { padding: 0 4px; border-radius: 4px; background: rgba(37, 211, 102, .25); color: #C9F7DA; }
  .live-class figcaption { padding: 12px 16px 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; }
  /* les messages arrivent l'un après l'autre quand la séance apparaît à l'écran */
  @media (prefers-reduced-motion: no-preference) {
    .live-class.js .lc-chat li { opacity: 0; transform: translateY(8px); transition: opacity var(--t-std) var(--ease), transform var(--t-std) var(--ease); }
    .live-class.is-on .lc-chat li { opacity: 1; transform: none; }
    .live-class.is-on .lc-chat li:nth-child(2) { transition-delay: 900ms; }
    .live-class.is-on .lc-chat li:nth-child(3) { transition-delay: 1900ms; }
  }
  @media (prefers-reduced-motion: reduce) { .lc-wave i { animation: none; } }
  @media (max-width: 640px) {
    .lc-stage { grid-template-columns: 1fr; }
    .lc-prof { min-height: 190px; }
    .lc-students { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  [dir="rtl"] .lc-name { left: auto; right: 10px; }
  [dir="rtl"] .lc-wave { right: auto; left: 10px; }
  [dir="rtl"] .lc-chat p[dir="ltr"] { text-align: right; }
  /* Vignettes vidéo de la séance (vidéos fournies par Lingonexo) */
  .lc-prof, .lc-students li { position: relative; overflow: hidden; }
  .lc-students li { aspect-ratio: 16 / 10; min-height: 0; }
  .lc-cam { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .lc-prof .lc-name, .lc-prof .lc-wave, .lc-students .lc-name { z-index: 1; }
  .lc-students .lc-name { left: 6px; bottom: 6px; padding: 1px 7px; font-size: 11px; }
  [dir="rtl"] .lc-students .lc-name { left: auto; right: 6px; }
  .lc-students li.is-you { box-shadow: inset 0 0 0 2px var(--orchid); }

  /* ---------- Test de niveau (test-niveau.html, script assets/test-niveau.js) ---------- */
  .lxt { max-width: 780px; margin-inline: auto; padding: clamp(20px, 4.5vw, 44px); border: 1px solid var(--line); border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(139, 61, 255, .07), rgba(139, 61, 255, 0) 220px), var(--surface); }
  .lxt [hidden] { display: none !important; }
  .lxt-titre { margin: 0; font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.2; letter-spacing: -.01em; }
  .lxt-titre:focus, .lxt-enonce:focus { outline: none; }
  .lxt-sous { margin: 14px 0 0; color: var(--muted); font-size: 17px; }
  .lxt-regles { margin: 22px 0 0; padding: 0; list-style: none; counter-reset: r; display: grid; gap: 14px; }
  .lxt-regles li { position: relative; padding-left: 44px; color: var(--muted); }
  .lxt-regles li::before { counter-increment: r; content: counter(r); position: absolute; left: 0; top: -2px; width: 30px; height: 30px; border-radius: 50%;
    display: grid; place-items: center; background: rgba(139, 61, 255, .18); color: var(--text); font-weight: 700; font-size: 14px; }
  .lxt-regles strong { color: var(--text); }
  .lxt-zero, .lxt-note { margin: 22px 0 0; color: var(--faint); font-size: 14.5px; }
  .lxt-zero a, .lxt-note a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
  .lxt-lien { padding: 0; border: 0; background: none; color: var(--text); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

  .lxt-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
  .lxt-etapes { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
  .lxt-etapes li { min-width: 40px; padding: 5px 9px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--faint); font-size: 13px; font-weight: 700; text-align: center; }
  .lxt-etapes .fait { border-color: transparent; background: rgba(139, 61, 255, .3); color: var(--text); }
  .lxt-etapes .encours { border-color: var(--orchid); color: var(--text); }
  .lxt-compte { margin: 0; color: var(--muted); font-size: 14px; }
  .lxt-barre { height: 4px; margin: 16px 0 26px; border-radius: 4px; background: var(--line); overflow: hidden; }
  .lxt-barre span { display: block; height: 100%; background: linear-gradient(90deg, var(--violet), var(--orchid)); transition: width var(--t-std) var(--ease); }

  .lxt-audio { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--surface-2); }
  .lxt-play { flex: none; width: 56px; height: 56px; border: 0; border-radius: 50%; display: grid; place-items: center; cursor: pointer; color: #fff;
    background: linear-gradient(135deg, var(--violet), var(--orchid)); box-shadow: 0 6px 24px rgba(139, 61, 255, .35); }
  .lxt-play svg { width: 26px; height: 26px; margin-left: 3px; }
  .lxt-play:disabled { cursor: default; opacity: .45; box-shadow: none; }
  .lxt-play.is-playing { opacity: 1; }
  @media (prefers-reduced-motion: no-preference) { .lxt-play.is-playing { animation: lxt-pouls 1.2s var(--ease) infinite; } }
  @keyframes lxt-pouls { 50% { box-shadow: 0 0 0 10px rgba(206, 58, 242, .12); } }
  .lxt-audio-info { flex: 1; min-width: 0; display: grid; gap: 4px; }
  .lxt-audio-info span:not(.lxt-piste) { color: var(--muted); font-size: 14px; }
  .lxt-piste { display: block; height: 4px; margin-top: 4px; border-radius: 4px; background: var(--line); overflow: hidden; }
  .lxt-piste span { display: block; width: 0; height: 100%; background: var(--orchid); }

  .lxt-q { margin: 0; padding: 0; border: 0; min-width: 0; }
  .lxt-q legend { padding: 0; width: 100%; }
  .lxt-consigne { display: block; margin-bottom: 8px; color: var(--faint); font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
  .lxt-enonce { display: block; font-size: clamp(1.2rem, 2.6vw, 1.5rem); font-weight: 600; line-height: 1.45; }
  .lxt-trou { display: inline-block; width: 4.2em; margin: 0 .15em; border-bottom: 2px solid var(--orchid); vertical-align: baseline; }
  .lxt-choix { display: grid; gap: 10px; margin-top: 22px; }
  .lxt-choix--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lxt-option { position: relative; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: 14px;
    background: rgba(255, 255, 255, .02); cursor: pointer; transition: border-color var(--t-quick) var(--ease), background var(--t-quick) var(--ease); }
  .lxt-option:hover { border-color: var(--orchid); }
  .lxt-option input { position: absolute; opacity: 0; pointer-events: none; }
  .lxt-option:has(input:checked) { border-color: var(--violet); background: rgba(139, 61, 255, .16); }
  .lxt-option:has(input:focus-visible) { outline: 2px solid var(--orchid); outline-offset: 2px; }
  .lxt-lettre { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--muted); font-size: 13px; font-weight: 700; }
  .lxt-option:has(input:checked) .lxt-lettre { border-color: transparent; background: var(--violet); color: #fff; }
  .lxt-texte { font-size: 16.5px; }
  .lxt-actions { margin-top: 26px; }
  .lxt-actions .btn[disabled] { opacity: .45; cursor: default; }

  .lxt-champs { display: grid; gap: 16px; margin-top: 24px; }
  .lxt-champ { display: grid; gap: 6px; font-weight: 600; }
  .lxt-champ small { color: var(--faint); font-weight: 500; }
  .lxt-champ input { min-height: 52px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--bg); color: var(--text); font: inherit; font-weight: 500; }
  .lxt-champ input:focus-visible { outline: 2px solid var(--orchid); outline-offset: 1px; border-color: transparent; }
  .lxt-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
  .lxt-erreur { margin: 16px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(255, 77, 109, .12); color: #FFC2CD; }

  .lxt-sur { margin: 0; color: var(--muted); font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
  .lxt-niveau { margin: 4px 0 10px; font-family: var(--serif); font-style: italic; font-size: clamp(4.5rem, 14vw, 7.5rem); line-height: 1;
    background: linear-gradient(120deg, #fff 20%, var(--orchid)); -webkit-background-clip: text; background-clip: text; color: transparent; }
  .lxt-recap { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
  .lxt-recap li { padding: 6px 12px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--muted); font-size: 14px; }
  .lxt-recap li.ok { border-color: transparent; background: rgba(139, 61, 255, .22); color: var(--text); }
  .lxt-recap strong { color: var(--text); }
  .lxt-wa { margin: 14px 0 0; }
  .lxt-wa .btn, .lxt .row-ctas .btn { max-width: 100%; white-space: normal; text-align: center; }

  @media (max-width: 560px) {
    .lxt-choix--2 { grid-template-columns: 1fr; }
    .lxt .row-ctas .btn, .lxt-wa .btn { width: 100%; }
    .lxt-etapes li { min-width: 0; padding: 4px 8px; font-size: 12px; }
  }

  /* ---------- Pages WooCommerce (commande, reçu de commande, panier, compte) : charte sombre (inc/commande.php) ----------
     Préfixe #contenu : ces règles doivent passer devant la feuille de style de WooCommerce. */
  #contenu .lx-wc { max-width: 1120px; margin-inline: auto; color: var(--text); }
  .lx-wc-intro { margin: 0 0 24px; color: var(--muted); font-size: 17px; }
  #contenu .lx-wc a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
  #contenu .lx-wc h2, #contenu .lx-wc h3 { margin: 0 0 18px; color: var(--text); font-size: 1.3rem; line-height: 1.25; letter-spacing: -.01em; }
  #contenu .lx-wc .woocommerce-notices-wrapper:empty { display: none; }
  #contenu .lx-wc .woocommerce-message, #contenu .lx-wc .woocommerce-info, #contenu .lx-wc .woocommerce-error, #contenu .lx-wc .woocommerce-NoticeGroup ul {
    margin: 0 0 20px; padding: 14px 18px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--surface-2); color: var(--muted); list-style: none; }
  #contenu .lx-wc .woocommerce-message::before, #contenu .lx-wc .woocommerce-info::before, #contenu .lx-wc .woocommerce-error::before { display: none; }
  #contenu .lx-wc .woocommerce-error, #contenu .lx-wc .woocommerce-NoticeGroup .woocommerce-error { border-color: rgba(255, 77, 109, .45); background: rgba(255, 77, 109, .1); color: #FFC2CD; }
  #contenu .lx-wc .woocommerce-error li { margin: 4px 0; }
  #contenu .lx-wc .woocommerce-form-coupon-toggle .woocommerce-info { border-style: dashed; background: transparent; }
  #contenu .lx-wc form.checkout_coupon { margin: -8px 0 20px; padding: 18px; border: 1px dashed var(--line-strong); border-radius: 14px; background: var(--surface); }
  #contenu .lx-wc form.checkout_coupon p:first-child { color: var(--muted); }

  /* formulaire : coordonnées à gauche, récapitulatif et paiement à droite */
  #contenu .lx-wc form.checkout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-areas: "notes notes" "client titre" "client recap"; grid-template-rows: auto auto 1fr; column-gap: 28px; align-items: start; }
  #contenu .lx-wc form.checkout > .woocommerce-NoticeGroup { grid-area: notes; }
  #contenu .lx-wc form.checkout > #customer_details { grid-area: client; }
  #contenu .lx-wc form.checkout > #order_review_heading { grid-area: titre; margin: 0; padding: 26px 28px 0; border: 1px solid var(--line); border-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; background: var(--surface-2); }
  #contenu .lx-wc form.checkout > #order_review { grid-area: recap; padding: 8px 28px 28px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--radius-lg) var(--radius-lg); background: var(--surface-2); }
  #contenu .lx-wc #customer_details { padding: 26px 28px 12px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
  #contenu .lx-wc .col2-set .col-1, #contenu .lx-wc .col2-set .col-2 { float: none; width: 100%; max-width: none; padding: 0; }
  #contenu .lx-wc .col2-set::before, #contenu .lx-wc .col2-set::after { display: none; }
  #contenu .lx-wc .woocommerce-additional-fields h3 { display: none; }

  /* champs */
  #contenu .lx-wc .form-row { margin: 0 0 16px; padding: 0; }
  #contenu .lx-wc .form-row label { display: block; margin-bottom: 6px; color: var(--text); font-weight: 600; font-size: 14.5px; line-height: 1.4; }
  #contenu .lx-wc .form-row .required { color: var(--orchid); text-decoration: none; border: 0; }
  #contenu .lx-wc .form-row .optional { color: var(--faint); font-weight: 500; }
  #contenu .lx-wc input.input-text, #contenu .lx-wc textarea, #contenu .lx-wc select, #contenu .lx-wc .select2-container .select2-selection--single {
    width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--bg); color: var(--text); font: inherit; font-weight: 500; box-shadow: none; }
  #contenu .lx-wc .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 14px; }
  #contenu .lx-wc .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; color: var(--text); line-height: 1.4; }
  #contenu .lx-wc .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; right: 10px; transform: translateY(-50%); }
  #contenu .lx-wc .select2-container .select2-selection--single .select2-selection__arrow b { border-top-color: var(--muted); }
  #contenu .lx-wc input.input-text:focus-visible, #contenu .lx-wc select:focus-visible, #contenu .lx-wc textarea:focus-visible { outline: 2px solid var(--orchid); outline-offset: 1px; border-color: transparent; }
  #contenu .lx-wc input.input-text::placeholder { color: var(--faint); }
  #contenu .lx-wc .woocommerce-invalid input.input-text, #contenu .lx-wc .woocommerce-invalid .select2-selection { border-color: rgba(255, 77, 109, .7); }
  #contenu .lx-wc input:-webkit-autofill { -webkit-text-fill-color: var(--text); box-shadow: 0 0 0 40px var(--bg) inset; caret-color: var(--text); }
  body.woocommerce-checkout .select2-dropdown { border-color: var(--line-strong); background: var(--surface-2); color: var(--text); }
  body.woocommerce-checkout .select2-search--dropdown .select2-search__field { border: 1px solid var(--line-strong); border-radius: 8px; background: var(--bg); color: var(--text); }
  body.woocommerce-checkout .select2-results__option--highlighted[aria-selected], body.woocommerce-checkout .select2-results__option[aria-selected="true"] { background: var(--violet); color: #fff; }

  /* récapitulatif : le nom du cours, puis le total, une seule fois */
  #contenu .lx-wc table.shop_table { width: 100%; margin: 0 0 22px; border: 0; border-collapse: collapse; border-radius: 0; color: var(--text); }
  #contenu .lx-wc table.shop_table th, #contenu .lx-wc table.shop_table td { padding: 14px 0; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--text); font-weight: 500; vertical-align: top; }
  #contenu .lx-wc table.shop_table tbody tr:first-child td { border-top: 0; }
  #contenu .lx-wc table.shop_table td:last-child, #contenu .lx-wc table.shop_table th:last-child { text-align: right; }
  #contenu .lx-wc table.shop_table.lx-recap td.product-name { font-size: 16.5px; font-weight: 600; line-height: 1.45; text-align: left; }
  #contenu .lx-wc table.shop_table tfoot th { color: var(--muted); font-weight: 600; text-align: left; }
  #contenu .lx-wc table.shop_table .order-total th { color: var(--text); font-size: 17px; }
  #contenu .lx-wc table.shop_table .order-total td, #contenu .lx-wc table.shop_table .order-total .amount { font-size: 1.6rem; font-weight: 800; letter-spacing: -.01em; }
  #contenu .lx-wc .woocommerce-Price-currencySymbol { font-size: .8em; }
  /* une autre extension met les montants en bloc (display: flex) : ils se collaient à gauche */
  #contenu .lx-wc table.shop_table .amount, #contenu .lx-wc table.shop_table .amount bdi, #contenu .lx-wc ul.order_details .amount, #contenu .lx-wc ul.order_details .amount bdi { display: inline; }

  /* paiement */
  #contenu .lx-wc #payment, #contenu .lx-wc .woocommerce-checkout-payment { background: transparent; border-radius: 0; }
  #contenu .lx-wc #payment ul.payment_methods { margin: 0 0 18px; padding: 0; border: 0; list-style: none; }
  #contenu .lx-wc #payment ul.payment_methods li { margin: 0 0 10px; padding: 0; line-height: 1.5; list-style: none; }
  #contenu .lx-wc #payment ul.payment_methods li > label, #contenu .lx-wc #payment ul.payment_methods li > p > label { display: inline-flex; align-items: center; gap: 8px; color: var(--text); font-weight: 700; }
  #contenu .lx-wc #payment ul.payment_methods li label br, #contenu .lx-wc #payment ul.payment_methods > li > p:empty { display: none; }
  #contenu .lx-wc #payment div.payment_box { margin: 10px 0 0; padding: 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--surface); color: var(--muted); font-size: 15px; }
  #contenu .lx-wc #payment div.payment_box::before { display: none; }
  #contenu .lx-wc #payment div.payment_box p { margin: 0 0 8px; }
  #contenu .lx-wc #payment div.payment_box p:empty, #contenu .lx-wc #payment div.payment_box br { display: none; }
  #contenu .lx-wc #payment .Chargily-option label, #contenu .lx-wc #payment .Chargily-option .Chargily { border-color: var(--line-strong) !important; background: var(--bg) !important; color: var(--text) !important; }
  #contenu .lx-wc #payment .Chargily-logo-z, #contenu .lx-wc #payment .Chargily-logo-z p { color: var(--faint); font-size: 13px; }
  #contenu .lx-wc #payment .Chargily-logo-z img { filter: invert(1) brightness(1.6); }
  #contenu .lx-wc #payment .Chargily-logo-z a { color: var(--muted) !important; }
  #contenu .lx-wc .woocommerce-privacy-policy-text, #contenu .lx-wc .woocommerce-terms-and-conditions-wrapper { color: var(--faint); font-size: 13.5px; line-height: 1.5; }
  #contenu .lx-wc .woocommerce-terms-and-conditions-wrapper p { margin: 0 0 14px; }
  #contenu .lx-wc #payment .place-order { margin: 0; padding: 0; }
  #contenu .lx-wc #place_order, #contenu .lx-wc .button { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 14px 26px; border: 0; border-radius: 999px; background: var(--white); color: var(--on-white); font: inherit; font-size: 17px; font-weight: 700; text-decoration: none; cursor: pointer; }
  #contenu .lx-wc #place_order { float: none; width: 100%; }
  #contenu .lx-wc #place_order:hover, #contenu .lx-wc .button:hover { background: #EBDDFB; color: var(--on-white); }
  #contenu .lx-wc .blockUI.blockOverlay { background: rgba(8, 5, 13, .6) !important; }

  /* reçu de commande et compte client */
  #contenu .lx-wc .woocommerce-order > p, #contenu .lx-wc .woocommerce-thankyou-order-received { color: var(--text); font-size: 18px; }
  #contenu .lx-wc ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0 0 28px; padding: 0; list-style: none; }
  #contenu .lx-wc ul.order_details::before, #contenu .lx-wc ul.order_details::after { display: none; }
  #contenu .lx-wc ul.order_details li { float: none; margin: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--muted); font-size: 13px; text-transform: none; }
  #contenu .lx-wc ul.order_details li strong { display: block; margin-top: 4px; color: var(--text); font-size: 16px; }
  #contenu .lx-wc .woocommerce-order-details, #contenu .lx-wc .woocommerce-customer-details { margin-bottom: 28px; padding: 24px 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
  #contenu .lx-wc address { padding: 0; border: 0; color: var(--muted); font-style: normal; line-height: 1.6; }

  @media (max-width: 900px) {
    #contenu .lx-wc form.checkout { grid-template-columns: 1fr; grid-template-areas: "notes" "client" "titre" "recap"; }
    #contenu .lx-wc form.checkout > #order_review_heading { margin-top: 20px; }
  }
  @media (max-width: 560px) {
    #contenu .lx-wc #customer_details, #contenu .lx-wc form.checkout > #order_review_heading, #contenu .lx-wc form.checkout > #order_review { padding-inline: 18px; }
    #contenu .lx-wc .form-row-first, #contenu .lx-wc .form-row-last { float: none; width: 100%; }
  }

  /* ---------- Code promo : autocollant violet collé sur le coin de « Votre formation » (inc/commande.php) ---------- */
  #contenu .lx-wc .woocommerce-form-coupon-toggle { position: relative; z-index: 3; display: flex; justify-content: flex-end; margin: 0 26px -24px 0; pointer-events: none; }
  #contenu .lx-wc .woocommerce-form-coupon-toggle .woocommerce-info { margin: 0; padding: 0; border: 0; background: none; }
  #contenu .lx-wc .lx-sticker {
    position: relative; isolation: isolate; overflow: hidden; pointer-events: auto;
    display: inline-flex; align-items: center; gap: 12px; padding: 11px 22px 11px 12px;
    color: #fff; text-decoration: none; line-height: 1.15;
    filter: drop-shadow(0 10px 22px rgba(139, 61, 255, .55));
    transform: rotate(-5deg); transform-origin: 70% 60%;
    transition: transform var(--t-std) var(--ease), filter var(--t-std) var(--ease);
  }
  /* fond en forme de ticket : dégradé de la charte, deux encoches sur les côtés */
  #contenu .lx-wc .lx-sticker::before {
    content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 14px;
    background: linear-gradient(135deg, var(--violet-brand) 0%, var(--violet) 45%, var(--orchid) 100%);
    box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .35);
    -webkit-mask: radial-gradient(circle 7px at 0 50%, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 7px at 100% 50%, transparent 97%, #000) right / 51% 100% no-repeat;
    mask: radial-gradient(circle 7px at 0 50%, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 7px at 100% 50%, transparent 97%, #000) right / 51% 100% no-repeat;
  }
  /* reflet qui traverse l'autocollant */
  #contenu .lx-wc .lx-sticker::after {
    content: ""; position: absolute; top: -60%; left: -70%; z-index: 1; width: 45%; height: 220%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent); transform: rotate(18deg); pointer-events: none;
  }
  #contenu .lx-wc .lx-sticker-pct { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--violet-brand); font-size: 19px; font-weight: 800; }
  #contenu .lx-wc .lx-sticker-txt { display: grid; gap: 2px; padding-left: 12px; border-left: 2px dashed rgba(255, 255, 255, .55); }
  #contenu .lx-wc .lx-sticker-txt strong { font-size: 15.5px; font-weight: 800; letter-spacing: -.01em; }
  #contenu .lx-wc .lx-sticker-txt span { font-size: 12.5px; font-weight: 600; opacity: .88; }
  #contenu .lx-wc .lx-sticker:hover, #contenu .lx-wc .lx-sticker:focus-visible { transform: rotate(0deg) scale(1.05); filter: drop-shadow(0 12px 28px rgba(206, 58, 242, .65)); }
  #contenu .lx-wc .lx-sticker:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  #contenu .lx-wc .lx-sticker[aria-expanded="true"] { transform: rotate(0deg); }
  @media (prefers-reduced-motion: no-preference) {
    #contenu .lx-wc .lx-sticker:not(:hover):not(:focus-visible):not([aria-expanded="true"]) { animation: lx-sticker-vit 6s var(--ease) infinite; }
    #contenu .lx-wc .lx-sticker::after { animation: lx-sticker-reflet 3.6s ease-in-out infinite; }
    #contenu .lx-wc .lx-sticker[aria-expanded="true"]::after { animation: none; }
  }
  /* il flotte, puis se secoue un instant, comme un autocollant qui attire l'œil */
  @keyframes lx-sticker-vit {
    0%, 100% { transform: rotate(-5deg) translateY(0); }
    22% { transform: rotate(-3deg) translateY(-5px); }
    44% { transform: rotate(-5deg) translateY(0); }
    60% { transform: rotate(-5deg) translateY(0) scale(1); }
    64% { transform: rotate(-10deg) translateY(-2px) scale(1.06); }
    68% { transform: rotate(1deg) translateY(-2px) scale(1.06); }
    72% { transform: rotate(-8deg) translateY(-1px) scale(1.03); }
    76% { transform: rotate(-3deg) translateY(0) scale(1.01); }
    80% { transform: rotate(-5deg) translateY(0) scale(1); }
  }
  @keyframes lx-sticker-reflet { 0%, 55% { left: -70%; } 100% { left: 130%; } }

  /* le champ du code, juste sous l'autocollant */
  #contenu .lx-wc form.checkout_coupon { position: relative; z-index: 2; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center;
    max-width: 520px; margin: 38px 0 22px auto; padding: 16px; border: 1px solid rgba(206, 58, 242, .45); border-radius: 16px;
    background: linear-gradient(135deg, rgba(111, 21, 203, .22), rgba(206, 58, 242, .12)), var(--surface); }
  #contenu .lx-wc form.checkout_coupon:not([style*="none"]) { display: grid; }
  #contenu .lx-wc form.checkout_coupon .form-row { float: none; width: auto; margin: 0; }
  #contenu .lx-wc form.checkout_coupon .clear { display: none; }
  #contenu .lx-wc form.checkout_coupon input.input-text { min-height: 50px; text-transform: uppercase; letter-spacing: .06em; }
  #contenu .lx-wc form.checkout_coupon .button { min-height: 50px; padding: 12px 20px; font-size: 15px; white-space: nowrap; }
  @media (max-width: 560px) {
    #contenu .lx-wc .woocommerce-form-coupon-toggle { margin-right: 10px; }
    #contenu .lx-wc form.checkout_coupon { grid-template-columns: 1fr; max-width: none; }
  }

  /* ---------- Coordonnées en vrais boutons (demande de Lingonexo : « on dirait du texte », surtout sur téléphone) ---------- */
  .contact-actions { display: grid; gap: 10px; max-width: 470px; margin: 28px 0 0; padding: 0; list-style: none; }
  .contact-btn { display: flex; align-items: center; gap: 14px; min-height: 62px; padding: 10px 16px 10px 10px; border: 1px solid var(--line-strong); border-radius: 16px;
    background: rgba(255, 255, 255, .04); color: var(--text); text-decoration: none;
    transition: border-color var(--t-quick) var(--ease), background var(--t-quick) var(--ease), transform var(--t-quick) var(--ease); }
  .contact-btn:hover { border-color: var(--orchid); background: rgba(139, 61, 255, .14); }
  .contact-btn:active { transform: scale(.98); }
  .contact-btn:focus-visible { outline: 2px solid var(--orchid); outline-offset: 2px; }
  .contact-btn-ico { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg, var(--violet), var(--orchid)); color: #fff; }
  .contact-btn-ico svg { width: 21px; height: 21px; }
  /* WhatsApp : le logo seul (bulle verte), pas de carré derrière ; appel : combiné blanc sur vert ; e-mail : logo Gmail sur blanc */
  .contact-btn--wa .contact-btn-ico { background: none; }
  .contact-btn--wa .contact-btn-ico svg { width: 38px; height: 38px; }
  .contact-btn--tel .contact-btn-ico { background: #25D366; }
  .contact-btn--mail .contact-btn-ico { background: #fff; }
  .contact-btn--mail .contact-btn-ico svg { width: 26px; height: 20px; }
  .contact-cards .btn svg[viewBox="52 42 88 66"] { width: 20px; height: 15px; }
  .contact-btn-txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
  .contact-btn-txt small { color: var(--muted); font-size: 13px; font-weight: 600; }
  .contact-btn-txt strong { font-size: 16.5px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
  .contact-btn-go { flex: none; width: 20px; height: 20px; color: var(--muted); transition: transform var(--t-quick) var(--ease), color var(--t-quick) var(--ease); }
  .contact-btn:hover .contact-btn-go { transform: translateX(3px); color: var(--text); }
  [dir="rtl"] .contact-btn-go { transform: scaleX(-1); }
  [dir="rtl"] .contact-btn:hover .contact-btn-go { transform: scaleX(-1) translateX(3px); }
  .pay-note { max-width: 470px; margin: 16px 0 0; color: var(--muted); font-size: 14.5px; line-height: 1.5; }
  /* page Contact : chaque carte a son bouton */
  .contact-cards .btn svg { width: 18px; height: 18px; color: currentColor; }
  .contact-cards .btn { gap: 8px; }
  @media (max-width: 640px) {
    .contact-actions, .pay-note { max-width: none; }
    .contact-cards .btn { align-self: stretch; }
  }
  .contact-cards .btn[href^="tel:"] svg { color: #25D366; }

  /* ---------- « Tout ce que vous allez apprendre » : rangées qui défilent seules (accueil et pages de niveau) ---------- */
  .learn { overflow: hidden; }
  .lm-rows { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; margin-top: 34px; }
  .lm-row { min-width: 0; }
  .lm-head { margin-bottom: 10px; }
  .lm-label { display: inline-flex; align-items: baseline; gap: 10px; color: var(--muted); font-size: 15px; font-weight: 600; text-decoration: none; }
  .lm-label b { color: var(--text); font-size: 1.35rem; font-weight: 800; letter-spacing: -.01em; }
  .lm-label:hover { color: var(--text); }
  .lm-viewport { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
  .lm-move { display: flex; width: max-content; animation: lm-defile var(--lm-dur, 180s) linear infinite; }
  .lm-row--droite .lm-move { animation-direction: reverse; }
  .lm-row:hover .lm-move, .lm-row:focus-within .lm-move, .lm-row:active .lm-move { animation-play-state: paused; }
  @keyframes lm-defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  [dir="rtl"] .lm-move { animation-name: lm-defile-rtl; }
  @keyframes lm-defile-rtl { from { transform: translateX(0); } to { transform: translateX(50%); } }
  .lm-track { display: flex; align-items: stretch; gap: 12px; margin: 0; padding: 4px 12px 4px 0; list-style: none; }
  .lm-card { flex: none; display: grid; align-content: center; gap: 6px; min-height: 108px; max-width: 330px; padding: 16px 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
  .lm-phrase { min-width: 240px; border-color: var(--line-strong); }
  .lm-phrase .lm-l2 { color: var(--text); font-size: 1.15rem; font-weight: 700; line-height: 1.3; }
  .lm-gl { color: var(--muted); font-family: var(--serif); font-style: italic; font-size: 1rem; line-height: 1.3; }
  .lm-tag { justify-self: start; padding: 2px 9px; border-radius: 999px; background: rgba(139, 61, 255, .2); color: #EBDDFB; font-size: 12px; font-weight: 700; }
  .lm-mot { min-height: 108px; background: linear-gradient(160deg, rgba(139, 61, 255, .16), rgba(139, 61, 255, 0)), var(--surface); }
  .lm-mot .lm-l2 { color: #EBDDFB; font-size: 1.1rem; font-weight: 800; }
  .lm-kind { color: var(--orchid); font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .lm-theme strong { color: var(--text); font-size: 1.05rem; }
  .lm-txt { color: var(--muted); font-size: 14.5px; line-height: 1.4; }
  .lm-gram { min-width: 230px; background: linear-gradient(135deg, rgba(111, 21, 203, .28), rgba(206, 58, 242, .08)), var(--surface); border-color: rgba(206, 58, 242, .3); }
  .lm-gram .lm-txt { color: var(--text); }
  @media (prefers-reduced-motion: reduce) {
    .lm-move { animation: none; }
    .lm-viewport { overflow-x: auto; -webkit-mask: none; mask: none; }
    .lm-track[aria-hidden="true"] { display: none; }
  }
  @media (max-width: 640px) {
    .lm-card { max-width: 270px; min-height: 96px; padding: 14px 16px; }
    .lm-phrase { min-width: 200px; }
    .lm-phrase .lm-l2 { font-size: 1.05rem; }
  }

  /* ---------- Carte « Votre premier sous-niveau » : les phrases défilent comme un générique de film ---------- */
  .credits { position: relative; height: 460px; margin-top: 14px; overflow: hidden;
    -webkit-mask: linear-gradient(180deg, transparent, #000 13%, #000 87%, transparent); mask: linear-gradient(180deg, transparent, #000 13%, #000 87%, transparent); }
  .credits-move { animation: cr-defile var(--cr-dur, 300s) linear infinite; will-change: transform; }
  /* Avec le script : plus d'arrêt au survol. On glisse à la souris ou au doigt, et garder appuyé arrête le défilement (site.js). */
  .credits.js { cursor: grab; touch-action: none; -webkit-user-select: none; user-select: none; }
  .credits.js.is-held { cursor: grabbing; }
  .credits.js .credits-move { animation: none; }
  .credits:focus-visible { outline: none; }
  .card:has(.credits:focus-visible) { outline: 2px solid var(--orchid); outline-offset: 3px; }
  @keyframes cr-defile { from { transform: translateY(0); } to { transform: translateY(-50%); } }
  .credits-track { padding-bottom: 12px; }
  .credits .cr-sub { padding: 46px 0 14px; }
  .credits .cr-tag { display: inline-block; margin: 0 0 26px; padding: 6px 14px; border-radius: 999px; background: rgba(139, 61, 255, .22); color: #EBDDFB; font-size: 14.5px; font-weight: 700; letter-spacing: .02em; }
  .credits .cr-l2 { margin: 0; color: var(--text); font-size: clamp(1.75rem, 3.6vw, 2.85rem); font-weight: 700; line-height: 1.24; letter-spacing: -.025em; }
  .credits .cr-gl { margin: .5em 0 2em .06em; color: var(--muted); font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 1.9vw, 1.45rem); line-height: 1.4; }
  [dir="rtl"] .cr-l2 { text-align: right; }
  @media (prefers-reduced-motion: reduce) {
    .credits-move { animation: none; }
    .credits { overflow-y: auto; -webkit-mask: none; mask: none; }
    .credits-track[aria-hidden="true"] { display: none; }
  }
  @media (max-width: 640px) { .credits { height: 400px; } .credits .cr-sub { padding-top: 34px; } }

  /* ---------- Carrière : deux postes côte à côte (page carriere.html) ---------- */
  .bento.jobs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bento.jobs .card { display: flex; flex-direction: column; gap: 12px; }
  .bento.jobs .card h3 { margin: 0; font-size: 1.35rem; }
  .bento.jobs .checks { margin-top: 4px; }
  /* le texte d'une ligne reste d'un seul tenant, même avec un nom de manuel (span translate="no") */
  .bento.jobs .checks li { display: block; position: relative; padding-left: 20px; }
  .bento.jobs .checks li::before { position: absolute; left: 0; top: .62em; transform: none; }
  .bento.jobs .lm-tag { align-self: flex-start; }
  .bento.jobs .card-more { margin-top: auto; }
  @media (max-width: 760px) { .bento.jobs { grid-template-columns: 1fr; } }
  /* Carrière : un formulaire par langue enseignée (Ninja Forms n° 12 en espagnol, n° 1 en anglais) */
  .cand-lead { max-width: 62ch; margin: 0 0 24px; color: var(--muted); }
  .cand-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
  .cand-grid .wp-panel { scroll-margin-top: 96px; }
  .cand-grid .lm-tag { display: inline-block; background: rgba(139, 61, 255, .12); color: var(--violet-brand); }
  .cand-grid .cand-note { margin: 10px 0 4px; color: #4a3d5c; }
  @media (max-width: 900px) { .cand-grid { grid-template-columns: 1fr; } }

  .cycles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  @media (max-width: 980px) { .cycles--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 640px) { .cycles--3 { grid-template-columns: 1fr; } }
