{"id":28217,"date":"2025-12-17T19:27:43","date_gmt":"2025-12-17T18:27:43","guid":{"rendered":"https:\/\/www.ailements.fr\/?page_id=28217"},"modified":"2026-10-20T12:41:53","modified_gmt":"2026-10-20T11:41:53","slug":"ecole-parapente-paca","status":"publish","type":"page","link":"https:\/\/www.ailements.fr\/en\/courses\/paragliding-school-paca\/","title":{"rendered":"Paragliding School Alpes-Maritimes &amp; PACA: FFVL Training"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"28217\" class=\"elementor elementor-28217\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a43d09e e-con-full e-flex e-con e-parent\" data-id=\"a43d09e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-af59003 elementor-widget elementor-widget-html\" data-id=\"af59003\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\nWIDGET \u2014 \u00c9cole de Parapente PACA \u00b7 Ail\u00e9ments\nURL : https:\/\/www.ailements.fr\/stages\/ecole-parapente-paca\/\nTYPE: PAGE (post_type=page) parent \/stages\/\nGSC 28j : 1 120 imp \u00b7 10 clics \u00b7 CTR 0,9 %\nFocus KW : \u00e9cole <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/\"   title=\"\ud83c\udfe0 HOMEPAGE\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139316\">parapente PACA<\/a>\nTitle SEO : \u00c9cole Parapente PACA | Stages FFVL Brevet pilote\nH1 pr\u00e9serv\u00e9 : \"\u00c9cole de Parapente PACA dans les Alpes-Maritimes\"\n\nDIFF\u00c9RENCES vs ecole-parapente-nice :\n- R\u00e9gion PACA enti\u00e8re (pas que Nice)\n- 4 sites de vol (ajout Col de Bleyne 1 650 m)\n- Villes desservies \u00e9largies : Nice, Cannes, Antibes, Grasse, Monaco, Vence, Marseille\n- areaServed schema : PACA + 06 + 83 + 13\n- FAQ adapt\u00e9e PACA\n- Widget STAGES IDENTIQUE Nice (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 en PACA ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Notre \u00e9cole Ail\u00e9ments est bas\u00e9e \u00e0 Gr\u00e9oli\u00e8res dans les Alpes-Maritimes (06620), au c\u0153ur du Parc Naturel R\u00e9gional des Pr\u00e9alpes d'Azur, en r\u00e9gion PACA. Nous rayonnons sur toute la PACA : Nice 45 min, Cannes 50 min, Grasse 30 min, Antibes 50 min, Monaco 1h10, Marseille 2h15.\"}},\n    {\"@type\":\"Question\",\"name\":\"Pourquoi choisir une \u00e9cole de parapente en PACA ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"La r\u00e9gion PACA offre des conditions exceptionnelles : plus de 250 jours volables par an gr\u00e2ce au climat m\u00e9diterran\u00e9en, effets thermiques mer-montagne uniques, d\u00e9nivel\u00e9s importants (1 000 m \u00e0 Gr\u00e9oli\u00e8res), panoramas Alpes-M\u00e9diterran\u00e9e incomparables, proximit\u00e9 Nice et C\u00f4te d'Azur.\"}},\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, mat\u00e9riel homologu\u00e9 (voiles \u00e9cole Aerotech A1) et \u00e9quipements aux normes.\"}},\n    {\"@type\":\"Question\",\"name\":\"Quels sites de vol couvrez-vous en PACA ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Quatre sites principaux : Gr\u00e9oli\u00e8res (1 800 m, site principal, Pr\u00e9alpes d'Azur), Gourdon (1 080 m, site thermique), Col de Bleyne (1 650 m, site d'altitude), Roquebrune Cap Martin (780 m, bord de mer). Site choisi selon m\u00e9t\u00e9o, niveau et objectifs p\u00e9dagogiques.\"}},\n    {\"@type\":\"Question\",\"name\":\"\u00c0 partir de quel \u00e2ge peut-on faire du parapente en PACA ?\",\"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 en PACA ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Quatre formules : 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 accessibles, groupe 7 max.\"}},\n    {\"@type\":\"Question\",\"name\":\"Quelle est la meilleure p\u00e9riode pour voler en PACA ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Printemps (mars-juin) : conditions id\u00e9ales, m\u00e9t\u00e9o stable. \u00c9t\u00e9 : vols matinaux privil\u00e9gi\u00e9s. Automne (sept-nov) : excellente p\u00e9riode, moins de monde, lumi\u00e8re dor\u00e9e. Hiver : journ\u00e9es ensoleill\u00e9es, vue mer et Alpes. Plus de 250 jours volables par an en PACA.\"}},\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. En PACA, plus de 250 jours volables par an. Analyse m\u00e9t\u00e9o quotidienne pour optimiser les sessions. 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 *\/\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\/* 4 sites de vol PACA - layout 2x2 *\/\n.ail-guide__cards-4{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:40px}\n@media (max-width:640px){.ail-guide__cards-4{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 *\/\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.8rem}\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 PACA<\/span>\n          <h1 class=\"ail-guide__h1\">\n            <span class=\"c-orange\">\u00c9cole de Parapente<\/span> <span class=\"c-bleu\">PACA<\/span> dans les <span class=\"c-kaki\">Alpes-Maritimes<\/span>\n          <\/h1>\n          <p class=\"ail-guide__lead\">\n            Ail\u00e9ments, votre <strong>\u00e9cole de parapente<\/strong> en r\u00e9gion PACA, bas\u00e9e \u00e0 Gr\u00e9oli\u00e8res (06). Stages d'initiation \u00e0 expert d\u00e8s 260 \u20ac, 4 sites Gr\u00e9oli\u00e8res \u00b7 Gourdon \u00b7 Col de Bleyne \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 de parapente PACA Alpes-Maritimes Gr\u00e9oli\u00e8res vol biplace C\u00f4te d'Azur\" 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=\"139317\">Stage parapente<\/a> \u00b7 PACA<\/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 Parapente PACA<\/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 PACA\">\n    <div class=\"ail-guide__wrap\">\n      <ul class=\"ail-guide__keyfacts\">\n        <li class=\"ail-guide__keyfact\"><span class=\"ail-guide__keyfact-label\">Base PACA<\/span><span class=\"ail-guide__keyfact-value\">Gr\u00e9oli\u00e8res \u00b7 06620<\/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\">4 sites de vol<\/span><span class=\"ail-guide__keyfact-value\">Gr\u00e9oli\u00e8res \u00b7 Gourdon \u00b7 Bleyne \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 en r\u00e9gion <strong>PACA<\/strong>, <strong>formations vers l'autonomie<\/strong>, bas\u00e9e \u00e0 Gr\u00e9oli\u00e8res dans les <strong>Alpes-Maritimes<\/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> du Sud.<\/p>\n          <p>Fond\u00e9e en 2013, Ail\u00e9ments est n\u00e9e de la passion du vol libre. Aujourd'hui \u00e9cole reconnue en PACA, notre \u00e9quipe rayonne sur les <a href=\"https:\/\/www.ailements.fr\/06-alpes-maritimes\/\">Alpes-Maritimes (06)<\/a> et le Var (83) au c\u0153ur du <strong>Parc Naturel des Pr\u00e9alpes d'Azur<\/strong>. Vues spectaculaires Alpes-M\u00e9diterran\u00e9e, conditions a\u00e9rologiques optimales, encadrement professionnel.<\/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 et vos objectifs. Centaines de pilotes form\u00e9s en PACA depuis 2013, compl\u00e9t\u00e9s par nos <a href=\"https:\/\/www.ailements.fr\/parapente\/bapteme\/\">bapt\u00eames de parapente<\/a> pour d\u00e9couvrir le vol libre sans engagement.<\/p>\n          <p><strong>Pour qui ?<\/strong> D\u00e9butants curieux, pilotes en progression, sportifs exp\u00e9riment\u00e9s. <strong>Quand venir ?<\/strong> +250 jours volables par an gr\u00e2ce au climat m\u00e9diterran\u00e9en. Antennes de l'\u00e9cole : <a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-nice\/\">\u00e9cole parapente Nice<\/a> et <a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-var\/\">\u00e9cole parapente Var<\/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 de parapente PACA 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 depuis 2013 -->\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 en r\u00e9gion PACA<\/h2>\n      <p class=\"ail-guide__intro-section\">Fond\u00e9e en 2013, Ail\u00e9ments est n\u00e9e de la passion du vol libre. Aujourd'hui \u00e9cole reconnue sur la C\u00f4te d'Azur et toute la PACA, avec des centaines de pilotes form\u00e9s et des milliers de bapt\u00eames r\u00e9alis\u00e9s.<\/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 Nice, Cannes, Grasse ou Marseille 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 Pr\u00e9alpes d'Azur<\/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 des Alpes \u00e0 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\">Une communaut\u00e9<\/div>\n          <h3 class=\"ail-guide__h3\">Plus qu'une \u00e9cole, une famille<\/h3>\n          <p>Sorties club r\u00e9guli\u00e8res, week-ends d\u00e9couverte des sites PACA, rencontres entre pilotes de toute la r\u00e9gion.<\/p>\n          <p>Partage de spots et astuces m\u00e9t\u00e9o locales. <strong>Suivi post-formation<\/strong> pour vos premi\u00e8res sorties solo. Bienvenue dans la famille.<\/p>\n        <\/article>\n      <\/div>\n\n      <!-- Cities served strip -->\n      <div class=\"ail-guide__cities\" aria-label=\"Villes desservies en PACA\">\n        <span class=\"ail-guide__city\">Nice <strong>45 min<\/strong><\/span>\n        <span class=\"ail-guide__city\">Cannes <strong>50 min<\/strong><\/span>\n        <span class=\"ail-guide__city\">Antibes <strong>50 min<\/strong><\/span>\n        <span class=\"ail-guide__city\">Grasse <strong>30 min<\/strong><\/span>\n        <span class=\"ail-guide__city\">Vence <strong>30 min<\/strong><\/span>\n        <span class=\"ail-guide__city\">Monaco <strong>1h10<\/strong><\/span>\n        <span class=\"ail-guide__city\">Marseille <strong>2h15<\/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 de vol libre du Sud.<\/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 PACA Gr\u00e9oli\u00e8res\" 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 PACA\" 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) -->\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-en-vol-1.webp\" alt=\"Stage Dune du Pyla : pilote sous sa voile de parapente sur la pente de sable de la dune\" loading=\"lazy\" width=\"1106\" height=\"1920\" style=\"object-position:50% 42%\"\/><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\"><a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/partenaires\/\"   title=\"Partenaires\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139318\">Logement<\/a>, 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 : 4 sites de d\u00e9collage PACA -->\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 PACA<\/span>\n      <h2 class=\"ail-guide__h2\" id=\"h2-sites\">4 sites de d\u00e9collage exceptionnels en PACA<\/h2>\n      <p class=\"ail-guide__intro-section\">Le site est choisi selon les conditions m\u00e9t\u00e9o, le niveau des \u00e9l\u00e8ves et les objectifs p\u00e9dagogiques. Une diversit\u00e9 a\u00e9rologique rare en France, entre Alpes et M\u00e9diterran\u00e9e.<\/p>\n\n      <div class=\"ail-guide__cards-4\">\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 45 min de Nice. <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 1 000 m, vue mer et montagne.<\/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 50 min de Nice. 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. Class\u00e9 Plus Beaux Villages de France.<\/p>\n        <\/article>\n\n        <article class=\"ail-guide__card ail-guide__card--kaki\">\n          <div class=\"ail-guide__card-tag\">Site d'altitude \u00b7 1 650 m<\/div>\n          <h3 class=\"ail-guide__h3\">Col de Bleyne<\/h3>\n          <p>Site d'altitude pour <strong>conditions a\u00e9rologiques vari\u00e9es<\/strong>. Id\u00e9al pour explorer diff\u00e9rentes ambiances de vol en stage perfectionnement.<\/p>\n          <p>D\u00e9collage en pleine montagne, paysages pr\u00e9alpins, alternative parfaite quand Gr\u00e9oli\u00e8res est satur\u00e9 ou non volable.<\/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 35 min de Nice. 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 (brise de mer).<\/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 PACA, 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<\/h2>\n      <p class=\"ail-guide__intro-section\">4 points essentiels pour pr\u00e9parer votre stage en PACA en toute s\u00e9r\u00e9nit\u00e9.<\/p>\n\n      <div class=\"ail-guide__tips\">\n        <div class=\"ail-guide__tip\">\n          <h4>Mat\u00e9riel fourni<\/h4>\n          <p>Voile homologu\u00e9e, sellette avec parachute de secours, casque, radio. Mat\u00e9riel r\u00e9vis\u00e9 par <strong>Aerotech<\/strong>. Venir avec chaussures ferm\u00e9es + veste.<\/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 en PACA gr\u00e2ce au climat m\u00e9diterran\u00e9en.<\/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> en PACA : 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 PACA 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 sur notre \u00e9cole PACA<\/h2>\n          <p style=\"margin-top:12px;color:var(--c-dark);font-size:1.02rem\">Acc\u00e8s depuis les villes PACA, licence FFVL, sites de vol, tarifs, p\u00e9riodes, 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 en PACA ?<\/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 <strong>Alpes-Maritimes (06620)<\/strong>, au c\u0153ur du Parc Naturel R\u00e9gional des Pr\u00e9alpes d'Azur, en r\u00e9gion PACA.<\/p>\n              <p>Nous rayonnons sur toute la PACA : <strong>Nice<\/strong> 45 min \u00b7 <strong>Cannes<\/strong> 50 min \u00b7 <strong>Grasse<\/strong> 30 min \u00b7 <strong>Antibes<\/strong> 50 min \u00b7 <strong>Monaco<\/strong> 1h10 \u00b7 <strong>Marseille<\/strong> 2h15.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Pourquoi choisir une \u00e9cole de parapente en PACA ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p>La r\u00e9gion PACA offre des conditions exceptionnelles : <strong>plus de 250 jours volables par an<\/strong> gr\u00e2ce au climat m\u00e9diterran\u00e9en, effets thermiques mer-montagne uniques, d\u00e9nivel\u00e9s importants (1 000 m \u00e0 Gr\u00e9oli\u00e8res).<\/p>\n              <p>Panoramas Alpes-M\u00e9diterran\u00e9e incomparables, proximit\u00e9 Nice et C\u00f4te d'Azur, microclimats nombreux pour s'adapter \u00e0 votre niveau.<\/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>. Pour les \u00e9l\u00e8ves visant l'autonomie : licence FFVL obligatoire.<\/p>\n            <\/div>\n          <\/details>\n\n          <details class=\"ail-guide__faq-item\">\n            <summary>Quels sites de vol couvrez-vous en PACA ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p><strong>Quatre sites principaux<\/strong> : <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-greolieres\/\">Gr\u00e9oli\u00e8res<\/a> (1 800 m, site principal, Pr\u00e9alpes d'Azur), <a href=\"https:\/\/www.ailements.fr\/gourdon\/\">Gourdon<\/a> (1 080 m, site thermique).<\/p>\n              <p><strong>Col de Bleyne<\/strong> (1 650 m, site d'altitude), <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-roquebrune-cap-martin\/\">Roquebrune Cap Martin<\/a> (780 m, bord de mer). Site choisi selon m\u00e9t\u00e9o, niveau et objectifs p\u00e9dagogiques.<\/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 en PACA ?<\/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). Poids maximum 90 kg pour les vols biplaces. 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>Combien co\u00fbte un stage de parapente en PACA ?<\/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 accessibles pour une \u00e9cole de parapente, groupe 7 max, ambiance familiale. <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>Quelle est la meilleure p\u00e9riode pour voler en PACA ?<\/summary>\n            <div class=\"ail-guide__faq-item-answer\">\n              <p><strong>Printemps (mars-juin)<\/strong> : conditions id\u00e9ales, m\u00e9t\u00e9o stable. <strong>\u00c9t\u00e9<\/strong> : vols matinaux privil\u00e9gi\u00e9s. <strong>Automne (sept-nov)<\/strong> : excellente p\u00e9riode, moins de monde, lumi\u00e8re dor\u00e9e. <strong>Hiver<\/strong> : journ\u00e9es ensoleill\u00e9es, vue mer et Alpes.<\/p>\n              <p><strong>Plus de 250 jours volables par an<\/strong> en PACA gr\u00e2ce au climat m\u00e9diterran\u00e9en.<\/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>.<\/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>En PACA, plus de 250 jours volables par an. Analyse m\u00e9t\u00e9o quotidienne pour optimiser les sessions.<\/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. Formation de centaines de pilotes PACA 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 PACA<\/h2>\n          <p style=\"margin-top:12px;color:var(--c-dark);font-size:1.02rem\">4 raisons pour lesquelles des centaines de pilotes en PACA nous font confiance depuis 2013.<\/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> r\u00e9alis\u00e9s 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>5 stages d\u00e8s 260 \u20ac \u00b7 du d\u00e9butant au pilote autonome<\/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). Tarifs accessibles, groupe 7 max.<\/p>\n            <\/div>\n          <\/li>\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">3<\/span>\n            <div>\n              <h4>4 sites de vol en PACA \u00b7 Alpes & M\u00e9diterran\u00e9e<\/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), Col de Bleyne (altitude), <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-roquebrune-cap-martin\/\">Roquebrune Cap Martin<\/a> (bord de mer). Diversit\u00e9 a\u00e9rologique rare en France.<\/p>\n            <\/div>\n          <\/li>\n          <li class=\"ail-guide__takeaway\">\n            <span class=\"ail-guide__takeaway-num\">4<\/span>\n            <div>\n              <h4>+250 jours volables par an gr\u00e2ce au climat m\u00e9diterran\u00e9en<\/h4>\n              <p>Conditions exceptionnelles toute l'ann\u00e9e. Report gratuit en cas de m\u00e9t\u00e9o d\u00e9favorable. \u00c9cole familiale, suivi post-formation pour vos premi\u00e8res sorties solo en PACA.<\/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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>&lt;!&#8211; ============================================================ WIDGET \u2014 \u00c9cole de Parapente PACA \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-28217","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/28217","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=28217"}],"version-history":[{"count":1642,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/28217\/revisions"}],"predecessor-version":[{"id":87656,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/28217\/revisions\/87656"}],"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=28217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}