<!DOCTYPE html><!-- Last Published: Thu Apr 23 2026 18:22:33 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="culturelatuque.com" data-wf-page="6836826db53a37e1a776e731" data-wf-site="67ff26d3c9b287a9d681f229" data-wf-intellimize-customer-id="117601192" lang="en" data-wf-collection="6836826cb53a37e1a776e6d5" data-wf-item-slug="danse"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Danse | Programmation | Culture La Tuque</title><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/css/ccfl-1.webflow.shared.5a00ae718.css" rel="stylesheet" type="text/css" integrity="sha384-WgCucY/kI5vbOnisvM+3PPlhPCyetJ+RHzQBpkNgQ2nJF8YHfroxgNiUC18U5SyL" crossorigin="anonymous"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({  google: {    families: ["Inconsolata:400,700"]  }});</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/67ff2a681d4da1045cf4a1c1_ccfl_oeil_32px.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/67ff2a6d2c5a366429cb8b34_ccfl_oeil_256px.png" rel="apple-touch-icon"/><style>.anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}</style><style>[data-wf-hidden-variation], [data-wf-hidden-variation] * {
        display: none !important;
      }</style><style>
  .w-webflow-badge{
  display:none !important;
  }
 </style>

<script>
(() => {
  const YEAR = String(new Date().getFullYear());
  const YEAR_AFTER_COPY = /(©\s*)\d{4}/;

  // Efficient: XPath returns only text nodes containing "©" (not every text node on the page)
  function patchCopyrightYear(scope) {
    if (!scope) return 0;

    const xp =
      ".//text()[contains(., '©') and not(ancestor::script) and not(ancestor::style) and not(ancestor::noscript)]";

    const snap = document.evaluate(xp, scope, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

    let patched = 0;
    for (let i = 0; i < snap.snapshotLength; i++) {
      const tn = snap.snapshotItem(i); // Text node
      const s = tn.nodeValue;

      if (!s || s.indexOf("©") === -1) continue;
      if (!YEAR_AFTER_COPY.test(s)) continue;

      const next = s.replace(YEAR_AFTER_COPY, `$1${YEAR}`);
      if (next !== s) {
        tn.nodeValue = next;
        patched++;
      }
    }
    return patched;
  }

  function run() {
    // 1) Inner pages: footer is present
    const footer = document.querySelector("footer, [role='contentinfo']");
    if (patchCopyrightYear(footer)) return;

    // 2) Homepage variant: often not a semantic <footer>, so target the DOM tail first
    const tail = document.body.lastElementChild || document.body;
    if (patchCopyrightYear(tail)) return;

    // 3) Last resort (still only touches nodes containing "©")
    patchCopyrightYear(document.body);
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", run, { once: true });
  } else {
    run();
  }
})();
</script>



<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '936530161718079');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=936530161718079&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->



