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>