{"id":29295,"date":"2026-01-25T12:14:58","date_gmt":"2026-01-25T11:14:58","guid":{"rendered":"https:\/\/www.ailements.fr\/?page_id=29295"},"modified":"2026-10-20T12:40:42","modified_gmt":"2026-10-20T11:40:42","slug":"ecole-parapente-var","status":"publish","type":"page","link":"https:\/\/www.ailements.fr\/en\/courses\/paragliding-school-var\/","title":{"rendered":"Var Paragliding School"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29295\" class=\"elementor elementor-29295\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e1865f e-con-full e-flex e-con e-parent\" data-id=\"2e1865f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc901d4 elementor-widget elementor-widget-html\" data-id=\"dc901d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\nWIDGET \u2014 \u00c9cole de Parapente Var \u00b7 Ail\u00e9ments\nURL : https:\/\/www.ailements.fr\/stages\/ecole-parapente-var\/\nTYPE: PAGE (post_type=page) parent \/stages\/\nGSC 28j : 1 035 imp \u00b7 14 clics \u00b7 CTR 1,4 %\nFocus KW : \u00e9cole <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/trips\/var\/\"   title=\"Var (83)\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139303\">parapente var<\/a>\nTitle SEO : \u00c9cole de <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/trips\/cannes\/\"   title=\"Que faire \u00e0 Cannes : visites incontournables, bonnes adresses et activit\u00e9s plein air\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139311\">Parapente Var<\/a> - Stages FFVL Gr\u00e9oli\u00e8res | Ail\u00e9ments\nH1 pr\u00e9serv\u00e9 : \"\u00c9cole de Parapente dans le Var\"\n\nDIFF\u00c9RENCES vs ecole-parapente-nice\/paca :\n- L'\u00e9cole est bas\u00e9e \u00e0 Gr\u00e9oli\u00e8res (06), pas dans le Var\n- Sites de vol DANS LES ALPES-MARITIMES (06) accessibles depuis le Var en 1h-1h30\n- Villes Var : Fr\u00e9jus 1h15, Saint-Rapha\u00ebl 1h15, <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/parapente-draguignan\/\"   title=\"Parapente Draguignan\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139305\">Draguignan<\/a> 1h30, Toulon 1h45, Hy\u00e8res 2h\n- M\u00eames 3 sites : Gr\u00e9oli\u00e8res, Gourdon, Roquebrune (PAS Col de Bleyne)\n- areaServed : Var + Alpes-Maritimes + villes Var\n- FAQ centr\u00e9e \"depuis le Var\"\n- Widget STAGES IDENTIQUE Nice\/PACA (r\u00e9utilisation directe avec photos hub)\n============================================================ -->\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n    {\"@type\":\"Question\",\"name\":\"O\u00f9 se trouve votre \u00e9cole de parapente par rapport au Var ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Notre \u00e9cole Ail\u00e9ments est bas\u00e9e \u00e0 Gr\u00e9oli\u00e8res dans les Alpes-Maritimes, accessible depuis le Var en 1h \u00e0 2h selon votre point de d\u00e9part : Fr\u00e9jus \/ Saint-Rapha\u00ebl 1h15, Draguignan 1h30, Toulon 1h45, Hy\u00e8res 2h.\"}},\n    {\"@type\":\"Question\",\"name\":\"Y a-t-il des sites de parapente directement dans le Var ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Les meilleurs sites de vol libre de la r\u00e9gion se trouvent dans les Pr\u00e9alpes des Alpes-Maritimes, notamment Gr\u00e9oli\u00e8res (1 800 m), Gourdon (1 080 m) et Roquebrune Cap Martin (780 m). Le Var n'a pas de site de vol \u00e9cole de qualit\u00e9 comparable, c'est pourquoi nos stagiaires varois rejoignent nos sites des Alpes-Maritimes.\"}},\n    {\"@type\":\"Question\",\"name\":\"Combien de temps depuis le Var pour rejoindre les sites de vol ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Fr\u00e9jus \/ Saint-Rapha\u00ebl : 1h15. Draguignan : 1h30. Toulon : 1h45. Hy\u00e8res : 2h. Saint-Tropez : 1h30. Les stages d'une semaine permettent d'organiser un h\u00e9bergement sur place pour \u00e9viter les allers-retours quotidiens.\"}},\n    {\"@type\":\"Question\",\"name\":\"Quel est le cadre de vos stages ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Nos moniteurs sont dipl\u00f4m\u00e9s d'\u00c9tat (DEJEPS et BEES) et enseignent depuis 2013 : c'est le dipl\u00f4me qui autorise l'enseignement du parapente en France. Les stages se d\u00e9roulent dans le cadre de la F\u00e9d\u00e9ration Fran\u00e7aise de Vol Libre, avec licence FFVL obligatoire et mat\u00e9riel homologu\u00e9 (voiles \u00e9cole Aerotech A1).\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00c0 partir de quel \u00e2ge peut-on faire du parapente ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Bapt\u00eames : d\u00e8s 5 ans (formule Vol Enfant). Stages de formation : d\u00e8s 12 ans. Pas d'\u00e2ge maximum pour les bapt\u00eames si la condition physique le permet ; pour les stages, de 12 \u00e0 55 ans (au-del\u00e0, on valide ensemble par t\u00e9l\u00e9phone). Les mineurs doivent \u00eatre accompagn\u00e9s d'un responsable l\u00e9gal.\"}},\n    {\"@type\":\"Question\",\"name\":\"Combien co\u00fbte un stage de parapente depuis le Var ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Stage D\u00e9couverte 260 \u20ac (1 jour), Stage Initiation 700 \u20ac (5 jours, premiers solos), Stage Perfectionnement 750 \u20ac (5 jours, thermique), Stage D\u00e9couverte du Sud 800 \u20ac (5 jours multi-sites). Tarifs identiques quel que soit votre d\u00e9partement d'origine.\"}},\n    {\"@type\":\"Question\",\"name\":\"Peut-on dormir sur place pendant un stage ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Oui, nous vous orientons vers des h\u00e9bergements partenaires \u00e0 Gr\u00e9oli\u00e8res et alentours pour \u00e9viter les trajets quotidiens depuis le Var. Logement de groupe possible pour les stages de 5 jours, \u00e0 organiser avec nous lors de la r\u00e9servation.\"}},\n    {\"@type\":\"Question\",\"name\":\"Proposez-vous des stages de parapente en hiver ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Oui, et c'est notre diff\u00e9rence : nos sessions tournent toute l'ann\u00e9e, hiver compris, quand la plupart des \u00e9coles fran\u00e7aises ferment d'octobre \u00e0 mars. Les Pr\u00e9alpes d'Azur et la C\u00f4te d'Azur restent volables l'hiver, avec des groupes plus petits et beaucoup plus de dates disponibles. Le programme est toujours adapt\u00e9 aux conditions du jour.\"}},\n    {\"@type\":\"Question\",\"name\":\"Que se passe-t-il si la m\u00e9t\u00e9o est mauvaise ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Report gratuit \u00e0 la date de votre choix. Aucun frais \u00e0 avancer tant que le vol n'a pas eu lieu. Confirmation ou report par SMS la veille. Plus de 250 jours volables par an dans la r\u00e9gion. Pour les stages, c'est la nature qui d\u00e9cide : la session est confirm\u00e9e ou report\u00e9e 4 jours avant le premier jour, et une journ\u00e9e sans vol se transforme en th\u00e9orie et exercices au sol.\"}}\n  ]\n}\n<\/script>\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Krona+One&family=Nunito+Sans:wght@400;600;700;800;900&display=swap');\n.ail-guide,.ail-guide *,.ail-guide *::before,.ail-guide *::after{box-sizing:border-box;margin:0;padding:0}\n.ail-guide{--c-dark:#101820;--c-dark-soft:#1a232d;--c-kaki:#707455;--c-kaki-deep:#5d6147;--c-marron:#9F8F73;--c-marron-soft:#A99B85;--c-orange:#EC672C;--c-orange-deep:#d55a22;--c-bleu:#ABC8CA;--c-bleu-deep:#9DBABC;--c-creme:#EBE6E0;--r:10px;--r-lg:18px;font-family:'Nunito Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--c-marron);color:var(--c-dark);width:100%;font-size:17px;line-height:1.65;font-weight:500;position:relative;overflow:hidden}\n.ail-guide a{color:inherit;text-decoration:none;font-weight:700;transition:color .2s,border-color .2s}\n.ail-guide__intro-text a{font-weight:800;border-bottom:none}\n.ail-guide__intro-text a:hover{color:var(--c-dark);border-bottom:1.5px solid var(--c-dark)}\n.ail-guide img{max-width:100%;height:auto;display:block}\n.ail-guide ul,.ail-guide ol{list-style:none}\n.ail-guide strong{font-weight:800}\n.ail-guide__wrap{max-width:1240px;margin:0 auto;padding:0 clamp(24px,4.5vw,56px)}\n.ail-guide__section{padding:clamp(72px,8vw,110px) 0;position:relative}\n.ail-guide__section--marron{background:var(--c-marron);color:var(--c-dark)}\n.ail-guide__section--kaki{background:var(--c-kaki);color:var(--c-dark)}\n.ail-guide__section--bleu{background:var(--c-bleu);color:var(--c-dark)}\n.ail-guide__breadcrumb-wrap{background:var(--c-dark);padding:14px 0;border-bottom:1px solid rgba(235,230,224,.08)}\n.ail-guide__breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:'Krona One',serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-creme)}\n.ail-guide__breadcrumb a{color:var(--c-creme);text-decoration:none;border-bottom:none;font-weight:400;opacity:.85;transition:opacity .2s,color .2s}\n.ail-guide__breadcrumb a:hover{color:var(--c-orange);opacity:1;border-bottom:none}\n.ail-guide__breadcrumb-sep{color:var(--c-orange);opacity:.7}\n.ail-guide__breadcrumb-current{color:var(--c-orange);font-weight:400}\n.ail-guide__author{padding:clamp(48px,6vw,72px) 0;background:var(--c-kaki);color:var(--c-dark);border-top:1px solid rgba(16,24,32,.1)}\n.ail-guide__author-card{background:var(--c-marron-soft);border-radius:var(--r-lg);padding:clamp(28px,4vw,40px);display:grid;grid-template-columns:auto 1fr auto;gap:clamp(20px,3vw,32px);align-items:center}\n@media (max-width:780px){.ail-guide__author-card{grid-template-columns:1fr;text-align:center}}\n.ail-guide__author-avatar{width:88px;height:88px;border-radius:50%;background:var(--c-dark);color:var(--c-orange);display:flex;align-items:center;justify-content:center;font-family:'Krona One',serif;font-size:2rem;flex-shrink:0;border:3px solid var(--c-orange)}\n@media (max-width:780px){.ail-guide__author-avatar{margin:0 auto}}\n.ail-guide__author-body{display:flex;flex-direction:column;gap:6px}\n.ail-guide__author-label{font-family:'Krona One',serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-dark);opacity:.7}\n.ail-guide__author-name{font-family:'Krona One',serif;font-weight:400;font-size:1.25rem;color:var(--c-dark);line-height:1.25}\n.ail-guide__author-bio{font-size:.95rem;color:var(--c-dark);line-height:1.55;margin-top:4px}\n.ail-guide__author-bio strong{color:var(--c-dark);font-weight:800}\n.ail-guide__author-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}\n.ail-guide__author-badge{font-family:'Krona One',serif;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-dark);background:rgba(16,24,32,.14);padding:5px 10px;border-radius:var(--r)}\n.ail-guide__author-cta{display:inline-flex;flex-direction:column;gap:8px;align-items:flex-start}\n@media (max-width:780px){.ail-guide__author-cta{align-items:center}}\n.ail-guide__author-cta a{font-family:'Krona One',serif;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--c-dark);text-decoration:none;border-bottom:none;background:var(--c-orange);padding:12px 20px;border-radius:var(--r);transition:transform .15s ease,background .2s}\n.ail-guide__author-cta a:hover{background:var(--c-orange-deep);color:var(--c-dark);transform:translateY(-2px);border-bottom:none}\n.ail-guide__keyfacts-wrap{background:var(--c-dark);color:var(--c-creme);padding:clamp(28px,4vw,44px) 0;border-bottom:1px solid rgba(235,230,224,.08)}\n.ail-guide__keyfacts{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2.5vw,32px)}\n@media (max-width:980px){.ail-guide__keyfacts{grid-template-columns:repeat(3,1fr)}}\n@media (max-width:640px){.ail-guide__keyfacts{grid-template-columns:repeat(2,1fr);gap:18px}}\n.ail-guide__keyfact{display:flex;flex-direction:column;gap:4px}\n.ail-guide__keyfact-label{font-family:'Krona One',serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-orange)}\n.ail-guide__keyfact-value{font-family:'Krona One',serif;font-size:.95rem;color:var(--c-creme);line-height:1.3}\n\/* WIDGET STAGES - identique \u00e0 ecole-parapente-nice\/paca *\/\n.ail-guide__stages-head{display:flex;flex-direction:column;gap:8px;margin-bottom:36px}\n.ail-guide__stages{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:8px}\n@media (max-width:780px){.ail-guide__stages{grid-template-columns:1fr}}\n.ail-guide__stage{background:var(--c-marron-soft);color:var(--c-dark);border-radius:var(--r-lg);display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease;position:relative;overflow:hidden}\n.ail-guide__stage:hover{transform:translateY(-4px);box-shadow:0 18px 36px -14px rgba(16,24,32,.25)}\n.ail-guide__stage--bleu{background:var(--c-bleu)}\n.ail-guide__stage--orange{background:var(--c-orange)}\n.ail-guide__stage--kaki{background:var(--c-kaki)}\n.ail-guide__stage--marron{background:var(--c-marron-soft)}\n.ail-guide__stage-img{width:100%;aspect-ratio:16\/10;overflow:hidden;background:var(--c-dark)}\n.ail-guide__stage-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}\n.ail-guide__stage:hover .ail-guide__stage-img img{transform:scale(1.04)}\n.ail-guide__stage-body{padding:30px 30px 30px;display:flex;flex-direction:column;gap:10px;flex:1}\n.ail-guide__stage-tag{font-family:'Krona One',serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-dark);background:rgba(16,24,32,.14);padding:5px 10px;border-radius:var(--r);align-self:flex-start;margin-bottom:2px}\n.ail-guide__stage h4{font-family:'Krona One',serif;font-weight:400;font-size:1.5rem;color:var(--c-dark);margin-bottom:4px;line-height:1.2}\n.ail-guide__stage-meta{font-size:.95rem;color:var(--c-dark);font-weight:700;margin-bottom:6px;opacity:.85}\n.ail-guide__stage-price{font-family:'Krona One',serif;font-size:2.2rem;color:var(--c-dark);margin:8px 0 12px;line-height:1}\n.ail-guide__stage-price small{font-size:.5em;color:var(--c-dark);opacity:.7;font-weight:500;font-family:'Nunito Sans',sans-serif}\n.ail-guide__stage-desc{font-size:.97rem;color:var(--c-dark);line-height:1.55;margin-bottom:8px}\n.ail-guide__stage-bullets{display:flex;flex-direction:column;gap:6px;margin:8px 0 14px}\n.ail-guide__stage-bullets li{font-size:.93rem;color:var(--c-dark);padding-left:18px;position:relative;line-height:1.5}\n.ail-guide__stage-bullets li::before{content:'\u2713';position:absolute;left:0;color:var(--c-dark);font-weight:800;font-family:'Krona One',serif}\n.ail-guide a.ail-guide__stage-cta{margin-top:auto;font-family:'Krona One',serif;font-size:.74rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:none;background:var(--c-dark);color:var(--c-orange);padding:14px 20px;border-radius:var(--r);text-align:center;transition:background .2s,transform .15s}\n.ail-guide a.ail-guide__stage-cta:hover{background:var(--c-dark-soft);color:var(--c-orange);transform:translateY(-2px);border-bottom:none}\n.ail-guide__stage--bestseller::after{content:'\u2605 BEST-SELLER';position:absolute;top:14px;right:14px;font-family:'Krona One',serif;font-size:.58rem;letter-spacing:.16em;background:var(--c-dark);color:var(--c-orange);padding:6px 12px;border-radius:var(--r);box-shadow:0 4px 12px -4px rgba(16,24,32,.45);z-index:2}\n.ail-guide__stages-footer{margin-top:36px;text-align:center}\n\/* 5e formule (Stage Dune du Pyla) : carte pleine largeur photo \u00e0 gauche, fond cr\u00e8me (le sable), badge NOUVEAU *\/\n.ail-guide__stage--creme{background:var(--c-creme)}\n.ail-guide__stage--wide{grid-column:1\/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}\n.ail-guide__stage--wide .ail-guide__stage-img{aspect-ratio:auto;position:relative;min-height:360px}\n.ail-guide__stage--wide .ail-guide__stage-img img{position:absolute;inset:0;width:100%;height:100%}\n.ail-guide__stage--new::after{content:'NOUVEAU';position:absolute;top:14px;left:14px;font-family:'Krona One',serif;font-size:.58rem;letter-spacing:.16em;background:var(--c-dark);color:var(--c-orange);padding:6px 12px;border-radius:var(--r);box-shadow:0 4px 12px -4px rgba(16,24,32,.45);z-index:2}\n\/* Logo du partenaire Waggas School sur la photo de la carte Dune du Pyla : SVG int\u00e9gr\u00e9 (symbole en haut de page), couleur cr\u00e8me *\/\n.ail-sprite{position:absolute;width:0;height:0;overflow:hidden}\n.ail-guide__stage-partner{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 12px 10px;border-radius:var(--r);background:rgba(16,24,32,.8);border:1px solid rgba(235,230,224,.16);box-shadow:0 6px 18px -6px rgba(16,24,32,.55);color:var(--c-creme)}\n.ail-guide__stage-partner-label{font-family:'Krona One',serif;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-orange);line-height:1}\n.ail-guide__stage-partner .ail-waggas-logo{display:block;width:96px;height:36px;fill:currentColor}\n@media (max-width:560px){.ail-guide__stage-partner{left:10px;bottom:10px;padding:7px 10px 8px;gap:5px}.ail-guide__stage-partner-label{font-size:.5rem;letter-spacing:.12em}.ail-guide__stage-partner .ail-waggas-logo{width:80px;height:30px}}\n\/* Navette depuis Gr\u00e9oli\u00e8res (09\/10\/2026) : option mise en avant sous le prix du stage seul (650 \u20ac reste le prix affich\u00e9).\n   S\u00e9lecteurs doubl\u00e9s : .ail-guide__section p (texte fonc\u00e9) ne doit pas passer devant. *\/\n.ail-guide__stage-navette{background:var(--c-dark);border-left:4px solid var(--c-orange);border-radius:var(--r);padding:12px 14px;margin:0 0 8px}\n.ail-guide__stage-navette .ail-guide__stage-navette-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px 12px;flex-wrap:wrap}\n.ail-guide__stage-navette .ail-guide__stage-navette-label{font-family:'Krona One',serif;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-orange);line-height:1.35}\n.ail-guide__stage-navette .ail-guide__stage-navette-price{font-family:'Krona One',serif;font-size:1.2rem;color:var(--c-orange);line-height:1;white-space:nowrap}\n.ail-guide__stage-navette .ail-guide__stage-navette-price small{font-family:'Nunito Sans',sans-serif;font-size:.62rem;font-weight:700;color:var(--c-creme);opacity:.75;margin-left:6px}\n.ail-guide__stage-navette .ail-guide__stage-navette-txt{font-size:.9rem;color:var(--c-creme);line-height:1.5;margin:6px 0 0}\n.ail-guide__stage-navette .ail-guide__stage-navette-txt b{color:var(--c-creme);font-weight:800}\n.ail-guide__stage-desc a{border-bottom:1.5px solid rgba(16,24,32,.35)}\n.ail-guide__stage-desc a:hover{border-bottom-color:var(--c-dark)}\n@media (max-width:780px){.ail-guide__stage--wide{display:flex}.ail-guide__stage--wide .ail-guide__stage-img{aspect-ratio:16\/10;min-height:0}}\n.ail-guide__takeaways{padding:clamp(64px,8vw,100px) 0;background:var(--c-marron);color:var(--c-dark)}\n.ail-guide__takeaways-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(32px,5vw,72px);align-items:start}\n@media (max-width:880px){.ail-guide__takeaways-grid{grid-template-columns:1fr}}\n.ail-guide__takeaways-head .ail-guide__kicker{background:var(--c-dark);color:var(--c-orange)}\n.ail-guide__takeaways-list{display:grid;gap:18px}\n.ail-guide__takeaway{background:var(--c-marron-soft);border-radius:var(--r);padding:22px 26px;display:grid;grid-template-columns:38px 1fr;gap:18px;align-items:start;border-left:4px solid var(--c-orange)}\n.ail-guide__takeaway-num{font-family:'Krona One',serif;font-size:1.2rem;color:var(--c-dark);background:var(--c-orange);width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;line-height:1}\n.ail-guide__takeaway h4{font-family:'Krona One',serif;font-weight:400;font-size:1.02rem;color:var(--c-dark);margin-bottom:6px}\n.ail-guide__takeaway p{font-size:.96rem;color:var(--c-dark);line-height:1.55}\n.ail-guide__takeaway strong{color:var(--c-dark);font-weight:800}\n.ail-guide__hero{background:var(--c-dark);color:var(--c-creme);padding:clamp(64px,9vw,128px) 0 clamp(48px,7vw,88px);position:relative;overflow:hidden}\n.ail-guide__hero::before{content:'';position:absolute;top:-25%;right:-15%;width:60vw;height:60vw;background:radial-gradient(circle,rgba(236,103,44,.10) 0%,transparent 60%);pointer-events:none;z-index:0}\n.ail-guide__hero::after{content:'';position:absolute;bottom:-20%;left:-20%;width:55vw;height:55vw;background:radial-gradient(circle,rgba(171,200,202,.06) 0%,transparent 60%);pointer-events:none;z-index:0}\n.ail-guide__hero-grid{display:grid;grid-template-columns:1.15fr .9fr;gap:clamp(32px,5vw,64px);align-items:center;position:relative;z-index:2}\n@media (max-width:880px){.ail-guide__hero-grid{grid-template-columns:1fr}}\n.ail-guide__welcome{display:inline-block;font-family:'Krona One',serif;font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-orange);margin-bottom:22px}\n.ail-guide__welcome::before{content:'\u2726 ';color:var(--c-orange)}\n.ail-guide__welcome::after{content:' \u2726';color:var(--c-orange)}\n.ail-guide__h1{font-family:'Krona One',serif;font-weight:400;font-size:clamp(2rem,5.2vw,3.8rem);line-height:1.08;letter-spacing:-.01em;margin-bottom:28px;color:var(--c-creme) !important}\n.ail-guide__h1 .c-orange{color:var(--c-orange)}\n.ail-guide__h1 .c-bleu{color:var(--c-bleu)}\n.ail-guide__h1 .c-kaki{color:var(--c-kaki)}\n.ail-guide__lead{font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.6;color:var(--c-creme);margin-bottom:32px;font-weight:500;max-width:640px}\n.ail-guide__cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:32px}\n.ail-guide__btn{display:inline-flex;align-items:center;gap:10px;padding:16px 30px;font-family:'Krona One',serif;font-size:.88rem;letter-spacing:.04em;color:var(--c-dark);border-radius:var(--r);border:none;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s;text-decoration:none;text-transform:uppercase;border-bottom:none}\n.ail-guide__btn:hover{transform:translateY(-2px);color:var(--c-dark);border-bottom:none}\n.ail-guide__btn--orange{background:var(--c-orange);color:var(--c-dark);box-shadow:0 6px 18px -8px rgba(16,24,32,.4)}\n.ail-guide__btn--orange:hover{background:var(--c-orange-deep);color:var(--c-dark);box-shadow:0 12px 28px -8px rgba(16,24,32,.55)}\n.ail-guide__btn--kaki{background:var(--c-kaki);color:var(--c-dark);box-shadow:0 6px 18px -8px rgba(16,24,32,.35)}\n.ail-guide__btn--kaki:hover{background:var(--c-kaki-deep);color:var(--c-dark)}\n.ail-guide__btn--bleu{background:var(--c-bleu);color:var(--c-dark);box-shadow:0 6px 18px -8px rgba(16,24,32,.3)}\n.ail-guide__btn--bleu:hover{background:var(--c-bleu-deep);color:var(--c-dark)}\n.ail-guide__usps{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.92rem;font-weight:700;color:var(--c-creme)}\n.ail-guide__usps li{display:flex;align-items:center;gap:8px}\n.ail-guide__usps li::before{content:'';width:7px;height:7px;background:var(--c-orange);border-radius:50%;flex-shrink:0}\n.ail-guide__hero-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4\/5;position:relative;background:var(--c-kaki)}\n.ail-guide__hero-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03)}\n.ail-guide__hero-img-badge{position:absolute;bottom:18px;left:18px;font-family:'Krona One',serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-dark);background:var(--c-bleu);padding:8px 14px;border-radius:var(--r)}\n.ail-guide__kicker{display:inline-block;font-family:'Krona One',serif;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--c-dark);padding:7px 14px;border-radius:var(--r);margin-bottom:18px;background:var(--c-orange)}\n.ail-guide__kicker--kaki{background:var(--c-kaki)}\n.ail-guide__kicker--bleu{background:var(--c-bleu)}\n.ail-guide__kicker--marron{background:var(--c-marron-soft)}\n.ail-guide__h2{font-family:'Krona One',serif;font-weight:400;font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.16;margin-bottom:18px;color:var(--c-dark);max-width:920px;letter-spacing:-.005em}\n.ail-guide__h3{font-family:'Krona One',serif;font-weight:400;font-size:clamp(1.15rem,2.1vw,1.45rem);line-height:1.25;margin-bottom:12px;letter-spacing:.005em}\n.ail-guide__intro-section{font-size:1.08rem;color:var(--c-dark);margin-bottom:36px;max-width:920px;line-height:1.6}\n.ail-guide__section p{font-size:1.02rem;color:var(--c-dark);line-height:1.6}\n.ail-guide__section p + p{margin-top:14px}\n.ail-guide__intro{padding-bottom:clamp(40px,5vw,64px)}\n.ail-guide__intro + .ail-guide__section--marron{padding-top:clamp(24px,3vw,40px)}\n.ail-guide__intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}\n@media (max-width:880px){.ail-guide__intro-grid{grid-template-columns:1fr}}\n.ail-guide__intro-text p:first-child{font-size:1.18rem;font-weight:700;margin-bottom:18px}\n.ail-guide__intro-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4\/5;background:var(--c-kaki)}\n.ail-guide__intro-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}\n.ail-guide__cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}\n@media (max-width:980px){.ail-guide__cards-3{grid-template-columns:1fr 1fr}}\n@media (max-width:640px){.ail-guide__cards-3{grid-template-columns:1fr}}\n.ail-guide__card{background:var(--c-marron-soft);color:var(--c-dark);border-radius:var(--r-lg);padding:34px 30px 36px;border-top:5px solid var(--c-dark);display:flex;flex-direction:column;gap:10px;transition:transform .25s ease,box-shadow .25s ease}\n.ail-guide__card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(16,24,32,.28)}\n.ail-guide__card--kaki{background:var(--c-kaki)}\n.ail-guide__card--bleu{background:var(--c-bleu)}\n.ail-guide__card--orange{background:var(--c-orange)}\n.ail-guide__card--marron{background:var(--c-marron-soft)}\n.ail-guide__card .ail-guide__h3{color:var(--c-dark)}\n.ail-guide__card p{font-size:.98rem;color:var(--c-dark);line-height:1.6}\n.ail-guide__card strong{color:var(--c-dark);font-weight:800}\n.ail-guide__card a{color:var(--c-dark);font-weight:800;border-bottom:none}\n.ail-guide__card a:hover{color:var(--c-dark);border-bottom:1.5px solid var(--c-dark)}\n.ail-guide__card-tag{font-family:'Krona One',serif;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--c-dark);margin-bottom:8px;display:inline-block;background:rgba(16,24,32,.12);padding:5px 10px;border-radius:var(--r);align-self:flex-start}\n\/* Profils moniteurs *\/\n.ail-guide__moniteurs{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:40px}\n@media (max-width:780px){.ail-guide__moniteurs{grid-template-columns:1fr}}\n.ail-guide__moniteur{background:var(--c-marron-soft);color:var(--c-dark);border-radius:var(--r-lg);overflow:hidden;display:grid;grid-template-columns:140px 1fr;gap:0;border-top:5px solid var(--c-dark)}\n@media (max-width:540px){.ail-guide__moniteur{grid-template-columns:1fr}}\n.ail-guide__moniteur-img{aspect-ratio:1\/1;background:var(--c-kaki-deep);overflow:hidden}\n.ail-guide__moniteur-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}\n.ail-guide__moniteur-body{padding:24px 26px;display:flex;flex-direction:column;gap:6px}\n.ail-guide__moniteur-name{font-family:'Krona One',serif;font-weight:400;font-size:1.25rem;color:var(--c-dark)}\n.ail-guide__moniteur-role{font-family:'Krona One',serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-dark);opacity:.75}\n.ail-guide__moniteur-bio{font-size:.95rem;color:var(--c-dark);line-height:1.55;margin-top:6px}\n.ail-guide__moniteur-bio strong{color:var(--c-dark);font-weight:800}\n.ail-guide__signature{background:var(--c-dark);color:var(--c-creme);border-radius:var(--r-lg);padding:clamp(36px,5.5vw,72px);margin:64px 0 0;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,4.5vw,64px);align-items:center}\n@media (max-width:780px){.ail-guide__signature{grid-template-columns:1fr}}\n.ail-guide__signature h3{font-family:'Krona One',serif;font-weight:400;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.2;color:var(--c-orange);margin-bottom:16px}\n.ail-guide__signature p{color:var(--c-creme);font-size:1.04rem;line-height:1.6}\n.ail-guide__signature p + p{margin-top:12px}\n.ail-guide__signature strong{color:var(--c-creme);font-weight:800}\n.ail-guide__signature a{color:var(--c-creme);font-weight:800;border-bottom:none;text-decoration:none}\n.ail-guide__signature a:hover{color:var(--c-orange);border-bottom:none}\n.ail-guide__signature .ail-guide__btn{margin-top:20px}\n.ail-guide__signature .ail-guide__kicker{background:var(--c-bleu);color:var(--c-dark)}\n.ail-guide__signature-img{border-radius:var(--r);overflow:hidden;aspect-ratio:4\/5}\n.ail-guide__signature-img img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}\n.ail-guide__signature--orange{background:var(--c-orange);color:var(--c-dark)}\n.ail-guide__signature--orange h3{color:var(--c-dark)}\n.ail-guide__signature--orange p{color:var(--c-dark)}\n.ail-guide__signature--orange strong{color:var(--c-dark)}\n.ail-guide__signature--orange a{color:var(--c-dark);font-weight:800;border-bottom:none}\n.ail-guide__signature--orange a:hover{color:var(--c-dark);border-bottom:1.5px solid var(--c-dark)}\n.ail-guide__signature--orange .ail-guide__kicker{background:var(--c-bleu);color:var(--c-dark)}\n\/* Cities served strip (Var) *\/\n.ail-guide__cities{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}\n.ail-guide__city{background:var(--c-marron-soft);color:var(--c-dark);font-family:'Krona One',serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:var(--r);border:1.5px solid rgba(16,24,32,.12)}\n.ail-guide__city strong{color:var(--c-dark);font-weight:800;font-family:'Nunito Sans',sans-serif;letter-spacing:0;text-transform:none;font-size:.9rem;margin-left:6px;opacity:.8}\n.ail-guide__tips{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:28px}\n@media (max-width:780px){.ail-guide__tips{grid-template-columns:1fr}}\n.ail-guide__tip{background:var(--c-marron-soft);color:var(--c-dark);border-radius:var(--r);padding:26px 28px;border-left:5px solid var(--c-orange)}\n.ail-guide__tip h4{font-family:'Krona One',serif;font-weight:400;font-size:1.05rem;color:var(--c-dark);margin-bottom:8px}\n.ail-guide__tip p{font-size:.98rem;color:var(--c-dark);line-height:1.6}\n.ail-guide__tip strong{color:var(--c-dark);font-weight:800}\n.ail-guide__faq{padding:clamp(80px,10vw,140px) 0;background:var(--c-kaki)}\n.ail-guide__faq-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(40px,6vw,80px);align-items:start}\n@media (max-width:880px){.ail-guide__faq-grid{grid-template-columns:1fr}}\n.ail-guide__faq-head .ail-guide__kicker{background:var(--c-orange);color:var(--c-dark)}\n.ail-guide__faq-head .ail-guide__h2{color:var(--c-dark)}\n.ail-guide__faq-list{display:flex;flex-direction:column;gap:14px}\n.ail-guide__faq-item{background:var(--c-marron-soft);color:var(--c-dark);border-radius:var(--r);overflow:hidden;border:2px solid transparent;transition:border-color .2s}\n.ail-guide__faq-item[open]{border-color:var(--c-orange)}\n.ail-guide__faq-item summary{cursor:pointer;padding:24px 24px 24px 64px;font-family:'Krona One',serif;font-weight:400;font-size:1rem;color:var(--c-dark);list-style:none;position:relative;user-select:none;line-height:1.35;transition:background .2s}\n.ail-guide__faq-item summary:hover{background:rgba(16,24,32,.06)}\n.ail-guide__faq-item summary::-webkit-details-marker{display:none}\n.ail-guide__faq-item summary::before{content:'+';position:absolute;left:20px;top:50%;transform:translateY(-50%);font-family:'Krona One',serif;font-size:1.4rem;color:var(--c-dark);background:var(--c-orange);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;line-height:1;transition:transform .2s ease,background .2s}\n.ail-guide__faq-item[open] summary::before{content:'\u2212';background:var(--c-bleu)}\n.ail-guide__faq-item-answer{padding:4px 24px 26px 64px;font-size:.98rem;color:var(--c-dark);line-height:1.7;border-top:1.5px solid rgba(16,24,32,.12);padding-top:20px}\n.ail-guide__faq-item-answer p{margin-bottom:10px;color:var(--c-dark)}\n.ail-guide__faq-item-answer strong{color:var(--c-dark);font-weight:800}\n.ail-guide__faq-item-answer a{color:var(--c-dark);font-weight:800;border-bottom:none}\n.ail-guide__faq-item-answer a:hover{border-bottom:1.5px solid var(--c-dark)}\n.ail-guide .nobreak{white-space:nowrap}\n@media (max-width:540px){\n  .ail-guide__h1{font-size:1.9rem}\n  .ail-guide__h2{font-size:1.5rem}\n  .ail-guide__cta-row{flex-direction:column;align-items:stretch}\n  .ail-guide__btn{justify-content:center;width:100%}\n}\n<\/style>\n\n<section class=\"ail-guide\">\n\n  <!-- Logo Waggas School (partenaire du stage Dune du Pyla) : d\u00e9fini une seule fois ici, r\u00e9utilis\u00e9 avec <use> -->\n  <svg class=\"ail-sprite\" width=\"0\" height=\"0\" aria-hidden=\"true\" focusable=\"false\"><symbol id=\"ail-logo-waggas\" viewBox=\"0 0 595.3 223\"><path d=\"M163.6,202.9v-12.7h8.7v6.7c1.8,0.4,4.9,1.1,8.8,1.1c5.4,0,10.6-1.3,10.6-6.4c0-11.6-27.4-5.4-27.4-24.1 c0-10.7,9.1-14.8,19.1-14.8c5.8,0,12.1,1.3,16.2,2.8v12.5h-8.9v-6.9c-1.7-0.3-4.4-0.7-7.1-0.7c-4.9,0-10,1.4-10,6.1 c0,10.9,27.4,5,27.4,24.5c0,11.1-9.1,14.7-19.3,14.7C175,205.7,168.4,204.2,163.6,202.9\"\/><path d=\"M198.7,179.5c0-16.9,11.3-26.8,27.2-26.8c8.2,0,15.8,2.6,19,4.1v14.7h-9.3v-9.4c-2.4-0.7-6-1.3-9.2-1.3 c-10.5,0-17.7,6.4-17.7,18.2c0,12.1,7.7,18.3,18.3,18.3c6.9,0,13.3-2.7,17.8-5.4v9.3c-3.5,1.8-10.1,4.4-18.7,4.4 C209.5,205.7,198.7,195.9,198.7,179.5\"\/><polygon points=\"243.1,197 249.9,197 249.9,161.4 243.1,161.4 243.1,153.7 266.6,153.7 266.6,161.4 259.6,161.4 259.6,175.2 283.8,175.2 283.8,161.4 276.9,161.4 276.9,153.7 300.4,153.7 300.4,161.4 293.5,161.4 293.5,197 300.4,197 300.4,204.7 276.9,204.7 276.9,197 283.8,197 283.8,183.3 259.6,183.3 259.6,197 266.6,197 266.6,204.7 243.1,204.7\"\/><path d=\"M297.3,179.2c0-15.7,11.1-26.5,26.5-26.5c15.4,0,26.5,10.9,26.5,26.5c0,15.7-11.1,26.5-26.5,26.5 C308.4,205.7,297.3,194.9,297.3,179.2 M340.4,179.2c0-11.4-7.1-18.4-16.6-18.4c-9.5,0-16.6,7-16.6,18.4c0,11.5,7,18.3,16.6,18.3 C333.3,197.6,340.4,190.7,340.4,179.2\"\/><path d=\"M347.6,179.2c0-15.7,11.1-26.5,26.6-26.5c15.4,0,26.6,10.9,26.6,26.5c0,15.7-11.1,26.5-26.6,26.5 C358.6,205.7,347.6,194.9,347.6,179.2 M390.7,179.2c0-11.4-7.1-18.4-16.6-18.4c-9.5,0-16.6,7-16.6,18.4c0,11.5,7,18.3,16.6,18.3 C383.6,197.6,390.7,190.7,390.7,179.2\"\/><polygon points=\"397.5,197 404.4,197 404.4,161.4 397.5,161.4 397.5,153.7 422.3,153.7 422.3,161.4 414.1,161.4 414.1,197 430.6,197 430.6,188.8 439.6,188.8 439.6,204.7 397.5,204.7\"\/><path d=\"M541.8,62.2c-10.9-3.5-18.4-5.9-18.4-11.8c0-7,9.5-8.1,15.2-8.1c3.4,0,7,0.4,9.9,0.8v13.1h22.8V27.8l-2.2-0.7 c-7.5-2.5-19.6-5.3-31-5.3c-24,0-38.4,11.4-38.4,30.6c0,21.7,18.5,27.2,32.8,31.6C544,87.4,551,89.1,551,95.8c0,2.1,1.5,8-14.8,8 c-4.2,0-13.2-0.3-13.2-0.3l-11.2,0l-33.4-79.8h-43.8v20.6h11.3l-16.6,41.1V67.2h-50.4v20.3h19.6v14.4c-5.9,1.7-11.2,2.5-16.3,2.5 c-19.8,0-30.8-10.8-30.8-30.3c0-19.8,11.1-31.1,30.5-31.1c5.1,0,10.7,0.8,16.6,2.4v15.3h23.2V31.3l-1.7-0.9 c-8.1-4.2-22.5-8.7-38.6-8.7c-23.8,0-41.2,10.2-49.3,27.6v-18l-1.7-0.9c-8.1-4.2-22.5-8.7-38.5-8.7c-33.6,0-54.5,20.2-54.5,52.6 c0,4,0.3,7.7,1,11.3l-25.1-62.1h-38.6h-5.2h-42.6v20.6h12l-13.5,44.6l-14.4-44.6h12.2V23.6H74.6v20.6h12.8l0.4,1.1L72.6,89.8 L58.6,44.2h12.2V23.6H23v20.6h11.4l26.1,79.8h22l16.7-45.7l15.9,45.7h22l26-79.8h6.4h5.2h6.1l-24,59.3h-12.2v20.6h47.3v-20.6H181 l2.5-6.4h34.2l2.5,6.4h-10.9v20.6h48.6v-7.4c8.9,6,20.3,9.3,33.9,9.3c19.7,0,33.6-6.7,38.6-9.5l1.6-0.9V98.6 c8,17.3,25.4,27.4,49.3,27.4c11.8,0,21.5-2.4,28.5-4.9v3.1h47.3v-20.6h-10.9l2.5-6.4h34.2l2.5,6.4h-10.9v20.6h41.4 c0,0,14.9,0.3,21.5,0.3c24.7,0,37.4-10.5,37.4-29.8C574.7,71.8,555.7,66.6,541.8,62.2 M475,76.4h-18.3l9.1-23.5L475,76.4z M209.8,76.4h-18.3l9.1-23.5L209.8,76.4z M421.9,103.5h-0.3v-16h6.8L421.9,103.5z M327.4,67.2h-38.1v20.3h19.6v14.4 c-5.8,1.7-11.2,2.5-16.3,2.5c-19.8,0-30.8-10.8-30.8-30.3c0-19.8,11.1-31.1,30.5-31.1c5.1,0,10.7,0.8,16.6,2.4v15.3h19.5 C327.9,62.8,327.6,64.9,327.4,67.2\"\/><path d=\"M460.4,157v9.4c24.9-3.1,62-7.7,68.6-8.5c10.4-1.3,11.6-10.8,11.6-10.8L460.4,157z\"\/><path d=\"M513.2,175.1c10.3-1.3,11.6-10.8,11.6-10.8l-64.4,8v9.4C482.3,178.9,508,175.8,513.2,175.1\"\/><path d=\"M497.8,192.3c10.4-1.3,11.6-10.8,11.6-10.8l-49,6.1v9.4C477,194.9,493.9,192.8,497.8,192.3\"\/><path d=\"M142.8,157v9.4c-24.9-3.1-62-7.7-68.6-8.5c-10.4-1.3-11.6-10.8-11.6-10.8L142.8,157z\"\/><path d=\"M90,175.1c-10.4-1.3-11.6-10.8-11.6-10.8l64.4,8v9.4C120.9,178.9,95.2,175.8,90,175.1\"\/><path d=\"M105.3,192.3C95,191,93.8,181.5,93.8,181.5l49,6.1v9.4C126.2,194.9,109.2,192.8,105.3,192.3\"\/><\/symbol><\/svg>\n\n  <!-- HERO -->\n  <div class=\"ail-guide__hero\">\n    <div class=\"ail-guide__wrap\">\n      <div class=\"ail-guide__hero-grid\">\n        <div>\n          <span class=\"ail-guide__welcome\">Stages parapente<\/span>\n          <h1 class=\"ail-guide__h1\">\n            <span class=\"c-orange\">\u00c9cole de Parapente<\/span> dans le <span class=\"c-bleu\">Var<\/span>\n          <\/h1>\n          <p class=\"ail-guide__lead\">\n            Ail\u00e9ments, votre <strong>\u00e9cole de parapente<\/strong> accessible depuis le Var (Fr\u00e9jus 1h15, Toulon 1h45). Stages d'initiation \u00e0 expert d\u00e8s 260 \u20ac, sites Gr\u00e9oli\u00e8res \u00b7 Gourdon \u00b7 Roquebrune. Moniteurs DEJEPS depuis 2013, +1070 avis 5\/5.\n          <\/p>\n          <div class=\"ail-guide__cta-row\">\n            <a href=\"#planning-stages\" class=\"ail-guide__btn ail-guide__btn--orange\">R\u00e9server un stage<\/a>\n            <a href=\"https:\/\/www.ailements.fr\/bon-cadeau\/\" class=\"ail-guide__btn ail-guide__btn--bleu\">Bon cadeau stage<\/a>\n          <\/div>\n          <ul class=\"ail-guide__usps\">\n            <li>Moniteurs dipl\u00f4m\u00e9s d'\u00c9tat<\/li>\n            <li>Moniteurs DEJEPS<\/li>\n            <li>5 stages d\u00e8s 260 \u20ac<\/li>\n            <li>+1070 avis \u2605\u2605\u2605\u2605\u2605<\/li>\n          <\/ul>\n        <\/div>\n        <figure class=\"ail-guide__hero-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2024\/12\/CLA_6941-Avec-accentuation-Bruit-scaled.jpg\" alt=\"\u00c9cole parapente Var, stage \u00e0 Gr\u00e9oli\u00e8res en vol biplace\" loading=\"eager\"\/>\n          <span class=\"ail-guide__hero-img-badge\"><a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/mont-azur\/\"   title=\"Que faire autour de la R\u00e9serve des Monts d&rsquo;Azur : activit\u00e9s, visites et panoramas dans les Pr\u00e9alpes d&rsquo;Azur\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139312\">Stage parapente<\/a> \u00b7 Var 83<\/span>\n        <\/figure>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- BREADCRUMB -->\n  <nav class=\"ail-guide__breadcrumb-wrap\" aria-label=\"Fil d'Ariane\">\n    <div class=\"ail-guide__wrap\">\n      <ol class=\"ail-guide__breadcrumb\">\n        <li><a data-wpil=\"url\" data-wpil-url-old=\"aHR0cHM6Ly93d3cuYWlsZW1lbnRzLmZyLw==\" href=\"https:\/\/www.ailements.fr\/parapente\/vol-ascendant\">Accueil<\/a><\/li>\n        <li class=\"ail-guide__breadcrumb-sep\">\/<\/li>\n        <li><a href=\"https:\/\/www.ailements.fr\/stages\/\">Stages<\/a><\/li>\n        <li class=\"ail-guide__breadcrumb-sep\">\/<\/li>\n        <li class=\"ail-guide__breadcrumb-current\" aria-current=\"page\">\u00c9cole <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/\"   title=\"\ud83c\udfe0 HOMEPAGE\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139323\">Parapente Var<\/a><\/li>\n      <\/ol>\n    <\/div>\n  <\/nav>\n\n  <!-- REP\u00c8RES CL\u00c9S -->\n  <div class=\"ail-guide__keyfacts-wrap\" role=\"region\" aria-label=\"Rep\u00e8res cl\u00e9s \u00e9cole parapente Var\">\n    <div class=\"ail-guide__wrap\">\n      <ul class=\"ail-guide__keyfacts\">\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">Depuis le Var<\/span><span class=\"ail-guide__keyfact-value\">1h-2h \u00b7 Gr\u00e9oli\u00e8res (06)<\/span><\/li>\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">Stages d\u00e8s<\/span><span class=\"ail-guide__keyfact-value\">260 \u20ac \u00b7 1 jour<\/span><\/li>\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">Encadrement<\/span><span class=\"ail-guide__keyfact-value\">DEJEPS \u00b7 Depuis 2013<\/span><\/li>\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">3 sites de vol<\/span><span class=\"ail-guide__keyfact-value\">Gr\u00e9oli\u00e8res \u00b7 Gourdon \u00b7 Roquebrune<\/span><\/li>\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">Public<\/span><span class=\"ail-guide__keyfact-value\">Stages d\u00e8s 12 ans \u00b7 Bapt. d\u00e8s 5 ans<\/span><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n\n  <!-- INTRO -->\n  <div class=\"ail-guide__section ail-guide__section--marron ail-guide__intro\" id=\"intro\">\n    <div class=\"ail-guide__wrap\">\n      <div class=\"ail-guide__intro-grid\">\n        <div class=\"ail-guide__intro-text\">\n          <p><strong>Ail\u00e9ments<\/strong>, c'est votre \u00e9cole de parapente accessible depuis tout le <strong>Var (83)<\/strong>, <strong>formations vers l'autonomie<\/strong>. Bapt\u00eames, stages de formation, progression jusqu'\u00e0 l'autonomie : nos moniteurs dipl\u00f4m\u00e9s d'\u00c9tat vous accompagnent depuis 2013 sur les meilleurs sites de <a href=\"https:\/\/www.ailements.fr\/parapente\/\">vol libre<\/a> des Pr\u00e9alpes d'Azur.<\/p>\n          <p>Bas\u00e9e \u00e0 <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a> dans les Alpes-Maritimes voisines, notre \u00e9quipe vous fait d\u00e9couvrir <strong>Gr\u00e9oli\u00e8res, Gourdon et Roquebrune Cap Martin<\/strong>. Depuis le Var : <strong>1h15 depuis <a href=\"https:\/\/www.ailements.fr\/frejus\/\">Fr\u00e9jus<\/a><\/strong>, 1h30 depuis Draguignan, 1h45 depuis Toulon, 2h depuis <a href=\"https:\/\/www.ailements.fr\/lavandou\/\">Le Lavandou<\/a>. Voir notre page d\u00e9di\u00e9e <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-var\/\">parapente Var<\/a>.<\/p>\n          <p>Du <strong>Stage D\u00e9couverte 1 jour \u00e0 260 \u20ac<\/strong> au <strong>Stage D\u00e9couverte du Sud 5 jours \u00e0 800 \u20ac<\/strong>, nous proposons 5 formules adapt\u00e9es \u00e0 votre niveau. Pour les stages d'une semaine, possibilit\u00e9 d'h\u00e9bergement \u00e0 Gr\u00e9oli\u00e8res pour \u00e9viter les allers-retours quotidiens depuis le Var, ou simple <a href=\"https:\/\/www.ailements.fr\/parapente\/bapteme\/\">bapt\u00eame de parapente<\/a> \u00e0 la journ\u00e9e.<\/p>\n          <p><strong>Pour qui ?<\/strong> Varois curieux, pilotes en progression, sportifs exp\u00e9riment\u00e9s. <strong>Pourquoi ne pas voler dans le Var ?<\/strong> Les meilleurs sites \u00e9cole de la r\u00e9gion se trouvent dans les Pr\u00e9alpes d'Azur, \u00e0 1h-1h30 de chez vous. Antennes Ail\u00e9ments : <a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-nice\/\">\u00e9cole parapente Nice<\/a> et <a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-paca\/\">\u00e9cole parapente PACA<\/a>.<\/p>\n        <\/div>\n        <figure class=\"ail-guide__intro-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/12\/fdfbb35d-b365-4f82-8407-1badd89382e6.jpg\" alt=\"\u00c9cole parapente accessible depuis le Var Ail\u00e9ments Gr\u00e9oli\u00e8res Pr\u00e9alpes d'Azur\" loading=\"lazy\"\/>\n        <\/figure>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SECTION 1 : Ail\u00e9ments + acc\u00e8s Var -->\n  <div class=\"ail-guide__section ail-guide__section--marron\" id=\"ecole\" role=\"region\" aria-labelledby=\"h2-ecole\">\n    <div class=\"ail-guide__wrap\">\n      <span class=\"ail-guide__kicker\">\u00c9cole de parapente depuis 2013<\/span>\n      <h2 class=\"ail-guide__h2\" id=\"h2-ecole\">Ail\u00e9ments : votre \u00e9cole de parapente accessible depuis le Var<\/h2>\n      <p class=\"ail-guide__intro-section\">Fond\u00e9e en 2013, Ail\u00e9ments est n\u00e9e de la passion du vol libre. \u00c9cole reconnue sur la C\u00f4te d'Azur, nous accueillons r\u00e9guli\u00e8rement des stagiaires varois en qu\u00eate des meilleurs sites de vol \u00e9cole de la r\u00e9gion.<\/p>\n\n      <div class=\"ail-guide__cards-3\">\n        <article class=\"ail-guide__card ail-guide__card--bleu\">\n          <div class=\"ail-guide__card-tag\">Notre mission<\/div>\n          <h3 class=\"ail-guide__h3\">Transmettre la passion en s\u00e9curit\u00e9<\/h3>\n          <p>Que vous veniez de Fr\u00e9jus, Toulon, Hy\u00e8res ou Saint-Tropez pour une <strong>s\u00e9ance d\u00e9couverte<\/strong> ou une <strong>formation intensive<\/strong>, nous mettons tout en \u0153uvre pour vous offrir une exp\u00e9rience inoubliable.<\/p>\n          <p>\u00c9cole familiale, pas une usine \u00e0 touristes. Chaque \u00e9l\u00e8ve compte.<\/p>\n        <\/article>\n\n        <article class=\"ail-guide__card ail-guide__card--kaki\">\n          <div class=\"ail-guide__card-tag\">Notre base<\/div>\n          <h3 class=\"ail-guide__h3\">Gr\u00e9oli\u00e8res \u00b7 1h-1h30 du Var<\/h3>\n          <p>Bas\u00e9e \u00e0 <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a> au c\u0153ur du Parc Naturel des Pr\u00e9alpes d'Azur. Vue panoramique sur la M\u00e9diterran\u00e9e depuis 1 800 m d'altitude.<\/p>\n          <p>Atelier de <a href=\"https:\/\/www.ailements.fr\/revision-parapente\/\">r\u00e9vision parapente<\/a> sur place : <strong>Aerotech<\/strong>, atelier sp\u00e9cialis\u00e9.<\/p>\n        <\/article>\n\n        <article class=\"ail-guide__card ail-guide__card--orange\">\n          <div class=\"ail-guide__card-tag\">H\u00e9bergement<\/div>\n          <h3 class=\"ail-guide__h3\">Stages de 5 jours \u00b7 Logement possible<\/h3>\n          <p>Pour les stages d'une semaine, <strong>h\u00e9bergement partenaire<\/strong> \u00e0 Gr\u00e9oli\u00e8res pour \u00e9viter les allers-retours quotidiens depuis le Var.<\/p>\n          <p>Logement de groupe possible, \u00e0 organiser ensemble lors de la r\u00e9servation. <strong>Suivi post-formation<\/strong> pour vos premi\u00e8res sorties solo.<\/p>\n        <\/article>\n      <\/div>\n\n      <!-- Cities served strip Var -->\n      <div class=\"ail-guide__cities\" aria-label=\"Villes du Var et temps de trajet\">\n        <span class=\"ail-guide__city\">Fr\u00e9jus <strong>1h15<\/strong><\/span>\n        <span class=\"ail-guide__city\">Saint-Rapha\u00ebl <strong>1h15<\/strong><\/span>\n        <span class=\"ail-guide__city\">Saint-Tropez <strong>1h30<\/strong><\/span>\n        <span class=\"ail-guide__city\">Draguignan <strong>1h30<\/strong><\/span>\n        <span class=\"ail-guide__city\">Toulon <strong>1h45<\/strong><\/span>\n        <span class=\"ail-guide__city\">Hy\u00e8res <strong>2h<\/strong><\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SECTION 2 : Moniteurs -->\n  <div class=\"ail-guide__section ail-guide__section--kaki\" id=\"moniteurs\" role=\"region\" aria-labelledby=\"h2-moniteurs\">\n    <div class=\"ail-guide__wrap\">\n      <span class=\"ail-guide__kicker ail-guide__kicker--marron\">Notre \u00e9quipe<\/span>\n      <h2 class=\"ail-guide__h2\" id=\"h2-moniteurs\">Deux moniteurs dipl\u00f4m\u00e9s d'\u00c9tat, une m\u00eame passion<\/h2>\n      <p class=\"ail-guide__intro-section\">Pierrot et Pierre-Yves vous accompagnent du bapt\u00eame d\u00e9couverte aux vols autonomes. Dipl\u00f4m\u00e9s d'\u00c9tat (DEJEPS et BEES), 19 et 31 ans d'exp\u00e9rience en vol libre, sp\u00e9cialistes des sites des Pr\u00e9alpes d'Azur.<\/p>\n\n      <div class=\"ail-guide__moniteurs\">\n        <article class=\"ail-guide__moniteur\">\n          <figure class=\"ail-guide__moniteur-img\">\n            <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/pierrot-noir-et-blanc.png\" alt=\"Pierrot moniteur parapente Ail\u00e9ments DEJEPS stages Var\" loading=\"lazy\"\/>\n          <\/figure>\n          <div class=\"ail-guide__moniteur-body\">\n            <span class=\"ail-guide__moniteur-role\">Moniteur DEJEPS<\/span>\n            <span class=\"ail-guide__moniteur-name\">Pierrot Fenet<\/span>\n            <p class=\"ail-guide__moniteur-bio\">Moniteur dipl\u00f4m\u00e9 d'\u00c9tat, fort de <strong>19 ans d'exp\u00e9rience<\/strong> en vol libre. Sp\u00e9cialiste des vols biplace et de la formation initiation. Sa patience et sa p\u00e9dagogie en font le guide id\u00e9al pour vos premiers vols.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"ail-guide__moniteur\">\n          <figure class=\"ail-guide__moniteur-img\">\n            <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/PY-1-1.jpg\" alt=\"Pierre-Yves moniteur parapente Ail\u00e9ments BEES expert a\u00e9rologie Var\" loading=\"lazy\"\/>\n          <\/figure>\n          <div class=\"ail-guide__moniteur-body\">\n            <span class=\"ail-guide__moniteur-role\">Moniteur BEES \u00b7 Expert a\u00e9rologie<\/span>\n            <span class=\"ail-guide__moniteur-name\">Pierre-Yves<\/span>\n            <p class=\"ail-guide__moniteur-bio\">Moniteur dipl\u00f4m\u00e9 d'\u00c9tat, 31 ans de vol libre, <strong>expert en conditions a\u00e9rologiques<\/strong> et vols de distance. Il encadre les stages de perfectionnement et accompagne les pilotes vers l'autonomie.<\/p>\n          <\/div>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- WIDGET STAGES (identique ecole-parapente-nice\/paca) -->\n  <div class=\"ail-guide__section ail-guide__section--marron\" id=\"stages\" role=\"region\" aria-labelledby=\"h2-stages\">\n    <div class=\"ail-guide__wrap\">\n      <div class=\"ail-guide__stages-head\">\n        <span class=\"ail-guide__kicker\">R\u00e9server votre stage<\/span>\n        <h2 class=\"ail-guide__h2\" id=\"h2-stages\">Nos 5 stages : du d\u00e9butant au pilote autonome<\/h2>\n        <p class=\"ail-guide__intro-section\">Cinq formules adapt\u00e9es \u00e0 votre niveau et vos objectifs. Que vous souhaitiez d\u00e9couvrir le parapente ou progresser vers l'autonomie, nous avons le stage qu'il vous faut, \u00e0 des tarifs accessibles.<\/p>\n      <\/div>\n\n      <div class=\"ail-guide__stages\">\n\n        <article class=\"ail-guide__stage ail-guide__stage--bleu\">\n          <div class=\"ail-guide__stage-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/P1010008-scaled.jpg\" alt=\"Stage D\u00e9couverte parapente \u00e0 Gr\u00e9oli\u00e8res \u2014 initiation th\u00e9orie et vol biplace p\u00e9dagogique avec moniteur DEJEPS\" loading=\"lazy\" width=\"1024\" height=\"640\"\/><\/div>\n          <div class=\"ail-guide__stage-body\">\n            <span class=\"ail-guide__stage-tag\">Niveau d\u00e9butant<\/span>\n            <h4>Stage D\u00e9couverte<\/h4>\n            <p class=\"ail-guide__stage-meta\">1 jour \u00b7 Sans pr\u00e9requis \u00b7 D\u00e8s 12 ans<\/p>\n            <div class=\"ail-guide__stage-price\"><span>260 \u20ac<\/span><\/div>\n            <p class=\"ail-guide__stage-desc\">Une journ\u00e9e pour tester avant de s'engager. Th\u00e9orie compl\u00e8te, exercices en pente-\u00e9cole et vol biplace p\u00e9dagogique. Photos et vid\u00e9os de votre vol incluses (carte SD).<\/p>\n            <ul class=\"ail-guide__stage-bullets\">\n              <li>Mat\u00e9riel fourni \u00b7 Moniteur DEJEPS<\/li>\n              <li>Vol biplace p\u00e9dagogique inclus<\/li>\n              <li>D\u00e9cider si vous voulez aller plus loin<\/li>\n            <\/ul>\n            <a href=\"#planning-stages\" class=\"ail-guide__stage-cta\">R\u00e9server ce stage<\/a>\n          <\/div>\n        <\/article>\n\n        <article class=\"ail-guide__stage ail-guide__stage--orange ail-guide__stage--bestseller\">\n          <div class=\"ail-guide__stage-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/enseignement.jpg\" alt=\"Stage Initiation parapente \u00e0 Gr\u00e9oli\u00e8res \u2014 premiers vols solo encadr\u00e9s, semaine intensive 5 jours\" loading=\"lazy\" width=\"1024\" height=\"640\"\/><\/div>\n          <div class=\"ail-guide__stage-body\">\n            <span class=\"ail-guide__stage-tag\">D\u00e9butants motiv\u00e9s<\/span>\n            <h4>Stage Initiation<\/h4>\n            <p class=\"ail-guide__stage-meta\">5 jours \u00b7 Semaine compl\u00e8te \u00b7 Premiers solos<\/p>\n            <div class=\"ail-guide__stage-price\"><span>700 \u20ac<\/span><\/div>\n            <p class=\"ail-guide__stage-meta\" style=\"color:var(--c-dark);font-weight:800;margin-top:6px\">Format 5&nbsp;jours uniquement &#8212; la dur\u00e9e d'une vraie progression<\/p>\n            <p class=\"ail-guide__stage-meta\" style=\"font-size:.85em;opacity:.75;margin-top:2px\">Licence FFVL obligatoire, non comprise (\u00e0 prendre aupr\u00e8s de la f\u00e9d\u00e9ration)<\/p>\n            <p class=\"ail-guide__stage-desc\">Une semaine intensive pour d\u00e9couvrir l'activit\u00e9 et apprendre les bases. Th\u00e9orie, exercices, briefings quotidiens et d\u00e9briefing vid\u00e9o apr\u00e8s chaque vol.<\/p>\n            <ul class=\"ail-guide__stage-bullets\">\n              <li>Premiers vols solo en fin de semaine<\/li>\n              <li>D\u00e9briefing vid\u00e9o personnalis\u00e9<\/li>\n              <li>Groupe 7 max \u00b7 ambiance familiale<\/li>\n            <\/ul>\n            <div class=\"ail-next\" data-ailp-next=\"initiation\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n            <a href=\"#planning-stages\" class=\"ail-guide__stage-cta\">R\u00e9server ce stage<\/a>\n          <\/div>\n        <\/article>\n\n        <article class=\"ail-guide__stage ail-guide__stage--kaki\">\n          <div class=\"ail-guide__stage-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/parapente-page-acceuil-scaled.jpg\" alt=\"Stage Perfectionnement parapente \u2014 pilotage thermique et cross-country en arri\u00e8re-pays ni\u00e7ois\" loading=\"lazy\" width=\"1024\" height=\"640\"\/><\/div>\n          <div class=\"ail-guide__stage-body\">\n            <span class=\"ail-guide__stage-tag\">Apr\u00e8s l'initiation<\/span>\n            <h4>Stage Perfectionnement<\/h4>\n            <p class=\"ail-guide__stage-meta\">5 jours \u00b7 Thermique \u00b7 Cross-country<\/p>\n            <div class=\"ail-guide__stage-price\"><span>750 \u20ac<\/span><\/div>\n            <p class=\"ail-guide__stage-meta\" style=\"color:var(--c-creme);font-weight:800;margin-top:6px\">Aussi en 3&nbsp;jours (450&nbsp;\u20ac)<\/p>\n            <p class=\"ail-guide__stage-meta\" style=\"font-size:.85em;opacity:.75;margin-top:2px\">Avec votre propre mat\u00e9riel&nbsp;: &#8722;60&nbsp;\u20ac &middot; Licence FFVL non comprise<\/p>\n            <p class=\"ail-guide__stage-desc\">La suite du stage initiation&nbsp;: l'autonomie se construit sur plusieurs stages perfectionnement, d'abord en conditions calmes sur le site appris. Pilotage actif et vol thermique, adapt\u00e9s \u00e0 votre niveau.<\/p>\n            <ul class=\"ail-guide__stage-bullets\">\n              <li>Pr\u00e9requis&nbsp;: avoir suivi un stage initiation<\/li>\n              <li>Analyse thermique et a\u00e9rologie<\/li>\n              <li>Suivi personnalis\u00e9 de votre progression<\/li>\n            <\/ul>\n            <div class=\"ail-next\" data-ailp-next=\"perfectionnement\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n            <a href=\"#planning-stages\" class=\"ail-guide__stage-cta\">R\u00e9server ce stage<\/a>\n          <\/div>\n        <\/article>\n\n        <article class=\"ail-guide__stage ail-guide__stage--marron\">\n          <div class=\"ail-guide__stage-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/12\/IMG_2130-scaled.jpg\" alt=\"Stage D\u00e9couverte du Sud \u2014 tour des sites de vol Gr\u00e9oli\u00e8res Gourdon Roquebrune Cap Martin entre montagne et M\u00e9diterran\u00e9e\" loading=\"lazy\" width=\"1024\" height=\"640\"\/><\/div>\n          <div class=\"ail-guide__stage-body\">\n            <span class=\"ail-guide__stage-tag\">Multi-sites Sud<\/span>\n            <h4>Stage D\u00e9couverte du Sud<\/h4>\n            <p class=\"ail-guide__stage-meta\">5 jours \u00b7 Multi-sites \u00b7 Pilotes confirm\u00e9s<\/p>\n            <div class=\"ail-guide__stage-price\"><span>800 \u20ac<\/span><\/div>\n            <p class=\"ail-guide__stage-desc\">D\u00e9couverte des sites de vol du sud (Gr\u00e9oli\u00e8res, Gourdon, Roquebrune). Vol sur diff\u00e9rents terrains (montagne, bord de mer).<\/p>\n            <ul class=\"ail-guide__stage-bullets\">\n              <li>Pr\u00e9requis&nbsp;: autonomie compl\u00e8te au d\u00e9collage et \u00e0 l'atterrissage<\/li>\n              <li>Apports th\u00e9oriques conditions locales<\/li>\n              <li>Plan de vol personnalis\u00e9 chaque jour<\/li>\n            <\/ul>\n            <div class=\"ail-next\" data-ailp-next=\"sud\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n            <a href=\"#planning-stages\" class=\"ail-guide__stage-cta\">R\u00e9server ce stage<\/a>\n          <\/div>\n        <\/article>\n\n        <article class=\"ail-guide__stage ail-guide__stage--creme ail-guide__stage--wide ail-guide__stage--new\">\n          <div class=\"ail-guide__stage-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2026\/10\/parapente-biplace-greolieres-vue-aerienne-1.webp\" alt=\"Stage Dune du Pyla avec la Waggas School : voile rouge et jaune en vol rasant au-dessus du sable, vue du ciel\" loading=\"lazy\" width=\"1099\" height=\"1920\" style=\"object-position:50% 55%\"\/><span class=\"ail-guide__stage-partner\"><span class=\"ail-guide__stage-partner-label\">Partenaire exclusif<\/span><svg class=\"ail-waggas-logo\" viewBox=\"0 0 595.3 223\" role=\"img\" aria-label=\"Waggas School\"><use href=\"#ail-logo-waggas\"\/><\/svg><\/span><\/div>\n          <div class=\"ail-guide__stage-body\">\n            <span class=\"ail-guide__stage-tag\">Pilotes tous niveaux<\/span>\n            <h4>Stage Dune du Pyla<\/h4>\n            <p class=\"ail-guide__stage-meta\">Une semaine \u00b7 10 pilotes max<\/p>\n            <div class=\"ail-guide__stage-price\"><span>650 \u20ac<\/span> <small style=\"white-space:nowrap\">stage seul<\/small><\/div>\n            <div class=\"ail-guide__stage-navette\">\n              <div class=\"ail-guide__stage-navette-head\"><span class=\"ail-guide__stage-navette-label\">Navette depuis Gr\u00e9oli\u00e8res<\/span><span class=\"ail-guide__stage-navette-price\">900&nbsp;\u20ac<small>stage + navette<\/small><\/span><\/div>\n              <p class=\"ail-guide__stage-navette-txt\">Aller-retour en minibus au d\u00e9part de l'\u00e9cole, \u00e0 Gr\u00e9oli\u00e8res&nbsp;: <b>6 places seulement<\/b>, sous r\u00e9serve de disponibilit\u00e9.<\/p>\n            <\/div>\n            <p class=\"ail-guide__stage-meta\" style=\"font-size:.85em;opacity:.75;margin-top:2px\">Logement, repas et licence FFVL non compris<\/p>\n            <p class=\"ail-guide__stage-desc\">Une semaine au pied de la plus haute dune d'Europe, en partenariat exclusif avec la Waggas School, sp\u00e9cialiste du pilotage dans le vent depuis 2003&nbsp;: cinq jours de sessions au sol pour ma\u00eetriser votre aile, du gonflage face \u00e0 la voile jusqu'aux waggas.<\/p>\n            <ul class=\"ail-guide__stage-bullets\">\n              <li>Pr\u00e9requis&nbsp;: avoir suivi un stage initiation<\/li>\n              <li>Venez avec votre propre voile<\/li>\n              <li>5 jours au sol avec la Waggas School, d\u00e9briefing vid\u00e9o<\/li>\n              <li>Vols de fin de journ\u00e9e hors stage, en autonomie et sous votre responsabilit\u00e9<\/li>\n            <\/ul>\n            <div class=\"ail-next\" data-ailp-next=\"dune\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n            <a href=\"#planning-stages\" class=\"ail-guide__stage-cta\" data-ailp-filter=\"dune\">R\u00e9server ce stage<\/a>\n          <\/div>\n        <\/article>\n      <\/div>\n\n      <div class=\"ail-guide__stages-footer\">\n        <a href=\"#planning-stages\" class=\"ail-guide__btn ail-guide__btn--orange\">Voir tous les stages disponibles<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SECTION 3 : Sites de d\u00e9collage (3 sites accessibles depuis Var) -->\n  <!-- PLANNING DES STAGES (dates & reservation) -->\n  <div class=\"ail-guide__section ail-guide__section--marron\">\n    <div class=\"ail-guide__wrap\">\n<section class=\"ail-plan ail-plan--on-warm\" id=\"planning-stages\" aria-label=\"Calendrier des stages : dates et r\u00e9servation\">\n\n  <!-- (Preview\/standalone) polices \u2014 en prod la page les charge d\u00e9j\u00e0 -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Krona+One&family=Nunito+Sans:wght@400;600;700;800&display=swap\" rel=\"stylesheet\">\n\n  <style>\n  .ail-plan,.ail-plan *,.ail-plan *::before,.ail-plan *::after{box-sizing:border-box;margin:0;padding:0}\n  .ail-plan{\n    \/* \u2014 couleurs constantes (orange\/bleu identiques sur toutes tes chartes) \u2014 *\/\n    --or:var(--ail-orange,#EC672C);\n    --or-h:var(--ail-orange-hover,#d55a22);\n    --bleu:var(--ail-bleu,#ABC8CA);\n    --rad:var(--ail-radius,10px);\n\n    \/* \u2014 SURFACES : panneau SOMBRE Ail\u00e9ments, lisible PARTOUT (cr\u00e8me sur sombre) \u2014\n       Sur une page chaude\/claire (syst\u00e8me .ail-guide), on GARDE ces couleurs sombres\n       et on ajoute la classe .ail-plan--on-warm (qui ne fait qu'ajouter un liser\u00e9 +\n       ombre pour d\u00e9tacher le panneau du fond). On NE passe PAS les cartes en clair. *\/\n    --plan-bg:#28211a;                   \/* marron sombre Ail\u00e9ments (chaud, pas noir\/navy) *\/\n    --plan-text:var(--ail-creme,#F4EFE6);\n    --plan-card:#3a3025;                 \/* carte marron, un cran plus clair que le fond *\/\n    --plan-line:rgba(244,239,230,.10);   \/* liser\u00e9 cr\u00e8me translucide (chaud) *\/\n    --plan-line-h:rgba(244,239,230,.22);\n    --plan-muted:rgba(244,239,230,.66);\n    --plan-ink-soft:var(--bleu);         \/* <i> du titre \u00b7 libell\u00e9s mois \u00b7 label \"journ\u00e9e d\u00e9couverte\" *\/\n\n    \/* alias internes (tout le reste du CSS pointe ici, ne pas modifier) *\/\n    --dark:var(--plan-bg); --creme:var(--plan-text);\n    --card:var(--plan-card); --line:var(--plan-line); --line-h:var(--plan-line-h); --muted:var(--plan-muted);\n    \/* couleurs de stage dans la charte (audit UX 18\/10\/2026) : Initiation bleu, Perf orange, Sud kaki \u00e9clairci (lisible sur le panneau sombre), Dune cr\u00e8me *\/\n    --c-init:var(--bleu); --c-perf:var(--or); --c-sud:#A4A882; --c-deco:var(--bleu); --c-dune:var(--ail-creme,#F4EFE6);\n    font-family:'Nunito Sans',system-ui,sans-serif;\n    background:var(--dark); color:var(--creme); line-height:1.55;\n    width:100%; padding:48px 20px; border-radius:16px; scroll-margin-top:90px;\n  }\n  \/* Sur une section CHAUDE\/claire (.ail-guide marron\/kaki) : on garde le panneau SOMBRE\n     (cr\u00e8me sur sombre = lisibilit\u00e9 maximale), on ajoute juste un liser\u00e9 + ombre pour\n     bien le d\u00e9tacher du fond. AUCUNE case blanche, AUCUNE carte claire. *\/\n  .ail-plan.ail-plan--on-warm{\n    border:1px solid rgba(16,24,32,.22);\n    box-shadow:0 16px 44px rgba(16,24,32,.30);\n  }\n  .ail-plan__inner{max-width:860px;margin:0 auto}\n\n  \/* En-t\u00eate de section (calqu\u00e9 sur .ail-stages__section-head) *\/\n  .ail-plan__head{margin-bottom:26px}\n  .ail-plan__eyebrow{\n    display:inline-block;font-family:'Krona One',sans-serif;font-size:11px;\n    letter-spacing:2.5px;color:var(--or);margin-bottom:10px;\n  }\n  .ail-plan__h{\n    font-family:'Krona One',sans-serif;font-size:clamp(22px,3vw,32px);\n    color:var(--creme);line-height:1.25;letter-spacing:.3px;\n  }\n  .ail-plan__h i{color:var(--plan-ink-soft);font-style:normal;font-weight:inherit;white-space:nowrap}\n  .ail-plan__lede{font-size:15px;color:var(--creme);opacity:.85;margin-top:12px;max-width:600px}\n\n  \/* Filtres *\/\n  .ail-plan__filters{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 16px}\n  .ail-plan__chip{\n    font-family:'Krona One',sans-serif;font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;\n    cursor:pointer;user-select:none;background:rgba(255,255,255,.04);color:var(--muted);\n    border:1.5px solid var(--line);padding:8px 13px;border-radius:999px;transition:.18s;\n  }\n  .ail-plan__chip:hover{color:var(--creme);border-color:var(--or)}\n  .ail-plan__chip.is-on{background:var(--or);color:var(--creme);border-color:var(--or)}\n  .ail-plan__chip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}\n\n  \/* Carte \"journ\u00e9e d\u00e9couverte \u00e0 la demande\" *\/\n  .ail-plan__ondemand{\n    display:flex;align-items:center;gap:15px;flex-wrap:wrap;\n    background:linear-gradient(135deg,rgba(171,200,202,.08),rgba(255,255,255,.02));\n    border:1.5px dashed var(--c-deco);border-radius:var(--rad);padding:16px 18px;margin-bottom:22px;\n  }\n  .ail-plan__ondemand .od-ico{color:var(--c-deco);display:flex;align-items:center;flex-shrink:0}\n  .ail-plan__ondemand .od-txt{flex:1;min-width:190px}\n  .ail-plan__ondemand .od-txt b{font-family:'Krona One',sans-serif;font-size:13.5px;color:var(--plan-ink-soft);letter-spacing:.2px}\n  .ail-plan__ondemand .od-txt span{display:block;color:var(--muted);font-size:13px;margin-top:4px}\n\n  \/* Regles de session : minimum, validation, acompte *\/\n  .ail-plan__rules{\n    background:linear-gradient(135deg,rgba(171,200,202,.07),rgba(255,255,255,.02));\n    border:1px solid var(--line);border-left:3px solid var(--bleu);\n    border-radius:var(--rad);padding:15px 18px;margin:0 0 22px;\n  }\n  .ail-plan__rules b{\n    font-family:'Krona One',sans-serif;font-size:12.5px;letter-spacing:.3px;\n    color:var(--plan-ink-soft);display:block;margin-bottom:8px;\n  }\n  .ail-plan__rules ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}\n  .ail-plan__rules li{\n    color:var(--muted);font-size:13px;line-height:1.55;padding-left:15px;position:relative;\n  }\n  .ail-plan__rules li::before{\n    content:'';position:absolute;left:0;top:8px;width:5px;height:5px;\n    border-radius:50%;background:var(--bleu);\n  }\n  .ail-plan__rules li i{font-style:normal;color:var(--plan-ink-soft);font-weight:700}\n\n  \/* Mois *\/\n  .ail-plan__month{\n    font-family:'Krona One',sans-serif;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;\n    color:var(--plan-ink-soft);margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);\n  }\n  .ail-plan__month:first-child{margin-top:4px}\n\n  \/* Carte session (look .ail-stage-card + barre couleur par type) *\/\n  .ail-plan__card{\n    position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--rad);\n    padding:16px 18px 16px 22px;margin-bottom:12px;overflow:hidden;transition:border-color .25s,transform .25s;\n  }\n  .ail-plan__card:hover{border-color:var(--line-h);transform:translateY(-2px)}\n  .ail-plan__card::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent)}\n  .ail-plan__card.is-full{opacity:.78}\n\n  .ail-plan__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}\n  .ail-plan__type{font-family:'Krona One',sans-serif;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--accent)}\n  .ail-plan__dur{font-size:12px;color:var(--muted)}\n  .ail-plan__dates{font-family:'Krona One',sans-serif;font-size:17px;color:var(--creme);margin:8px 0 4px;line-height:1.3}\n  .ail-plan__meta{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}\n  .ail-plan__lieu{font-size:13.5px;color:var(--muted)}\n  .ail-plan__price{font-family:'Krona One',sans-serif;font-size:18px;color:var(--or);white-space:nowrap}\n\n  .ail-plan__bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}\n  .ail-plan__spots{font-size:12.5px;font-weight:700;display:flex;align-items:center;gap:7px}\n  .ail-plan__pips{display:inline-flex;gap:3px}\n  .ail-plan__pip{width:9px;height:9px;border-radius:50%;background:var(--line)}\n  .ail-plan__pip.on{background:var(--accent)}\n  \/* disponibilit\u00e9 (audit UX 18\/10\/2026) : neutre tant qu'il reste de la place, bleu quand le minimum de 6 est atteint,\n     orange \u00e0 3 places ou moins, discret quand c'est complet (le bouton dit \u00ab Liste d'attente \u00bb) *\/\n  .ail-plan__spots.ok{color:var(--muted)}\n  .ail-plan__spots.min{color:var(--bleu)}\n  .ail-plan__spots.low{color:var(--or)}\n  .ail-plan__spots.full{color:var(--muted)}\n\n  \/* Bouton (= .ail-btn--primary) *\/\n  .ail-plan__btn{\n    display:inline-flex;align-items:center;gap:6px;font-family:'Krona One',sans-serif;font-size:11px;\n    letter-spacing:.5px;text-decoration:none;cursor:pointer;white-space:nowrap;\n    background:var(--or);color:var(--creme);border:1.5px solid var(--or);padding:11px 18px;border-radius:var(--rad);transition:all .2s;\n  }\n  .ail-plan__btn:hover{background:var(--or-h);border-color:var(--or-h)}\n  .ail-plan__btn.is-off{background:transparent;color:var(--muted);border-color:var(--line);cursor:not-allowed;pointer-events:none}\n  \/* session previsionnelle ou complete : inscription en liste d'attente (jamais un cul-de-sac) *\/\n  .ail-plan__btn.is-liste{background:transparent;color:var(--bleu);border-color:var(--bleu)}\n  .ail-plan__btn.is-liste:hover{background:var(--bleu);color:var(--plan-bg)}\n  .ail-plan__flag{font-size:11.5px;letter-spacing:.3px;color:var(--bleu);margin:8px 0 2px}\n\n  .ail-plan__empty{text-align:center;color:var(--muted);padding:34px 10px;font-size:14px;line-height:1.7}\n  .ail-plan__foot{color:var(--muted);font-size:12px;margin-top:22px;line-height:1.6;text-align:center}\n  .ail-plan__foot a{color:var(--or);text-decoration:none}\n\n  \/* \u00c9tat pr\u00e9-lancement (avant la 1re date saisie dans l'appli) : planning gris\u00e9 + COMING SOON en travers *\/\n  .ail-plan{overflow-x:clip}                                   \/* garde-fou anti-d\u00e9bordement (bandeau en rotation) *\/\n  .ail-plan__soon{position:relative;margin-top:4px;overflow:hidden;border-radius:var(--rad)}\n  .ail-plan__ghosts{filter:grayscale(1);opacity:.28;pointer-events:none;user-select:none}\n  .ail-plan__ghost{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:18px 20px;margin-bottom:12px}\n  .ail-plan__gbar{display:block;height:12px;border-radius:6px;background:var(--plan-muted);margin:9px 0}\n  .ail-plan__band{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px}\n  .ail-plan__band-txt{\n    transform:rotate(-7deg);font-family:'Krona One',sans-serif;\n    font-size:clamp(28px,11vw,60px);letter-spacing:clamp(1px,.6vw,4px);line-height:1.06;text-align:center;\n    color:var(--ail-creme,#F4EFE6);\n    background:linear-gradient(135deg,var(--ail-kaki,#707455),var(--ail-marron,#9F8F73));\n    border:1px solid rgba(244,239,230,.4);border-bottom:3px solid var(--ail-orange,#EC672C);\n    border-radius:14px;padding:clamp(14px,3.5vw,22px) clamp(12px,4vw,36px);\n    box-shadow:0 18px 50px rgba(16,24,32,.42);max-width:92%;\n  }                                                  \/* pas de nowrap \u2192 \"COMING SOON\" passe sur 2 lignes sur mobile, 1 ligne sur desktop *\/\n  .ail-plan__soon-sub{text-align:center;color:var(--plan-ink-soft);font-size:14px;margin-top:20px;line-height:1.7}\n\n  \/* \u2500\u2500 Tableau de saison (audit UX, \u00e9tape 3, 18\/10\/2026) \u2500\u2500\n     Une ligne par stage dans l'ordre de la progression (vignette, dur\u00e9e, prix, rep\u00e8re de progression),\n     12 mois glissants en colonnes, une pastille par session. La COULEUR dit le stage, la FORME dit le statut :\n     plein = minimum de 6 inscrits atteint \u00b7 contour = places disponibles \u00b7 \u00ab N pl. \u00bb = 3 places ou moins \u00b7\n     pointill\u00e9s = date pr\u00e9visionnelle (liste d'attente) \u00b7 hachur\u00e9 barr\u00e9 = complet (liste d'attente).\n     Jusqu'\u00e0 860 px de large, chaque stage devient une carte : frise des 12 mois + rail de dates \u00e0 faire d\u00e9filer.\n     Toucher une date ouvre sa carte d\u00e9taill\u00e9e dans la liste dessous (r\u00e9servation et liste d'attente inchang\u00e9es). *\/\n  .ail-plan__anwrap{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 14px;margin-bottom:26px}\n  .ail-plan__anhead{display:flex;align-items:baseline;justify-content:space-between;gap:6px 12px;flex-wrap:wrap}\n  .ail-plan__antitre{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--plan-ink-soft)}\n  .ail-plan__ancompte{font-size:12px;font-weight:700;color:var(--muted)}\n  .ail-plan__tab{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin-top:12px}\n  .ail-plan__tr{display:grid;grid-template-columns:214px minmax(0,1fr);gap:10px;min-width:0;transition:opacity .2s}\n  .ail-plan__tr.is-dim{opacity:.32}\n  .ail-plan__tm{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;min-width:0}\n  .ail-plan__th{text-align:center;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 0 6px;line-height:1.3}\n  .ail-plan__th small{display:block;font-size:9.5px;letter-spacing:.04em;font-weight:700}\n  .ail-plan__tl{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:10px;align-content:start;padding:10px 0;border-top:1px solid var(--line);min-width:0}\n  .ail-plan__tl > *{grid-column:2;min-width:0}\n  .ail-plan__tl--head{display:block;border:0;padding:0 0 6px;align-self:end;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}\n  .ail-plan__tl-n{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;line-height:1.25}\n  .ail-plan__tl-n .sw{width:9px;height:9px;border-radius:3px;flex:none;background:var(--accent)}\n  .ail-plan__tl-m{font-size:12.5px;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums}\n  .ail-plan__tl-p{font-size:12px;line-height:1.35}\n  .ail-plan__tl-c{font-size:11.5px;margin-top:2px}\n  .ail-plan__tcell{grid-row:1;border-top:1px solid var(--line);padding:8px 0 6px;display:flex;flex-direction:column;gap:4px;min-width:0}\n  .ail-plan__tcell .ini{display:none}\n  .ail-plan__tband,.ail-plan__tvide{grid-row:1;grid-column:1 \/ -1;align-self:center;position:relative;z-index:1}\n  .ail-plan__tband{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 12px;margin:10px 0 6px;padding:9px 12px;border:1.5px dashed var(--c-deco);border-radius:9px;background:rgba(171,200,202,.07)}\n  .ail-plan__tvide{font-size:12.5px;line-height:1.5;padding:0 4px}\n  .ail-plan__twin{grid-row:1;font-size:10.5px;letter-spacing:.04em;text-align:center;border:1px dashed rgba(171,200,202,.45);border-top:0;border-radius:0 0 8px 8px;padding:2px 4px;margin-bottom:2px}\n  .ail-plan__trail{display:none}\n  .ail-plan__tleg{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;line-height:1.4}\n  .ail-plan__tleg > span{display:inline-flex;align-items:center;gap:7px}\n  .ail-plan__tleg .lg{display:inline-flex;align-items:center;justify-content:center;width:26px;height:16px;border-radius:5px;flex:none;position:relative;font-style:normal;font-size:9.5px;font-weight:800}\n  .ail-plan__tleg .lg-min{background:var(--bleu)}\n  .ail-plan__tleg .lg-min::before{content:\"\";position:absolute;top:3px;left:8px;width:10px;height:3px;border-radius:2px;background:var(--ail-dark,#101820);opacity:.5}\n  .ail-plan__tleg .lg-open,.ail-plan__tleg .lg-low{border:1.5px solid var(--bleu);background:rgba(171,200,202,.17)}\n  .ail-plan__tleg .lg-low{width:auto;padding:0 5px}\n  .ail-plan__tleg .lg-prev{border:1.5px dashed var(--bleu)}\n  .ail-plan__tleg .lg-full{border:1.5px solid var(--line-h);background:repeating-linear-gradient(135deg,rgba(244,239,230,.22) 0 3px,transparent 3px 7px)}\n  .ail-plan__card.is-flash{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}\n  @media(max-width:860px){\n    .ail-plan__anwrap{padding:15px 12px 12px}\n    .ail-plan__tab{gap:10px}\n    .ail-plan .ail-plan__thead,.ail-plan .ail-plan__twinter{display:none}\n    .ail-plan__tr{display:block;background:rgba(244,239,230,.04);border:1px solid var(--line);border-radius:12px;padding:12px}\n    .ail-plan__tl{border:0;padding:0}\n    .ail-plan__tl-c{display:none}\n    .ail-plan__tm{gap:2px;margin:12px 0 2px}\n    .ail-plan__tcell{height:22px;padding:0;border:0;border-radius:4px;background:rgba(244,239,230,.07);align-items:center;justify-content:center}\n    .ail-plan__tcell .ini{display:block;font-size:9.5px;font-weight:800;font-style:normal;line-height:1}\n    .ail-plan__tcell.has{background:var(--accent)}\n    .ail-plan__tcell.has.is-prev{background:transparent;border:1.5px dashed var(--accent)}\n    .ail-plan__tcell.has.is-full{background:repeating-linear-gradient(135deg,rgba(244,239,230,.22) 0 3px,transparent 3px 6px)}\n    .ail-plan__tband,.ail-plan__tvide{display:none}\n    .ail-plan__trail{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 1px 3px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}\n    .ail-plan__trail .vide{font-size:12.5px;line-height:1.5;padding:2px 0}\n  }\n  @media(prefers-reduced-motion:reduce){.ail-plan__tr{transition:none}}\n  \/* \u2500\u2500 \u00ab Prochaines dates \u00bb sous chaque fiche stage (audit UX, \u00e9tape 2, 18\/10\/2026) \u2500\u2500\n     Hors du panneau : prend la couleur du texte de la carte (fiches sombres du hub, claires des pages ville). *\/\n  .ail-next{margin:2px 0 14px;color:inherit;text-align:left}\n  .ail-next,.ail-next *{box-sizing:border-box}   \/* certaines pages ne fixent pas box-sizing : rendu identique partout *\/\n  .ail-next[hidden]{display:none!important}\n  .ail-next .ail-next__t{font-family:'Nunito Sans',system-ui,sans-serif;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin:0 0 7px}\n  .ail-next .ail-next__l{display:flex;flex-wrap:wrap;gap:6px}\n  .ail-next button.ail-next__d{\n    display:inline-flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;\n    width:auto!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:6px 10px!important;\n    border:1.5px solid currentColor!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;\n    color:inherit!important;font-family:'Nunito Sans',system-ui,sans-serif!important;font-size:13px!important;font-weight:800!important;\n    line-height:1.2!important;letter-spacing:0!important;text-transform:none!important;text-align:left!important;cursor:pointer;transition:transform .15s}\n  .ail-next button.ail-next__d:hover{transform:translateY(-1px)}\n  .ail-next button.ail-next__d:focus-visible{outline:2px solid currentColor!important;outline-offset:2px}\n  .ail-next button.ail-next__d.is-prev{border-style:dashed!important}\n  .ail-next .ail-next__d .j{white-space:nowrap;font-variant-numeric:tabular-nums}\n  .ail-next .ail-next__d.is-full .j{text-decoration:line-through}\n  .ail-next .ail-next__d small{display:block;font-size:11px;font-weight:700;white-space:normal}   \/* pleine opacit\u00e9 : m\u00eame contraste que le texte de la carte ; passe \u00e0 la ligne sur petit \u00e9cran *\/\n  .ail-next .ail-next__d.is-low small::before{content:\"\";display:inline-block;width:7px;height:7px;border-radius:50%;background:#EC672C;margin-right:5px;vertical-align:1px}\n  .ail-next a.ail-next__all{display:inline-block;margin-top:8px;font-family:'Nunito Sans',system-ui,sans-serif;font-size:12.5px;font-weight:800;color:inherit!important;text-decoration:underline!important;text-underline-offset:2px;border:0!important}\n  .ail-next p.ail-next__vide{margin:0;font-family:'Nunito Sans',system-ui,sans-serif;font-size:13px;line-height:1.5;color:inherit!important}\n  .ail-next p.ail-next__vide a{color:inherit!important;text-decoration:underline!important;font-weight:800}\n  \/* Bouton \u00ab Voir les dates \u00bb sur t\u00e9l\u00e9phone (fix\u00e9 en bas \u00e0 gauche, le bouton WhatsApp est \u00e0 droite) *\/\n  a.ail-plan-fab{display:none}\n  @media(max-width:760px){\n    a.ail-plan-fab{display:inline-flex!important;box-sizing:border-box!important;align-items:center;gap:8px;position:fixed;z-index:9990;\n      left:max(14px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));\n      max-width:calc(100% - 120px);min-height:44px;padding:12px 18px!important;border-radius:999px!important;border:0!important;\n      background:#EC672C!important;color:#F4EFE6!important;text-decoration:none!important;\n      font-family:'Krona One',sans-serif!important;font-size:11px!important;letter-spacing:.5px;line-height:1.2;\n      box-shadow:0 10px 26px rgba(16,24,32,.38);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .2s,transform .2s}\n    a.ail-plan-fab::after{content:\"\";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);flex:none}\n    a.ail-plan-fab.is-on{opacity:1;transform:none;pointer-events:auto}\n  }\n  @media(prefers-reduced-motion:reduce){a.ail-plan-fab{transition:none}}\n\n\n  @media(max-width:560px){\n    .ail-plan{padding:36px 16px}\n    .ail-plan__dates{font-size:15.5px}\n    .ail-plan__bottom{flex-direction:column;align-items:stretch}\n    .ail-plan__btn{justify-content:center;padding:12px}\n  }\n\n  \/* Garde-fou : emp\u00eache le CSS de la page h\u00f4te (.ail-guide \/ .ail-stages\u2026) d'\u00e9craser le texte du panneau\n     (ex. `.ail-guide__section p {color:fonc\u00e9}` rendait les <p> invisibles). Sp\u00e9cificit\u00e9 + !important. *\/\n  .ail-plan p.ail-plan__lede{color:var(--muted)!important;font-size:15px;line-height:1.55}\n  .ail-plan p.ail-plan__soon-sub{color:var(--plan-ink-soft)!important;font-size:14px;line-height:1.7}\n  .ail-plan p.ail-plan__foot{color:var(--muted)!important;font-size:12px;line-height:1.6}\n  .ail-plan .ail-plan__foot a{color:var(--or)!important}\n  .ail-plan .ail-plan__month{color:var(--plan-ink-soft)!important}\n  .ail-plan .ail-plan__lieu{color:var(--muted)!important}\n  .ail-plan .ail-plan__dur{color:var(--muted)!important}\n  .ail-plan .ail-plan__dates{color:var(--plan-text)!important}\n  .ail-plan .ail-plan__price{color:var(--or)!important}\n  \/* Titre H2 : la page hote (.ail-guide__section h2) ecrase couleur+police+taille -> on force le design du panneau. *\/\n  .ail-plan h2.ail-plan__h{color:var(--plan-text)!important;font-family:'Krona One',sans-serif!important;font-size:clamp(22px,3vw,32px)!important;line-height:1.25!important;letter-spacing:.3px!important}\n  .ail-plan h2.ail-plan__h i{color:var(--plan-ink-soft)!important;font-family:inherit!important}\n  .ail-plan .ail-plan__eyebrow{color:var(--or)!important;font-family:'Krona One',sans-serif!important}\n  \/* Le th\u00e8me (kit Elementor) impose \u00e0 TOUT <button> : fond orange, texte 16 px, marge int\u00e9rieure 15 px.\n     Sans ce bloc, les dates du calendrier devenaient de gros pav\u00e9s orange et les filtres des boutons pleins. *\/\n  .ail-plan button.ail-plan__tc,.ail-plan a.ail-plan__tc{\n    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;\n    width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:6px 2px!important;\n    border:1.5px solid var(--accent)!important;border-radius:7px!important;box-shadow:none!important;\n    background:rgba(244,239,230,.06)!important;background:color-mix(in srgb,var(--accent) 17%,transparent)!important;\n    color:var(--creme)!important;font-family:'Nunito Sans',system-ui,sans-serif!important;font-size:12px!important;font-weight:800!important;\n    line-height:1.15!important;letter-spacing:0!important;text-transform:none!important;text-decoration:none!important;text-align:center!important;\n    cursor:pointer;position:relative;transition:filter .15s,transform .15s}\n  .ail-plan button.ail-plan__tc:hover,.ail-plan a.ail-plan__tc:hover{filter:brightness(1.15);transform:translateY(-1px)}\n  .ail-plan button.ail-plan__tc:focus-visible,.ail-plan a.ail-plan__tc:focus-visible{outline:2px solid var(--creme)!important;outline-offset:2px}\n  .ail-plan button.ail-plan__tc.st-min{background:var(--accent)!important;color:var(--ail-dark,#101820)!important;padding-top:9px!important}\n  .ail-plan .ail-plan__tc.st-min::before{content:\"\";position:absolute;top:3px;left:50%;width:10px;height:3px;margin-left:-5px;border-radius:2px;background:var(--ail-dark,#101820);opacity:.5}\n  .ail-plan button.ail-plan__tc.st-prev{background:transparent!important;border-style:dashed!important;color:var(--muted)!important}\n  .ail-plan button.ail-plan__tc.st-full{border-color:var(--line-h)!important;color:var(--muted)!important;background:repeating-linear-gradient(135deg,rgba(244,239,230,.14) 0 3px,transparent 3px 7px)!important}\n  .ail-plan .ail-plan__tc-d{display:block;white-space:nowrap;font-variant-numeric:tabular-nums}\n  .ail-plan .ail-plan__tc.st-full .ail-plan__tc-d{text-decoration:line-through}\n  .ail-plan .ail-plan__tc-n{display:block;font-size:10px;color:var(--or)!important}\n  .ail-plan .ail-plan__tc.st-min .ail-plan__tc-n{color:var(--ail-dark,#101820)!important}\n  .ail-plan .ail-plan__tc-s{display:block;font-size:11.5px;font-weight:700;white-space:nowrap;opacity:.92}\n  .ail-plan button.ail-plan__tc.is-big,.ail-plan a.ail-plan__tc.is-big{flex:none!important;width:auto!important;min-width:132px!important;align-items:flex-start!important;text-align:left!important;padding:9px 12px!important;scroll-snap-align:start}\n  .ail-plan button.ail-plan__tc.is-big.st-min{padding-top:12px!important}\n  .ail-plan .ail-plan__tc.is-big.st-min::before{left:12px;margin-left:0}\n  .ail-plan .ail-plan__tc.is-big .ail-plan__tc-d{font-size:14px}\n  .ail-plan a.ail-plan__tc.is-band{border-style:dashed!important;border-color:var(--c-deco)!important;background:rgba(171,200,202,.07)!important}\n  .ail-plan img.ail-plan__tl-img{grid-column:1;grid-row:1 \/ span 4;width:52px!important;height:52px!important;max-width:none!important;aspect-ratio:1;object-fit:cover!important;border-radius:9px!important;margin:0!important;display:block;background:var(--plan-bg)}\n  .ail-plan .ail-plan__tl-n,.ail-plan .ail-plan__tl-m{color:var(--creme)!important}\n  .ail-plan .ail-plan__tl-p,.ail-plan .ail-plan__th,.ail-plan .ail-plan__tl--head,.ail-plan .ail-plan__tvide,.ail-plan .ail-plan__trail .vide,.ail-plan .ail-plan__tleg > span{color:var(--muted)!important}\n  .ail-plan .ail-plan__tl-c,.ail-plan .ail-plan__th small,.ail-plan .ail-plan__twin{color:var(--plan-ink-soft)!important}\n  .ail-plan .ail-plan__th.is-now{color:var(--or)!important}\n  .ail-plan .ail-plan__tleg .lg-low{color:var(--or)!important}\n  .ail-plan a.ail-plan__tband,.ail-plan a.ail-plan__tband:hover{text-decoration:none!important;color:var(--creme)!important}\n  .ail-plan a.ail-plan__tband b{font-size:13px;font-weight:800;color:var(--creme)!important}\n  .ail-plan a.ail-plan__tband span{font-size:12.5px;color:var(--muted)!important}\n  .ail-plan .ail-plan__tvide a,.ail-plan .ail-plan__trail .vide a{color:var(--or)!important;text-decoration:underline!important;font-weight:700}\n  .ail-plan .ail-plan__tcell .ini{color:var(--muted)!important}\n  .ail-plan .ail-plan__tcell.has .ini{color:var(--ail-dark,#101820)!important}\n  .ail-plan .ail-plan__tcell.has.is-prev .ini,.ail-plan .ail-plan__tcell.has.is-full .ini{color:var(--creme)!important}\n  @media(max-width:860px){.ail-plan .ail-plan__tcell .ail-plan__tc{display:none!important}}   \/* t\u00e9l\u00e9phone : les dates passent dans le rail *\/\n  .ail-plan button.ail-plan__chip{\n    font-family:'Krona One',sans-serif!important;font-size:10.5px!important;font-weight:400!important;letter-spacing:.5px!important;\n    text-transform:uppercase!important;line-height:1.2!important;padding:8px 13px!important;margin:0!important;height:auto!important;min-height:0!important;\n    border:1.5px solid var(--line)!important;border-radius:999px!important;background:rgba(255,255,255,.04)!important;color:var(--muted)!important;box-shadow:none!important}\n  .ail-plan button.ail-plan__chip:hover{color:var(--creme)!important;border-color:var(--or)!important;background:rgba(255,255,255,.06)!important}\n  .ail-plan button.ail-plan__chip.is-on{background:var(--or)!important;color:var(--creme)!important;border-color:var(--or)!important}\n  .ail-plan button.ail-plan__btn{\n    font-family:'Krona One',sans-serif!important;font-size:11px!important;font-weight:400!important;letter-spacing:.5px!important;text-transform:none!important;\n    line-height:1.2!important;padding:11px 18px!important;height:auto!important;min-height:0!important;border-radius:var(--rad)!important;box-shadow:none!important;\n    background:var(--or)!important;color:var(--creme)!important;border:1.5px solid var(--or)!important}\n  \/* Stage Dune du Pyla (07\/10\/2026) : tarif avec la navette sous le prix du stage seul, rappel du trajet\n     (d\u00e9part le premier jour au matin, retour le dernier jour au soir) et l\u00e9gende \u00e0 4 entr\u00e9es sur 2 colonnes. *\/\n  .ail-plan .ail-plan__opt{font-size:12.5px;line-height:1.45;color:var(--muted)!important;text-align:right;margin-top:3px}\n  .ail-plan .ail-plan__opt b{color:var(--creme)!important;font-weight:800;white-space:nowrap}\n  \/* 09\/10\/2026 : navette depuis Gr\u00e9oli\u00e8res mise en avant (encadr\u00e9 orange ; neutre quand le minibus est plein) *\/\n  .ail-plan .ail-plan__nav{margin-top:10px;padding:9px 11px;border-radius:var(--rad);border:1px solid rgba(236,103,44,.45);border-left:3px solid var(--or);background:rgba(236,103,44,.10)}\n  .ail-plan .ail-plan__nav.is-full{border-color:var(--line);border-left-color:var(--muted);background:transparent}\n  .ail-plan .ail-plan__nav-t{display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;flex-wrap:wrap;font-size:12.5px;font-weight:800;letter-spacing:.2px;color:var(--creme)!important;line-height:1.35}\n  .ail-plan .ail-plan__nav-t b{font-family:'Krona One',sans-serif;font-weight:400;font-size:14px;color:var(--or)!important;white-space:nowrap}\n  .ail-plan .ail-plan__nav-d{font-size:12px;line-height:1.5;color:var(--muted)!important;margin-top:4px}\n  @media(max-width:560px){.ail-plan .ail-plan__opt{text-align:left}}\n  @media(max-width:400px){.ail-plan .ail-plan__nav-t b{white-space:normal}}   \/* \u00ab 900 \u20ac stage + navette \u00bb d\u00e9bordait de la carte \u00e0 320 px *\/\n  \/* petits \u00e9crans : la partie color\u00e9e du titre peut passer \u00e0 la ligne (sinon \u00ab r\u00e9servez votre place \u00bb d\u00e9passe de 20 px \u00e0 320-360 px) *\/\n  @media(max-width:420px){.ail-plan .ail-plan__h i{white-space:normal}}\n  \/* Journ\u00e9e pilote : une journ\u00e9e \u00e0 la carte dans un stage Initiation ou Perfectionnement (Pierrot 17\/10\/2026, acc\u00e8s revu le 18\/10).\n     Cadre fr\u00e8re de la journ\u00e9e d\u00e9couverte ; liser\u00e9 vert \u2192 orange = il se greffe sur une session de l'un des deux.\n     Demande par la page contact, r\u00e9gl\u00e9e sur place ; le pilote prend une des 7 places du stage. *\/\n  .ail-plan__pilote{\n    position:relative;display:flex;align-items:center;gap:15px;flex-wrap:wrap;\n    background:linear-gradient(135deg,rgba(236,103,44,.07),rgba(255,255,255,.02));\n    border:1px solid var(--line-h);border-radius:var(--rad);padding:16px 18px 16px 22px;margin:-10px 0 22px;overflow:hidden;\n  }\n  .ail-plan__pilote::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--c-init),var(--c-perf))}\n  .ail-plan__pilote .pl-ico{color:var(--creme);display:flex;align-items:center;flex-shrink:0;opacity:.9}\n  .ail-plan__pilote .pl-txt{flex:1;min-width:220px}\n  .ail-plan .ail-plan__pilote .pl-txt b{font-family:'Krona One',sans-serif;font-size:13.5px;font-weight:400;color:var(--creme)!important;letter-spacing:.2px;display:block}\n  .ail-plan .ail-plan__pilote .pl-txt span{display:block;color:var(--muted)!important;font-size:13px;margin-top:5px;line-height:1.55}\n  .ail-plan .ail-plan__pilote .pl-txt strong{color:var(--creme)!important;font-weight:800}\n  .ail-plan__pilote .pl-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}\n  .ail-plan .ail-plan__pilote .pl-meta span{display:inline;margin:0;font-size:12px;font-weight:700;color:var(--plan-ink-soft)!important}\n  .ail-plan__pilote .pl-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}\n  .ail-plan__pilote .pl-btns{display:flex;flex-direction:column;align-items:stretch;gap:8px}\n  .ail-plan__pilote .pl-btns .ail-plan__btn{justify-content:center}\n  .ail-plan .ail-plan__pilote .pl-prix{font-family:'Krona One',sans-serif;font-size:18px;color:var(--or)!important;white-space:nowrap;line-height:1.1;text-align:right}\n  .ail-plan .ail-plan__pilote .pl-prix small{display:block;font-family:'Nunito Sans',sans-serif;font-size:11.5px;font-weight:700;color:var(--muted)!important;margin-top:3px}\n  .ail-plan button.ail-plan__btn.is-ghost{background:transparent!important;color:var(--creme)!important;border:1.5px solid var(--line-h)!important}\n  .ail-plan button.ail-plan__btn.is-ghost:hover{border-color:var(--or)!important;color:var(--or)!important}\n  \/* filtre \u00ab journ\u00e9e pilote \u00bb actif : rappel au-dessus des dates (le bouton des cartes inscrit au stage complet) *\/\n  .ail-plan .ail-plan__pnote{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;\n    margin:0 0 18px;padding:12px 14px;border-radius:var(--rad);border:1px solid var(--line-h);border-left:3px solid var(--or);background:rgba(236,103,44,.08)}\n  .ail-plan .ail-plan__pnote span{flex:1;min-width:220px;font-size:13px;line-height:1.55;color:var(--creme)!important}\n  @media(max-width:560px){\n    .ail-plan__pilote{padding:14px 14px 14px 18px}\n    .ail-plan__pilote .pl-ico{display:none}\n    .ail-plan__pilote .pl-txt{min-width:0;flex-basis:100%}\n    .ail-plan .ail-plan__pilote .pl-btns .ail-plan__btn,.ail-plan .ail-plan__pnote .ail-plan__btn{white-space:normal;text-align:center;justify-content:center}\n    .ail-plan .ail-plan__pnote span{min-width:0;flex-basis:100%}\n    .ail-plan .ail-plan__pnote .ail-plan__btn{flex:1 1 100%}\n    .ail-plan__pilote .pl-side{width:100%;align-items:stretch}\n    .ail-plan .ail-plan__pilote .pl-prix{text-align:left}\n    .ail-plan__pilote .pl-btns{flex-direction:row;flex-wrap:wrap}\n    .ail-plan__pilote .pl-btns .ail-plan__btn{flex:1 1 140px}\n  }\n  <\/style>\n\n  <div class=\"ail-plan__inner\">\n    <div class=\"ail-plan__head\">\n      <div class=\"ail-plan__eyebrow\">DATES &amp; R\u00c9SERVATION<\/div>\n      <h2 class=\"ail-plan__h\" id=\"ailp-h\">Prochaines sessions&nbsp;: <i>r\u00e9servez votre place<\/i><\/h2>\n      <p class=\"ail-plan__lede\">Choisissez votre session sur l'ann\u00e9e et r\u00e9servez en ligne \u2014 petits groupes, 7 personnes maximum (10 pour la Dune du Pyla).<\/p>\n    <\/div>\n\n    <div class=\"ail-plan__filters\" id=\"ailp-filters\">\n      <button class=\"ail-plan__chip is-on\" data-filter=\"all\">Tous<\/button>\n      <button class=\"ail-plan__chip\" data-filter=\"initiation\"><span class=\"dot\" style=\"background:var(--c-init)\"><\/span>Initiation<\/button>\n      <button class=\"ail-plan__chip\" data-filter=\"perfectionnement\"><span class=\"dot\" style=\"background:var(--c-perf)\"><\/span>Perfectionnement<\/button>\n      <button class=\"ail-plan__chip\" data-filter=\"sud\"><span class=\"dot\" style=\"background:var(--c-sud)\"><\/span>Sites du Sud<\/button>\n      <button class=\"ail-plan__chip\" data-filter=\"dune\"><span class=\"dot\" style=\"background:var(--c-dune)\"><\/span>Dune du Pyla<\/button>\n    <\/div>\n\n    <!-- Journ\u00e9e d\u00e9couverte = \u00e0 la demande (carte permanente) -->\n    <div class=\"ail-plan__ondemand\">\n      <div class=\"od-ico\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 64 40\" width=\"44\" height=\"28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n          <path d=\"M3 15 Q32 2 61 15\"\/>\n          <path d=\"M6 15 L30 31 M21.5 14 L30 31 M42.5 14 L30 31 M58 15 L30 31\"\/>\n          <circle cx=\"30\" cy=\"33\" r=\"2.4\" fill=\"currentColor\" stroke=\"none\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"od-txt\">\n        <b>Journ\u00e9e d\u00e9couverte \u2014 sur demande<\/b>\n        <span>Pas de date fixe&nbsp;: vous choisissez, on s'adapte. Id\u00e9al pour go\u00fbter au parapente avant un stage.<\/span>\n      <\/div>\n      <a class=\"ail-plan__btn\" id=\"ailp-odbtn\" href=\"https:\/\/www.ailements.fr\/inscription-stage\/?type=decouverte\">Demander une date<\/a>\n    <\/div>\n\n    <!-- Journ\u00e9e pilote = une ou plusieurs journ\u00e9es \u00e0 la carte dans un stage Initiation ou Perfectionnement (17\/10\/2026).\n         R\u00e8gles d'acc\u00e8s revues par Pierrot le 18\/10\/2026 : au moins un stage Initiation, dernier vol ou stage il y a moins d'un an,\n         pas de brevet exig\u00e9 ; ce n'est pas un stage (pas de progression sur la semaine), elle ne le remplace en aucun cas.\n         R\u00e9servation en ligne (formulaire ?type=pilote, serveur G24), 180 \u20ac par jour r\u00e9gl\u00e9s sur place. -->\n    <div class=\"ail-plan__pilote\" id=\"ailp-pilote\">\n      <div class=\"pl-ico\" aria-hidden=\"true\">\n        <svg viewBox=\"0 0 32 40\" width=\"24\" height=\"30\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n          <path d=\"M11 9 L11 2\"\/><rect x=\"5\" y=\"9\" width=\"18\" height=\"29\" rx=\"3\"\/>\n          <path d=\"M9.5 15h9M9.5 19h9M9.5 23h9\"\/><circle cx=\"14\" cy=\"31\" r=\"2.2\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"pl-txt\">\n        <b>D\u00e9j\u00e0 form\u00e9&nbsp;? Une journ\u00e9e \u00e0 la carte<\/b>\n        <span>Vous avez fait au moins un stage Initiation et vol\u00e9 il y a moins d'un an&nbsp;: rejoignez pour une journ\u00e9e un stage Initiation ou Perfectionnement, selon ce que vous cherchez. <strong>Ce n'est pas un stage<\/strong>&nbsp;: pas de progression sur la semaine, mais une journ\u00e9e avec l'expertise de nos moniteurs et la navette, pour d\u00e9couvrir le site de Gr\u00e9oli\u00e8res sur un premier vol guid\u00e9 et corriger quelques d\u00e9fauts. Elle ne remplace en aucun cas un stage. Contr\u00f4le de votre mat\u00e9riel le matin, guidage au d\u00e9collage et \u00e0 l'atterrissage, d\u00e9briefing de vos vols.<\/span>\n        <div class=\"pl-meta\">\n          <span>Stage Initiation d\u00e9j\u00e0 fait<\/span><span>Dernier vol il y a moins d'un an<\/span><span>Votre mat\u00e9riel et votre licence FFVL<\/span><span>Dans la limite des places du stage<\/span><span>R\u00e9gl\u00e9e sur place<\/span>\n        <\/div>\n      <\/div>\n      <div class=\"pl-side\">\n        <div class=\"pl-prix\">180&nbsp;\u20ac<small>la journ\u00e9e<\/small><\/div>\n        <div class=\"pl-btns\">\n          <button type=\"button\" class=\"ail-plan__btn is-ghost\" id=\"ailp-pilote-btn\" aria-controls=\"ailp-list\">Voir les dates<\/button>\n          <a class=\"ail-plan__btn\" href=\"https:\/\/www.ailements.fr\/inscription-stage\/?type=pilote\">R\u00e9server ma journ\u00e9e<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div id=\"ailp-list\"><div class=\"ail-plan__empty\">Chargement du planning\u2026<\/div><\/div>\n\n    <div class=\"ail-plan__rules\">\n      <b>Comment se passe la r\u00e9servation<\/b>\n      <ul>\n        <li>Une session part \u00e0 partir de <i>6 inscrits<\/i>. On confirme ou on annule <i>4 jours avant<\/i> le premier jour \u2014 c'est la nature qui d\u00e9cide. <i>La journ\u00e9e d\u00e9couverte n'a pas de minimum.<\/i><\/li>\n        <li>\u00c0 l'inscription, un <i>acompte de 25&nbsp;%<\/i> par virement. Le <i>solde n'est encaiss\u00e9 qu'une fois la session confirm\u00e9e<\/i>, et se r\u00e8gle sur place le premier jour.<\/li>\n        <li>Si la session ne r\u00e9unit pas 6 inscrits, on vous <i>rembourse int\u00e9gralement<\/i> ou on <i>reporte votre place<\/i> sur une autre date \u2014 \u00e0 vous de choisir.<\/li>\n        <li>La <i>licence FFVL<\/i> est obligatoire avant le premier jour et n'est pas comprise dans le prix&nbsp;: vous la prenez directement aupr\u00e8s de la f\u00e9d\u00e9ration, et nous v\u00e9rifions votre num\u00e9ro avant le stage.<\/li>\n        <li>Les dates marqu\u00e9es <i>pr\u00e9visionnelles<\/i> et les sessions compl\u00e8tes ouvrent une inscription en <i>liste d'attente<\/i>&nbsp;: vous r\u00e9servez votre place sans rien payer. L'acompte n'est demand\u00e9 qu'une fois la session confirm\u00e9e.<\/li>\n      <\/ul>\n    <\/div>\n\n    <p class=\"ail-plan__foot\">\n      De 12 \u00e0 55 ans (au-del\u00e0, on valide ensemble par t\u00e9l\u00e9phone) \u00b7 30 \u00e0 90 kg \u00b7 bonne forme physique requise \u00b7 certificat m\u00e9dical de non contre-indication \u00e0 la pratique du parapente et d'une activit\u00e9 physique soutenue de moins de 3 mois.\n    <\/p>\n  <\/div>\n\n  <script>\n  (function(){\n    \"use strict\";\n\n    \/* ====== CONFIG (\u00e0 remplir pour brancher le backend) ====== *\/\n    var CONFIG = {\n      API_URL: \"https:\/\/script.google.com\/macros\/s\/AKfycbwswWsrBGNGKY-zHvRyqyrJNznPv-aaYD8x13gbaa7CNHJ8pzyQ_n8xFek5npMuD-NnbA\/exec\",  \/\/ backend (m\u00eame URL que l'app biplace)\n      SESSIONS_URL: \"https:\/\/www.ailements.fr\/inscription-stage\/sessions.php\",  \/\/ copie des sessions sur o2switch : quelques ms (Google direct : 4 \u00e0 13 s)\n      RESA_URL: \"https:\/\/www.ailements.fr\/inscription-stage\/\",\n      ONDEMAND_URL: \"https:\/\/www.ailements.fr\/inscription-stage\/?type=decouverte\"\n    };\n\n    \/* ====== DONN\u00c9ES D'EXEMPLE (remplac\u00e9es par le backend ensuite) ====== *\/\n    var STAGES_DEMO = [\n      {id:\"ST-2026-06-15\", type:\"initiation\",       titre:\"Stage Initiation\",            dateDebut:\"2026-06-15\", dateFin:\"2026-06-19\", lieu:\"Gr\u00e9oli\u00e8res (06)\",        prix:700, placesMax:7, inscrits:5, statut:\"Ouvert\"},\n      {id:\"ST-2026-06-22\", type:\"perfectionnement\", titre:\"Stage Perfectionnement\",      dateDebut:\"2026-06-22\", dateFin:\"2026-06-26\", lieu:\"Gourdon (06)\",           prix:750, placesMax:7, inscrits:3, statut:\"Ouvert\"},\n      {id:\"ST-2026-07-06\", type:\"initiation\",       titre:\"Stage Initiation\",            dateDebut:\"2026-07-06\", dateFin:\"2026-07-10\", lieu:\"Gr\u00e9oli\u00e8res (06)\",        prix:700, placesMax:7, inscrits:7, statut:\"Ouvert\"},\n      {id:\"ST-2026-09-07\", type:\"sud\",              titre:\"Stage D\u00e9couverte du Sud\",     dateDebut:\"2026-09-07\", dateFin:\"2026-09-11\", lieu:\"Gr\u00e9oli\u00e8res \u00b7 Gourdon \u00b7 Roquebrune\",   prix:800, placesMax:7, inscrits:2, statut:\"Ouvert\"},\n      {id:\"ST-2026-09-21\", type:\"perfectionnement\", titre:\"Stage Perfectionnement\",      dateDebut:\"2026-09-21\", dateFin:\"2026-09-25\", lieu:\"Gourdon (06)\",           prix:750, placesMax:7, inscrits:6, statut:\"Ouvert\"},\n      {id:\"ST-2026-10-12\", type:\"initiation\",       titre:\"Stage Initiation\",            dateDebut:\"2026-10-12\", dateFin:\"2026-10-16\", lieu:\"Gr\u00e9oli\u00e8res (06)\",        prix:700, placesMax:7, inscrits:0, statut:\"Ouvert\"},\n      {id:\"ST-2027-03-21\", type:\"dune\",             titre:\"Stage Dune du Pyla\",          dateDebut:\"2027-03-21\", dateFin:\"2027-03-28\", lieu:\"Pyla-sur-Mer (33)\",      prix:650, placesMax:10, inscrits:3, statut:\"Ouvert\"}\n    ];\n\n    var MOIS=[\"janvier\",\"f\u00e9vrier\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"ao\u00fbt\",\"septembre\",\"octobre\",\"novembre\",\"d\u00e9cembre\"];\n    var MOIS_AB=[\"janv.\",\"f\u00e9vr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"ao\u00fbt\",\"sept.\",\"oct.\",\"nov.\",\"d\u00e9c.\"];\n    var TYPE_COLOR={initiation:\"var(--c-init)\",perfectionnement:\"var(--c-perf)\",sud:\"var(--c-sud)\",decouverte:\"var(--c-deco)\",dune:\"var(--c-dune)\"};\n    var TYPE_LABEL={initiation:\"Initiation\",perfectionnement:\"Perfectionnement\",sud:\"Sites du Sud\",decouverte:\"Journ\u00e9e d\u00e9couverte\",dune:\"Dune du Pyla\"};\n    var JOURS=[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"];\n    \/* Stage Dune du Pyla : le prix de la session est celui du stage seul ; la navette aller-retour depuis\n       Gr\u00e9oli\u00e8res (minibus, 6 places) est une option en suppl\u00e9ment. Les dates de la session vont du d\u00e9part\n       au retour (dimanche \u2192 dimanche) : les deux jours de route ne comptent pas dans les jours sur place. *\/\n    var NAVETTE={dune:{supplement:250,places:6}};\n    \/* Journ\u00e9e pilote \u00e0 la carte (17\/10\/2026) : 180 \u20ac par jour r\u00e9gl\u00e9s sur place, sur les sessions Initiation et\n       Perfectionnement. Le pilote prend une place LE JOUR CHOISI : places d'un jour = places max \u2212 stagiaires \u2212\n       journ\u00e9es pilote de ce jour (inscritsStage et journees publi\u00e9s par le serveur G24). *\/\n    var JOURNEE={prix:180,types:{initiation:1,perfectionnement:1}};\n    function isoJ(d){return d.getFullYear()+\"-\"+(\"0\"+(d.getMonth()+1)).slice(-2)+\"-\"+(\"0\"+d.getDate()).slice(-2);}\n    function joursLibres(s){\n      var d=pd(s.dateDebut),f=pd(s.dateFin)||d,auj=isoJ(new Date()),tot=0,lib=0;if(!d)return{tot:0,lib:0};\n      var st=s.inscritsStage!=null?(Number(s.inscritsStage)||0):(Number(s.inscrits)||0);\n      for(var x=new Date(d.getTime());x<=f&&tot<31;x.setDate(x.getDate()+1)){var j=isoJ(x);if(j<auj)continue;tot++;\n        if(placesMax(s)-st-((s.journees&&Number(s.journees[j]))||0)>0)lib++;}\n      return{tot:tot,lib:lib};\n    }\n    var JOURS_ROUTE={dune:2};\n\n    \/* ====== M\u00c9MOIRE DU NAVIGATEUR ======\n       - la derni\u00e8re liste de sessions (24 h) : le planning s'affiche tout de suite \u00e0 la visite suivante ;\n       - la session cliqu\u00e9e : le formulaire l'ouvre directement, sans rien recharger.\n       Jamais bloquant : navigation priv\u00e9e ou stockage refus\u00e9 \u2192 on fait simplement sans. *\/\n    var CACHE_KEY=\"ail-stages-cache-v1\",HANDOFF_KEY=\"ail-stage-choisi\",CACHE_MAX_MS=24*3600*1000;\n    function memoriser(cle,val,zone){try{window[zone||\"localStorage\"].setItem(cle,JSON.stringify(val));}catch(e){}}\n    function relire(cle,zone){try{var v=window[zone||\"localStorage\"].getItem(cle);return v?JSON.parse(v):null;}catch(e){return null;}}\n    var dejaPrecharge={};\n    function precharger(href){   \/\/ le formulaire se t\u00e9l\u00e9charge pendant que la souris ou le doigt arrive sur le bouton\n      if(dejaPrecharge[href])return;dejaPrecharge[href]=1;\n      try{var l=document.createElement(\"link\");l.rel=\"prefetch\";l.href=href;document.head.appendChild(l);}catch(e){}\n    }\n\n    function pd(s){var p=String(s||\"\").split(\"-\");if(p.length<3)return null;var d=new Date(+p[0],+p[1]-1,+p[2]);return isNaN(d.getTime())?null:d;}\n    \/* 0 place = session fermee : ne jamais ecrire Number(x)||7, qui transforme 0 en 7 *\/\n    function placesMax(s){var v=s&&s.placesMax;return (v===\"\"||v==null||isNaN(Number(v)))?7:Number(v);}\n    function nbJours(a,b){var da=pd(a),db=pd(b);if(!da||!db)return 1;return Math.max(1,Math.round((db-da)\/86400000)+1);}\n    \/* dur\u00e9e affich\u00e9e : \u00ab 5 jours \u00bb ; pour un stage avec trajet (Dune du Pyla), les jours sur place seulement *\/\n    function dureeTxt(s){var n=nbJours(s.dateDebut,s.dateFin),r=JOURS_ROUTE[s.type]||0;if(r&&n>r)return (n-r)+\" jours sur place\";return n+\" jour\"+(n>1?\"s\":\"\");}\n    function fmtRange(a,b){\n      var da=pd(a),db=pd(b);if(!da)return\"\";if(!db)db=da;var y=db.getFullYear();\n      if(da.getTime()===db.getTime())return da.getDate()+\" \"+MOIS[da.getMonth()]+\" \"+y;\n      if(da.getFullYear()!==y)return da.getDate()+\" \"+MOIS_AB[da.getMonth()]+\" \"+da.getFullYear()+\" \u2013 \"+db.getDate()+\" \"+MOIS_AB[db.getMonth()]+\" \"+y;\n      if(da.getMonth()===db.getMonth())return da.getDate()+\" \u2013 \"+db.getDate()+\" \"+MOIS[db.getMonth()]+\" \"+y;\n      return da.getDate()+\" \"+MOIS_AB[da.getMonth()]+\" \u2013 \"+db.getDate()+\" \"+MOIS_AB[db.getMonth()]+\" \"+y;\n    }\n\n    \/* construction DOM s\u00fbre (valeurs dynamiques = textContent \/ attributs) *\/\n    function el(tag,opts,kids){\n      var n=document.createElement(tag);\n      if(opts)Object.keys(opts).forEach(function(k){\n        if(k===\"class\")n.className=opts[k];\n        else if(k===\"text\")n.textContent=opts[k];\n        else n.setAttribute(k,opts[k]);\n      });\n      if(kids)(Array.isArray(kids)?kids:[kids]).forEach(function(c){\n        if(c==null)return;\n        n.appendChild(typeof c===\"object\"?c:document.createTextNode(String(c)));\n      });\n      return n;\n    }\n\n    var root=document.querySelector(\".ail-plan\");\n    var allStages=[], currentFilter=\"all\";\n\n    \/* Tant que les sessions ne sont pas confirmees (novembre\/decembre), les dates sont\n       previsionnelles : la carte ouvre une inscription en LISTE D'ATTENTE, sans acompte.\n       Vaut aussi pour une session complete : on ne laisse jamais un cul-de-sac. *\/\n    var RE_LISTE=\/liste|previs|pr\u00e9vis|provis\/i;\n    function estListe(s,restant){\n      if(RE_LISTE.test(String(s.statut||\"\"))) return true;\n      return restant<=0;\n    }\n\n    \/* Disponibilit\u00e9 affich\u00e9e (audit UX 18\/10\/2026, valid\u00e9 par Pierrot) :\n       - le nombre de places n'appara\u00eet qu'\u00e0 3 places ou moins (\u00ab Plus que 2 places \u00bb) ;\n       - d\u00e8s 6 stagiaires inscrits (minimum de d\u00e9part, journ\u00e9es pilote non compt\u00e9es) : \u00ab Minimum de 6 inscrits atteint \u00bb ;\n       - sinon \u00ab Places disponibles \u00bb, jamais \u00ab 7 places restantes \u00bb sur une session encore vide.\n       Le statut \u00ab Confirm\u00e9 \u00bb de l'appli veut dire \u00ab date confirm\u00e9e \u00bb, pas \u00ab minimum atteint \u00bb : on compte les inscrits. *\/\n    var SEUIL_DEPART=6;\n    \/* Le minimum de d\u00e9part ne compte que les STAGIAIRES : une journ\u00e9e pilote prend une place ce jour-l\u00e0, mais ne fait pas\n       partir la session (Pierrot 18\/10\/2026). Le serveur G24 publie inscritsStage ; \u00e0 d\u00e9faut (ancien serveur), inscrits. *\/\n    function stagiaires(s){ return (s&&s.inscritsStage!=null&&s.inscritsStage!==\"\") ? (Number(s.inscritsStage)||0) : (Number(s&&s.inscrits)||0); }\n    function dispo(s){\n      var max=placesMax(s),ins=Number(s.inscrits)||0,restant=Math.max(0,max-ins),mini=stagiaires(s)>=SEUIL_DEPART;\n      if(restant<=0)return {cls:\"full\",txt:\"Complet \u2014 liste d'attente\",court:\"complet, liste d'attente\",restant:0,max:max};\n      if(restant<=3){\n        var t=restant===1?\"Plus qu'une place\":\"Plus que \"+restant+\" places\";\n        return {cls:\"low\",txt:t+(mini?\" \\u00b7 minimum atteint\":\"\"),court:t.toLowerCase(),restant:restant,max:max};\n      }\n      if(mini)return {cls:\"min\",txt:\"Minimum de \"+SEUIL_DEPART+\" inscrits atteint\",court:\"minimum atteint\",restant:restant,max:max};\n      return {cls:\"ok\",txt:\"Places disponibles\",court:\"places disponibles\",restant:restant,max:max};\n    }\n    function spotsNode(s){\n      var d=dispo(s),kids=[];\n      if(d.restant<=3){                      \/\/ la jauge ne sert que quand elle dit quelque chose : 3 places ou moins\n        var pips=el(\"span\",{class:\"ail-plan__pips\",\"aria-hidden\":\"true\"});\n        for(var i=0;i<d.max;i++)pips.appendChild(el(\"span\",{class:\"ail-plan__pip\"+(i<d.restant?\" on\":\"\")}));\n        kids.push(pips);\n      }\n      kids.push(d.txt);\n      return el(\"div\",{class:\"ail-plan__spots \"+d.cls},kids);\n    }\n\n    function cardNode(s){\n      var max=placesMax(s);\n      var restant=Math.max(0,max-(Number(s.inscrits)||0));\n      var full=restant<=0;\n      var color=TYPE_COLOR[s.type]||\"var(--bleu)\";\n      var href=CONFIG.RESA_URL+(CONFIG.RESA_URL.indexOf(\"?\")>-1?\"&\":\"?\")+\"stage=\"+encodeURIComponent(s.id)+\"&type=\"+encodeURIComponent(s.type||\"\");\n      \/* filtre \u00ab journ\u00e9e pilote \u00bb : la carte r\u00e9serve une ou plusieurs journ\u00e9es, au prix du jour *\/\n      var pil=currentFilter===\"pilote\"&&!!JOURNEE.types[s.type],jl=pil?joursLibres(s):null;\n      if(pil){href=CONFIG.RESA_URL+(CONFIG.RESA_URL.indexOf(\"?\")>-1?\"&\":\"?\")+\"stage=\"+encodeURIComponent(s.id)+\"&formule=journee\";full=jl.lib<=0;}\n\n      var card=el(\"article\",{class:\"ail-plan__card\"+(full?\" is-full\":\"\"),style:\"--accent:\"+color,\"data-card-sid\":String(s.id||\"\")});\n      card.appendChild(el(\"div\",{class:\"ail-plan__top\"},[\n        el(\"span\",{class:\"ail-plan__type\",text:TYPE_LABEL[s.type]||String(s.type||\"\")}),\n        el(\"span\",{class:\"ail-plan__dur\",text:dureeTxt(s)})\n      ]));\n      card.appendChild(el(\"div\",{class:\"ail-plan__dates\",text:fmtRange(s.dateDebut,s.dateFin)}));\n      card.appendChild(el(\"div\",{class:\"ail-plan__meta\"},[\n        el(\"span\",{class:\"ail-plan__lieu\",text:String(s.lieu||\"\")}),\n        el(\"span\",{class:\"ail-plan__price\",text:pil?(Number(s.journeePrix)||JOURNEE.prix)+\"\\u00a0\u20ac \/ jour\":(Number(s.prix)?Number(s.prix)+\" \u20ac\":\"\")})\n      ]));\n      \/* Navette (Dune du Pyla, 09\/10\/2026) : le prix affich\u00e9 reste celui du stage seul ; la navette depuis\n         Gr\u00e9oli\u00e8res est MISE EN AVANT dans un encadr\u00e9 orange (prix stage + navette, places du minibus, trajet),\n         sous r\u00e9serve de places. Places publi\u00e9es par le serveur (navettePlaces \/ navetteInscrits \/\n         navetteSupplement), \u00e0 d\u00e9faut celles de NAVETTE. Minibus plein : encadr\u00e9 neutre \u00ab navette compl\u00e8te \u00bb. *\/\n      var nav=NAVETTE[s.type];\n      if(nav&&Number(s.prix)){\n        var navPl=Number(s.navettePlaces)>0?Number(s.navettePlaces):nav.places;\n        var navLib=Math.max(0,navPl-(Number(s.navetteInscrits)||0));\n        var navSup=Number(s.navetteSupplement)>0?Number(s.navetteSupplement):nav.supplement;\n        var dd0=pd(s.dateDebut),df0=pd(s.dateFin);\n        var trajet=(dd0&&df0)?\" D\u00e9part de l'\u00e9cole le \"+JOURS[dd0.getDay()]+\" \"+dd0.getDate()+\" au matin, retour le \"+JOURS[df0.getDay()]+\" \"+df0.getDate()+\" au soir.\":\"\";\n        card.appendChild(el(\"div\",{class:\"ail-plan__opt\",text:\"stage seul\"}));\n        card.appendChild(el(\"div\",{class:\"ail-plan__nav\"+(navLib>0?\"\":\" is-full\")},navLib>0\n          ? [el(\"div\",{class:\"ail-plan__nav-t\"},[el(\"span\",{text:\"Navette depuis Gr\u00e9oli\u00e8res\"}),el(\"b\",{text:(Number(s.prix)+navSup)+\"\\u00a0\u20ac stage + navette\"})]),\n             el(\"div\",{class:\"ail-plan__nav-d\",text:(navLib<navPl?navLib+\" place\"+(navLib>1?\"s\":\"\")+\" libre\"+(navLib>1?\"s\":\"\")+\" sur \"+navPl:navPl+\" places\")+\" dans le minibus, sous r\u00e9serve de disponibilit\u00e9.\"+trajet})]\n          : [el(\"div\",{class:\"ail-plan__nav-t\"},[el(\"span\",{text:\"Navette compl\u00e8te\"})]),\n             el(\"div\",{class:\"ail-plan__nav-d\",text:\"Le minibus est plein\\u00a0: venez par vos propres moyens (stage seul).\"})]));\n      }\n      var liste=pil?(RE_LISTE.test(String(s.statut||\"\"))||jl.lib<=0):estListe(s,restant);   \/* journ\u00e9es toutes compl\u00e8tes : liste d'attente *\/\n      if(liste) card.classList.add(\"is-liste\");\n      if(liste && !full) card.appendChild(el(\"div\",{class:\"ail-plan__flag\",text:\"Date pr\u00e9visionnelle \u00b7 inscription en liste d'attente\"}));\n      \/* le clic emporte la session : le formulaire s'ouvre directement sur les conditions de CE stage *\/\n      var btn=el(\"a\",{class:\"ail-plan__btn\"+(liste?\" is-liste\":\"\"),href:href,text:liste?\"Liste d'attente\":(pil?\"R\u00e9server une journ\u00e9e\":\"R\u00e9server\")});\n      btn.addEventListener(\"click\",function(){memoriser(HANDOFF_KEY,{t:Date.now(),s:s},\"sessionStorage\");});\n      btn.addEventListener(\"pointerenter\",function(){precharger(href);});\n      btn.addEventListener(\"touchstart\",function(){precharger(href);},{passive:true});\n      var places=pil\n        ? el(\"span\",{class:\"ail-plan__spots \"+(jl.lib>0?\"ok\":\"full\"),text:jl.lib>0?\"De la place sur \"+jl.lib+\" jour\"+(jl.lib>1?\"s\":\"\")+\" sur \"+jl.tot:\"Complet \u00e0 la journ\u00e9e\"})\n        : spotsNode(s);\n      card.appendChild(el(\"div\",{class:\"ail-plan__bottom\"},[places,btn]));\n      return card;\n    }\n\n    \/\/ \u2500\u2500 TABLEAU DE SAISON (audit UX, \u00e9tape 3, valid\u00e9 par Pierrot le 18\/10\/2026) \u2500\u2500\n    \/\/ Remplace la grille \u00ab l'ann\u00e9e en un coup d'\u0153il \u00bb. Une ligne par stage dans l'ordre de la progression :\n    \/\/ la r\u00e8gle p\u00e9dagogique du 30\/09 est gard\u00e9e, chaque ligne porte son rep\u00e8re (\u00ab on d\u00e9marre \u00bb,\n    \/\/ \u00ab l'autonomie se construit sur plusieurs stages \u00bb, \u00ab pilotes autonomes \u00bb). 12 mois glissants \u00e0 partir\n    \/\/ du mois en cours, une pastille par session. Toutes les sessions restent visibles quel que soit le\n    \/\/ filtre : le filtre att\u00e9nue seulement les autres lignes. Toucher une date ouvre sa carte dans la liste\n    \/\/ dessous (r\u00e9servation, liste d'attente, navette : rien ne change). Prix et dur\u00e9es = invariants du\n    \/\/ catalogue 2027 (les m\u00eames que sur les fiches stage), jamais une date.\n    var IMG_STAGE=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/\";   \/\/ miniatures 150 px des photos des fiches stage\n    var LIGNES=[\n      {type:\"decouverte\",img:\"2025\/04\/P1010008-150x150.jpg\",meta:\"1 jour \u00b7 260\u00a0\u20ac\",pre:\"go\u00fbter au parapente, sans pr\u00e9requis\",band:true},\n      {type:\"initiation\",img:\"2025\/04\/enseignement-150x150.jpg\",meta:\"5 jours \u00b7 700\u00a0\u20ac\",pre:\"on d\u00e9marre\"},\n      {type:\"perfectionnement\",img:\"2025\/04\/parapente-page-acceuil-150x150.jpg\",meta:\"3 j \u00b7 450\u00a0\u20ac | 5 j \u00b7 750\u00a0\u20ac\",pre:\"l'autonomie se construit sur plusieurs stages\"},\n      {type:\"sud\",img:\"2025\/12\/IMG_2130-150x150.jpg\",meta:\"5 jours \u00b7 800\u00a0\u20ac\",pre:\"pilotes autonomes\"},\n      \/* la Dune du Pyla n'est pas une \u00e9tape de la progression : sa ligne n'appara\u00eet que si une session est programm\u00e9e *\/\n      {type:\"dune\",img:\"2026\/10\/parapente-biplace-greolieres-en-vol-1-150x150.webp\",meta:\"1 semaine \u00b7 d\u00e8s 650\u00a0\u20ac\",pre:\"apr\u00e8s l'initiation, avec la Waggas School\",siSessions:true}\n    ];\n    \/* toucher une date : on revient sur \u00ab Tous \u00bb, on fait d\u00e9filer jusqu'\u00e0 la carte de la session et on la met en \u00e9vidence *\/\n    function allerA(s){\n      if(currentFilter!==\"all\"){\n        currentFilter=\"all\";\n        document.querySelectorAll(\".ail-plan__chip\").forEach(function(c){c.classList.toggle(\"is-on\",c.getAttribute(\"data-filter\")===\"all\");});\n        render();\n      }\n      requestAnimationFrame(function(){\n        var t=document.querySelector('[data-card-sid=\"'+String(s.id||\"\").replace(\/\"\/g,'')+'\"]');\n        if(t){t.scrollIntoView({behavior:\"smooth\",block:\"center\"});t.classList.add(\"is-flash\");setTimeout(function(){t.classList.remove(\"is-flash\");},1600);}\n      });\n    }\n    \/* statut affich\u00e9 = forme de la pastille. Priorit\u00e9 : complet > date pr\u00e9visionnelle > minimum atteint > places disponibles ;\n       \u00ab N pl. \u00bb en plus \u00e0 3 places ou moins (sauf date pr\u00e9visionnelle : les places n'y comptent pas encore) *\/\n    function etatSession(s){\n      var d=dispo(s),prev=RE_LISTE.test(String(s.statut||\"\")),mini=stagiaires(s)>=SEUIL_DEPART;\n      var st=d.restant<=0?\"full\":(prev?\"prev\":(mini?\"min\":\"open\"));\n      return {st:st,low:!prev&&d.restant>0&&d.restant<=3,restant:d.restant,d:d,prev:prev};\n    }\n    function joursCourt(s){\n      var dd=pd(s.dateDebut),df=pd(s.dateFin||s.dateDebut)||dd;\n      if(df.getTime()===dd.getTime())return String(dd.getDate());\n      if(df.getMonth()===dd.getMonth()&&df.getFullYear()===dd.getFullYear())return dd.getDate()+\"\u2013\"+df.getDate();\n      return dd.getDate()+\"\u2192\"+df.getDate();                     \/\/ \u00e0 cheval sur deux mois : \u00ab 27\u21921 \u00bb\n    }\n    function joursLong(s){\n      var dd=pd(s.dateDebut),df=pd(s.dateFin||s.dateDebut)||dd;\n      if(df.getTime()===dd.getTime())return dd.getDate()+\" \"+MOIS_AB[dd.getMonth()];\n      var meme=df.getMonth()===dd.getMonth()&&df.getFullYear()===dd.getFullYear();\n      return dd.getDate()+(meme?\"\":\" \"+MOIS_AB[dd.getMonth()])+\" \u2013 \"+df.getDate()+\" \"+MOIS_AB[df.getMonth()];\n    }\n    function libSession(s){\n      var e=etatSession(s);\n      return (TYPE_LABEL[s.type]||String(s.type||\"\"))+\" \u00b7 \"+fmtRange(s.dateDebut,s.dateFin)+\" \u00b7 \"+e.d.court+(e.prev&&e.st!==\"full\"?\" \u00b7 date pr\u00e9visionnelle, liste d'attente\":\"\");\n    }\n    \/* statut en toutes lettres, court : rail du tableau sur t\u00e9l\u00e9phone et \u00ab Prochaines dates \u00bb des fiches *\/\n    function statutCourt(s){\n      var e=etatSession(s);\n      var t=e.st===\"full\"?\"Complet \\u00b7 liste d'attente\":(e.st===\"prev\"?\"Date pr\u00e9visionnelle\":(e.low?e.d.txt:(e.st===\"min\"?\"Minimum atteint\":\"Places disponibles\")));\n      if(s.type===\"perfectionnement\")t+=\" \\u00b7 \"+nbJours(s.dateDebut,s.dateFin)+\"\\u00a0j\";\n      return t;\n    }\n    function puceNode(s,grand){\n      var e=etatSession(s),lib=libSession(s);\n      var b=el(\"button\",{type:\"button\",class:\"ail-plan__tc st-\"+e.st+(grand?\" is-big\":\"\"),title:lib,\"aria-label\":lib});\n      if(grand){\n        b.appendChild(el(\"span\",{class:\"ail-plan__tc-d\",text:joursLong(s)}));\n        b.appendChild(el(\"span\",{class:\"ail-plan__tc-s\",text:statutCourt(s)}));\n      } else {\n        b.appendChild(el(\"span\",{class:\"ail-plan__tc-d\",text:joursCourt(s)}));\n        if(e.low)b.appendChild(el(\"span\",{class:\"ail-plan__tc-n\",text:e.restant+\"\u00a0pl.\"}));\n      }\n      b.addEventListener(\"click\",function(){allerA(s);});\n      return b;\n    }\n    function videNode(plusLoin,cls){\n      return el(\"div\",{class:cls},plusLoin\n        ? [\"Prochaine date au-del\u00e0 de 12 mois\u00a0: voir la liste ci-dessous.\"]\n        : [\"Pas encore de date programm\u00e9e. \",el(\"a\",{href:\"https:\/\/www.ailements.fr\/contact\/\",text:\"Nous contacter\"})]);\n    }\n    function tableauNode(){\n      var valides=allStages.filter(function(s){return pd(s.dateDebut)&&!\/annul|brouillon\/i.test(String(s.statut||\"\"));});\n      if(!valides.length)return null;\n      var auj=new Date(),y0=auj.getFullYear(),m0=auj.getMonth();\n      function rang(s){var d=pd(s.dateDebut);return (d.getFullYear()-y0)*12+d.getMonth()-m0;}\n      function parDate(a,b){return pd(a.dateDebut)-pd(b.dateDebut);}\n      var lignes=LIGNES.filter(function(L){return !L.siSessions||valides.some(function(s){return s.type===L.type;});});\n      var aDates={};lignes.forEach(function(L){if(!L.band)aDates[L.type]=1;});\n      var vues=valides.filter(function(s){var r=rang(s);return aDates[s.type]&&r>=0&&r<12;});\n      var plusTard=valides.filter(function(s){return aDates[s.type]&&rang(s)>=12;}).length,n=vues.length;\n      var surligne=null;                                             \/\/ filtre actif : les autres lignes sont att\u00e9nu\u00e9es, jamais masqu\u00e9es\n      if(currentFilter===\"pilote\")surligne={initiation:1,perfectionnement:1};\n      else if(currentFilter!==\"all\"){surligne={};surligne[currentFilter]=1;}\n\n      var wrap=el(\"div\",{class:\"ail-plan__anwrap\",role:\"group\",\"aria-label\":\"Dates des stages sur les 12 prochains mois\"});\n      wrap.appendChild(el(\"div\",{class:\"ail-plan__anhead\"},[\n        el(\"div\",{class:\"ail-plan__antitre\",text:\"Les 12 prochains mois en un coup d'\u0153il\"}),\n        el(\"div\",{class:\"ail-plan__ancompte\",text:n+\" session\"+(n>1?\"s\":\"\")+\" programm\u00e9e\"+(n>1?\"s\":\"\")+(plusTard?\" \u00b7 \"+plusTard+\" plus tard\":\"\")})\n      ]));\n      var tab=el(\"div\",{class:\"ail-plan__tab\"});\n\n      \/\/ en-t\u00eate des mois (ann\u00e9e sur le premier mois et sur janvier)\n      var mois=[],hiver=[];\n      for(var k=0;k<12;k++){var m=(m0+k)%12;mois.push({y:y0+Math.floor((m0+k)\/12),m:m});if(m>=10||m<=1)hiver.push(k);}   \/\/ hiver = novembre \u00e0 f\u00e9vrier\n      var tmH=el(\"div\",{class:\"ail-plan__tm\"});\n      mois.forEach(function(x,k){\n        tmH.appendChild(el(\"div\",{class:\"ail-plan__th\"+(k===0?\" is-now\":\"\")},[MOIS_AB[x.m].replace(\".\",\"\"),(k===0||x.m===0)?el(\"small\",{text:String(x.y)}):null]));\n      });\n      tab.appendChild(el(\"div\",{class:\"ail-plan__tr ail-plan__thead\",\"aria-hidden\":\"true\"},[el(\"div\",{class:\"ail-plan__tl ail-plan__tl--head\",text:\"Stage\"}),tmH]));\n\n      \/\/ rep\u00e8re \u00ab hiver \u00bb : seulement si une session est vraiment programm\u00e9e de novembre \u00e0 f\u00e9vrier (sinon promesse sans preuve)\n      if(vues.some(function(s){return hiver.indexOf(rang(s))>-1;})){\n        var tmW=el(\"div\",{class:\"ail-plan__tm\"}),deb=-1;\n        for(var w=0;w<=12;w++){\n          var dans=hiver.indexOf(w)>-1;\n          if(dans&&deb<0)deb=w;\n          if(!dans&&deb>-1){var bw=el(\"div\",{class:\"ail-plan__twin\",text:\"Hiver\u00a0: stages maintenus\"});bw.style.gridColumn=(deb+1)+\" \/ \"+(w+1);tmW.appendChild(bw);deb=-1;}\n        }\n        tab.appendChild(el(\"div\",{class:\"ail-plan__tr ail-plan__twinter\",\"aria-hidden\":\"true\"},[el(\"div\",{class:\"ail-plan__tl ail-plan__tl--head\"}),tmW]));\n      }\n\n      var etats={};\n      lignes.forEach(function(L){\n        var miennes=vues.filter(function(s){return s.type===L.type;}).sort(parDate);\n        var plusLoin=valides.some(function(s){return s.type===L.type&&rang(s)>=12;});\n        var row=el(\"div\",{class:\"ail-plan__tr\"+(surligne&&!surligne[L.type]?\" is-dim\":\"\"),style:\"--accent:\"+(TYPE_COLOR[L.type]||\"var(--bleu)\")});\n        var lab=el(\"div\",{class:\"ail-plan__tl\"},[\n          el(\"img\",{class:\"ail-plan__tl-img\",src:IMG_STAGE+L.img,alt:\"\",width:\"52\",height:\"52\",loading:\"lazy\",decoding:\"async\"}),\n          el(\"div\",{class:\"ail-plan__tl-n\"},[el(\"i\",{class:\"sw\",\"aria-hidden\":\"true\"}),TYPE_LABEL[L.type]||L.type]),\n          el(\"div\",{class:\"ail-plan__tl-m\",text:L.meta}),\n          el(\"div\",{class:\"ail-plan__tl-p\",text:L.pre})\n        ]);\n        if(!L.band)lab.appendChild(el(\"div\",{class:\"ail-plan__tl-c\",text:miennes.length?miennes.length+\" date\"+(miennes.length>1?\"s\":\"\"):\"\u00a0\"}));\n        row.appendChild(lab);\n        var tm=el(\"div\",{class:\"ail-plan__tm\"}),rail=el(\"div\",{class:\"ail-plan__trail\"});\n        mois.forEach(function(x,k){\n          var ici=L.band?[]:miennes.filter(function(s){return rang(s)===k;});\n          var c=\"ail-plan__tcell\";\n          if(L.band||ici.length)c+=\" has\";\n          if(ici.length&&ici.every(function(s){return etatSession(s).st===\"prev\";}))c+=\" is-prev\";\n          if(ici.length&&ici.every(function(s){return etatSession(s).st===\"full\";}))c+=\" is-full\";\n          var cell=el(\"div\",{class:c},[el(\"i\",{class:\"ini\",\"aria-hidden\":\"true\",text:MOIS_AB[x.m].charAt(0).toUpperCase()})]);\n          cell.style.gridColumn=String(k+1);\n          ici.forEach(function(s){cell.appendChild(puceNode(s,false));});\n          tm.appendChild(cell);\n        });\n        if(L.band){\n          var band=el(\"a\",{class:\"ail-plan__tband\",href:CONFIG.ONDEMAND_URL},[el(\"b\",{text:\"Toute l'ann\u00e9e, sur demande\"}),el(\"span\",{text:\"Pas de date fixe\u00a0: vous choisissez, on s'adapte.\"})]);\n          tm.appendChild(band);\n          rail.appendChild(el(\"a\",{class:\"ail-plan__tc is-big is-band\",href:CONFIG.ONDEMAND_URL},[el(\"span\",{class:\"ail-plan__tc-d\",text:\"Choisir mon jour\"}),el(\"span\",{class:\"ail-plan__tc-s\",text:\"Toute l'ann\u00e9e, sur demande\"})]));\n        } else if(!miennes.length){\n          tm.appendChild(videNode(plusLoin,\"ail-plan__tvide\"));\n          rail.appendChild(videNode(plusLoin,\"vide\"));\n        } else {\n          miennes.forEach(function(s){var e=etatSession(s);etats[e.st]=1;if(e.low)etats.low=1;rail.appendChild(puceNode(s,true));});\n        }\n        row.appendChild(tm);row.appendChild(rail);\n        tab.appendChild(row);\n      });\n      wrap.appendChild(tab);\n\n      \/\/ l\u00e9gende des statuts pr\u00e9sents (la couleur du stage se lit sur sa ligne)\n      var leg=el(\"div\",{class:\"ail-plan__tleg\"});\n      [[\"min\",\"Minimum de \"+SEUIL_DEPART+\" inscrits atteint\"],[\"open\",\"Places disponibles\"],[\"low\",\"Plus que 1 \u00e0 3 places\"],\n       [\"prev\",\"Date pr\u00e9visionnelle\u00a0: liste d'attente\"],[\"full\",\"Complet\u00a0: liste d'attente\"]].forEach(function(t){\n        if(etats[t[0]])leg.appendChild(el(\"span\",{},[el(\"i\",{class:\"lg lg-\"+t[0],\"aria-hidden\":\"true\",text:t[0]===\"low\"?\"2 pl.\":\"\"}),t[1]]));\n      });\n      leg.appendChild(el(\"span\",{text:\"Touchez une date pour voir le d\u00e9tail.\"}));\n      wrap.appendChild(leg);\n      return wrap;\n    }\n\n    \/* Filtres : on ne propose que les stages qui ont au moins une session visible (jamais un filtre\n       qui ne m\u00e8ne \u00e0 rien). Si le filtre courant n'a plus de session, on revient sur \u00ab Tous \u00bb. *\/\n    function typesVisibles(){\n      var t={};\n      allStages.forEach(function(s){if(pd(s.dateDebut)&&!\/annul|brouillon\/i.test(String(s.statut||\"\")))t[s.type]=1;});\n      return t;\n    }\n    function majFiltres(){\n      var t=typesVisibles(),chips=document.querySelectorAll(\".ail-plan__chip\");\n      chips.forEach(function(c){var f=c.getAttribute(\"data-filter\");c.style.display=(f===\"all\"||t[f])?\"\":\"none\";});\n      var aPilote=!!(t.initiation||t.perfectionnement),pb=document.getElementById(\"ailp-pilote-btn\");\n      if(pb)pb.style.display=aPilote?\"\":\"none\";\n      if(currentFilter===\"pilote\"&&!aPilote)currentFilter=\"all\";\n      if(currentFilter!==\"all\"&&currentFilter!==\"pilote\"&&!t[currentFilter]){\n        currentFilter=\"all\";\n        chips.forEach(function(c){c.classList.toggle(\"is-on\",c.getAttribute(\"data-filter\")===\"all\");});\n      }\n    }\n\n    function render(){\n      var list=document.getElementById(\"ailp-list\");\n      var filtersEl=document.getElementById(\"ailp-filters\");\n\n      \/\/ Pr\u00e9-lancement : aucune session encore \u2192 \u00e9cran COMING SOON (filtres masqu\u00e9s)\n      if(!allStages.length){\n        if(filtersEl)filtersEl.style.display=\"none\";\n        var pb0=document.getElementById(\"ailp-pilote-btn\");if(pb0)pb0.style.display=\"none\";\n        renderComingSoon(list);\n        return;\n      }\n      if(filtersEl)filtersEl.style.display=\"\";\n      majFiltres();\n\n      var data=allStages\n        .filter(function(s){return pd(s.dateDebut);})\n        .filter(function(s){return currentFilter===\"all\"||s.type===currentFilter||(currentFilter===\"pilote\"&&(s.type===\"initiation\"||s.type===\"perfectionnement\"));})\n        .filter(function(s){return !\/annul|brouillon\/i.test(String(s.statut||\"\"));})\n        .sort(function(a,b){return pd(a.dateDebut)-pd(b.dateDebut);});\n\n      list.textContent=\"\";\n      var _tb=tableauNode();if(_tb)list.appendChild(_tb);\n      majProchaines();                                   \/\/ \u00ab Prochaines dates \u00bb sous les fiches de la page\n      if(!ancreFaite)setTimeout(allerAncre,0);           \/\/ arriv\u00e9e directe sur l'ancre : une fois le planning affich\u00e9\n      if(currentFilter===\"pilote\")list.appendChild(el(\"div\",{class:\"ail-plan__pnote\",id:\"ailp-pnote\"},[\n        el(\"span\",{text:\"Journ\u00e9e pilote\\u00a0: choisissez une session ci-dessous, puis vos journ\u00e9es dans le formulaire. \"+JOURNEE.prix+\"\\u00a0\u20ac par jour, r\u00e9gl\u00e9s sur place.\"})\n      ]));\n      if(!data.length){\n        list.appendChild(el(\"div\",{class:\"ail-plan__empty\"},[\n          \"Aucun stage de ce type pour le moment.\",el(\"br\"),\n          \"Changez de filtre, ou r\u00e9servez une journ\u00e9e d\u00e9couverte \u00e0 la demande.\"\n        ]));\n        return;\n      }\n      var frag=document.createDocumentFragment(),lastKey=\"\";\n      data.forEach(function(s){\n        var d=pd(s.dateDebut),key=d.getFullYear()+\"-\"+d.getMonth();\n        if(key!==lastKey){frag.appendChild(el(\"div\",{class:\"ail-plan__month\",text:MOIS[d.getMonth()]+\" \"+d.getFullYear()}));lastKey=key;}\n        frag.appendChild(cardNode(s));\n      });\n      list.appendChild(frag);\n    }\n\n    function renderComingSoon(list){\n      list.textContent=\"\";\n      var ghosts=el(\"div\",{class:\"ail-plan__ghosts\",\"aria-hidden\":\"true\"});\n      ghosts.appendChild(el(\"div\",{class:\"ail-plan__month\",text:\"prochainement\"}));\n      [[\"46%\",\"30%\"],[\"38%\",\"34%\"],[\"52%\",\"26%\"]].forEach(function(w){\n        var c=el(\"div\",{class:\"ail-plan__ghost\"});\n        c.appendChild(el(\"span\",{class:\"ail-plan__gbar\",style:\"width:\"+w[0]}));\n        c.appendChild(el(\"span\",{class:\"ail-plan__gbar\",style:\"width:72%;height:18px\"}));\n        c.appendChild(el(\"span\",{class:\"ail-plan__gbar\",style:\"width:\"+w[1]}));\n        ghosts.appendChild(c);\n      });\n      var band=el(\"div\",{class:\"ail-plan__band\"},[el(\"span\",{class:\"ail-plan__band-txt\",text:\"COMING SOON\"})]);\n      list.appendChild(el(\"div\",{class:\"ail-plan__soon\"},[ghosts,band]));\n      list.appendChild(el(\"p\",{class:\"ail-plan__soon-sub\"},[\n        \"Les dates des prochains stages arrivent \u2014 revenez tr\u00e8s vite.\",el(\"br\"),\n        \"En attendant, vous pouvez r\u00e9server une journ\u00e9e d\u00e9couverte \u00e0 la demande.\"\n      ]));\n    }\n\n    \/* Echec de chargement : ni fausses dates, ni \u00ab coming soon \u00bb (ce serait faux alors que des\n       sessions existent peut-etre) \u2014 un message honnete, un bouton Reessayer et le telephone. *\/\n    function renderErreur(){\n      var list=document.getElementById(\"ailp-list\");\n      var filtersEl=document.getElementById(\"ailp-filters\");\n      if(filtersEl)filtersEl.style.display=\"none\";\n      list.textContent=\"\";\n      var retry=el(\"button\",{type:\"button\",class:\"ail-plan__btn\",text:\"R\u00e9essayer\"});\n      retry.addEventListener(\"click\",function(){\n        list.textContent=\"\";list.appendChild(el(\"div\",{class:\"ail-plan__empty\",text:\"Chargement du planning\u2026\"}));loadStages();\n      });\n      list.appendChild(el(\"div\",{class:\"ail-plan__empty\"},[\n        \"Le planning n'a pas pu se charger.\",el(\"br\"),\n        \"R\u00e9essayez dans un instant, ou appelez-nous au \",el(\"a\",{href:\"tel:+33687687190\",text:\"06 87 68 71 90\"}),\" : on vous donne les dates.\",\n        el(\"div\",{style:\"margin-top:14px\"},[retry])\n      ]));\n    }\n\n    \/* Une lecture des sessions : d\u00e9lai maximal, r\u00e9ponse valid\u00e9e (un refus serveur n'est pas \u00ab aucune session \u00bb). *\/\n    function lireSessions(url,opts,delaiMs){\n      var ctrl=(typeof AbortController===\"function\")?new AbortController():null;\n      var minuteur=setTimeout(function(){if(ctrl)ctrl.abort();},delaiMs);\n      if(ctrl)opts.signal=ctrl.signal;\n      return fetch(url,opts)\n        .then(function(r){if(!r.ok)throw new Error(\"HTTP \"+r.status);return r.json();})\n        .then(function(j){clearTimeout(minuteur);\n          if(!j||j.status!==\"success\"||!Array.isArray(j.stages))throw new Error(\"reponse refusee\");\n          return j.stages;},\n          function(e){clearTimeout(minuteur);throw e;});\n    }\n\n    \/* essai : 1 au chargement. Ordre : 1) la derni\u00e8re liste connue de ce navigateur s'affiche tout de suite ;\n       2) la copie rapide o2switch (quelques ms) ; 3) en secours seulement, Apps Script direct (4 \u00e0 13 s,\n       rat\u00e9s passagers). Une relance automatique silencieuse avant d'afficher le message d'erreur. *\/\n    var dejaAffiche=false;\n    function loadStages(essai){\n      essai=essai||1;\n      var qs=location.search;\n      if(\/[?&]preview=soon\/.test(qs)){allStages=[];render();return;}          \/\/ forcer l'\u00e9cran pr\u00e9-lancement\n      if(\/[?&]preview=demo\/.test(qs)){allStages=STAGES_DEMO;render();return;} \/\/ forcer l'aper\u00e7u peupl\u00e9 (donn\u00e9es d'exemple)\n      if(!CONFIG.API_URL&&!CONFIG.SESSIONS_URL){allStages=[];render();return;} \/\/ PAS encore branch\u00e9 \u2192 COMING SOON\n\n      if(!dejaAffiche){\n        var c=relire(CACHE_KEY);\n        if(c&&Array.isArray(c.stages)&&Date.now()-c.t<CACHE_MAX_MS){allStages=c.stages;render();dejaAffiche=true;}\n      }\n      var viaCopie=CONFIG.SESSIONS_URL\n        ?lireSessions(CONFIG.SESSIONS_URL,{method:\"GET\",cache:\"no-store\"},6000)\n        :Promise.reject(new Error(\"pas de copie\"));\n      viaCopie\n        .catch(function(){\n          if(!CONFIG.API_URL)throw new Error(\"pas de secours\");\n          return lireSessions(CONFIG.API_URL,{method:\"POST\",headers:{\"Content-Type\":\"text\/plain\"},\n            body:JSON.stringify({action:\"get_stages_public\"})},30000);\n        })\n        .then(function(stages){\n          memoriser(CACHE_KEY,{t:Date.now(),stages:stages});\n          var change=JSON.stringify(stages)!==JSON.stringify(allStages);\n          allStages=stages;\n          if(!dejaAffiche||change)render();                                    \/\/ 0 session \u2192 COMING SOON automatique\n          dejaAffiche=true;\n        },function(){\n          if(dejaAffiche)return;                                               \/\/ la liste de ce navigateur reste affich\u00e9e\n          if(essai<2)setTimeout(function(){loadStages(essai+1);},1500);else renderErreur();   \/\/ jamais de fausses dates\n        });\n    }\n\n    \/* en-t\u00eate H2 \u2192 H3 si data-h=\"3\" sur la section *\/\n    if(root&&root.getAttribute(\"data-h\")===\"3\"){\n      var h=document.getElementById(\"ailp-h\"),h3=el(\"h3\",{class:\"ail-plan__h\",id:\"ailp-h\"});\n      while(h.firstChild)h3.appendChild(h.firstChild);\n      h.parentNode.replaceChild(h3,h);\n    }\n\n    document.getElementById(\"ailp-filters\").addEventListener(\"click\",function(e){\n      var b=e.target.closest(\".ail-plan__chip\");if(!b)return;\n      this.querySelectorAll(\".ail-plan__chip\").forEach(function(c){c.classList.remove(\"is-on\");});\n      b.classList.add(\"is-on\");currentFilter=b.getAttribute(\"data-filter\");render();\n    });\n    var od=document.getElementById(\"ailp-odbtn\");if(od)od.setAttribute(\"href\",CONFIG.ONDEMAND_URL);\n\n\n    \/* \u2500\u2500 \u00ab PROCHAINES DATES \u00bb SOUS CHAQUE FICHE STAGE (audit UX, \u00e9tape 2, 18\/10\/2026) \u2500\u2500\n       Les fiches de la page portent un emplacement vide <div class=\"ail-next\" data-ailp-next=\"initiation\" hidden>.\n       Le planning le remplit avec les 3 prochaines dates du stage (m\u00eame flux de sessions, rien en dur) et un lien\n       vers le planning filtr\u00e9 sur ce stage. Toucher une date ouvre sa carte dans le planning. *\/\n    function majProchaines(){\n      var auj=new Date();auj.setHours(0,0,0,0);\n      document.querySelectorAll(\"[data-ailp-next]\").forEach(function(box){\n        var t=String(box.getAttribute(\"data-ailp-next\")||\"\");\n        var toutes=allStages.filter(function(s){var f=pd(s.dateFin||s.dateDebut);return s.type===t&&pd(s.dateDebut)&&f&&f>=auj&&!\/annul|brouillon\/i.test(String(s.statut||\"\"));})\n          .sort(function(a,b){return pd(a.dateDebut)-pd(b.dateDebut);});\n        box.textContent=\"\";\n        box.appendChild(el(\"div\",{class:\"ail-next__t\",text:\"Prochaines dates\"}));\n        if(!toutes.length){\n          box.appendChild(el(\"p\",{class:\"ail-next__vide\"},[\"Pas encore de date programm\u00e9e. \",el(\"a\",{href:\"https:\/\/www.ailements.fr\/contact\/\",text:\"Nous contacter\"})]));\n        } else {\n          var l=el(\"div\",{class:\"ail-next__l\"});\n          toutes.slice(0,3).forEach(function(s){\n            var e=etatSession(s),lib=libSession(s);\n            var b=el(\"button\",{type:\"button\",class:\"ail-next__d\"+(e.st===\"full\"?\" is-full\":\"\")+(e.st===\"prev\"?\" is-prev\":\"\")+(e.low?\" is-low\":\"\"),title:lib,\"aria-label\":lib},[\n              el(\"span\",{class:\"j\",text:joursLong(s)}),el(\"small\",{text:statutCourt(s)})]);\n            b.addEventListener(\"click\",function(){allerA(s);});\n            l.appendChild(b);\n          });\n          box.appendChild(l);\n          var n=toutes.length;\n          box.appendChild(el(\"a\",{class:\"ail-next__all\",href:\"#planning-stages\",\"data-ailp-filter\":t,text:n>3?\"Voir les \"+n+\" dates\":\"Voir dans le planning\"}));\n        }\n        box.hidden=false;\n      });\n    }\n\n    \/* Arriv\u00e9e directe sur \u2026#planning-stages (lien d'une autre page, d'un email, de Google) : le th\u00e8me emp\u00eache le\n       navigateur de descendre tout seul jusqu'\u00e0 l'ancre (constat\u00e9 en ligne le 18\/10\/2026, alors que les boutons de\n       la page fonctionnent). On le fait ici, une seule fois, sauf si le visiteur a d\u00e9j\u00e0 fait d\u00e9filer la page. *\/\n    var ancreFaite=false,aBouge=false;\n    [\"wheel\",\"touchmove\",\"keydown\"].forEach(function(t){window.addEventListener(t,function(){aBouge=true;},{passive:true});});\n    function allerAncre(){\n      if(ancreFaite||aBouge)return;\n      var id=\"\";try{id=decodeURIComponent(String(location.hash||\"\").slice(1));}catch(e){}\n      var cible=id?document.getElementById(id):null;\n      if(!cible||!root||!root.contains(cible))return;\n      ancreFaite=true;\n      function sauter(){                                   \/\/ saut direct, comme un lien d'ancre normal (pas d'animation sur 3 000 px)\n        var h=document.documentElement,avant=h.style.scrollBehavior;\n        h.style.scrollBehavior=\"auto\";cible.scrollIntoView({block:\"start\"});h.style.scrollBehavior=avant;\n      }\n      sauter();\n      setTimeout(function(){                               \/\/ des images au-dessus ont pu changer la hauteur : on recale une fois\n        if(!aBouge&&Math.abs(cible.getBoundingClientRect().top-90)>60)sauter();\n      },1200);\n    }\n    window.addEventListener(\"load\",function(){setTimeout(allerAncre,150);});\n\n    \/* T\u00e9l\u00e9phone : bouton \u00ab Voir les dates \u00bb qui reste accessible pendant la lecture des fiches (audit UX, 18\/10\/2026).\n       Visible seulement quand le planning n'est pas \u00e0 l'\u00e9cran ; en bas \u00e0 gauche pour ne pas couvrir le bouton WhatsApp.\n       Ajout\u00e9 \u00e0 <body> : un parent avec \u00ab transform \u00bb (Elementor) casserait la position fixe. *\/\n    (function(){\n      if(!root||!(\"IntersectionObserver\" in window))return;\n      var fab=el(\"a\",{class:\"ail-plan-fab\",href:\"#planning-stages\",\"aria-hidden\":\"true\",tabindex:\"-1\"},[el(\"span\",{text:\"Voir les dates\"})]);\n      document.body.appendChild(fab);\n      var planVisible=false;\n      function maj(){\n        var on=!planVisible&&(window.pageYOffset||document.documentElement.scrollTop||0)>400;\n        fab.classList.toggle(\"is-on\",on);fab.setAttribute(\"aria-hidden\",on?\"false\":\"true\");fab.setAttribute(\"tabindex\",on?\"0\":\"-1\");\n      }\n      new IntersectionObserver(function(es){planVisible=es[0].isIntersecting;maj();},{rootMargin:\"0px 0px -20% 0px\"}).observe(root);\n      window.addEventListener(\"scroll\",maj,{passive:true});\n      fab.addEventListener(\"click\",function(e){e.preventDefault();root.scrollIntoView({behavior:\"smooth\",block:\"start\"});});\n    })();\n\n    \/* Bouton d'une carte de la page : <a href=\"#planning-stages\" data-ailp-filter=\"dune\"> \u2014 la liste s'ouvre\n       directement filtr\u00e9e sur ce stage (sans session de ce type : tous les stages).\n       20\/10\/2026 : le clic m\u00e8ne DIRECTEMENT \u00e0 la premi\u00e8re date de ce stage (carte centr\u00e9e et mise en \u00e9vidence,\n       comme une date du tableau des 12 mois). Sur t\u00e9l\u00e9phone, le haut du calendrier laissait 2 \u00e0 3 \u00e9crans\n       (journ\u00e9e d\u00e9couverte, journ\u00e9e \u00e0 la carte, tableau des 12 mois) avant la carte et son bouton \u00ab R\u00e9server \u00bb.\n       Sans date de ce stage, ou avant le chargement des sessions : le lien garde son ancre (haut du calendrier). *\/\n    document.addEventListener(\"click\",function(e){\n      var a=e.target&&e.target.closest?e.target.closest(\"a[data-ailp-filter]\"):null;\n      if(!a)return;\n      var f=String(a.getAttribute(\"data-ailp-filter\")||\"all\");\n      if(!document.querySelector('.ail-plan__chip[data-filter=\"'+f.replace(\/\"\/g,\"\")+'\"]'))f=\"all\";\n      currentFilter=f;\n      document.querySelectorAll(\".ail-plan__chip\").forEach(function(x){x.classList.toggle(\"is-on\",x.getAttribute(\"data-filter\")===f);});\n      if(allStages.length)render();   \/\/ render() repasse sur \u00ab Tous \u00bb si ce stage n'a aucune session\n      if(f===\"all\"||currentFilter!==f||!root)return;\n      var t=root.querySelector(\".ail-plan__card[data-card-sid]\");   \/\/ liste filtr\u00e9e : la premi\u00e8re carte est la plus proche date de ce stage\n      if(!t)return;\n      e.preventDefault();\n      t.scrollIntoView({block:\"center\"});   \/\/ saut direct, comme l'ancre d'avant (sans attendre une image du navigateur)\n      t.classList.add(\"is-flash\");\n      setTimeout(function(){                \/\/ une photo charg\u00e9e entre-temps a pu d\u00e9caler la carte : on la recentre\n        var r=t.getBoundingClientRect(),hv=window.innerHeight||document.documentElement.clientHeight;\n        if(r.top<0||r.bottom>hv)t.scrollIntoView({block:\"center\"});\n      },350);\n      setTimeout(function(){t.classList.remove(\"is-flash\");},1600);\n    });\n\n    \/* pr\u00e9-filtre optionnel : <section class=\"ail-plan\" data-default-filter=\"initiation\"> *\/\n    var df=root&&root.getAttribute(\"data-default-filter\");\n    if(df){var c=document.querySelector('.ail-plan__chip[data-filter=\"'+df+'\"]');\n      if(c){currentFilter=df;document.querySelectorAll(\".ail-plan__chip\").forEach(function(x){x.classList.remove(\"is-on\");});c.classList.add(\"is-on\");}}\n\n    loadStages();\n    \/* Journ\u00e9e pilote \u00e0 la carte : \u00ab Voir les dates \u00bb ne garde que les sessions Initiation et Perfectionnement.\n       Bouton masqu\u00e9 tant qu'aucune session de ces deux types n'est programm\u00e9e (la demande reste possible). *\/\n    var piloteBtn=document.getElementById(\"ailp-pilote-btn\");\n    if(piloteBtn)piloteBtn.addEventListener(\"click\",function(){\n      currentFilter=\"pilote\";\n      document.querySelectorAll(\".ail-plan__chip\").forEach(function(c){c.classList.remove(\"is-on\");});\n      render();\n      var n=document.getElementById(\"ailp-pnote\");if(n)n.scrollIntoView({behavior:\"smooth\",block:\"center\"});\n    });\n  })();\n  <\/script>\n<\/section>\n    <\/div>\n  <\/div>\n\n  <div class=\"ail-guide__section ail-guide__section--kaki\" id=\"sites\" role=\"region\" aria-labelledby=\"h2-sites\">\n    <div class=\"ail-guide__wrap\">\n      <span class=\"ail-guide__kicker ail-guide__kicker--marron\">Sites de vol<\/span>\n      <h2 class=\"ail-guide__h2\" id=\"h2-sites\">3 sites de d\u00e9collage \u00e0 1h-1h30 du Var<\/h2>\n      <p class=\"ail-guide__intro-section\">Les meilleurs sites \u00e9cole de la r\u00e9gion se trouvent dans les Pr\u00e9alpes d'Azur, \u00e0 1h-1h30 du Var. Le site est choisi selon les conditions m\u00e9t\u00e9o, le niveau des \u00e9l\u00e8ves et les objectifs p\u00e9dagogiques.<\/p>\n\n      <div class=\"ail-guide__cards-3\">\n        <article class=\"ail-guide__card ail-guide__card--marron\">\n          <div class=\"ail-guide__card-tag\">Site principal \u00b7 1 800 m<\/div>\n          <h3 class=\"ail-guide__h3\"><a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a><\/h3>\n          <p>Au c\u0153ur du <strong>Parc Naturel des Pr\u00e9alpes d'Azur<\/strong>, \u00e0 1h15-1h30 du Var. <strong>Pente-\u00e9cole id\u00e9ale<\/strong> pour l'apprentissage, paysages des Alpes \u00e0 couper le souffle.<\/p>\n          <p>C'est ici que se d\u00e9roulent <strong>la majorit\u00e9 de nos stages<\/strong> et vols d'initiation. D\u00e9nivel\u00e9 700 m.<\/p>\n        <\/article>\n\n        <article class=\"ail-guide__card ail-guide__card--orange\">\n          <div class=\"ail-guide__card-tag\">Site thermique \u00b7 1 080 m<\/div>\n          <h3 class=\"ail-guide__h3\"><a href=\"https:\/\/www.ailements.fr\/gourdon\/\">Gourdon<\/a><\/h3>\n          <p>Village perch\u00e9 \u00e0 1 080 m d'altitude, \u00e0 1h15-1h30 du Var. Vue panoramique sur la C\u00f4te d'Azur.<\/p>\n          <p><strong>Site thermique<\/strong> pour les cours de perfectionnement et les vols de distance. Plus Beaux Villages de France.<\/p>\n        <\/article>\n\n        <article class=\"ail-guide__card ail-guide__card--bleu\">\n          <div class=\"ail-guide__card-tag\">Bord de mer \u00b7 780 m<\/div>\n          <h3 class=\"ail-guide__h3\"><a href=\"https:\/\/www.ailements.fr\/trips\/parapente-roquebrune-cap-martin\/\">Roquebrune Cap Martin<\/a><\/h3>\n          <p><strong>Vol face \u00e0 la M\u00e9diterran\u00e9e<\/strong>, \u00e0 1h-1h15 du Var. Paysages spectaculaires entre mer et montagne, vue Monaco.<\/p>\n          <p>Id\u00e9al pour les <strong>bapt\u00eames de parapente<\/strong> et pilotes confirm\u00e9s cherchant des conditions diff\u00e9rentes.<\/p>\n        <\/article>\n      <\/div>\n\n      <div class=\"ail-guide__signature\">\n        <div>\n          <span class=\"ail-guide__kicker\">Le cadre de nos stages<\/span>\n          <h3>Licence FFVL, mat\u00e9riel homologu\u00e9 et moniteurs d'\u00c9tat<\/h3>\n          <p>Nos stages se d\u00e9roulent avec&nbsp;: mat\u00e9riel homologu\u00e9 (voiles \u00e9cole Aerotech A1), \u00e9quipements de s\u00e9curit\u00e9 aux normes, pratique encadr\u00e9e par des moniteurs dipl\u00f4m\u00e9s d'\u00c9tat.<\/p>\n          <p>Mat\u00e9riel r\u00e9vis\u00e9 par <strong>Aerotech<\/strong>, atelier sp\u00e9cialis\u00e9 sur place \u00e0 Gr\u00e9oli\u00e8res. <strong>Plus de 6 000 vols r\u00e9alis\u00e9s<\/strong> sans accident grave depuis 2013.<\/p>\n          <p>Une question avant de r\u00e9server ? <a href=\"https:\/\/www.ailements.fr\/contact\/\">Contactez-nous<\/a> ou appelez le <strong>06 87 68 71 90<\/strong>.<\/p>\n          <a href=\"#planning-stages\" class=\"ail-guide__btn ail-guide__btn--orange\">R\u00e9server mon stage<\/a>\n        <\/div>\n        <figure class=\"ail-guide__signature-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/enseignement.jpg\" alt=\"\u00c9cole parapente Var, encadrement par moniteurs DEJEPS\" loading=\"lazy\"\/>\n        <\/figure>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SECTION 4 : Conditions + Bon cadeau -->\n  <div class=\"ail-guide__section ail-guide__section--marron\" id=\"conditions\" role=\"region\" aria-labelledby=\"h2-conditions\">\n    <div class=\"ail-guide__wrap\">\n      <span class=\"ail-guide__kicker ail-guide__kicker--bleu\">Pratique<\/span>\n      <h2 class=\"ail-guide__h2\" id=\"h2-conditions\">Tout ce qu'il faut savoir avant de venir depuis le Var<\/h2>\n      <p class=\"ail-guide__intro-section\">4 points essentiels pour pr\u00e9parer votre stage en toute s\u00e9r\u00e9nit\u00e9 depuis le Var.<\/p>\n\n      <div class=\"ail-guide__tips\">\n        <div class=\"ail-guide__tip\">\n          <h4>Trajet & h\u00e9bergement<\/h4>\n          <p>1h-2h depuis le Var. Pour les stages 5 jours, <strong>h\u00e9bergement partenaire<\/strong> \u00e0 Gr\u00e9oli\u00e8res possible. \u00c9vite les allers-retours quotidiens, optimise l'apprentissage.<\/p>\n        <\/div>\n        <div class=\"ail-guide__tip\">\n          <h4>\u00c2ge & condition physique<\/h4>\n          <p>Bapt\u00eame d\u00e8s <strong>5 ans<\/strong>, stages d\u00e8s <strong>12 ans<\/strong>. Poids max biplace 90 kg. Pas de condition physique requise pour bapt\u00eame.<\/p>\n        <\/div>\n        <div class=\"ail-guide__tip\">\n          <h4>M\u00e9t\u00e9o d\u00e9favorable<\/h4>\n          <p>Report gratuit \u00e0 la date de votre choix. <strong>Confirmation\/report par SMS<\/strong> la veille. +250 jours volables par an dans la r\u00e9gion.<\/p>\n        <\/div>\n        <div class=\"ail-guide__tip\">\n          <h4>R\u00e9servation simple<\/h4>\n          <p><strong>Stages<\/strong>&nbsp;: inscription en ligne dans le planning ci-dessus, acompte de 25&nbsp;% par virement (rien \u00e0 payer pour une inscription en liste d'attente), solde r\u00e9gl\u00e9 sur place le premier jour. <strong>Bapt\u00eames<\/strong>&nbsp;: paiement sur place, <strong>aucun frais<\/strong> \u00e0 avancer tant que le vol n'a pas eu lieu. Une question&nbsp;? <strong>06 87 68 71 90<\/strong>, par t\u00e9l\u00e9phone ou WhatsApp.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"ail-guide__signature ail-guide__signature--orange\">\n        <div>\n          <span class=\"ail-guide__kicker\">Offrir un stage<\/span>\n          <h3>Le bon cadeau stage parapente Ail\u00e9ments<\/h3>\n          <p>Offrez un <a href=\"https:\/\/www.ailements.fr\/bon-cadeau\/\">bon cadeau stage parapente<\/a> \u00e0 un Varois : un cadeau original et inoubliable. Valable 1 an, personnalisable, envoy\u00e9 par email.<\/p>\n          <p>Id\u00e9al pour un anniversaire, un cadeau de fin d'\u00e9tudes, un <a href=\"https:\/\/www.ailements.fr\/evjf-evg-nice\/\">EVJF\/EVG<\/a>, ou simplement pour faire plaisir. Une question ? <a href=\"https:\/\/www.ailements.fr\/contact\/\">Contactez-nous<\/a>.<\/p>\n          <a href=\"https:\/\/www.ailements.fr\/bon-cadeau\/\" class=\"ail-guide__btn ail-guide__btn--kaki\">Commander un bon cadeau<\/a>\n        <\/div>\n        <figure class=\"ail-guide__signature-img\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/P1010008-scaled.jpg\" alt=\"Stage parapente Var Alpes-Maritimes Ail\u00e9ments\" loading=\"lazy\"\/>\n        <\/figure>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- FAQ -->\n  <div class=\"ail-guide__faq\" id=\"faq\" role=\"region\" aria-labelledby=\"h2-faq\">\n    <div class=\"ail-guide__wrap\">\n      <div class=\"ail-guide__faq-grid\">\n        <div class=\"ail-guide__faq-head\">\n          <span class=\"ail-guide__kicker\">FAQ<\/span>\n          <h2 class=\"ail-guide__h2\" id=\"h2-faq\">Questions fr\u00e9quentes depuis le Var<\/h2>\n          <p style=\"margin-top:12px;color:var(--c-dark);font-size:1.02rem\">Acc\u00e8s depuis le Var, sites de vol, h\u00e9bergement, tarifs, licence FFVL, m\u00e9t\u00e9o.<\/p>\n        <\/div>\n\n        <div class=\"ail-guide__faq-list\">\n          <details class=\"ail-guide__faq-item\">\n            <summary>O\u00f9 se trouve votre \u00e9cole de parapente par rapport au Var ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Notre \u00e9cole Ail\u00e9ments est bas\u00e9e \u00e0 <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a> dans les Alpes-Maritimes, accessible depuis le Var en <strong>1h \u00e0 2h<\/strong> selon votre point de d\u00e9part.<\/p>\n              <p>Temps de trajet : <strong>Fr\u00e9jus \/ Saint-Rapha\u00ebl<\/strong> 1h15 \u00b7 <strong>Saint-Tropez<\/strong> 1h30 \u00b7 <strong>Draguignan<\/strong> 1h30 \u00b7 <strong>Toulon<\/strong> 1h45 \u00b7 <strong>Hy\u00e8res<\/strong> 2h.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Y a-t-il des sites de parapente directement dans le Var ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Les meilleurs sites de vol \u00e9cole de la r\u00e9gion se trouvent dans les <strong>Pr\u00e9alpes des Alpes-Maritimes<\/strong> : Gr\u00e9oli\u00e8res (1 800 m), Gourdon (1 080 m), Roquebrune Cap Martin (780 m).<\/p>\n              <p>Le Var n'a pas de site \u00e9cole de qualit\u00e9 comparable. C'est pourquoi nos stagiaires varois rejoignent nos sites des Alpes-Maritimes voisines.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Combien de temps depuis le Var pour rejoindre les sites de vol ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p><strong>Fr\u00e9jus \/ Saint-Rapha\u00ebl<\/strong> : 1h15 \u00b7 <strong>Saint-Tropez<\/strong> : 1h30 \u00b7 <strong>Draguignan<\/strong> : 1h30 \u00b7 <strong>Toulon<\/strong> : 1h45 \u00b7 <strong>Hy\u00e8res<\/strong> : 2h.<\/p>\n              <p>Les <strong>stages d'une semaine<\/strong> (Initiation, Perfectionnement, D\u00e9couverte du Sud) permettent d'organiser un h\u00e9bergement sur place pour \u00e9viter les allers-retours quotidiens.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Peut-on <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/partenaires\/\"   title=\"Partenaires\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139304\">dormir<\/a> sur place pendant un stage ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Oui, nous vous orientons vers des <strong>h\u00e9bergements partenaires<\/strong> \u00e0 Gr\u00e9oli\u00e8res et alentours pour \u00e9viter les trajets quotidiens depuis le Var.<\/p>\n              <p>Logement de groupe possible pour les stages de 5 jours, \u00e0 organiser avec nous lors de la r\u00e9servation. Id\u00e9al pour les Varois en stage Initiation.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Quel est le cadre de vos stages ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Nos moniteurs sont <strong>dipl\u00f4m\u00e9s d'\u00c9tat (DEJEPS et BEES)<\/strong> et enseignent depuis 2013 : c'est le dipl\u00f4me qui autorise l'enseignement du parapente en France. Les stages se d\u00e9roulent dans le cadre de la <strong>F\u00e9d\u00e9ration Fran\u00e7aise de Vol Libre<\/strong>, avec licence FFVL obligatoire pour chaque stagiaire.<\/p>\n              <p>Notre structure garantit un mat\u00e9riel homologu\u00e9 et le respect des normes de s\u00e9curit\u00e9 en vol libre ; chaque stagiaire vole avec sa licence FFVL, qui comprend la responsabilit\u00e9 civile. Sur la pr\u00e9vention et les risques r\u00e9els, voir notre page <a href=\"https:\/\/www.ailements.fr\/accident-parapente\/\">accident de parapente<\/a>. \u00c9l\u00e8ves visant l'autonomie : licence FFVL obligatoire.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Combien co\u00fbte un stage de parapente depuis le Var ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p><strong>Stage D\u00e9couverte<\/strong> 260 \u20ac (1 jour) \u00b7 <strong>Stage Initiation<\/strong> 700 \u20ac (5 jours, premiers solos) \u00b7 <strong>Stage Perfectionnement<\/strong> 750 \u20ac (5 jours, thermique) \u00b7 <strong>Stage D\u00e9couverte du Sud<\/strong> 800 \u20ac (5 jours multi-sites).<\/p>\n              <p>Tarifs identiques quel que soit votre d\u00e9partement d'origine. <a href=\"https:\/\/www.ailements.fr\/bon-cadeau\/\">Bon cadeau<\/a> disponible pour offrir.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>\u00c0 partir de quel \u00e2ge peut-on faire du parapente ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p><strong>Bapt\u00eames<\/strong> : d\u00e8s 5 ans (formule <a href=\"https:\/\/www.ailements.fr\/parapente\/vol-enfant\/\">Vol Enfant<\/a>). <strong>Stages de formation<\/strong> : d\u00e8s 12 ans.<\/p>\n              <p>Pas d'\u00e2ge maximum pour les bapt\u00eames si la condition physique le permet ; pour les stages, de 12 \u00e0 55 ans (au-del\u00e0, on valide ensemble par t\u00e9l\u00e9phone). Les mineurs doivent \u00eatre accompagn\u00e9s d'un responsable l\u00e9gal. D\u00e9tails sur <a href=\"https:\/\/www.ailements.fr\/age-minimum-parapente\/\">l'\u00e2ge minimum en parapente<\/a>.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Proposez-vous des stages de parapente en hiver ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Oui, et c'est notre diff\u00e9rence&nbsp;: <strong>nos sessions tournent toute l'ann\u00e9e, hiver compris<\/strong>, quand la plupart des \u00e9coles fran\u00e7aises ferment d'octobre \u00e0 mars.<\/p>\n              <p>Les Pr\u00e9alpes d'Azur et la C\u00f4te d'Azur restent volables l'hiver&nbsp;: <strong>plus de dates disponibles<\/strong>, des <strong>groupes plus petits<\/strong>, et un programme toujours adapt\u00e9 aux conditions du jour.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Que se passe-t-il si la m\u00e9t\u00e9o est mauvaise ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>Notre politique m\u00e9t\u00e9o : <strong>Report gratuit<\/strong> \u00e0 la date de votre choix. <strong>Aucun frais<\/strong> \u00e0 avancer tant que le vol n'a pas eu lieu. Confirmation ou report <strong>par SMS la veille<\/strong> (essentiel pour \u00e9viter un trajet inutile depuis le Var).<\/p>\n              <p>Pour les stages, c'est la nature qui d\u00e9cide&nbsp;: la session est confirm\u00e9e ou report\u00e9e <strong>4 jours avant<\/strong> le premier jour, et une journ\u00e9e sans vol se transforme en th\u00e9orie et exercices au sol.<\/p>\n              <p>Plus de 250 jours volables par an dans la r\u00e9gion.<\/p>\n            <\/div>\n          <\/details>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- AUTEUR -->\n  <div class=\"ail-guide__author\" role=\"complementary\" aria-label=\"Auteur de l'article\">\n    <div class=\"ail-guide__wrap\">\n      <article class=\"ail-guide__author-card\">\n        <div class=\"ail-guide__author-avatar\" aria-hidden=\"true\">PY<\/div>\n        <div class=\"ail-guide__author-body\">\n          <span class=\"ail-guide__author-label\">Article r\u00e9dig\u00e9 par<\/span>\n          <span class=\"ail-guide__author-name\">Pierre-Yves Fenet \u00b7 Ail\u00e9ments<\/span>\n          <p class=\"ail-guide__author-bio\">\n            <strong>Moniteur DEJEPS Parapente<\/strong>, fondateur d'<strong>Ail\u00e9ments<\/strong> en 2013. <strong>19 ans d'exp\u00e9rience en vol libre<\/strong>, +6 000 vols r\u00e9alis\u00e9s. Accueille r\u00e9guli\u00e8rement des stagiaires varois en formation vers l'autonomie depuis 2013.\n          <\/p>\n          <div class=\"ail-guide__author-badges\">\n            <span class=\"ail-guide__author-badge\">DEJEPS<\/span>\n            <span class=\"ail-guide__author-badge\">Licence FFVL<\/span>\n            <span class=\"ail-guide__author-badge\">+6 000 vols<\/span>\n            <span class=\"ail-guide__author-badge\">+1070 avis \u2605\u2605\u2605\u2605\u2605<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"ail-guide__author-cta\">\n          <a href=\"https:\/\/www.ailements.fr\/team-ailements\/\">D\u00e9couvrir l'\u00e9quipe<\/a>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/div>\n\n  <!-- \u00c0 RETENIR -->\n  <div class=\"ail-guide__takeaways\" id=\"a-retenir\" role=\"region\" aria-labelledby=\"h2-takeaways\">\n    <div class=\"ail-guide__wrap\">\n      <div class=\"ail-guide__takeaways-grid\">\n        <div class=\"ail-guide__takeaways-head\">\n          <span class=\"ail-guide__kicker\">En r\u00e9sum\u00e9<\/span>\n          <h2 class=\"ail-guide__h2\" id=\"h2-takeaways\">L'essentiel sur notre \u00e9cole de parapente pour Varois<\/h2>\n          <p style=\"margin-top:12px;color:var(--c-dark);font-size:1.02rem\">4 raisons pour lesquelles des Varois nous rejoignent depuis 2013 sur nos sites des Alpes-Maritimes.<\/p>\n        <\/div>\n        <ol class=\"ail-guide__takeaways-list\">\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">1<\/span>\n            <div>\n              <h4>Formations au autonomie en vol<\/h4>\n              <p>Moniteurs dipl\u00f4m\u00e9s d'\u00c9tat (<strong>DEJEPS<\/strong> et BEES), mat\u00e9riel homologu\u00e9 r\u00e9vis\u00e9 par Aerotech, <strong>+6 000 vols<\/strong> sans accident grave. 5\/5 sur +1070 avis Google.<\/p>\n            <\/div>\n          <\/li>\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">2<\/span>\n            <div>\n              <h4>3 sites \u00e0 1h-1h30 du Var dans les Pr\u00e9alpes d'Azur<\/h4>\n              <p><a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a> (Pr\u00e9alpes), <a href=\"https:\/\/www.ailements.fr\/gourdon\/\">Gourdon<\/a> (thermique), <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-roquebrune-cap-martin\/\">Roquebrune Cap Martin<\/a> (bord de mer). Les meilleurs sites \u00e9cole de la r\u00e9gion.<\/p>\n            <\/div>\n          <\/li>\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">3<\/span>\n            <div>\n              <h4>5 stages d\u00e8s 260 \u20ac \u00b7 H\u00e9bergement possible<\/h4>\n              <p><strong>D\u00e9couverte 1j 260 \u20ac<\/strong>, Initiation 5j 700 \u20ac (\u2605 best-seller), Perfectionnement 5j 750 \u20ac, D\u00e9couverte du Sud 5j 800 \u20ac, Dune du Pyla 650 \u20ac (900 \u20ac avec la navette, sous r\u00e9serve de places). Logement partenaire \u00e0 Gr\u00e9oli\u00e8res pour les stages d'une semaine.<\/p>\n            <\/div>\n          <\/li>\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">4<\/span>\n            <div>\n              <h4>\u00c9cole familiale + communaut\u00e9 pilotes<\/h4>\n              <p>Pas une usine \u00e0 touristes. Sorties club, week-ends d\u00e9couverte, <strong>suivi post-formation<\/strong> pour vos premi\u00e8res sorties solo. Bienvenue dans la famille des pilotes du Sud.<\/p>\n            <\/div>\n          <\/li>\n        <\/ol>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/section>\n<!-- \"Envie de plus d'aventures\" g\u00e9r\u00e9 par module Elementor dynamique (articles connexes auto) -->\n<!-- footer g\u00e9r\u00e9 par Elementor \u2014 pas de footer ici -->\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d381518 e-flex e-con-boxed e-con e-parent\" data-id=\"d381518\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-acfe2a7 at-image-animation at-animation-image-none at-none elementor-widget elementor-widget-image\" data-id=\"acfe2a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/plugins\/elementor\/assets\/images\/placeholder.png\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>&lt;!&#8211; ============================================================ WIDGET \u2014 \u00c9cole de Parapente Var \u00b7 Ail\u00e9ments URL : [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21964,"parent":2228,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-29295","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/29295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/comments?post=29295"}],"version-history":[{"count":640,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/29295\/revisions"}],"predecessor-version":[{"id":87658,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/29295\/revisions\/87658"}],"up":[{"embeddable":true,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/2228"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/media\/21964"}],"wp:attachment":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/media?parent=29295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}