<!-- Hotjar Tracking Code for Site web -->
<script>
    (function(h,o,t,j,a,r){
        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
        h._hjSettings={hjid:6465582,hjsv:6};
        a=o.getElementsByTagName('head')[0];
        r=o.createElement('script');r.async=1;
        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
        a.appendChild(r);
    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
</script><script type="text/javascript">window.__WEBFLOW_CURRENCY_SETTINGS = {"currencyCode":"USD","symbol":"$","decimal":".","fractionDigits":2,"group":",","template":"{{wf {\"path\":\"symbol\",\"type\":\"PlainText\"} }} {{wf {\"path\":\"amount\",\"type\":\"CommercePrice\"} }} {{wf {\"path\":\"currencyCode\",\"type\":\"PlainText\"} }}","hideDecimalForWholeNumbers":false};</script></head><body><div data-w-id="0137f386-fe09-5d7a-a2a9-df3173fccc9a" class="top-bar-wrapper"><div class="top-bar-padding"><div class="top-bar-flex space-between"><div class="mg-right-24px mg-bt-16px"><div class="text-200 list">Offre d&#x27;emploi : Directrice/Directeur des événements</div></div><a href="https://culturelatuque.com/actualites/offre-dempoi-directrice-directeur-aux-evenements" data-w-id="0137f386-fe09-5d7a-a2a9-df3173fccca1" target="_blank" class="link-wrapper color-neutral-800 alert-bar-no-border w-inline-block"><div class="flex align-center alert-bar-no-border"><div class="text-200 bold text-uppercase">En savoir plus</div><div class="line-square-icon diagonal-arrow-right icon-size-20px"></div></div></a></div><div data-w-id="0137f386-fe09-5d7a-a2a9-df3173fccca7" class="line-square-icon top-bar-close-icon"></div></div></div><div class="page-wrapper"><div data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb68" data-animation="over-left" data-collapse="all" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="header-wrapper w-nav"><div class="container-default container-header w-container"><div class="header-content-wrapper"><div><a href="/" class="header-logo-link w-nav-brand"><img src="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/683685ca8e715b078ba9c7ae_OEIL%20-%20Blanc.svg" height="56" alt=""/></a></div><div><a href="/programmation" class="cart-button">Programmation</a><div data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb6e" class="full-page-menu-btn-wrapper w-nav-button"><div class="full-page-menu-dot top-left"></div><div class="full-page-menu-dot top-right"></div><div class="full-page-menu-dot bottom-left"></div><div class="full-page-menu-dot bottom-right"></div></div></div></div><div class="full-page-menu-wrapper"><div class="full-page-menu-bg-light"></div><div class="full-page-menu-bg-dark"></div><div class="full-page-menu-content-container"><div class="full-page-menu-title-container"><div class="display-1 mg-bottom-56px">Des étoiles dans les yeux!</div><div id="w-node-b63d8acd-2e95-8948-9ffd-6aac855dbb7a-855dbb68" class="social-square-links-container"><a href="https://www.facebook.com/complexeculturelfelixleclerc/" target="_blank" class="social-icon-square w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.instagram.com/complexeculturelfelixleclerc/" target="_blank" class="social-icon-square w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.tiktok.com/@culturelatuque" target="_blank" class="social-icon-square w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.youtube.com/c/ComplexeMultim%C3%A9dia/streams" target="_blank" class="social-icon-square w-inline-block"><div class="social-icon-font"></div></a></div></div><ul role="list" class="full-page-menu-list"><li data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb8c" class="full-page-menu-list-item"><a href="/complexe-culturel-felix-leclerc" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4 mobile-nav-links-centering">Complexe Culturel Félix-Leclerc</div></a></li><li data-w-id="fbf26df9-12a4-659b-92c8-fd257d251cd0" class="full-page-menu-list-item"><a href="/complexe-multimedia" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4">Complexe Multimédia</div></a></li><li data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb90" class="full-page-menu-list-item"><a href="/centre-des-congres" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4">Centre des Congrès</div></a></li><li data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb94" class="full-page-menu-list-item"><a href="/a-propos" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4">Culture La Tuque</div></a></li><li data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb98" class="full-page-menu-list-item"><a href="/actualites" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4">Actualités</div></a></li><li data-w-id="c55fef31-5ee4-a501-08cb-135dc4b939cb" class="full-page-menu-list-item"><a href="/formulaires" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4">Formulaires</div></a></li><li data-w-id="b63d8acd-2e95-8948-9ffd-6aac855dbb9c" class="full-page-menu-list-item"><a href="/contact" class="text-decoration-none pd-10px-top-and-bottom w-inline-block"><div class="display-4 mobile-nav-links-centering">Contact</div></a></li></ul></div></div></div></div><div class="top-section pd-top-124px pd-bottom-250px"><div class="container-default w-container"><div class="mg-bottom-104px"><h1 class="display-1 mg-bottom-24px display-3">PROGRAMMATION 25/26</h1><div class="grid-2-columns _1-col-tablet gap-row-64px"><div data-w-id="8f8531e3-ff14-096e-6fda-fa0927c863fe" style="opacity:0" class="w-dyn-list"><div role="list" class="category-links-container w-dyn-items"><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/improvisation" class="text-401 category-link w-inline-block"><div>Impro</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/hommage" class="text-401 category-link w-inline-block"><div>Hommage</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/cinema" class="text-401 category-link w-inline-block"><div>Cinéma</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/famille" class="text-401 category-link w-inline-block"><div>Famille</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/cirque" class="text-401 category-link w-inline-block"><div>Cirque</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/danse" aria-current="page" class="text-401 category-link w-inline-block w--current"><div>Danse</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/magie" class="text-401 category-link w-inline-block"><div>Magie</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/theatre" class="text-401 category-link w-inline-block"><div>Théâtre</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/varietes" class="text-401 category-link w-inline-block"><div>Variétés</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/decouvertes" class="text-401 category-link w-inline-block"><div>Découvertes</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/humour" class="text-401 category-link w-inline-block"><div>Humour</div></a></div><div role="listitem" class="category-links-container w-dyn-item"><div class="text-401 category-divider">/</div><a href="/categories-evenements/chanson" class="text-401 category-link w-inline-block"><div>Chanson</div></a></div></div></div><div id="w-node-_1b7899e7-01ff-a823-a3ad-8f36b9a54c8a-a776e731" class="inner-container _532px _100-tablet"><form action="/search" class="position-relative---z-index-1 flex-horizontal mg-bottom-0 w-form"><input class="input icon-inside-right w-input" maxlength="256" name="query" placeholder="Recherche..." type="search" id="search" required=""/><input type="submit" class="btn-inside-input-right w-button" value=""/></form></div></div></div></div><div class="section pd-top-0"><div class="container-default w-container"><h2 class="display-1 mg-bottom--36px position-relative---z-index-2 display-2">PROCHAINS ÉVÉNEMENTS</h2></div><div class="collection-list-wrapper w-dyn-list"><div class="empty-listing-page-banner w-dyn-empty"><div class="text-block empty-listing-page-banner-error-text">Cette catégorie ne contient aucun événement (annoncé publiquement 😉)...</div></div></div></div></div><footer class="footer-wrapper"><div class="container-default w-container"><div class="footer-top"><div id="w-node-_559aa249-bde6-1acf-baa1-cef6e279af9e-812f48be" data-w-id="559aa249-bde6-1acf-baa1-cef6e279af9e"><a href="/" class="footer-logo-wrapper w-inline-block"><img src="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/683685ca8e715b078ba9c7ae_OEIL%20-%20Blanc.svg" alt="" class="width-100"/></a></div><div id="w-node-cbc828bf-df20-4f5e-539d-d4bd812f48c3-812f48be" data-w-id="cbc828bf-df20-4f5e-539d-d4bd812f48c3"><div class="text-300 bold footer-title">Entités</div><div class="grid-2-columns footer-menu-grid"><ul id="w-node-cbc828bf-df20-4f5e-539d-d4bd812f48c7-812f48be" role="list" class="footer-list-wrapper"><li class="footer-list-item"><a href="/complexe-culturel-felix-leclerc" class="footer-link">Complexe Culturel Félix-Leclerc</a></li><li class="footer-list-item"><a href="/complexe-multimedia" class="footer-link">Complexe Multimédia</a></li><li class="footer-list-item"><a href="/centre-des-congres" class="footer-link">Centre des Congrès</a></li><li class="footer-list-item mg-bottom-0"><a href="/a-propos" class="footer-link">Culture La Tuque</a></li></ul></div></div><div id="w-node-ebffbcc5-ee10-af70-5963-fa3c22543f12-812f48be" data-w-id="ebffbcc5-ee10-af70-5963-fa3c22543f12" class="inner-container"><div class="text-300 bold footer-title">Liens utiles</div><div><ul role="list" class="footer-list-wrapper"><li class="footer-list-item"><a href="/politiques/confidentialite" target="_blank" class="footer-link">Politique de confidentialité</a></li><li class="footer-list-item"><a href="/programmation" class="footer-link">Programmation</a></li><li class="footer-list-item"><a href="/actualites" class="footer-link">Actualités</a></li><li class="footer-list-item"><a href="/formulaires" class="footer-link">Formulaires</a></li><li class="footer-list-item"><a href="/contact" class="footer-link">Contact</a></li></ul></div></div></div><div class="footer-bottom"><div data-w-id="cbc828bf-df20-4f5e-539d-d4bd812f4905" class="inner-container _252px _100-tablet"><div class="social-single-links-container center-tablet"><a href="https://www.facebook.com/complexeculturelfelixleclerc/" target="_blank" class="social-icon-single w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.instagram.com/complexeculturelfelixleclerc/" target="_blank" class="social-icon-single w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.tiktok.com/@culturelatuque" target="_blank" class="social-icon-single w-inline-block"><div class="social-icon-font"></div></a><a href="https://www.youtube.com/c/ComplexeMultim%C3%A9dia/streams" target="_blank" class="social-icon-single w-inline-block"><div class="social-icon-font"></div></a></div><p class="mg-bottom-48px mg-bottom-16px-tablet">© 2025 | <a href="#" class="text-bold text-decoration-none">Culture La Tuque</a><br/>Conception web par <a href="https://davenmartel.com" target="_blank" class="text-decoration-none text-bold">Daven Martel</a> <br/>Mises à jour par <a href="#" class="text-bold text-decoration-none">Bruno Cantin</a></p></div><div data-w-id="cbc828bf-df20-4f5e-539d-d4bd812f491a" class="footer-bottom---form-container"><div class="display-4 mg-bottom-24px">Pour NE rien MANQUER,<br/>c&#x27;est par ici:</div><div class="mg-bottom-0 w-form"><form id="wf-form-inscription-infolettre" name="wf-form-Inscription-l-infolettre" data-name="Inscription à l&#x27;infolettre" method="get" data-wf-page-id="6836826db53a37e1a776e731" data-wf-element-id="cbc828bf-df20-4f5e-539d-d4bd812f491e"><div class="flex align-center gap-column-16px"><input class="input border-radius-40px w-input" maxlength="256" name="FirstName" data-name="FirstName" placeholder="Prénom" type="text" id="FirstName" required=""/><input class="input border-radius-40px w-input" maxlength="256" name="LastName" data-name="LastName" placeholder="Nom de famille" type="text" id="LastName" required=""/></div><div class="flex align-center gap-column-24px"><input class="input border-radius-40px w-input" maxlength="256" name="Email" data-name="Email" placeholder="votre@courriel.com" type="email" id="Email" required=""/><input type="submit" data-wait="" class="btn-circle-primary w-button" value=""/></div></form><div class="success-message transparent w-form-done"><div class="input-single-success-message"><div>Inscription bien reçue — À bientôt!</div></div></div><div class="error-message w-form-fail"><div>Oops! Une erreur s&#x27;est produite.</div></div></div></div></div></div></footer></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=67ff26d3c9b287a9d681f229" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/js/webflow.schunk.1a807f015b216e46.js" type="text/javascript" integrity="sha384-oY4R8SfnVBTWnix6ULiWbZs/5tyRyxEiWcG+WrT3unnu5pmfsIYJEraZcyFVlvND" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/js/webflow.schunk.525db01ad58fcf19.js" type="text/javascript" integrity="sha384-/urDy1T7pAj5nEjBqnahAKSeP+7MSOHm8uwvKY/Fg8vI85zn2lpQFRIhmL1NaZHY" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/67ff26d3c9b287a9d681f229/js/webflow.21d19a5d.d5ed132b118fdd62.js" type="text/javascript" integrity="sha384-Zx/dRsrG+oMEnBD3VENPvN7Y1HcKQJlSPRqlaef+wj+ty8bKXgi47B7xjO4rjV76" crossorigin="anonymous"></script><script>
/* =====================================================================
   “TOUT” injector – keeps highlight correct & removes extra first “/”
   ===================================================================== */
(function () {

  /* --------------------------------------------------------- helpers */
  function updateHighlight() {
    const tout = document.querySelector('a[href="/programmation"]');
    if (!tout) return;

    const onProg = /^\/programmation\/?$/.test(location.pathname.toLowerCase());

    /* Webflow relies on class **and** aria-current */
    tout.classList.toggle('w--current', onProg);
    if (onProg) {
      tout.setAttribute('aria-current', 'page');
    } else {
      tout.removeAttribute('aria-current');
    }
  }

  /* Remove any divider immediately before the first <a> in the list */
  function removeLeadingDivider(list) {
    const firstLink = list.querySelector('a');
    if (!firstLink) return;
    let n = firstLink.previousSibling;
    while (n &&
          ((n.nodeType === Node.TEXT_NODE && /\/\s*$/.test(n.textContent)) ||
           (n.nodeType === Node.ELEMENT_NODE && n.classList.contains('category-divider')))) {
      const prev = n;
      n = n.previousSibling;
      prev.remove();
    }
  }

  /* ----------------------------------------------------- main routine */
  function run() {
    const path = location.pathname.toLowerCase();
    if (!(path.includes('/programmation') ||
          path.includes('/categories-evenements'))) return;

    /* wrapper holding the dynamic list */
    const list = document.querySelector('.w-dyn-list');
    if (!list) return;

    /* already injected? just refresh highlight & tidy dividers */
    if (list.querySelector('a[href="/programmation"]')) {
      updateHighlight();
      removeLeadingDivider(list);
      return;
    }

    /* first category link (e.g. “Hommage”) */
    const firstCat = list.querySelector('a[href^="/categories-evenements/"]');
    if (!firstCat) return;

    /* clone link for “TOUT” */
    const tout = firstCat.cloneNode(false);
    tout.href = '/programmation';
    tout.textContent = 'TOUT';

    /* ensure highlight status is correct right away */
    updateHighlight = () => {             // redefine with new element in scope
      const onProg = /^\/programmation\/?$/.test(location.pathname.toLowerCase());
      tout.classList.toggle('w--current', onProg);
      if (onProg) {
        tout.setAttribute('aria-current', 'page');
      } else {
        tout.removeAttribute('aria-current');
      }
    };
    updateHighlight();

    /* proper divider clone so margins & weight stay identical */
    const templateDiv = list.querySelector('.category-divider');
    const divider = templateDiv
      ? templateDiv.cloneNode(true)
      : Object.assign(document.createElement('div'), {
          className: 'text-400 category-divider',
          textContent: '/'
        });

    /* remove any divider that precedes firstCat (old leading “/”) */
    removeLeadingDivider(list);

    /* insert: TOUT  /  HOMMAGE … */
    firstCat.parentElement.insertBefore(divider, firstCat);
    firstCat.parentElement.insertBefore(tout, divider);
  }

  /* ---------------------------------- fire on load & SPA navigations */
  window.addEventListener('load', run);
  ['pushState', 'replaceState'].forEach(fn => {
    const orig = history[fn];
    history[fn] = function () {
      const out = orig.apply(this, arguments);
      setTimeout(run, 0);
      return out;
    };
  });
  window.addEventListener('popstate', () => setTimeout(run, 0));

})();
</script>


<!-- Formulaire d'inscription à l'infolettre vers Ovation -->
<script>
  if (1==0) { // Attendre le GO LIVE
document.addEventListener('DOMContentLoaded', () => {
  const form = document.getElementById('wf-form-inscription-infolettre'); // form name in Webflow
  if (!form) return;

  const wrapper = form.closest('.w-form') || form.parentElement;
  const done = wrapper.querySelector('.w-form-done');
  const fail = wrapper.querySelector('.w-form-fail');
  const submitBtn = form.querySelector('button[type="submit"], .w-button');

  // Accessible live region (optional)
  let status = form.querySelector('[role="status"]');
  if (!status) {
    status = document.createElement('p');
    status.setAttribute('role', 'status');
    status.setAttribute('aria-live', 'polite');
    form.appendChild(status);
  }

  form.addEventListener('submit', async (e) => {
    // Stop BOTH browser navigation and Webflow's own AJAX handler
    e.preventDefault();
    e.stopImmediatePropagation();

    // Basic validity UI
    if (!form.checkValidity()) { form.reportValidity(); return; }

    // UI: sending state
    const originalLabel = submitBtn ? submitBtn.textContent : null;
    if (submitBtn) { submitBtn.disabled = true; submitBtn.textContent = 'Subscribing…'; }
    status.textContent = '';
    if (fail) fail.style.display = 'none';

    try {
      const body = new FormData(form);

      // Honeypot: if filled, pretend success
      if (body.get('website')) {
        if (done) { done.style.display = 'block'; form.style.display = 'none'; }
        return;
      }

      // POST to your backend / serverless (proxy to your ESP to keep API keys secret)
      const res = await fetch('https://www.ovation.ca/marketing/1L/Newsletter/DirectSubscribe', {
        method: 'POST',
        body,
        credentials: 'same-origin',
        headers: { 'Accept': 'application/json' }
      });

      if (!res.ok) {
        let msg = `Request failed (HTTP ${res.status})`;
        try { const j = await res.json(); if (j.error) msg = j.error; } catch {}
        throw new Error(msg);
      }

      const data = await res.json();

      // Show Webflow-style success UI (you control the message)
      if (done) {
        const msgEl = done.querySelector('div, p') || done;
        msgEl.textContent = data.message || 'Presque terminé — Vérifiez votre courriel pour confirmer l\'inscription.';
        done.style.display = 'block';
        form.style.display = 'none';
      } else {
        status.textContent = data.message || 'Inscription réussie!';
        form.reset();
      }
    } catch (err) {
      // Show Webflow-style error UI
      const msg = err.message || 'Une erreur s\'est produite. Vérifier le courriel & réessayez.';
      if (fail) {
        const msgEl = fail.querySelector('div, p') || fail;
        msgEl.textContent = msg;
        fail.style.display = 'block';
      } else {
        status.textContent = msg;
      }
    } finally {
      if (submitBtn) { submitBtn.disabled = false; submitBtn.textContent = originalLabel; }
    }
  });
});
}
</script>
<!-- Rubans en diagonal des événements (pas toujours affichés) -->
<style>
.ruban-enfant:before,
.ruban-enfant:after {
  content: '';
  position: absolute;
  top:0;
  margin: 0 -1px; /* tweak */
  width: 300%;
  height: 100%;
  background: #a12b2a;
}
.ruban-enfant:before {
  right:100%;
}

.ruban-enfant:after {
  left:100%;
}
</style>

<script>
// Traduit les mois de l'année (pour la programmation)
const monthMap = {
  January:   'Janvier',
  February:  'Février',
  March:     'Mars',
  April:     'Avril',
  May:       'Mai',
  June:      'Juin',
  July:      'Juillet',
  August:    'Août',
  September: 'Septembre',
  October:   'Octobre',
  November:  'Novembre',
  December:  'Décembre'
};

// Build a regex that matches any of the English months
const monthRegex = new RegExp(`\\b(${Object.keys(monthMap).join('|')})\\b`, 'g');

// Select all elements with the class .date-pour-traduction
document.querySelectorAll('.date-traduire').forEach(el => {
  // Determine whether to use textContent or value (e.g., for inputs)
  const prop = ('value' in el) ? 'value' : 'textContent';
  const original = el[prop];

  // Replace any English month with its French equivalent
  const translated = original.replace(monthRegex, matched => monthMap[matched]);

  // Update the element only if a replacement occurred
  if (translated !== original) {
    el[prop] = translated;
  }
});
</script>




<!-- Filtrage instantané de la page /programmation -->
<style>
  /* classe utilitaire pour masquer les sections non concordantes */
  .is--hidden { display: none !important; }
</style>

<!-- Filtrage instantané -->
<style>
  /* Cache vraiment toute la carte, même si d’autres règles existent */
  .collection-item.is--hidden { display: none !important; }
</style>

<script>
document.addEventListener('DOMContentLoaded', () => {
  const searchInput = document.getElementById('search');
  if (!searchInput) return;           // le champ n’existe pas → on sort

  const items = document.querySelectorAll('.collection-item');

  function filterList() {
    const query = searchInput.value.trim().toLowerCase();

    items.forEach(item => {
      // Texte du premier heading trouvé
      const heading = item.querySelector('h1,h2,h3,h4,h5,h6');
      const title   = heading ? heading.textContent.toLowerCase() : '';

      // Ajoute/enlève la classe sur toute la carte
      item.classList.toggle('is--hidden', query && !title.includes(query));
    });
  }

  searchInput.addEventListener('input', filterList);
  filterList();                       // exécution initiale (si champ pré-rempli)
});
</script>
</body></html>