Formation gratuite

{%- comment -%}
KDP Academy — Formation GRATUITE (page)
Accès: client connecté + tag kdp_free (ou kdp_full)
Progression: localStorage (par navigateur)
Upsell: affiché à >= 70% de progression
{%- endcomment -%}

{%- assign can_access = false -%}
{%- if customer and (customer.tags contains 'kdp_free' or customer.tags contains 'kdp_full') -%}
  {%- assign can_access = true -%}
{%- endif -%}

<div id="kdp-free" style="font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;max-width:980px;margin:0 auto;padding:16px">
  <style>
    .hero{background:#0f172a;color:#e2e8f0;border:1px solid #1e293b;border-radius:16px;padding:16px}
    .hero h1{margin:0 0 6px;font-size:clamp(1.25rem,2.6vw,1.8rem)}
    .hero p{margin:.3rem 0;color:#cbd5e1}
    .ribbon{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
    .pill{background:#111827;border:1px solid #1f2937;color:#fff;border-radius:999px;padding:6px 10px;font-weight:800;font-size:.9rem}

    .gate{background:#0b1220;color:#dbe3f0;border:1px solid #213049;border-radius:16px;padding:16px;margin-top:12px}
    .btn{display:inline-block;background:linear-gradient(90deg,#f6a323,#ffb84a);color:#111;font-weight:1000;text-decoration:none;padding:12px 16px;border-radius:12px}
    .btn--sec{background:#111827;color:#e5e7eb;border:1px solid #334155}
    .hint{color:#94a3b8;font-size:.92rem}

    .wrap{margin-top:12px;display:grid;grid-template-columns:1fr;gap:12px}
    @media(min-width:960px){.wrap{grid-template-columns:1.1fr .9fr}}

    .card{background:#0b1220;color:#e2e8f0;border:1px solid #213049;border-radius:16px;padding:14px}
    .h2{margin:0 0 8px;font-weight:900;font-size:clamp(1.05rem,2vw,1.3rem)}
    .lead{color:#cbd5e1}
    .progress{margin-top:10px}
    .bar{height:10px;background:#0e1726;border:1px solid #20304a;border-radius:999px;overflow:hidden}
    .bar > span{display:block;height:100%;width:0;background:linear-gradient(90deg,#f6a323,#ffb84a);transition:width .3s ease}
    .pmeta{margin-top:6px;color:#94a3b8;font-size:.9rem}

    .module{border:1px solid #1e293b;background:#0f172a;border-radius:14px;margin:10px 0;overflow:hidden}
    .mod-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer}
    .mod-head strong{flex:1}
    .mod-body{padding:0 14px 12px 14px;display:none}
    .mod-body.open{display:block;animation:fade .2s ease}
    @keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

    .checklist{list-style:none;margin:8px 0 0;padding:0}
    .checklist li{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
    .checklist input{accent-color:#f6a323}
    .note{color:#94a3b8;font-size:.92rem;margin-top:6px}

    .upsell{background:#0b1220;border:1px solid #2a3a5a;border-radius:14px;padding:14px;margin-top:12px;display:none}
    .upsell.show{display:block}
    .cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
    .cta-sub{font-size:.85rem;color:#9aa3b2}

    /* Mobile first */
    @media(max-width:640px){
      .cta-row .btn{width:100%}
    }
  </style>

  {% if can_access %}
    <!-- HERO -->
    <div class="hero">
      <h1>Formation gratuite — Introduction Amazon KDP</h1>
      <p>Bienvenue à KDP Academy 👋 Commence par ces 3 étapes simples pour comprendre le modèle et poser des bases solides. À la fin, tu pourras débloquer la suite si tu veux passer à l’action sérieusement.</p>
      <div class="ribbon">
        <span class="pill">Accès immédiat</span>
        <span class="pill">100% débutants</span>
        <span class="pill">Sans promesses irréalistes</span>
      </div>
    </div>

    <div class="wrap">
      <!-- Col gauche: modules -->
      <div class="card">
        <div class="h2">Ton parcours</div>
        <div class="progress">
          <div class="bar"><span id="pbar"></span></div>
          <div class="pmeta" id="pmeta">Progression : 0% • 0/3</div>
        </div>

        <!-- Modules -->
        <div class="module" data-id="m1">
          <div class="mod-head"><strong>Étape 1 — Le modèle en 10 minutes</strong><span>▶︎</span></div>
          <div class="mod-body">
            <p class="lead">Comment un actif (un livre simple) peut générer des revenus automatiques sur Amazon, même si tu n’as jamais publié.</p>
            <ul class="checklist">
              <li><input type="checkbox" id="m1c1"><label for="m1c1">J’ai compris la logique “publier une fois → encaisser plusieurs fois”.</label></li>
              <li><input type="checkbox" id="m1c2"><label for="m1c2">Je connais la différence entre découverte, visibilité et conversion.</label></li>
            </ul>
            <p class="note">Astuce : pense “petits pas réguliers” et pas “chef-d’œuvre parfait”.</p>
          </div>
        </div>

        <div class="module" data-id="m2">
          <div class="mod-head"><strong>Étape 2 — Choisir une opportunité simple</strong><span>▶︎</span></div>
          <div class="mod-body">
            <p class="lead">Trouver une idée avec de la demande et une concurrence raisonnable. On vise une première victoire, pas le “coup de génie”.</p>
            <ul class="checklist">
              <li><input type="checkbox" id="m2c1"><label for="m2c1">J’ai listé 5 idées potentielles.</label></li>
              <li><input type="checkbox" id="m2c2"><label for="m2c2">J’ai retenu 1 idée plausible pour avancer.</label></li>
            </ul>
            <p class="note">Tu hésites entre 2 idées ? Prends la plus simple à produire.</p>
          </div>
        </div>

        <div class="module" data-id="m3">
          <div class="mod-head"><strong>Étape 3 — Première mise en ligne claire</strong><span>▶︎</span></div>
          <div class="mod-body">
            <p class="lead">Objectif : publier rapidement une version propre, sans viser la perfection. Titre, visuel, description — on reste simple et lisible.</p>
            <ul class="checklist">
              <li><input type="checkbox" id="m3c1"><label for="m3c1">Je sais quoi écrire dans le titre/sous-titre.</label></li>
              <li><input type="checkbox" id="m3c2"><label for="m3c2">Je comprends l’importance d’une couverture qui se remarque.</label></li>
            </ul>
            <p class="note">Tu n’es pas seul : la suite te guide pas à pas jusqu’aux ventes.</p>
          </div>
        </div>

        <!-- Upsell naturel -->
        <div id="upsell" class="upsell">
          <div class="h2">Prêt à passer au niveau supérieur ?</div>
          <p class="lead">Débloque la formation complète KDP Academy : méthode détaillée, modèles, exemples, et accompagnement du démarrage aux premières ventes.</p>
          <div class="cta-row">
            <a class="btn" href="https://kdp-academy.fr/products/formation-complete-amazon-kdp-kdp-academy?variant=55215328100700">Voir le programme</a>
            <a class="btn btn--sec" id="buyNow" href="#">…ou passer à l’action maintenant</a>
          </div>
          <div class="cta-sub">🔒 Paiement sécurisé • Accès immédiat • Garantie 14 jours (selon conditions)</div>
        </div>
      </div>

      <!-- Col droite: conseils + rappel -->
      <div class="card">
        <div class="h2">Comment profiter au maximum</div>
        <ol style="margin:0 0 8px 18px;line-height:1.6">
          <li>Regarde les 3 étapes (10–15 min au total).</li>
          <li>Coche chaque point lorsque c’est clair pour toi.</li>
          <li>Quand ta progression atteint ~70%, l’accès complet s’affiche.</li>
        </ol>
        <p class="hint">Tu peux revenir quand tu veux : ta progression est sauvegardée sur cet appareil.</p>
        <div class="hero" style="margin-top:10px">
          <p><strong>Besoin d’un coup de main ?</strong><br>Notre équipe peut t’orienter sur ton idée en 5 minutes et t’éviter les erreurs courantes.</p>
          <a class="btn btn--sec" href="/pages/contact">Parler à un expert</a>
        </div>
      </div>
    </div>

  {% else %}
    <!-- GATE (pas d'accès) -->
    <div class="gate">
      <h2>Accès réservé aux inscrits KDP Academy</h2>
      <p>Crée ton compte gratuit pour débloquer l’intro et découvrir le modèle pas à pas.</p>
      <div style="display:flex;gap:10px;flex-wrap:wrap">
        <a class="btn" href="/account/register">Créer mon compte gratuit</a>
        <a class="btn btn--sec" href="/account/login">Déjà inscrit ? Se connecter</a>
      </div>
      <p class="hint" style="margin-top:8px">Une fois inscrit, tu auras accès aux 3 étapes d’introduction. Tu pourras débloquer la suite ensuite si tu veux aller plus loin.</p>
    </div>
  {% endif %}

  {% if can_access %}
  <script>
  (function(){
    // ====== CONFIG ======
    const KEY = 'kdp_free_progress_v1';
    const UPS_PCT = 70; // progression pour afficher l'upsell
    const VARIANT_ID = 55215328100700; // formation complète

    // ====== STATE ======
    let state = load() || { open: {'m1':true}, checks:{} };

    // Elements
    const pbar = document.getElementById('pbar');
    const pmeta = document.getElementById('pmeta');
    const upsell = document.getElementById('upsell');
    const buyNow = document.getElementById('buyNow');

    // Module toggles
    document.querySelectorAll('.module').forEach(mod=>{
      const id = mod.dataset.id;
      const head = mod.querySelector('.mod-head');
      const body = mod.querySelector('.mod-body');
      // restore open
      if(state.open[id]) body.classList.add('open');
      head.addEventListener('click', ()=>{
        body.classList.toggle('open');
        state.open[id] = body.classList.contains('open');
        save();
      });
    });

    // Checklist persistence
    document.querySelectorAll('.checklist input[type="checkbox"]').forEach(cb=>{
      const id = cb.id;
      cb.checked = !!state.checks[id];
      cb.addEventListener('change', ()=>{
        state.checks[id] = cb.checked;
        save(); updateProgress();
      });
    });

    function countTotal(){
      return document.querySelectorAll('.checklist input[type="checkbox"]').length;
    }
    function countDone(){
      return Object.values(state.checks).filter(Boolean).length;
    }

    function updateProgress(){
      const total = countTotal();
      const done = countDone();
      const pct = total ? Math.round((done/total)*100) : 0;
      if(pbar) pbar.style.width = pct + '%';
      if(pmeta) pmeta.textContent = `Progression : ${pct}% • ${done}/${total}`;
      if(upsell){
        if(pct >= UPS_PCT){ upsell.classList.add('show'); }
        else { upsell.classList.remove('show'); }
      }
      // FB Pixel hooks (si présent)
      try{
        if(window.fbq){
          if(pct >= 10) fbq('ViewContent',{content_name:'FreeModule'});
          if(pct >= UPS_PCT) fbq('AddToCart',{content_name:'UpgradePrompt'});
        }
      }catch(e){}
    }

    function load(){
      try{ return JSON.parse(localStorage.getItem(KEY)) }catch(e){ return null }
    }
    function save(){
      try{ localStorage.setItem(KEY, JSON.stringify(state)); }catch(e){}
    }

    // Buy now → add + checkout
    if(buyNow){
      buyNow.addEventListener('click', async (e)=>{
        e.preventDefault();
        try{
          await fetch('/cart/clear.js',{method:'POST'});
          await fetch('/cart/add.js',{
            method:'POST',
            headers:{'Content-Type':'application/json','Accept':'application/json'},
            body: JSON.stringify({ id: VARIANT_ID, quantity: 1 })
          });
          if(window.fbq){ fbq('InitiateCheckout'); }
          window.location.href = '/checkout';
        }catch(err){
          window.location.href = '/cart';
        }
      });
    }

    // Init
    updateProgress();
  })();
  </script>
  {% endif %}
</div>