/* Page d'accueil : carrousel et bandeau des cours Zoom (sorti de index.html, étape 3b) */
  /* --- Personnages côtés (slides 1 & 3) --- */
  .ne-illus-left, .ne-illus-right, .ne-illus-monitor {
    max-width: none !important;
  }
  .ne-illus-left {
    position: absolute; left: 0; bottom: 0;
    height: 60% !important; width: auto !important;
    z-index: 0; pointer-events: none;
  }
  .ne-illus-right {
    position: absolute; right: 0; bottom: 0;
    height: 60% !important; width: auto !important;
    z-index: 0; pointer-events: none;
  }
  /* --- Moniteur (slide 2) : décor discret en bas-droite --- */
  .ne-illus-monitor {
    position: absolute; right: 12px; bottom: 14px;
    height: 150px !important; width: auto !important;
    z-index: 3; pointer-events: none;
  }
  /* --- Texte slide 2 : pleine largeur centrée + ombre lisibilité --- */
  .ne-slide2-text {
    max-width: 100%;
    text-shadow: 0 1px 4px rgba(0,0,0,0.7), 0 0 6px rgba(0,0,0,0.45);
  }

  /* --- Texte mobile slides 1 & 3 : marges pour les personnages (override Bootstrap px-0 !important) --- */
  .ne-mobile-content { padding-left: 0 !important; padding-right: 0 !important; }

  /* Tablette (768–991px) */
  @media (min-width: 768px) and (max-width: 991px) {
    .ne-illus-left { height: 70% !important; }
    .ne-illus-right { height: 70% !important; }
    .ne-illus-monitor { height: 120px !important; right: 10px; bottom: 12px; }
    .ne-mobile-content { padding-left: 148px !important; padding-right: 105px !important; }
  }
  /* Mobile (576–767px) */
  @media (min-width: 576px) and (max-width: 767px) {
    .ne-illus-left { height: 50% !important; }
    .ne-illus-right { height: 50% !important; }
    .ne-illus-monitor { height: 100px !important; right: 8px; bottom: 10px; }
    .ne-mobile-content { padding-left: 105px !important; padding-right: 72px !important; }
  }
  /* Petit mobile (< 576px) */
  @media (max-width: 575px) {
	/* Textes slides petits mobiles */
    .ne-illus-left { height: 36% !important; }
    .ne-illus-right { height: 36% !important; }
    /* Moniteur très réduit, en bas à droite */
    .ne-illus-monitor { height: 78px !important; right: 6px !important; bottom: 8px !important; }
    .ne-mobile-content { padding-left: 85px !important; padding-right: 65px !important; }
	.ne-mobile-content h1  { font-size: 0.9rem !important; }
	.ne-mobile-content h2  { font-size: 0.75rem !important; }
	.ne-slide2-text h1     { font-size: 0.95rem !important; }
	.ne-slide2-text h2     { font-size: 0.78rem !important; }
	.ne-board-green h1     { font-size: 0.95rem !important; }
	.ne-board-green h2     { font-size: 0.72rem !important; }
  }

  /* ===== TICKER SOUS LES SLIDES ===== */
  @keyframes ne-ticker {
    0%   { transform: translateX(100vw); }
    100% { transform: translateX(-100%); }
  }
  .ne-ticker-track {
    display: inline-block;
    white-space: nowrap;
    animation: ne-ticker 35s linear infinite;
  }

  /* ===== SLIDE 4 : BANDEAU ADAPTATIF ===== */
  .ne-s4-banner      { height: 160px; } /* mobile < 576px */
  .ne-s4-banner-grad { height: 160px; background: linear-gradient(to bottom, transparent 40%, #002f6c 90%) !important; }
  @media (min-width: 576px) {
    .ne-s4-banner      { height: 180px; }
    .ne-s4-banner-grad { height: 180px; background: linear-gradient(to bottom, transparent 35%, #002f6c 85%) !important; }
  }
  @media (min-width: 992px) {
    .ne-s4-banner      { height: 150px; }
    .ne-s4-banner-grad { height: 150px; background: linear-gradient(to bottom, transparent 25%, #002f6c 80%) !important; }
  }

  /* ===== SLIDES 1 & 3 : BANDEAU PHOTO RESPONSIVE ===== */
  .ne-s13-banner      { height: 130px; }
  .ne-s13-banner-grad { height: 130px; background: linear-gradient(to bottom, transparent 40%, #eeeee5 100%); }
  @media (min-width: 768px) {
    .ne-s13-banner      { height: 150px; }
    .ne-s13-banner-grad { height: 150px; }
  }
  @media (min-width: 992px) {
    .ne-s13-banner      { height: 180px; }
    .ne-s13-banner-grad { height: 180px; }
  }
  @media (min-width: 1400px) {
    .ne-s13-banner      { height: 200px; }
    .ne-s13-banner-grad { height: 200px; }
  }

  /* ===== SLIDE 2 : BANDEAU PHOTO + CONTENU SOUS LE BANDEAU ===== */
  .ne-s2-banner      { height: 110px; } /* mobile < 576px */
  .ne-s2-banner-grad {
    height: 110px;
    background: linear-gradient(to bottom, transparent 0%, transparent 45%, rgba(106,60,22,0.55) 80%, #6a3c16 100%) !important;
  }
  /* Mobile : padding-bottom plus large pour libérer le coin bas-droite (moniteur) */
  .ne-s2-content {
    padding: 0.75rem 1rem;
    padding-top: 118px;
    padding-bottom: 110px;
  }
  @media (min-width: 576px) {
    .ne-s2-banner      { height: 130px; }
    .ne-s2-banner-grad { height: 130px; }
    .ne-s2-content     { padding-top: 138px; padding-bottom: 1rem; }
  }
  @media (min-width: 992px) {
    .ne-s2-banner      { height: 150px; }
    .ne-s2-banner-grad { height: 150px; }
    .ne-s2-content     { padding-top: 160px; padding-bottom: 1rem; }
  }

  /* ===== TYPOGRAPHIE COMMUNE À TOUS LES SLIDES ===== */
  /* Taille et forme communes — les couleurs restent dans les classes par slide */
  .ne-slide-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: bold;
    padding: 3px 10px;
    border-radius: 3px;
    letter-spacing: 0.05em;
  }
  .ne-slide-title {
    font-size: 1.15rem !important;
    font-weight: bold;
    line-height: 1.4;
  }
  .ne-slide-text {
    font-size: 0.8rem !important;
    line-height: 1.45;
  }
  .ne-slide-btn { font-size: 0.82rem; }
  @media (min-width: 576px) {
    .ne-slide-title { font-size: 1.3rem !important; }
    .ne-slide-text  { font-size: 0.85rem !important; }
  }
  @media (min-width: 992px) {
    .ne-slide-title { font-size: 1.65rem !important; }
    .ne-slide-text  { font-size: 1rem !important; }
    .ne-slide-btn   { font-size: 0.92rem; }
  }

  /* ===== FONDS DE SLIDES : TABLEAUX CSS ===== */
  .ne-board-white, .ne-board-black, .ne-board-green {
    box-sizing: border-box !important;
    background-image: none !important;
  }
  /* Tableau blanc (slides 1 & 3) */
  .ne-board-white {
    background: linear-gradient(150deg, #eeeee5 0%, #f6f6ef 50%, #ebebde 100%) !important;
    border: 8px solid #b0ae9e !important;
    border-bottom: 18px solid #a0a080 !important;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.06), inset 0 0 10px rgba(0,0,0,0.04);
    border-radius: 2px !important;
  }
  /* Tableau noir (slide 2) */
  .ne-board-black {
    background: linear-gradient(150deg, #162616 0%, #1e2e1e 50%, #162416 100%) !important;
    border: 10px solid #7a5518 !important;
    border-bottom: 22px solid #8a6520 !important;
    box-shadow: inset 0 0 60px rgba(0,0,0,0.45), inset 0 0 18px rgba(0,0,0,0.25);
    border-radius: 2px !important;
  }
  /* Panneau bleu (slide 4) */
  .ne-board-green {
    background: linear-gradient(150deg, #002f6c 0%, #0055A4 50%, #003580 100%) !important;
    border: 10px solid #7a5518 !important;
    border-bottom: 22px solid #8a6520 !important;
    box-shadow: inset 0 0 55px rgba(0,0,0,0.4), inset 0 0 15px rgba(0,0,0,0.2);
    border-radius: 2px !important;
  }

  /* Slide 1 : cache les dates détaillées sur très petit mobile */
  @media (max-width: 575px) {
    .ne-slide1-dates { display: none !important; }
  }

  /* Slide 1 mobile : Option B — style marqueur sur tableau */
  .ne-s1-cat {
    background: linear-gradient(transparent 54%, rgba(255, 230, 0, 0.6) 54%);
    padding: 0 3px;
    font-weight: bold;
    color: #1a3a6e;
  }
  .ne-s1-cat-new {
    background: linear-gradient(transparent 54%, rgba(1, 114, 195, 0.35) 54%);
    padding: 0 3px;
    font-weight: bold;
    color: #0060a8;
  }
  .ne-s1-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: bold;
    color: #fff !important;
    background-color: #cc3800;
    padding: 2px 6px;
    border-radius: 3px;
    vertical-align: middle;
    margin-right: 4px;
    letter-spacing: 0.02em;
  }
  .ne-s1-desc {
    font-size: 0.82rem !important;
    color: #444 !important;
    background: none !important;
    box-shadow: none !important;
    padding-left: 0.4rem !important;
    padding-right: 0 !important;
	text-shadow: 0 0 6px #fff, 0 0 3px #fff,
               1px 1px 0 #fff, -1px -1px 0 #fff;
  }

  /* Slide 2 : fond bois (original + bandes claires) */
  .ne-board-wood {
    background:
      /* Bandes claires irrégulières */
      repeating-linear-gradient(
        180deg,
        transparent 0px,
        transparent 55px,
        rgba(200,145,70,0.22) 58px,
        rgba(210,155,80,0.18) 68px,
        transparent 74px,
        transparent 130px,
        rgba(195,138,65,0.15) 135px,
        transparent 148px
      ),
      /* Veines fines originales */
      repeating-linear-gradient(
        91deg,
        transparent 0px,
        rgba(0,0,0,0.04) 2px,
        transparent 5px,
        rgba(0,0,0,0.015) 11px,
        transparent 16px
      ),
      repeating-linear-gradient(
        89deg,
        transparent 0px,
        rgba(255,165,60,0.05) 5px,
        transparent 11px
      ),
      /* Teinte de base originale */
      linear-gradient(180deg,
        #6a3c16 0%,
        #7e4e24 20%,
        #5c3212 38%,
        #7a4a22 55%,
        #684018 70%,
        #7a4820 85%,
        #6a3c16 100%
      ) !important;
    border: none !important;
    border-radius: 2px !important;
    box-shadow: inset 0 0 60px rgba(0,0,0,0.18) !important;
  }

  /* Slide 2 : style craie sur tableau noir */
  .ne-s2-badge { color: #1a2e1a !important; background-color: #e8c040; }
  .ne-s2-cat {
    background: linear-gradient(transparent 54%, rgba(255, 255, 255, 0.28) 54%);
    padding: 0 3px;
    font-weight: bold;
    color: #fff;
  }

  /* Slide 3 : marges légèrement réduites pour plus de largeur */
  .ne-slide3-content { padding-left: 0; padding-right: 0; }
  @media (min-width: 768px) and (max-width: 991px) {
    .ne-slide3-content { padding-left: 110px; padding-right: 75px; }
  }
  @media (min-width: 576px) and (max-width: 767px) {
    .ne-slide3-content { padding-left: 78px; padding-right: 52px; }
  }
  /* Slide 3 : texte explicatif plus petit sur mobile/tablette */
  @media (max-width: 991px) {
    .ne-slide3-desc { font-size: 0.76rem !important; line-height: 1.3 !important; }
  }

  /* Slide 3 : bandeau saisonnier printemps (désactivé) */
  .ne-s3-spring { display: none; }

  /* Slide 3 : style marqueur sur tableau blanc */
  .ne-s3-badge { color: #fff !important; background-color: #c94f72; }
  .ne-s3-cat {
    background: linear-gradient(transparent 54%, rgba(1,114,195,0.22) 54%);
    padding: 0 3px;
    font-weight: bold;
    color: #0172C3;
  }

  /* Slide 4 : style craie sur tableau vert */
  .ne-s4-badge { color: #ffffff !important; background-color: #0055A4; }
  .ne-s4-cat {
    background: linear-gradient(transparent 54%, rgba(255,210,0,0.3) 54%);
    padding: 0 3px;
    font-weight: bold;
    color: #ffd700;
  }

  /* ============================================================
     CARROUSEL NE — Variation A (Editorial)
     Vanilla JS, remplace le bloc .owl-carousel d'origine.
     ============================================================ */
  :root {
    --ne-navy:   #083d77;
    --ne-blue:   #0055A4;
    --ne-red:    #EF4135;
    --ne-cream:  #fffaf0;
    --ne-gold:   #ffd700;
    --ne-text:   #4a4a4a;
    --ne-muted:  #6a6a6a;
  }

  .ne-hero {
    background: var(--ne-cream);
    padding: 16px 0 0;
  }
  .ne-carousel {
    position: relative;
    max-width: 1140px;
    margin: 0 auto;
    height: 460px;
    overflow: hidden;
    border-radius: 4px;
    box-shadow: 0 4px 24px rgba(8, 61, 119, 0.08);
    background: var(--ne-cream);
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  }

  .ne-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 700ms ease;
    text-decoration: none;
    color: inherit;
    display: block;
  }
  .ne-slide.is-active {
    opacity: 1;
    pointer-events: auto;
  }

  .ne-slide__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    user-select: none;
  }

  .ne-slide__veil { position: absolute; inset: 0; pointer-events: none; }
  .ne-slide--light .ne-slide__veil {
    background: linear-gradient(90deg,
      rgba(255,250,240,0.96) 0%,
      rgba(255,250,240,0.92) 45%,
      rgba(255,250,240,0.4) 70%,
      rgba(255,250,240,0) 100%);
  }
  .ne-slide--navy .ne-slide__veil {
    background: linear-gradient(90deg,
      rgba(8,61,119,0.88) 0%,
      rgba(8,61,119,0.6) 50%,
      rgba(8,61,119,0.25) 100%);
  }

  .ne-slide__stripe {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    display: flex;
    flex-direction: column;
    z-index: 4;
  }
  .ne-slide__stripe span { flex: 1; }
  .ne-slide__stripe span:nth-child(1) { background: var(--ne-blue); }
  .ne-slide__stripe span:nth-child(2) { background: #fff; }
  .ne-slide__stripe span:nth-child(3) { background: var(--ne-red); }

  .ne-slide__content {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 40px 60px;
    z-index: 3;
  }
  .ne-slide__inner { max-width: 620px; }

  .ne-slide--top .ne-slide__content {
    align-items: flex-start;
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .ne-eyebrow {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 17px;
    color: var(--ne-navy);
    letter-spacing: 0.04em;
    margin-bottom: 8px;
  }
  .ne-slide--navy .ne-eyebrow,
  .ne-slide--dark .ne-eyebrow { color: rgba(255,255,255,0.85); }

  .ne-title {
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', YuMincho, serif;
    font-size: 34px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--ne-navy);
    margin: 0 0 18px;
    letter-spacing: 0.01em;
  }
  .ne-title em {
    font-style: normal;
    color: var(--ne-red);
  }
  .ne-slide--navy .ne-title,
  .ne-slide--dark .ne-title { color: #fff; }
  .ne-slide--navy .ne-title em,
  .ne-slide--dark .ne-title em { color: var(--ne-gold); }

  .ne-title u {
    text-decoration: none;
    border-bottom: 3px solid var(--ne-red);
    padding-bottom: 2px;
  }

  .ne-lead {
    font-size: 14px;
    color: var(--ne-text);
    line-height: 1.7;
    margin: 0 0 22px;
    max-width: 540px;
  }
  .ne-slide--navy .ne-lead,
  .ne-slide--dark .ne-lead { color: rgba(255,255,255,0.85); }

  .ne-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #fff;
    background: var(--ne-navy);
    padding: 5px 12px;
    border-radius: 2px;
    text-transform: uppercase;
    margin-bottom: 14px;
  }
  .ne-badge--red   { background: var(--ne-red); }
  .ne-badge--white { background: #fff; color: var(--ne-navy); }

  .ne-paths {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0 0 14px;
  }
  .ne-paths a {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 6px 0;
    border-top: 1px solid rgba(8,61,119,0.15);
    text-decoration: none;
    color: inherit;
    transition: padding-left 200ms ease;
  }
  .ne-paths a:hover { padding-left: 6px; }
  .ne-paths a:last-child { border-bottom: 1px solid rgba(8,61,119,0.15); }
  .ne-paths .dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--ne-red);
    margin-top: 8px;
    flex-shrink: 0;
  }
  .ne-paths .lbl  { font-size: 15px; font-weight: 700; color: var(--ne-navy); }
  .ne-paths .sub  { font-size: 12px; color: var(--ne-muted); margin-top: 2px; }

  .ne-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 2px;
    transition: transform 200ms ease, box-shadow 200ms ease;
  }
  .ne-cta:hover { transform: translateX(2px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); }
  .ne-cta--solid { background: var(--ne-navy); color: #fff; }
  .ne-cta--red   { background: var(--ne-red);  color: #fff; }
  .ne-cta--ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.85); }

  .ne-illus {
    position: absolute;
    bottom: 0;
    right: 40px;
    object-fit: contain;
    object-position: bottom;
    pointer-events: none;
    user-select: none;
    z-index: 2;
    filter: drop-shadow(-8px 4px 20px rgba(0,0,0,0.08));
  }
  .ne-illus--character { height: 68%; }
  .ne-illus--monitor   { height: 75%; bottom: 24px; right: 40px; filter: drop-shadow(0 8px 24px rgba(0,0,0,0.35)); }

  .ne-indicator {
    position: absolute;
    top: 16px; right: 20px;
    z-index: 30;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(6px);
    color: var(--ne-navy);
    font-family: 'Cormorant Garamond', serif;
    font-weight: 600;
    padding: 4px 14px;
    border-radius: 999px;
    letter-spacing: 0.05em;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    font-size: 14px;
  }
  .ne-indicator b { font-size: 20px; }
  .ne-indicator span.sep { opacity: 0.4; margin: 0 4px; }
  .ne-indicator span.tot { opacity: 0.55; }

  .ne-arrow {
    position: absolute;
    bottom: 2px;
    z-index: 30;
    width: 42px; height: 42px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.92);
    color: var(--ne-navy);
    font-size: 26px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 200ms;
  }
  .ne-arrow:hover { background: #fff; }
  .ne-arrow--prev { left: 12px; padding-bottom: 4px; padding-right: 3px; }
  .ne-arrow--next { right: 12px; padding-bottom: 4px; padding-left: 3px; }

  .ne-dots {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 30;
    display: flex;
    gap: 10px;
    align-items: center;
  }
  .ne-dot {
    position: relative;
    width: 10px; height: 10px;
    border-radius: 999px;
    border: none;
    padding: 0;
    cursor: pointer;
    background: rgba(255,255,255,0.65);
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
    transition: width 400ms ease, background 200ms ease;
    overflow: hidden;
  }
  .ne-dot.is-active {
    width: 36px;
    background: rgba(255,255,255,0.45);
  }
  .ne-dot__progress {
    position: absolute;
    left: 0; top: 0;
    height: 100%;
    width: 0%;
    background: var(--ne-navy);
  }

  @media (max-width: 991px) {
    .ne-carousel { height: 420px; border-radius: 0; }
    .ne-slide__content { padding: 32px 36px; }
    .ne-title { font-size: 26px; }
    .ne-illus--character { height: 55%; right: 16px; }
    .ne-illus--monitor   { height: 70%; right: 20px; bottom: 18px; }
    .ne-paths { max-width: 65%; }
  }

  /* Tablette uniquement (576–991 px) : slide 2 — texte limité à 50 % pour ne pas chevaucher le moniteur à droite */
  @media (min-width: 576px) and (max-width: 991px) {
    .ne-slide:has(.ne-illus--monitor) .ne-slide__inner { max-width: 50%; }
  }

  @media (max-width: 575px) {
    .ne-carousel { height: 540px; }
    .ne-slide__content {
      padding: 24px 20px 80px;
      align-items: flex-start;
      padding-top: 50%;
    }
    .ne-slide__inner { max-width: 100%; }

    .ne-slide__photo {
      height: 50%;
      bottom: auto;
    }
    .ne-slide--light .ne-slide__veil {
      background: linear-gradient(180deg,
        rgba(255,250,240,0) 0%,
        rgba(255,250,240,0.4) 35%,
        rgba(255,250,240,0.96) 50%);
    }
    .ne-slide--navy .ne-slide__veil {
      background: linear-gradient(180deg,
        rgba(8,61,119,0) 0%,
        rgba(8,61,119,0.5) 35%,
        rgba(8,61,119,0.95) 50%);
    }

    .ne-eyebrow { font-size: 14px; margin-bottom: 4px; }
    .ne-title   { font-size: 20px; margin-bottom: 12px; }
    .ne-lead    { font-size: 13px; margin-bottom: 16px; }

    .ne-paths { max-width: 70%; }
    .ne-paths a { padding: 8px 0; }
    .ne-paths .lbl { font-size: 13px; }
    .ne-paths .sub { font-size: 11px; }

    .ne-illus--character {
      height: 38%;
      right: 8px;
      max-width: 35%;
    }
    .ne-illus--monitor {
      /* Slide 2 mobile : moniteur centré dans la moitié haute (à la place de l'ancienne photo) */
      height: 40%;
      right: 50%;
      transform: translateX(50%);
      bottom: auto;
      top: 20px;
    }

    .ne-arrow { width: 36px; height: 36px; font-size: 22px; bottom: 5px; }
    .ne-indicator { font-size: 12px; padding: 3px 10px; top: 10px; right: 10px; }
    .ne-indicator b { font-size: 16px; }

    /* Slide 1 (--top) : plus de contenu (2 chemins + CTA) → photo plus courte
       et texte qui démarre plus bas pour ne plus chevaucher la photo. */
    .ne-slide--top .ne-slide__photo { height: 35%; }
    .ne-slide--top .ne-slide__content { padding-top: 32%; padding-bottom: 70px; }
    .ne-slide--light.ne-slide--top .ne-slide__veil {
      background: linear-gradient(180deg,
        rgba(255,250,240,0) 0%,
        rgba(255,250,240,0.4) 19%,
        rgba(255,250,240,0.96) 32%);
    }
  }
