{"id":2228,"date":"2020-03-18T20:26:25","date_gmt":"2020-03-18T20:26:25","guid":{"rendered":"https:\/\/www.ailements.fr\/\/?page_id=2228"},"modified":"2026-10-20T12:39:30","modified_gmt":"2026-10-20T11:39:30","slug":"stages","status":"publish","type":"page","link":"https:\/\/www.ailements.fr\/en\/courses\/","title":{"rendered":"\ud83d\udcda INTERNSHIPS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2228\" class=\"elementor elementor-2228\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1050c05 e-con-full e-flex e-con e-parent\" data-id=\"1050c05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-00e5336 elementor-widget elementor-widget-html\" data-id=\"00e5336\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Krona+One&family=Nunito+Sans:wght@400;600;700;800&display=swap');\n.ail-stages,.ail-stages *,.ail-stages *::before,.ail-stages *::after{box-sizing:border-box;margin:0;padding:0}\n\n.ail-stages{\n  --ail-orange:#EC672C;\n  --ail-orange-hover:#d55a22;\n  --ail-dark:#101820;\n  --ail-kaki:#707455;\n  --ail-bleu:#ABC8CA;\n  --ail-marron:#9F8F73;\n  --ail-creme:#F4EFE6;\n  --ail-radius:10px;\n  font-family:'Nunito Sans',system-ui,sans-serif;\n  width:100%;\n  background:var(--ail-dark);\n  color:var(--ail-creme);\n  padding:56px 20px;\n  line-height:1.55;\n}\n\n\/* \u2550\u2550\u2550 HERO \u2550\u2550\u2550 *\/\n.ail-stages__hero{\n  max-width:1140px;\n  margin:0 auto 56px;\n  display:grid;\n  grid-template-columns:1.15fr 1fr;\n  gap:48px;\n  align-items:center;\n}\n.ail-stages__hero h1{\n  font-family:'Krona One',sans-serif;\n  font-size:clamp(28px,4.4vw,48px);\n  line-height:1.15;\n  color:var(--ail-creme);\n  margin-bottom:18px;\n  letter-spacing:.5px;\n}\n.ail-stages__hero h1 span{\n  display:block;\n  font-size:.62em;\n  margin-top:10px;\n  color:var(--ail-creme);\n  letter-spacing:.3px;\n}\n.ail-stages__hero h1 span b{color:var(--ail-orange);font-weight:400}\n.ail-stages__hero h1 span i{color:var(--ail-bleu);font-style:normal;font-weight:500;white-space:nowrap}\n.ail-stages__lede{\n  font-size:16px;\n  color:var(--ail-creme);\n  opacity:.85;\n  margin-bottom:22px;\n  max-width:540px;\n}\n.ail-stages__proof{\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n  margin-bottom:18px;\n}\n.ail-stages__proof span{\n  background:rgba(255,255,255,.06);\n  border:1px solid rgba(255,255,255,.1);\n  color:var(--ail-creme);\n  font-size:12px;\n  font-weight:700;\n  padding:7px 13px;\n  border-radius:999px;\n  letter-spacing:.2px;\n}\n.ail-stages__greviews{margin-bottom:24px}\n.ail-stages__greviews a{\n  color:var(--ail-creme);\n  text-decoration:none;\n  font-size:13px;\n  font-weight:700;\n  border-bottom:1px dashed rgba(244,239,230,.3);\n  padding-bottom:2px;\n}\n.ail-stages__greviews a:hover{color:var(--ail-orange);border-color:var(--ail-orange)}\n\n.ail-stages__hero-photo{\n  border-radius:var(--ail-radius);\n  overflow:hidden;\n  aspect-ratio:4\/5;\n  background:#1f2630;\n}\n.ail-stages__hero-photo img{width:100%;height:100%;object-fit:cover;display:block}\n\n\/* \u2550\u2550\u2550 SECTIONS \u2550\u2550\u2550 *\/\n.ail-stages__section{max-width:1140px;margin:0 auto 56px}\n.ail-stages__section-head{margin-bottom:28px}\n.ail-stages__section-eyebrow{\n  display:inline-block;\n  font-family:'Krona One',sans-serif;\n  font-size:11px;\n  letter-spacing:2.5px;\n  color:var(--ail-orange);\n  margin-bottom:10px;\n}\n.ail-stages__section h2{\n  font-family:'Krona One',sans-serif;\n  font-size:clamp(22px,3vw,32px);\n  color:var(--ail-creme);\n  line-height:1.25;\n  letter-spacing:.3px;\n  max-width:780px;\n}\n.ail-stages__section h2 i{color:var(--ail-bleu);font-style:normal;white-space:nowrap;font-weight:inherit}\n\n\/* \u2550\u2550\u2550 CARDS STAGES (pattern result__card) \u2550\u2550\u2550 *\/\n.ail-stages__grid{\n  display:grid;\n  grid-template-columns:repeat(2,1fr);\n  gap:22px;\n}\n.ail-stage-card{\n  background:#1a232d;\n  border:1px solid rgba(255,255,255,.07);\n  border-radius:var(--ail-radius);\n  overflow:hidden;\n  display:flex;\n  flex-direction:column;\n  transition:border-color .25s,transform .25s;\n}\n.ail-stage-card:hover{border-color:rgba(255,255,255,.18);transform:translateY(-2px)}\n\n.ail-stage-card__photo{\n  position:relative;\n  aspect-ratio:16\/9;\n  overflow:hidden;\n  background:#0f161d;\n}\n.ail-stage-card__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}\n.ail-stage-card:hover .ail-stage-card__photo img{transform:scale(1.04)}\n\n.ail-stage-card__body{padding:24px 22px;display:flex;flex-direction:column;flex-grow:1}\n.ail-stage-card__top{\n  display:flex;\n  justify-content:space-between;\n  align-items:baseline;\n  gap:14px;\n  margin-bottom:10px;\n}\n.ail-stage-card h3{\n  font-family:'Krona One',sans-serif;\n  font-size:19px;\n  color:var(--ail-creme);\n  line-height:1.25;\n  letter-spacing:.2px;\n}\n.ail-stage-card__price{\n  font-family:'Krona One',sans-serif;\n  font-size:22px;\n  color:var(--ail-orange);\n  line-height:1;\n  white-space:nowrap;\n}\n.ail-stage-card__sub{\n  font-size:12px;\n  color:var(--ail-creme);\n  opacity:.7;\n  margin-bottom:14px;\n  font-weight:600;\n  letter-spacing:.2px;\n}\n.ail-stage-card__desc{font-size:14px;color:var(--ail-creme);opacity:.88;margin-bottom:16px;flex-grow:1}\n.ail-stage-card__proof{\n  display:flex;\n  flex-wrap:wrap;\n  gap:6px;\n  margin-bottom:16px;\n  padding-bottom:16px;\n  border-bottom:1px solid rgba(255,255,255,.07);\n}\n.ail-stage-card__proof span{\n  background:rgba(236,103,44,.08);\n  border:1px solid rgba(236,103,44,.25);\n  color:var(--ail-creme);\n  font-size:11px;\n  font-weight:700;\n  padding:5px 10px;\n  border-radius:999px;\n  letter-spacing:.2px;\n}\n.ail-stage-card__greviews{font-size:12px;margin-bottom:16px}\n.ail-stage-card__greviews a{\n  color:var(--ail-creme);\n  opacity:.7;\n  text-decoration:none;\n  font-weight:700;\n}\n.ail-stage-card__greviews a:hover{opacity:1;color:var(--ail-orange)}\n.ail-stage-card__actions{display:flex;gap:8px;flex-wrap:wrap}\n\n\/* \u2550\u2550\u2550 5e FORMULE (Stage Dune du Pyla) : carte pleine largeur, photo \u00e0 gauche \u2014 pas de carte orpheline en fin de grille \u2550\u2550\u2550 *\/\n.ail-stage-card--wide{grid-column:1\/-1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}\n.ail-stage-card--wide .ail-stage-card__photo{aspect-ratio:auto;min-height:340px}\n.ail-stage-card--wide .ail-stage-card__photo img{position:absolute;inset:0;width:100%;height:100%;object-position:50% 42%}\n.ail-stage-card__badge{position:absolute;top:14px;left:14px;z-index:2;font-family:'Krona One',sans-serif;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;line-height:1.3;background:var(--ail-dark);color:var(--ail-orange);padding:7px 12px;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.35);max-width:calc(100% - 28px)}\n\/* Logo du partenaire Waggas School : SVG int\u00e9gr\u00e9 (symbole en haut de page), couleur cr\u00e8me de la charte *\/\n.ail-sprite{position:absolute;width:0;height:0;overflow:hidden}\n.ail-waggas-logo{display:block;fill:currentColor}\n.ail-stage-card__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:12px;background:rgba(16,24,32,.8);border:1px solid rgba(244,239,230,.16);box-shadow:0 6px 18px rgba(0,0,0,.35);color:var(--ail-creme)}\n.ail-stage-card__partner-label{font-family:'Krona One',sans-serif;font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ail-orange);line-height:1}\n.ail-stage-card__partner .ail-waggas-logo{width:96px;height:36px}\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.ail-stage-card__price small{display:block;font-family:'Nunito Sans',sans-serif;font-size:11px;font-weight:700;color:var(--ail-creme);opacity:.7;text-align:right;margin-top:6px;letter-spacing:.2px}\n.ail-stage-card__navette{margin:0 0 14px;padding:12px 14px;border-radius:var(--ail-radius);background:rgba(236,103,44,.12);border:1px solid rgba(236,103,44,.5);border-left:4px solid var(--ail-orange)}\n.ail-stage-card__navette-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px 12px;flex-wrap:wrap}\n.ail-stage-card__navette-label{font-family:'Krona One',sans-serif;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ail-orange);line-height:1.35}\n.ail-stage-card__navette-price{font-family:'Krona One',sans-serif;font-size:19px;color:var(--ail-orange);line-height:1;white-space:nowrap}\n.ail-stage-card__navette-price small{font-family:'Nunito Sans',sans-serif;font-size:11px;font-weight:700;color:var(--ail-creme);opacity:.75;margin-left:6px;letter-spacing:.2px}\n.ail-stage-card__navette .ail-stage-card__navette-txt{font-size:13px;color:var(--ail-creme);line-height:1.5;margin:6px 0 0}\n.ail-stage-card__navette .ail-stage-card__navette-txt b{color:var(--ail-creme);font-weight:800}\n@media (max-width:560px){\n  .ail-stage-card__partner{left:10px;bottom:10px;padding:7px 10px 8px;gap:5px;border-radius:10px}\n  .ail-stage-card__partner-label{font-size:8px;letter-spacing:1px}\n  .ail-stage-card__partner .ail-waggas-logo{width:80px;height:30px}\n}\n@media (max-width:900px){\n  .ail-stage-card--wide{display:flex}\n  .ail-stage-card--wide .ail-stage-card__photo{aspect-ratio:16\/9;min-height:0}\n}\n\/* tr\u00e8s petits \u00e9crans (\u2264 360 px) : le prix passe sous un titre long au lieu d'\u00eatre rogn\u00e9 (\u00ab Stage Perfectionnement \u00bb + 750\u20ac) *\/\n\/* jusqu'\u00e0 400 px le prix passe sous le titre : \u00ab Perfectionnement \u00bb est un mot trop long pour tenir \u00e0 c\u00f4t\u00e9 du prix (d\u00e9bordait de 13 px \u00e0 375 px, corrig\u00e9 le 18\/10\/2026) *\/\n@media (max-width:400px){.ail-stage-card__top{flex-wrap:wrap;row-gap:6px}.ail-stage-card__price small{display:inline;margin:0 0 0 8px;text-align:left}}\n\n\/* \u2550\u2550\u2550 \u00c9QUIPE \u2550\u2550\u2550 *\/\n.ail-stages__team{\n  display:grid;\n  grid-template-columns:repeat(2,1fr);\n  gap:20px;\n}\n.ail-team-card{\n  background:#1a232d;\n  border:1px solid rgba(255,255,255,.07);\n  border-radius:var(--ail-radius);\n  padding:24px 22px;\n  display:flex;\n  gap:18px;\n  align-items:center;\n}\n.ail-team-card__photo{\n  width:88px;height:88px;\n  border-radius:50%;\n  overflow:hidden;\n  flex-shrink:0;\n  background:#0f161d;\n  border:2px solid var(--ail-orange);\n}\n.ail-team-card__photo img{width:100%;height:100%;object-fit:cover;display:block}\n.ail-team-card h3{\n  font-family:'Krona One',sans-serif;\n  font-size:17px;\n  color:var(--ail-creme);\n  letter-spacing:.3px;\n  margin-bottom:4px;\n}\n.ail-team-card__role{\n  color:var(--ail-orange);\n  font-size:12px;\n  font-weight:800;\n  letter-spacing:.5px;\n  margin-bottom:8px;\n  text-transform:uppercase;\n}\n.ail-team-card p{font-size:13px;color:var(--ail-creme);opacity:.82;line-height:1.55}\n\n\/* \u2550\u2550\u2550 INFOS PRATIQUES (FAQ rapide) \u2550\u2550\u2550 *\/\n.ail-stages__infos{\n  display:grid;\n  grid-template-columns:repeat(4,1fr);\n  gap:18px;\n}\n.ail-info-card{\n  background:rgba(255,255,255,.03);\n  border:1px solid rgba(255,255,255,.07);\n  border-left:3px solid var(--ail-orange);\n  border-radius:var(--ail-radius);\n  padding:20px 18px;\n}\n.ail-info-card h3{\n  font-family:'Krona One',sans-serif;\n  font-size:13px;\n  color:var(--ail-creme);\n  letter-spacing:.3px;\n  margin-bottom:8px;\n}\n.ail-info-card p{font-size:13px;color:var(--ail-creme);opacity:.82;line-height:1.55}\n\/* Carte pleine largeur : evite la carte orpheline en fin de grille + met en avant le differenciant *\/\n.ail-info-card--full{\n  grid-column:1\/-1;\n  background:rgba(112,116,85,.20);\n  border-left:3px solid var(--ail-bleu);\n  display:grid;\n  grid-template-columns:minmax(150px,210px) 1fr;\n  gap:6px 22px;\n  align-items:start;\n}\n.ail-info-card--full h3{color:var(--ail-bleu);margin-bottom:0}\n.ail-info-card--full p{max-width:72ch;opacity:.9}\n@media (max-width:760px){\n  .ail-info-card--full{grid-template-columns:1fr}\n  .ail-info-card--full h3{margin-bottom:8px}\n}\n\n\/* \u2550\u2550\u2550 BOUTONS (pattern .ail-btn) \u2550\u2550\u2550 *\/\n.ail-btn{\n  display:inline-flex;\n  align-items:center;\n  gap:6px;\n  padding:11px 18px;\n  border-radius:var(--ail-radius);\n  font-family:'Krona One',sans-serif;\n  font-size:11px;\n  letter-spacing:.5px;\n  text-decoration:none;\n  transition:all .2s;\n  cursor:pointer;\n  border:1.5px solid transparent;\n}\n.ail-btn--primary{background:var(--ail-orange);color:#fff;border-color:var(--ail-orange)}\n.ail-btn--primary:hover{background:var(--ail-orange-hover);border-color:var(--ail-orange-hover)}\n.ail-btn--secondary{background:transparent;color:var(--ail-creme);border-color:rgba(255,255,255,.25)}\n.ail-btn--secondary:hover{border-color:var(--ail-creme)}\n.ail-btn--phone{background:transparent;color:var(--ail-orange);border-color:var(--ail-orange)}\n.ail-btn--phone:hover{background:rgba(236,103,44,.12);color:var(--ail-orange);border-color:var(--ail-orange-hover)}\n.ail-btn--phone svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}\n\n\/* \u2550\u2550\u2550 CTA FINAL \u2550\u2550\u2550 *\/\n.ail-stages__cta-final{\n  max-width:1140px;\n  margin:0 auto;\n  text-align:center;\n  padding:40px 28px;\n  background:linear-gradient(135deg,rgba(236,103,44,.1),rgba(171,200,202,.05));\n  border:1px solid rgba(255,255,255,.08);\n  border-radius:var(--ail-radius);\n}\n.ail-stages__cta-final h3{\n  font-family:'Krona One',sans-serif;\n  font-size:clamp(20px,2.5vw,26px);\n  color:var(--ail-creme);\n  margin-bottom:10px;\n  line-height:1.25;\n}\n.ail-stages__cta-final p{font-size:14px;color:var(--ail-creme);opacity:.82;margin-bottom:24px;max-width:540px;margin-left:auto;margin-right:auto}\n.ail-stages__cta-final .ail-cta-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}\n.ail-stages__cta-final .ail-btn{padding:14px 26px;font-size:12px}\n\n\/* \u2550\u2550\u2550 RESPONSIVE \u2550\u2550\u2550 *\/\n@media (max-width:900px){\n  .ail-stages__hero{grid-template-columns:1fr;gap:28px}\n  .ail-stages__hero-photo{aspect-ratio:16\/10;order:-1}\n  .ail-stages__grid{grid-template-columns:1fr}\n  .ail-stages__team{grid-template-columns:1fr}\n  .ail-stages__infos{grid-template-columns:1fr 1fr}\n}\n@media (max-width:560px){\n  .ail-stages{padding:36px 16px}\n  .ail-stages__infos{grid-template-columns:1fr}\n  .ail-stage-card__body{padding:20px 18px}\n  .ail-team-card{flex-direction:column;text-align:center;padding:22px 18px}\n  .ail-team-card__photo{width:80px;height:80px}\n}\n\n\/* Anti-spam tel \u2014 le href est inject\u00e9 par JS au runtime, jamais en HTML brut *\/\n<\/style>\n\n<section class=\"ail-stages\" aria-label=\"Stages parapente Ail\u00e9ments Gr\u00e9oli\u00e8res\">\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  <!-- \u2550\u2550\u2550 HERO \u2550\u2550\u2550 -->\n  <div class=\"ail-stages__hero\">\n    <div>\n      <h1>\n        Stage Parapente\n        <span>\n          <b>Apprenez \u00e0 voler<\/b>\n          dans les <i>Alpes-Maritimes<\/i>\n        <\/span>\n      <\/h1>\n      <p class=\"ail-stages__lede\">Du premier d\u00e9collage en pente-\u00e9cole jusqu'aux vols solo, notre \u00e9cole de parapente vous accompagne \u00e0 votre rythme. Quatre formules pour devenir pilote autonome sur les plus beaux sites des Pr\u00e9alpes d'Azur. Et contrairement \u00e0 la plupart des \u00e9coles, nos sessions tournent toute l'ann\u00e9e, hiver compris.<\/p>\n\n      <div class=\"ail-stages__proof\">\n        <span>Formations vers l'autonomie<\/span>\n        <span>Moniteurs dipl\u00f4m\u00e9s d'\u00c9tat<\/span>\n        <span>Groupes 7 max<\/span>\n        <span>Stages toute l'ann\u00e9e, hiver compris<\/span>\n        <span>Depuis 2013<\/span>\n      <\/div>\n\n      <div class=\"ail-stages__greviews\">\n        <a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a>\n      <\/div>\n\n      <a class=\"ail-btn ail-btn--primary\" href=\"#planning-stages\" style=\"padding:14px 26px;font-size:12px\">R\u00e9server mon stage &#8594;<\/a>\n    <\/div>\n\n    <div class=\"ail-stages__hero-photo\">\n      <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/12\/IMG_5148-scaled.jpg\" alt=\"Stage parapente \u00e0 Gr\u00e9oli\u00e8res avec l'\u00e9cole Ail\u00e9ments, Alpes-Maritimes\" loading=\"lazy\" width=\"2560\" height=\"1707\">\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550 5 STAGES \u2550\u2550\u2550 -->\n  <div class=\"ail-stages__section\">\n    <div class=\"ail-stages__section-head\">\n      <div class=\"ail-stages__section-eyebrow\">NOS FORMULES<\/div>\n      <h2>5 stages, du d\u00e9butant au pilote <i>autonome<\/i><\/h2>\n    <\/div>\n\n    <div class=\"ail-stages__grid\">\n\n      <!-- Stage D\u00e9couverte -->\n      <article class=\"ail-stage-card\">\n        <div class=\"ail-stage-card__photo\">\n          <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 sur 1 jour\" loading=\"lazy\" width=\"2050\" height=\"1538\">\n        <\/div>\n        <div class=\"ail-stage-card__body\">\n          <div class=\"ail-stage-card__top\">\n            <h3>Stage D\u00e9couverte<\/h3>\n            <div class=\"ail-stage-card__price\">260\u20ac<\/div>\n          <\/div>\n          <div class=\"ail-stage-card__sub\">1 jour \u00b7 D\u00e8s 12 ans \u00b7 Sans pr\u00e9requis<\/div>\n          <p class=\"ail-stage-card__desc\">Une journ\u00e9e pour tester avant de s'engager. Pack pente-\u00e9cole et vol biplace p\u00e9dagogique avec votre moniteur. Photos et vid\u00e9os de votre vol incluses (carte SD). Id\u00e9al pour valider votre envie de pilotage, d\u00e8s 12 ans et sans pr\u00e9requis.<\/p>\n          <div class=\"ail-stage-card__proof\">\n            <span>Mat\u00e9riel fourni<\/span>\n            <span>Moniteur DEJEPS<\/span>\n            <span>Biplace + photos\/vid\u00e9os<\/span>\n          <\/div>\n          <div class=\"ail-stage-card__greviews\"><a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a><\/div>\n          <div class=\"ail-stage-card__actions\">\n            <a href=\"#planning-stages\" class=\"ail-btn ail-btn--primary\">R\u00e9server ce stage &#8594;<\/a>\n          <\/div>\n        <\/div>\n      <\/article>\n\n      <!-- Stage Initiation -->\n      <article class=\"ail-stage-card\">\n        <div class=\"ail-stage-card__photo\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/enseignement.jpg\" alt=\"Stage Initiation parapente Gr\u00e9oli\u00e8res \u2014 premiers vols solo sur 5 jours\" loading=\"lazy\" width=\"1920\" height=\"1125\">\n        <\/div>\n        <div class=\"ail-stage-card__body\">\n          <div class=\"ail-stage-card__top\">\n            <h3>Stage Initiation<\/h3>\n            <div class=\"ail-stage-card__price\">700\u20ac<\/div>\n          <\/div>\n          <div class=\"ail-stage-card__sub\">5 jours \u00b7 D\u00e9butants motiv\u00e9s \u00b7 Premiers vols solo<\/div>\n          <div class=\"ail-stage-card__sub\" style=\"color:#EC672C;font-weight:700;margin-top:4px\">Format 5&nbsp;jours uniquement &#8212; la dur\u00e9e d'une vraie progression<\/div>\n          <div class=\"ail-stage-card__sub\" style=\"margin-top:3px;opacity:.85\">Licence FFVL obligatoire, non comprise (\u00e0 prendre aupr\u00e8s de la f\u00e9d\u00e9ration)<\/div>\n          <p class=\"ail-stage-card__desc\">Une semaine intensive pour d\u00e9couvrir l'activit\u00e9 et apprendre les bases. Th\u00e9orie compl\u00e8te, exercices en pente-\u00e9cole, briefings quotidiens et d\u00e9briefing vid\u00e9o apr\u00e8s chaque vol. Premiers vols solo en fin de semaine.<\/p>\n          <div class=\"ail-stage-card__proof\">\n            <span>Mat\u00e9riel fourni<\/span>\n            <span>D\u00e9briefing vid\u00e9o<\/span>\n            <span>Groupe 7 max<\/span>\n          <\/div>\n          <div class=\"ail-stage-card__greviews\"><a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a><\/div>\n          <div class=\"ail-next\" data-ailp-next=\"initiation\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n          <div class=\"ail-stage-card__actions\">\n            <a href=\"#planning-stages\" class=\"ail-btn ail-btn--primary\">R\u00e9server ce stage &#8594;<\/a>\n          <\/div>\n        <\/div>\n      <\/article>\n\n      <!-- Stage Perfectionnement -->\n      <article class=\"ail-stage-card\">\n        <div class=\"ail-stage-card__photo\">\n          <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 dans les Alpes-Maritimes\" loading=\"lazy\" width=\"2050\" height=\"1367\">\n        <\/div>\n        <div class=\"ail-stage-card__body\">\n          <div class=\"ail-stage-card__top\">\n            <h3>Stage Perfectionnement<\/h3>\n            <div class=\"ail-stage-card__price\">750\u20ac<\/div>\n          <\/div>\n          <div class=\"ail-stage-card__sub\">5 jours \u00b7 Apr\u00e8s l'initiation \u00b7 Vers l'autonomie<\/div>\n          <div class=\"ail-stage-card__sub\" style=\"color:#EC672C;font-weight:700;margin-top:4px\">Aussi en 3&nbsp;jours (450&nbsp;\u20ac)<\/div>\n          <div class=\"ail-stage-card__sub\" style=\"margin-top:3px;opacity:.85\">Avec votre propre mat\u00e9riel&nbsp;: &#8722;60&nbsp;\u20ac &middot; Licence FFVL non comprise<\/div>\n          <p class=\"ail-stage-card__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, lecture des ascendances, initiation cross-country et techniques d'atterrissage avanc\u00e9es. Th\u00e9orie avanc\u00e9e et d\u00e9briefing vid\u00e9o.<\/p>\n          <div class=\"ail-stage-card__proof\">\n            <span>Thermique<\/span>\n            <span>Suivi personnalis\u00e9<\/span>\n          <\/div>\n          <div class=\"ail-stage-card__greviews\"><a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a><\/div>\n          <div class=\"ail-next\" data-ailp-next=\"perfectionnement\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n          <div class=\"ail-stage-card__actions\">\n            <a href=\"#planning-stages\" class=\"ail-btn ail-btn--primary\">R\u00e9server ce stage &#8594;<\/a>\n          <\/div>\n        <\/div>\n      <\/article>\n\n      <!-- Stage D\u00e9couverte du Sud -->\n      <article class=\"ail-stage-card\">\n        <div class=\"ail-stage-card__photo\">\n          <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 PACA, Gr\u00e9oli\u00e8res, Gourdon, Roquebrune\" loading=\"lazy\" width=\"1538\" height=\"2050\">\n        <\/div>\n        <div class=\"ail-stage-card__body\">\n          <div class=\"ail-stage-card__top\">\n            <h3>Stage D\u00e9couverte du Sud<\/h3>\n            <div class=\"ail-stage-card__price\">800\u20ac<\/div>\n          <\/div>\n          <div class=\"ail-stage-card__sub\">5 jours \u00b7 Pilotes autonomes \u00b7 Tour des sites PACA<\/div>\n          <p class=\"ail-stage-card__desc\">D\u00e9couvrez les meilleurs sites de vol du sud : Gr\u00e9oli\u00e8res, Gourdon, Roquebrune Cap Martin. Vol montagne et bord de mer, th\u00e9orie adapt\u00e9e aux conditions locales et plan de vol personnalis\u00e9 chaque jour.<\/p>\n          <div class=\"ail-stage-card__proof\">\n            <span>Sites multi-spots<\/span>\n            <span>Conditions locales<\/span>\n            <span>Pilotes locaux<\/span>\n          <\/div>\n          <div class=\"ail-stage-card__greviews\"><a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a><\/div>\n          <div class=\"ail-next\" data-ailp-next=\"sud\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n          <div class=\"ail-stage-card__actions\">\n            <a href=\"#planning-stages\" class=\"ail-btn ail-btn--primary\">R\u00e9server ce stage &#8594;<\/a>\n          <\/div>\n        <\/div>\n      <\/article>\n\n      <!-- Stage Dune du Pyla (5e formule, partenariat exclusif Waggas School) : carte pleine largeur, photo \u00e0 gauche -->\n      <article class=\"ail-stage-card ail-stage-card--wide\">\n        <div class=\"ail-stage-card__photo\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2026\/10\/parapente-biplace-greolieres-en-vol-1.webp\" alt=\"Stage parapente \u00e0 la Dune du Pyla : pilote sous sa voile sur la pente de sable, avec la Waggas School\" loading=\"lazy\" width=\"1106\" height=\"1920\">\n          <span class=\"ail-stage-card__badge\">Nouveau<\/span>\n          <span class=\"ail-stage-card__partner\"><span class=\"ail-stage-card__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>\n        <\/div>\n        <div class=\"ail-stage-card__body\">\n          <div class=\"ail-stage-card__top\">\n            <h3>Stage Dune du Pyla<\/h3>\n            <div class=\"ail-stage-card__price\">650\u20ac<small>stage seul<\/small><\/div>\n          <\/div>\n          <div class=\"ail-stage-card__sub\">Une semaine \u00b7 D\u00e8s la sortie d'initiation<\/div>\n          <div class=\"ail-stage-card__navette\">\n            <div class=\"ail-stage-card__navette-head\"><span class=\"ail-stage-card__navette-label\">Navette depuis Gr\u00e9oli\u00e8res<\/span><span class=\"ail-stage-card__navette-price\">900&nbsp;\u20ac<small>stage + navette<\/small><\/span><\/div>\n            <p class=\"ail-stage-card__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          <div class=\"ail-stage-card__sub\" style=\"margin-top:3px;opacity:.85\">Avec votre propre voile \u00b7 logement, repas et licence FFVL non compris<\/div>\n          <p class=\"ail-stage-card__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. Cinq jours de sessions au sol pour ma\u00eetriser votre aile&nbsp;: gonflage face \u00e0 la voile, bords de fen\u00eatre et waggas pour les plus avanc\u00e9s, avec d\u00e9briefing vid\u00e9o personnalis\u00e9.<\/p>\n          <div class=\"ail-stage-card__proof\">\n            <span>Avec la Waggas School<\/span>\n            <span>10 pilotes max<\/span>\n            <span>D\u00e9briefing vid\u00e9o<\/span>\n          <\/div>\n          <div class=\"ail-stage-card__greviews\"><a href=\"https:\/\/maps.app.goo.gl\/Aqszz2ndCzKqWyuW9\" target=\"_blank\" rel=\"noopener\">\u2605\u2605\u2605\u2605\u2605 +1070 avis Google<\/a><\/div>\n          <div class=\"ail-next\" data-ailp-next=\"dune\" hidden><\/div>   <!-- prochaines dates, remplies par le planning -->\n          <div class=\"ail-stage-card__actions\">\n            <a href=\"#planning-stages\" class=\"ail-btn ail-btn--primary\" data-ailp-filter=\"dune\">R\u00e9server ce stage &#8594;<\/a>\n          <\/div>\n        <\/div>\n      <\/article>\n\n    <\/div>\n  <\/div>\n\n  <!-- PLANNING DES STAGES (dates & reservation) -->\n  <div class=\"ail-stages__section\">\n<section class=\"ail-plan\" 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 <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/parapente\/\" title=\"\ud83e\ude82 PARAPENTE\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139321\">premier vol<\/a> 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\n  <!-- \u2550\u2550\u2550 \u00c9QUIPE \u2550\u2550\u2550 -->\n  <div class=\"ail-stages__section\">\n    <div class=\"ail-stages__section-head\">\n      <div class=\"ail-stages__section-eyebrow\">L'\u00c9QUIPE<\/div>\n      <h2>Deux moniteurs dipl\u00f4m\u00e9s d'\u00c9tat, <i>une m\u00eame passion<\/i><\/h2>\n    <\/div>\n\n    <div class=\"ail-stages__team\">\n      <article class=\"ail-team-card\">\n        <div class=\"ail-team-card__photo\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/pierrot-noir-et-blanc.png\" alt=\"Pierrot, moniteur parapente DEJEPS chez Ail\u00e9ments \u00e0 Gr\u00e9oli\u00e8res\" loading=\"lazy\" width=\"647\" height=\"599\">\n        <\/div>\n        <div>\n          <h3>Pierrot<\/h3>\n          <div class=\"ail-team-card__role\">DEJEPS Vol Libre<\/div>\n          <p>Fondateur d'Ail\u00e9ments, fort de 19 ans d'exp\u00e9rience, il encadre bapt\u00eames et stages d'initiation. Sa p\u00e9dagogie patiente en fait le guide id\u00e9al pour vos premiers vols.<\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"ail-team-card\">\n        <div class=\"ail-team-card__photo\">\n          <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/PY-1-1.jpg\" alt=\"Pierre-Yves, moniteur BEES Vol Libre et expert cross-country chez Ail\u00e9ments\" loading=\"lazy\" width=\"1748\" height=\"1748\">\n        <\/div>\n        <div>\n          <h3>Pierre-Yves<\/h3>\n          <div class=\"ail-team-card__role\">BEES Vol Libre<\/div>\n          <p>31 ans de vol libre, expert en a\u00e9rologie et cross-country. Encadre les stages de perfectionnement et accompagne les pilotes vers l'autonomie totale.<\/p>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550 INFOS PRATIQUES \u2550\u2550\u2550 -->\n  <div class=\"ail-stages__section\">\n    <div class=\"ail-stages__section-head\">\n      <div class=\"ail-stages__section-eyebrow\">BON \u00c0 SAVOIR<\/div>\n      <h2>Tout ce qu'il faut savoir <i>avant de venir<\/i><\/h2>\n    <\/div>\n\n    <div class=\"ail-stages__infos\">\n      <div class=\"ail-info-card\">\n        <h3>Mat\u00e9riel fourni<\/h3>\n        <p>Voile \u00e9cole homologu\u00e9e (Aerotech A1), sellette, parachute de secours, casque et radio. Tout est inclus.<\/p>\n      <\/div>\n      <div class=\"ail-info-card\">\n        <h3>\u00c2ge & condition<\/h3>\n        <p>De 12 \u00e0 55 ans, avec autorisation parentale pour les mineurs. Poids entre 30 et 90 kg. Condition physique correcte demand\u00e9e. Au-del\u00e0 de 55 ans, appelez-nous avant de r\u00e9server&nbsp;: on valide ensemble.<\/p>\n      <\/div>\n      <div class=\"ail-info-card\">\n        <h3>M\u00e9t\u00e9o d\u00e9favorable<\/h3>\n        <p>Programme adapt\u00e9 (th\u00e9orie, exercices au sol) ou report gratuit. On ne vole jamais dans de mauvaises conditions.<\/p>\n      <\/div>\n      <div class=\"ail-info-card\">\n        <h3>Site principal<\/h3>\n        <p>Gr\u00e9oli\u00e8res (06620), au c\u0153ur du Parc des Pr\u00e9alpes d'Azur \u2014 45 min de Nice, 30 min de Grasse.<\/p>\n      <\/div>\n      <div class=\"ail-info-card ail-info-card--full\">\n        <h3>Stages toute l'ann\u00e9e, hiver compris<\/h3>\n        <p>Nos sessions ne s'arr\u00eatent pas \u00e0 l'automne&nbsp;: nous encadrons des stages toute l'ann\u00e9e, hiver compris, ce que tr\u00e8s peu d'\u00e9coles fran\u00e7aises proposent. Plus de dates disponibles, des groupes plus petits, et un programme toujours adapt\u00e9 aux conditions du jour.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550 CTA FINAL \u2550\u2550\u2550 -->\n  <div class=\"ail-stages__cta-final\">\n    <h3>Pr\u00eat \u00e0 apprendre \u00e0 voler ?<\/h3>\n    <p>Rejoignez l'\u00e9cole Ail\u00e9ments \u00e0 Gr\u00e9oli\u00e8res&nbsp;: choisissez votre session dans le planning et inscrivez-vous en ligne, on vous rappelle ensuite pour faire le point sur vos objectifs.<\/p>\n    <div class=\"ail-cta-buttons\">\n      <a class=\"ail-btn ail-btn--primary\" href=\"#planning-stages\">R\u00e9server un stage &#8594;<\/a>\n      <a class=\"ail-btn ail-btn--secondary\" href=\"\/bon-cadeau\/\">Offrir un bon cadeau<\/a>\n      <a class=\"ail-btn ail-btn--phone ail-tel\" data-p=\"06\" data-m=\"87 68\" data-s=\"71 90\" aria-label=\"Appelez-nous pour un conseil sur le choix du stage\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6.6 10.8c1.4 2.8 3.8 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1-9.4 0-17-7.6-17-17 0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1L6.6 10.8z\"\/><\/svg>Conseil sur le choix du stage<\/a>\n    <\/div>\n  <\/div>\n\n<\/section>\n\n<script>\n\/\/ Reconstitution tel anti-spam (DOM uniquement, jamais en HTML brut)\ndocument.querySelectorAll('.ail-stages .ail-tel').forEach(function(el){\n  var p = el.getAttribute('data-p'), m = el.getAttribute('data-m'), s = el.getAttribute('data-s');\n  if(p && m && s){ el.setAttribute('href', 'tel:+33' + (p.replace(\/^0\/,'')) + m.replace(\/ \/g,'') + s.replace(\/ \/g,'')); }\n});\n<\/script>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SECTIONS SEO STAGES \u2014 ajout\u00e9es SOUS le widget stage (.ail-stages)\n     Namespace .ail-sts \/ .ail-sts-faq totalement isol\u00e9 (design clon\u00e9 du bon-cadeau .ail-bcs valid\u00e9)\n     Contenu repris MOT POUR MOT du live https:\/\/www.<a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/contact\/\" title=\"Contact\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139320\">ailements<\/a>.fr\/stages\/\n     RankMath = ma\u00eetre du schema (Product+Offer+Review) \u2192 ICI : aucun microdata, SEUL JSON-LD = FAQPage\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n\n<!-- \u2500\u2500\u2500 JSON-LD : FAQPage (seul schema autoris\u00e9 \u2014 RankMath ne le g\u00e9n\u00e8re pas) \u2500\u2500\u2500 -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Quels stages proposez-vous ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Quatre formules : Stage D\u00e9couverte (1 jour, 260\u20ac), Stage Initiation (5 jours, 700\u20ac \u2014 format 5 jours uniquement), Stage Perfectionnement (5 jours 750\u20ac, aussi 3 jours 450\u20ac, remise de 60\u20ac avec votre propre mat\u00e9riel) et Stage D\u00e9couverte du Sud (5 jours, 800\u20ac), plus le stage Dune du Pyla avec la Waggas School (une semaine, 650\u20ac le stage seul ou 900\u20ac avec la navette depuis Gr\u00e9oli\u00e8res, sous r\u00e9serve de places disponibles). Licence FFVL obligatoire, non comprise dans le prix, \u00e0 prendre directement aupr\u00e8s de la f\u00e9d\u00e9ration. Sessions toute l'ann\u00e9e, hiver compris.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Proposez-vous des stages de parapente en hiver ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"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      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Faut-il une exp\u00e9rience pr\u00e9alable ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Non pour les stages D\u00e9couverte et Initiation, ils sont faits pour les d\u00e9butants. Le stage Perfectionnement est la suite du stage initiation ; la D\u00e9couverte du Sud demande une autonomie compl\u00e8te au d\u00e9collage et \u00e0 l'atterrissage.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Comment se d\u00e9roule un stage d'initiation ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Une semaine compl\u00e8te alternant cours th\u00e9oriques (a\u00e9rologie, m\u00e9t\u00e9o, s\u00e9curit\u00e9) et pratique (pente-\u00e9cole puis grands vols). Vous r\u00e9alisez vos premiers vols solo, encadr\u00e9s, en fin de semaine.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Le mat\u00e9riel est-il fourni ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Oui, tout le mat\u00e9riel est fourni : voile, sellette, parachute de secours, casque, radio. Vous n'avez besoin que de v\u00eatements adapt\u00e9s et de bonnes chaussures. Seule exception : le stage Dune du Pyla, o\u00f9 chacun vient avec sa propre voile.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"\u00c0 partir de quel \u00e2ge peut-on faire un stage ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"De 12 \u00e0 55 ans, avec une autorisation parentale pour les mineurs (au-del\u00e0 de 55 ans, on valide ensemble par t\u00e9l\u00e9phone). Il faut peser entre 30 et 90 kg.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"O\u00f9 se d\u00e9roulent les stages ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Principalement \u00e0 Gr\u00e9oli\u00e8res dans les Pr\u00e9alpes d'Azur, \u00e0 45 min de Nice. D'autres sites (Gourdon, Roquebrune) sont utilis\u00e9s selon les conditions et votre niveau.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Que se passe-t-il si la m\u00e9t\u00e9o est mauvaise ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Le programme est adapt\u00e9 : th\u00e9orie, exercices au sol, ou report de session. On ne vole jamais dans de mauvaises conditions.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Peut-on faire un stage de parapente en habitant Nice ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Bien s\u00fbr ! Notre \u00e9cole de parapente est \u00e0 45 min de Nice, ce qui en fait un spot id\u00e9al pour progresser en vol libre pr\u00e8s de chez vous. Notre \u00e9cole de parapente Nice vous accompagne jusqu'aux premiers vols solo, avec des moniteurs dipl\u00f4m\u00e9s d'\u00c9tat qui vous accompagnent du brevet de pilote \u00e0 l'autonomie compl\u00e8te.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"O\u00f9 faire un stage de parapente en r\u00e9gion PACA ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"L'\u00e9cole de parapente PACA Ail\u00e9ments est situ\u00e9e \u00e0 Gr\u00e9oli\u00e8res, au pied du Cheiron dans les Pr\u00e9alpes d'Azur. C'est l'un des meilleurs sites de vol libre de la C\u00f4te d'Azur pour apprendre le parapente : pente-\u00e9cole accessible, conditions a\u00e9rologiques vari\u00e9es et moniteurs dipl\u00f4m\u00e9s d'\u00c9tat sur place.\"\n      }\n    }\n  ]\n}\n<\/script>\n\n<!-- \u2500\u2500\u2500 STYLES SECTIONS (clone .ail-bcs \u2192 .ail-sts, namespace isol\u00e9) \u2500\u2500\u2500 -->\n<style data-no-optimize=\"1\">\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Krona+One&family=Nunito+Sans:wght@400;500;600;700;800;900&display=swap');\n.ail-sts,.ail-sts *,.ail-sts *::before,.ail-sts *::after{box-sizing:border-box;margin:0;padding:0}\n.ail-sts{--ail-orange:#EC672C;--ail-orange-hover:#d55a22;--ail-orange-deep:#b35017;--ail-dark:#101820;--ail-dark-2:#1a232d;--ail-kaki:#707455;--ail-marron:#9F8F73;--ail-creme:#F4EFE6;--ail-sable:#EBE6E0;--ail-radius:12px;font-family:'Nunito Sans',system-ui,sans-serif;width:100%;font-size:17px;line-height:1.65}\n.ail-sts__section{padding:clamp(48px,6vw,84px) clamp(16px,4vw,48px);position:relative;overflow:hidden}\n.ail-sts__section--marron{background:var(--ail-marron);color:var(--ail-dark)}\n.ail-sts__section--kaki{background:var(--ail-kaki);color:var(--ail-creme)}\n.ail-sts__section--dark{background:var(--ail-dark);color:var(--ail-creme)}\n.ail-sts__wrap{max-width:1180px;margin:0 auto;position:relative;z-index:1}\n.ail-sts__head{text-align:center;max-width:820px;margin:0 auto clamp(28px,3.5vw,44px)}\n.ail-sts__kicker{display:inline-flex;align-items:center;gap:11px;font-family:'Krona One',sans-serif !important;font-size:clamp(.64rem,1vw,.76rem);letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;padding:0;background:none;border:none;box-shadow:none}\n.ail-sts__kicker::before{content:'';width:28px;height:3px;border-radius:2px;background:var(--ail-orange);flex-shrink:0}\n.ail-sts__section--marron .ail-sts__kicker{color:var(--ail-dark) !important}\n.ail-sts__section--kaki .ail-sts__kicker,.ail-sts__section--dark .ail-sts__kicker{color:var(--ail-creme) !important}\n.ail-sts h2{font-family:'Krona One',sans-serif !important;font-weight:500 !important;font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.2;letter-spacing:-.02em;margin-bottom:18px}\n.ail-sts__section--marron h2{color:var(--ail-dark) !important}\n.ail-sts__section--dark h2,.ail-sts__section--kaki h2{color:var(--ail-creme) !important}\n.ail-sts h3{font-family:'Krona One',sans-serif !important;font-weight:500 !important;font-size:clamp(1.05rem,1.8vw,1.3rem);line-height:1.3;margin-bottom:10px}\n.ail-sts__section--marron h3{color:var(--ail-dark) !important}\n.ail-sts__section--dark h3,.ail-sts__section--kaki h3{color:var(--ail-creme) !important}\n.ail-sts p{margin-bottom:14px;font-weight:500}.ail-sts p:last-child{margin-bottom:0}\n.ail-sts strong{font-weight:800}\n.ail-sts a{font-weight:700;text-decoration:none;border-bottom:1.5px solid transparent;transition:border-color .2s}\n.ail-sts__section--marron a{color:var(--ail-orange-deep)}.ail-sts__section--marron a:hover{border-color:var(--ail-orange-deep)}\n.ail-sts__section--dark a,.ail-sts__section--kaki a{color:var(--ail-orange)}.ail-sts__section--dark a:hover,.ail-sts__section--kaki a:hover{border-color:var(--ail-orange)}\n.ail-sts__lead{font-size:clamp(1.02rem,1.6vw,1.15rem);font-weight:600;line-height:1.7}\n\/* grilles args \/ \u00e9tapes *\/\n.ail-sts__grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,22px);margin-top:24px}\n@media(max-width:860px){.ail-sts__grid3{grid-template-columns:repeat(2,1fr)}}\n@media(max-width:560px){.ail-sts__grid3{grid-template-columns:1fr}}\n.ail-sts__arg{border-radius:var(--ail-radius);padding:clamp(18px,2vw,24px)}\n.ail-sts__section--kaki .ail-sts__arg{background:rgba(16,24,32,.13);border:1px solid rgba(244,239,230,.13);box-shadow:none}\n.ail-sts__section--marron .ail-sts__arg{background:rgba(16,24,32,.06);border:1px solid rgba(16,24,32,.16);box-shadow:none}\n.ail-sts__section--dark .ail-sts__arg{background:var(--ail-dark-2);border:1px solid rgba(244,239,230,.1)}\n.ail-sts__arg h3{margin-bottom:6px}\n.ail-sts__arg p{font-size:.94rem;margin-bottom:0}\n.ail-sts__section--dark .ail-sts__arg p,.ail-sts__section--kaki .ail-sts__arg p{color:rgba(244,239,230,.85)}\n.ail-sts__section--marron .ail-sts__arg p{color:rgba(16,24,32,.8)}\n.ail-sts__section--marron .ail-sts__arg strong{color:var(--ail-dark)}\n\/* \u00e9tapes num\u00e9rot\u00e9es *\/\n.ail-sts__step-no{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--ail-orange);color:var(--ail-creme);font-family:'Krona One',sans-serif;font-size:.86rem;margin-bottom:12px;flex-shrink:0}\n\/* listes \u00e9quipement (sur kaki) *\/\n.ail-sts__eq{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.2vw,22px);margin-top:24px}\n@media(max-width:720px){.ail-sts__eq{grid-template-columns:1fr}}\n.ail-sts__eqcard{background:rgba(16,24,32,.13);border:1px solid rgba(244,239,230,.13);border-radius:var(--ail-radius);padding:clamp(18px,2vw,24px);box-shadow:none}\n.ail-sts__list{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:6px}\n.ail-sts__list li{position:relative;padding-left:22px;font-size:.95rem;color:rgba(244,239,230,.88);font-weight:500}\n.ail-sts__list li::before{content:'\\2713';position:absolute;left:0;top:1px;color:var(--ail-orange);font-weight:800}\n.ail-sts__meteo{margin-top:24px;background:rgba(16,24,32,.13);border:1px solid rgba(244,239,230,.13);border-left:3px solid var(--ail-orange);border-radius:var(--ail-radius);padding:clamp(18px,2vw,24px)}\n.ail-sts__meteo h3{margin-bottom:8px}\n.ail-sts__meteo p{font-size:.96rem;color:rgba(244,239,230,.88);margin-bottom:0}\n\/* teaser bon cadeau (occasions list, sur dark) *\/\n.ail-sts__gift{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,4vw,52px);align-items:center}\n@media(max-width:860px){.ail-sts__gift{grid-template-columns:1fr;gap:clamp(22px,4vw,30px)}}\n.ail-sts__giftmedia{border-radius:var(--ail-radius);overflow:hidden;aspect-ratio:4\/3;box-shadow:0 18px 44px -20px rgba(16,24,32,.6);background:var(--ail-dark-2)}\n.ail-sts__giftmedia img{width:100%;height:100%;object-fit:cover;display:block}\n.ail-sts__occ{list-style:none;display:flex;flex-direction:column;gap:10px;margin:18px 0 0}\n.ail-sts__occ li{display:flex;gap:12px;align-items:flex-start;background:rgba(244,239,230,.05);border:1px solid rgba(244,239,230,.12);border-radius:var(--ail-radius);padding:13px 17px;box-shadow:none}\n.ail-sts__occ li::before{content:'\\2605';color:var(--ail-orange);font-size:1rem;flex-shrink:0;line-height:1.5}\n.ail-sts__occ span{color:rgba(244,239,230,.9);font-weight:500;font-size:.96rem}\n.ail-sts__occ strong{color:var(--ail-creme)}\n.ail-sts__cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}\n.ail-sts__cta{display:inline-flex;align-items:center;gap:9px;padding:15px 30px;border-radius:var(--ail-radius);font-family:'Krona One',sans-serif !important;font-size:clamp(.78rem,1.05vw,.88rem);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1.5px solid var(--ail-orange);transition:all .25s}\n.ail-sts__cta--primary{background:var(--ail-orange);color:var(--ail-creme) !important}\n.ail-sts__cta--primary:hover{background:var(--ail-orange-hover);border-color:var(--ail-orange-hover);transform:translateY(-2px);box-shadow:0 8px 22px rgba(236,103,44,.4)}\n.ail-sts__cta--primary::after{content:'\\2192'}\n\/* cards sites de vol (sur dark) *\/\n.ail-sts__cluster{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.5vw,26px);margin-top:30px}\n@media(max-width:860px){.ail-sts__cluster{grid-template-columns:1fr}}\n.ail-sts__cl-card{background:var(--ail-dark-2);border:1px solid rgba(244,239,230,.08);border-radius:var(--ail-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,border-color .25s}\n.ail-sts__cl-card:hover{transform:translateY(-4px);border-color:rgba(236,103,44,.35)}\n.ail-sts__cl-img{aspect-ratio:16\/10;overflow:hidden;background:var(--ail-dark)}\n.ail-sts__cl-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}\n.ail-sts__cl-card:hover .ail-sts__cl-img img{transform:scale(1.05)}\n.ail-sts__cl-body{padding:clamp(18px,2.2vw,26px);display:flex;flex-direction:column;flex:1;color:var(--ail-creme)}\n.ail-sts__cl-body h3{color:var(--ail-creme) !important;margin-bottom:10px}\n.ail-sts__cl-body>p{font-size:.95rem;color:rgba(244,239,230,.82);margin-bottom:14px}\n.ail-sts__cl-list{list-style:none;display:flex;flex-direction:column;gap:7px;margin-top:auto}\n.ail-sts__cl-list li{font-size:.88rem;color:rgba(244,239,230,.88);padding-left:20px;position:relative;font-weight:600}\n.ail-sts__cl-list li::before{content:'\\2605';position:absolute;left:0;color:var(--ail-orange)}\n<\/style>\n\n<!-- \u2500\u2500\u2500 1. COMMENT SE D\u00c9ROULE UN STAGE (marron \u00b7 5 \u00e9tapes) \u2500\u2500\u2500 -->\n<section class=\"ail-sts ail-sts__section ail-sts__section--marron\" aria-label=\"Le d\u00e9roulement type d'un stage de parapente\">\n  <div class=\"ail-sts__wrap\">\n    <div class=\"ail-sts__head\">\n      <span class=\"ail-sts__kicker\">Le d\u00e9roulement type d'un stage<\/span>\n      <h2>Comment se d\u00e9roule un stage&nbsp;?<\/h2>\n    <\/div>\n    <div class=\"ail-sts__grid3\">\n      <div class=\"ail-sts__arg\">\n        <span class=\"ail-sts__step-no\">1<\/span>\n        <h3>Accueil et briefing<\/h3>\n        <p>Rendez-vous \u00e0 Gr\u00e9oli\u00e8res. Pr\u00e9sentation du programme, v\u00e9rification des conditions m\u00e9t\u00e9orologiques, distribution du mat\u00e9riel.<\/p>\n      <\/div>\n      <div class=\"ail-sts__arg\">\n        <span class=\"ail-sts__step-no\">2<\/span>\n        <h3>Cours th\u00e9oriques<\/h3>\n        <p>Avant chaque session&nbsp;: m\u00e9canique de vol, a\u00e9rologie, m\u00e9t\u00e9o et s\u00e9curit\u00e9. La th\u00e9orie est indispensable pour comprendre et progresser.<\/p>\n      <\/div>\n      <div class=\"ail-sts__arg\">\n        <span class=\"ail-sts__step-no\">3<\/span>\n        <h3>Exercices en pente-\u00e9cole<\/h3>\n        <p>Gonflage, contr\u00f4le de la voile, techniques de d\u00e9collage et d'atterrissage. R\u00e9p\u00e9tition jusqu'\u00e0 ma\u00eetrise.<\/p>\n      <\/div>\n      <div class=\"ail-sts__arg\">\n        <span class=\"ail-sts__step-no\">4<\/span>\n        <h3>Vols encadr\u00e9s<\/h3>\n        <p>Premiers grands vols depuis les sites adapt\u00e9s \u00e0 votre niveau. Encadrement radio permanent. Nous avons plusieurs sites de premier grand vol comme Gr\u00e9oli\u00e8res 1400 ou Kennedy, Gourdon ou encore Gr\u00e9oli\u00e8res.<\/p>\n      <\/div>\n      <div class=\"ail-sts__arg\">\n        <span class=\"ail-sts__step-no\">5<\/span>\n        <h3>D\u00e9briefing<\/h3>\n        <p>Analyse vid\u00e9o de vos vols, points \u00e0 am\u00e9liorer, conseils pour la suite.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500\u2500 2. CONDITIONS ET \u00c9QUIPEMENT (kaki) \u2500\u2500\u2500 -->\n<section class=\"ail-sts ail-sts__section ail-sts__section--kaki\" aria-label=\"Conditions de participation et \u00e9quipement du stage\">\n  <div class=\"ail-sts__wrap\">\n    <div class=\"ail-sts__head\">\n      <span class=\"ail-sts__kicker\">Avant de r\u00e9server<\/span>\n      <h2>Conditions et \u00e9quipement<\/h2>\n    <\/div>\n    <div class=\"ail-sts__eq\">\n      <div class=\"ail-sts__eqcard\">\n        <h3>Conditions de participation<\/h3>\n        <ul class=\"ail-sts__list\">\n          <li>De 12 \u00e0 55 ans (autorisation parentale pour les mineurs) \u2014 au-del\u00e0 de 55 ans, un \u00e9change t\u00e9l\u00e9phonique pr\u00e9alable<\/li>\n          <li>Poids&nbsp;: entre 30 et 90 kg<\/li>\n          <li>Condition physique&nbsp;: correcte (les stages demandent de l'endurance)<\/li>\n          <li>Motivation et disponibilit\u00e9 sur la dur\u00e9e du stage<\/li><li>Certificat m\u00e9dical de moins de 3 mois (parapente et activit\u00e9 physique soutenue), \u00e0 pr\u00e9senter le premier jour<\/li><li>Licence FFVL en cours de validit\u00e9, \u00e0 prendre aupr\u00e8s de la f\u00e9d\u00e9ration avant le stage<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"ail-sts__eqcard\">\n        <h3>Mat\u00e9riel fourni<\/h3>\n        <p style=\"font-size:.95rem;color:rgba(244,239,230,.85);margin-bottom:6px\">Tout est fourni par l'\u00e9cole&nbsp;:<\/p>\n        <ul class=\"ail-sts__list\">\n          <li>Voile de parapente adapt\u00e9e \u00e0 votre niveau<\/li>\n          <li>Sellette et parachute de secours<\/li>\n          <li>Casque et radio<\/li>\n          <li>Mat\u00e9riel homologu\u00e9 et v\u00e9rifi\u00e9<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"ail-sts__eqcard\">\n        <h3>\u00c0 pr\u00e9voir<\/h3>\n        <ul class=\"ail-sts__list\">\n          <li>Chaussures de randonn\u00e9e montantes<\/li>\n          <li>V\u00eatements chauds (il fait frais en altitude)<\/li>\n          <li>Gants<\/li>\n          <li>Lunettes de soleil<\/li>\n          <li>Pique-nique et eau<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"ail-sts__eqcard\">\n        <h3>Conditions m\u00e9t\u00e9orologiques<\/h3>\n        <p style=\"font-size:.96rem;color:rgba(244,239,230,.88);margin-bottom:0\">Les sessions d\u00e9pendent de la m\u00e9t\u00e9o. En cas de conditions d\u00e9favorables, le programme est adapt\u00e9 (th\u00e9orie, exercices au sol) ou la session report\u00e9e.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500\u2500 3. OFFREZ UN MOMENT INOUBLIABLE (dark \u00b7 teaser bon cadeau + CTA) \u2500\u2500\u2500 -->\n<section class=\"ail-sts ail-sts__section ail-sts__section--dark\" aria-label=\"Offrir un stage de parapente en bon cadeau\">\n  <div class=\"ail-sts__wrap\">\n    <div class=\"ail-sts__gift\">\n      <div>\n        <span class=\"ail-sts__kicker\">Id\u00e9e cadeau<\/span>\n        <h2>Offrez un moment inoubliable&nbsp;!<\/h2>\n        <p class=\"ail-sts__lead\">Un anniversaire, un EVJF\/EVG, No\u00ebl ou juste l'envie de faire plaisir&nbsp;? Le stage de parapente est le cadeau parfait pour surprendre vos proches.<\/p>\n        <p style=\"margin-top:6px\"><strong>Nos bons cadeaux sont&nbsp;:<\/strong><\/p>\n        <ul class=\"ail-sts__occ\">\n          <li><span>Valables 12 mois (avec possibilit\u00e9 d'extension)<\/span><\/li>\n          <li><span>Personnalisables avec un message<\/span><\/li>\n          <li><span>Utilisables sur toutes nos formules<\/span><\/li>\n          <li><span>Envoy\u00e9s par email ou format papier<\/span><\/li>\n        <\/ul>\n        <p style=\"margin-top:18px\"><strong>Formules groupe &amp; \u00e9v\u00e9nements&nbsp;:<\/strong><\/p>\n        <ul class=\"ail-sts__occ\">\n          <li><span><strong>EVJF\/EVG \u2014<\/strong> vid\u00e9o offerte pour les futurs mari\u00e9s&nbsp;!<\/span><\/li>\n          <li><span><strong>Familles \u2014<\/strong> vols enfants le matin, adultes l'apr\u00e8s-midi<\/span><\/li>\n          <li><span><strong>Entreprises \u2014<\/strong> team building sur mesure<\/span><\/li>\n        <\/ul>\n        <div class=\"ail-sts__cta-row\">\n          <a class=\"ail-sts__cta ail-sts__cta--primary\" href=\"https:\/\/www.ailements.fr\/bon-cadeau\/\">Offrir un bon cadeau<\/a>\n        <\/div>\n      <\/div>\n      <div class=\"ail-sts__giftmedia\">\n        <img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/04\/CLA_7593-Avec-accentuation-Bruit-scaled.jpg\" alt=\"D\u00e9collage en tandem parapente avec un moniteur Ail\u00e9ments \u2014 un moment inoubliable \u00e0 offrir\" loading=\"lazy\" width=\"6960\" height=\"4640\">\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500\u2500 4. LES SITES DE VOL DANS LES ALPES-MARITIMES (dark \u00b7 3 cards) \u2500\u2500\u2500 -->\n<section class=\"ail-sts ail-sts__section ail-sts__section--dark\" aria-label=\"Les sites de vol parapente dans les Alpes-Maritimes\" style=\"padding-top:0\">\n  <div class=\"ail-sts__wrap\">\n    <div class=\"ail-sts__head\">\n      <span class=\"ail-sts__kicker\">Nos spots<\/span>\n      <h2>Les sites de vol dans les Alpes-Maritimes<\/h2>\n    <\/div>\n    <div class=\"ail-sts__cluster\">\n      <article class=\"ail-sts__cl-card\">\n        <div class=\"ail-sts__cl-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2020\/03\/falaison-greo_edited.jpg\" alt=\"Vol parapente le long de la falaise de Gr\u00e9oli\u00e8res dans les Pr\u00e9alpes d'Azur\" loading=\"lazy\" width=\"1920\" height=\"1125\"><\/div>\n        <div class=\"ail-sts__cl-body\">\n          <h3>Gr\u00e9oli\u00e8res<\/h3>\n          <p>Au c\u0153ur des Pr\u00e9alpes d'Azur, \u00e0 moins d'1h de Nice. Id\u00e9al pour l'apprentissage&nbsp;: pente-\u00e9cole accessible et conditions r\u00e9guli\u00e8res.<\/p>\n          <ul class=\"ail-sts__cl-list\">\n            <li>Tout niveau<\/li>\n            <li>D\u00e8s 12 ans<\/li>\n            <li>Le plus accessible<\/li>\n          <\/ul>\n        <\/div>\n      <\/article>\n      <article class=\"ail-sts__cl-card\">\n        <div class=\"ail-sts__cl-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2024\/02\/on-way-to-gourdon_edited.jpeg\" alt=\"Vol parapente au-dessus du village perch\u00e9 de Gourdon et des Gorges du Loup\" loading=\"lazy\" width=\"1920\" height=\"1440\"><\/div>\n        <div class=\"ail-sts__cl-body\">\n          <h3>Gourdon<\/h3>\n          <p>Village perch\u00e9 avec vue sur la C\u00f4te d'Azur. Site thermique pour les stages perfectionnement.<\/p>\n          <ul class=\"ail-sts__cl-list\">\n            <li>Interm\u00e9diaire<\/li>\n            <li>D\u00e8s 12 ans<\/li>\n            <li>Panorama <a class=\"wpil_keyword_link\" href=\"https:\/\/www.ailements.fr\/gorges-du-loup\/\" title=\"Que faire dans les gorges du loup : le guide complet des activit\u00e9s et d\u00e9couvertes\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"139319\">Gorges du Loup<\/a> et C\u00f4te d'Azur<\/li>\n          <\/ul>\n        <\/div>\n      <\/article>\n      <article class=\"ail-sts__cl-card\">\n        <div class=\"ail-sts__cl-img\"><img decoding=\"async\" src=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/2025\/12\/IMG_0825-2-scaled.jpg\" alt=\"Vol parapente face \u00e0 la mer au-dessus de Roquebrune Cap-Martin sur la C\u00f4te d'Azur\" loading=\"lazy\" width=\"1538\" height=\"2050\"><\/div>\n        <div class=\"ail-sts__cl-body\">\n          <h3>Roquebrune Cap Martin<\/h3>\n          <p>Vol face \u00e0 la mer, conditions dynamiques. Pour les pilotes confirm\u00e9s.<\/p>\n          <ul class=\"ail-sts__cl-list\">\n            <li>D\u00e8s 12 ans<\/li>\n            <li>Atterrissage plage du Golfe Bleu<\/li>\n          <\/ul>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500\u2500 5. FAQ (clone .ail-bcs-faq \u2192 .ail-sts-faq, fond noir) \u2500\u2500\u2500 -->\n<style data-no-optimize=\"1\">\n.ail-sts-faq,.ail-sts-faq *,.ail-sts-faq *::before,.ail-sts-faq *::after{box-sizing:border-box}\n.ail-sts-faq{--ail-orange:#EC672C;--ail-orange-deep:#b35017;--ail-dark:#101820;--ail-creme:#F4EFE6;font-family:'Nunito Sans',system-ui,sans-serif;width:100%;background:var(--ail-dark);color:var(--ail-creme);padding:clamp(48px,6vw,84px) clamp(16px,4vw,48px)}\n.ail-sts-faq__inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:0.82fr 1.18fr;gap:clamp(28px,5vw,64px);align-items:start}\n@media(max-width:860px){.ail-sts-faq__inner{grid-template-columns:1fr;gap:clamp(20px,4vw,30px)}}\n.ail-sts-faq__aside{position:sticky;top:24px}\n@media(max-width:860px){.ail-sts-faq__aside{position:static}}\n.ail-sts-faq__tag{display:inline-block;font-family:'Krona One',sans-serif !important;font-size:clamp(.72rem,1.1vw,.84rem);color:var(--ail-orange);letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px}\n.ail-sts-faq h2{font-family:'Krona One',sans-serif !important;font-weight:500 !important;font-size:clamp(1.5rem,3.1vw,2.4rem);letter-spacing:-.02em;line-height:1.18;color:var(--ail-creme) !important}\n.ail-sts-faq__list{display:flex;flex-direction:column}\n.ail-sts-faq__item{border-top:1px solid rgba(244,239,230,.16)}\n.ail-sts-faq__item:last-child{border-bottom:1px solid rgba(244,239,230,.16)}\n.ail-sts-faq__item summary{cursor:pointer;padding:20px 8px 20px 46px;list-style:none;position:relative;font-family:'Krona One',sans-serif !important;font-size:clamp(.9rem,1.45vw,1.02rem);color:var(--ail-creme) !important;line-height:1.35;user-select:none;transition:color .2s}\n.ail-sts-faq__item summary:hover{color:var(--ail-orange)}\n.ail-sts-faq__item summary::-webkit-details-marker{display:none}\n.ail-sts-faq__item summary::before{content:'+';position:absolute;left:4px;top:18px;font-family:'Krona One',sans-serif !important;font-size:1.5rem;color:var(--ail-orange);line-height:1}\n.ail-sts-faq__item[open] summary::before{content:'\\2013'}\n.ail-sts-faq__answer{padding:0 8px 22px 46px;font-size:clamp(.92rem,1.4vw,1rem);color:rgba(244,239,230,.82);line-height:1.7}\n.ail-sts-faq__answer a{color:var(--ail-orange);font-weight:700}\n.ail-sts-faq__answer ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}\n.ail-sts-faq__answer li{padding-left:18px;position:relative}.ail-sts-faq__answer li::before{content:'';position:absolute;left:0;top:9px;width:6px;height:6px;background:var(--ail-orange);border-radius:50%}\n<\/style>\n<section class=\"ail-sts-faq\" aria-label=\"FAQ stages parapente Ail\u00e9ments\">\n  <div class=\"ail-sts-faq__inner\">\n    <aside class=\"ail-sts-faq__aside\">\n      <div class=\"ail-sts-faq__tag\">FAQ<\/div>\n      <h2>Questions fr\u00e9quentes sur le parapente<\/h2>\n    <\/aside>\n    <div class=\"ail-sts-faq__list\">\n      <details class=\"ail-sts-faq__item\"><summary>Quels stages proposez-vous&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Quatre formules&nbsp;: Stage D\u00e9couverte (1 jour, 260\u20ac), Stage Initiation (5 jours, 700\u20ac &#8212; format 5&nbsp;jours uniquement), Stage Perfectionnement (5 jours 750\u20ac, aussi 3&nbsp;jours 450\u20ac, remise de 60\u20ac avec votre propre mat\u00e9riel) et Stage D\u00e9couverte du Sud (5 jours, 800\u20ac), plus le stage Dune du Pyla avec la Waggas School (une semaine, 650\u20ac le stage seul ou 900\u20ac avec la navette depuis Gr\u00e9oli\u00e8res, sous r\u00e9serve de places disponibles). Licence FFVL obligatoire, non comprise dans le prix, \u00e0 prendre directement aupr\u00e8s de la f\u00e9d\u00e9ration. Sessions toute l'ann\u00e9e, hiver compris.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Proposez-vous des stages de parapente en hiver&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Oui, et c'est notre diff\u00e9rence&nbsp;: 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.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Faut-il une exp\u00e9rience pr\u00e9alable&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Non pour les stages D\u00e9couverte et Initiation, ils sont faits pour les d\u00e9butants. Le stage Perfectionnement est la suite du stage initiation ; la D\u00e9couverte du Sud demande une autonomie compl\u00e8te au d\u00e9collage et \u00e0 l'atterrissage.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Comment se d\u00e9roule un stage d'initiation&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Une semaine compl\u00e8te alternant cours th\u00e9oriques (a\u00e9rologie, m\u00e9t\u00e9o, s\u00e9curit\u00e9) et pratique (pente-\u00e9cole puis grands vols). Vous r\u00e9alisez vos premiers vols solo, encadr\u00e9s, en fin de semaine.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Le mat\u00e9riel est-il fourni&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Oui, tout le mat\u00e9riel est fourni&nbsp;: voile, sellette, parachute de secours, casque, radio. Vous n'avez besoin que de v\u00eatements adapt\u00e9s et de bonnes chaussures. Seule exception&nbsp;: le stage Dune du Pyla, o\u00f9 chacun vient avec sa propre voile.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>\u00c0 partir de quel \u00e2ge peut-on faire un stage&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">De 12 \u00e0 55 ans, avec une autorisation parentale pour les mineurs (au-del\u00e0 de 55 ans, on valide ensemble par t\u00e9l\u00e9phone). Il faut peser entre 30 et 90 kg.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>O\u00f9 se d\u00e9roulent les stages&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Principalement \u00e0 Gr\u00e9oli\u00e8res dans les Pr\u00e9alpes d'Azur, \u00e0 45 min de Nice. D'autres sites (Gourdon, Roquebrune) sont utilis\u00e9s selon les conditions et votre niveau.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Que se passe-t-il si la m\u00e9t\u00e9o est mauvaise&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Le programme est adapt\u00e9&nbsp;: th\u00e9orie, exercices au sol, ou report de session. On ne vole jamais dans de mauvaises conditions.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>Peut-on faire un stage de parapente en habitant Nice&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\">Bien s\u00fbr&nbsp;! Notre <a href=\"https:\/\/www.ailements.fr\/trips\/parapente-nice\/\">\u00e9cole de parapente est \u00e0 45 min de Nice<\/a>, ce qui en fait un spot id\u00e9al pour progresser en vol libre pr\u00e8s de chez vous. <a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-nice\/\">Notre \u00e9cole de parapente Nice<\/a> vous accompagne jusqu'aux premiers vols solo, avec des moniteurs dipl\u00f4m\u00e9s d'\u00c9tat qui vous accompagnent du brevet de pilote \u00e0 l'autonomie compl\u00e8te.<\/div><\/details>\n      <details class=\"ail-sts-faq__item\"><summary>O\u00f9 faire un stage de parapente en r\u00e9gion PACA&nbsp;?<\/summary><div class=\"ail-sts-faq__answer\"><a href=\"https:\/\/www.ailements.fr\/stages\/ecole-parapente-paca\/\">L'\u00e9cole de parapente PACA<\/a> Ail\u00e9ments est situ\u00e9e \u00e0 Gr\u00e9oli\u00e8res, au pied du Cheiron dans les Pr\u00e9alpes d'Azur. C'est l'un des meilleurs sites de vol libre de la C\u00f4te d'Azur pour apprendre le parapente&nbsp;: pente-\u00e9cole accessible, conditions a\u00e9rologiques vari\u00e9es et moniteurs dipl\u00f4m\u00e9s d'\u00c9tat sur place.<\/div><\/details>\n    <\/div>\n  <\/div>\n<\/section>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-60505e88 e-no-lazyload e-flex e-con-boxed e-con e-parent\" data-id=\"60505e88\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4f4b13f6 e-con-full e-flex e-con e-child\" data-id=\"4f4b13f6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-7aa7be62 e-con-full e-flex e-con e-child\" data-id=\"7aa7be62\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-49df6936 e-con-full e-flex e-con e-child\" data-id=\"49df6936\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-111bf339 section-title at-heading-animation at-animation-heading-none elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"111bf339\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">NOS T\u00c9MOIGNAGES<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ee4e46b at-heading-animation at-animation-heading-style-4 elementor-widget elementor-widget-heading\" data-id=\"2ee4e46b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">De vraies exp\u00e9riences, de vrais souvenirs, de vraies aventures<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3502d092 elementor-widget elementor-widget-Google\" data-id=\"3502d092\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"Google.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link data-noptimize=\"1\" data-no-optimize=\"1\" data-no-minify=\"1\" data-no-defer=\"1\" rel=\"stylesheet\" href=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/trustindex-google-widget.css?1787085847\" media=\"all\"><pre class=\"ti-widget\"><div style=\"opacity: 0;height: 0 !important;overflow: hidden !important\" data-css-url=\"https:\/\/www.ailements.fr\/wp-content\/uploads\/trustindex-google-widget.css?1787085847\" class=\" ti-widget  ti-goog ti-disable-font ti-show-rating-text ti-review-text-mode-readmore ti-text-align-left\" data-no-translation=\"true\" data-time-locale=\"%d %s ago|today|day|days|week|weeks|month|months|year|years\" data-plugin-version=\"14.2\" data-layout-id=\"5\" data-layout-category=\"slider\" data-set-id=\"dark-background\" data-pid=\"wp-widget\" data-language=\"en\" data-close-locale=\"Close\" data-review-target-width=\"275\" data-css-version=\"2\" data-reply-by-locale=\"Owner&apos;s reply\" data-only-rating-locale=\"This user only left a rating.\" data-pager-autoplay-timeout=\"6\"> <div class=\"ti-widget-container ti-col-4\"> <div class=\"ti-footer ti-footer-grid source-Google\"> <div class=\"ti-fade-container\"> <div class=\"ti-rating-text\"> <strong class=\"ti-rating ti-rating-large\"> EXCELLENT <\/strong> <\/div> <span class=\"ti-stars star-lg\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><\/span> <div class=\"ti-rating-text\"> <span class=\"nowrap\">Based on <strong>648 reviews<\/strong><\/span> <\/div> <div class=\"ti-large-logo\"> <div class=\"ti-v-center\"> <img decoding=\"async\" class=\"ti-logo-fb skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/logo.svg\" width=\"150\" height=\"25\" loading=\"lazy\" alt=\"Google\" \/> <\/div> <\/div> <\/div> <\/div> <div class=\"ti-reviews-container\"> <div class=\"ti-controls\"> <div class=\"ti-next\" aria-label=\"Next review\" role=\"button\" tabindex=\"0\"><\/div> <div class=\"ti-prev\" aria-label=\"Previous review\" role=\"button\" tabindex=\"0\"><\/div> <\/div> <div class=\"ti-reviews-container-wrapper\">  <div data-empty=\"0\" data-time=\"1790726400\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKrSme9Yp56ht0Glhb0sjBMUVDqG14sR5OKc4judyxIPs9fjOU=w40-h40-c-rp-mo-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKrSme9Yp56ht0Glhb0sjBMUVDqG14sR5OKc4judyxIPs9fjOU=w80-h80-c-rp-mo-br100 2x\" alt=\"Remy Salmieri profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Remy Salmieri <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Magnifique super \u00e9quipe vraiment rien \u00e0 redire<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1790640000\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJOe5unXGyexjV0AedfAgnl1_fzJpQe59jFTB5HKGLebcFYMg=w40-h40-c-rp-mo-ba12-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJOe5unXGyexjV0AedfAgnl1_fzJpQe59jFTB5HKGLebcFYMg=w80-h80-c-rp-mo-ba12-br100 2x\" alt=\"Pascale Pflieger profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Pascale Pflieger <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Tr\u00e8s pro!!!<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1790553600\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIrgEWUasIwbugFPCfJOO8YRAg7qkaOGrJEa6Hi6Q5NJKsqLyCL=w40-h40-c-rp-mo-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIrgEWUasIwbugFPCfJOO8YRAg7qkaOGrJEa6Hi6Q5NJKsqLyCL=w80-h80-c-rp-mo-br100 2x\" alt=\"Vanessa Leskinen profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Vanessa Leskinen <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Un superbe bapt\u00eame de parapente en tandem avec ma s\u0153ur, chacune accompagn\u00e9e d\u2019un pilote. Sympas et d\u00e9tendus, Pierrot et Pierre-Yves nous ont tout de suite mises en confiance : aucune appr\u00e9hension. Nous avons \u00e9t\u00e9 agr\u00e9ablement surprises par la douceur du d\u00e9collage et de l\u2019atterrissage. Et entre les deux, des paysages magnifiques ! J\u2019ai m\u00eame pu prendre les commandes et diriger le parapente pendant quelques minutes\u2026 un vrai r\u00e9gal. Deux pilotes tr\u00e8s professionnels, que nous recommandons sans h\u00e9siter pour un premier vol.<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1790553600\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKgimk1L9T9EPAB-61i7ogSJ5XxfuW4XbveVTfk0H3zVG0ONA=w40-h40-c-rp-mo-ba12-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKgimk1L9T9EPAB-61i7ogSJ5XxfuW4XbveVTfk0H3zVG0ONA=w80-h80-c-rp-mo-ba12-br100 2x\" alt=\"Jack White profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Jack White <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Best day out, we did paragliding and then the canyoning. Great value for money and our instruction was excellent we always felt very safe.&#010;&#010;I have done canyoning in a few countries and this was the best I have done by far. It was a beautiful gorge and had the clearest water.&#010;&#010;We would book again if we ever came back to the area for sure!<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1790467200\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIepa6EsQgrcZy0-7hyQbESdvIqGkLAYF-A2jRQOf9g_Q9uHg=w40-h40-c-rp-mo-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIepa6EsQgrcZy0-7hyQbESdvIqGkLAYF-A2jRQOf9g_Q9uHg=w80-h80-c-rp-mo-br100 2x\" alt=\"Katell Briand profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Katell Briand <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->L'activit\u00e9 \u00e9tait vraiment incroyable, merci aux pilotes de nous avoir mis \u00e0 l'aise et fait vivre ce moment !!<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1790035200\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a-\/ALV-UjXD6iMQfu68PwvXTsk3XSpIUuvD_2HD256GEDyxBHOYv59ycmpW=w40-h40-c-rp-mo-ba12-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a-\/ALV-UjXD6iMQfu68PwvXTsk3XSpIUuvD_2HD256GEDyxBHOYv59ycmpW=w80-h80-c-rp-mo-ba12-br100 2x\" alt=\"Warda Tahir profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Warda Tahir <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Peirrot and his team were amazing! I had a lot of fun. The experience was far more comfortable than I had expected<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1789862400\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIgk2USdYGx6Wt8Xvler2dhpC6BujGBa1qmGV38amBF0buYNw=w40-h40-c-rp-mo-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIgk2USdYGx6Wt8Xvler2dhpC6BujGBa1qmGV38amBF0buYNw=w80-h80-c-rp-mo-br100 2x\" alt=\"Sarah H\u00fcbner profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Sarah H\u00fcbner <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Absolut empfehlenswert!&#010;Es war mein erster Flug, aber die Professionalit\u00e4t und lockere Atmosph\u00e4re hat mich gleich sicher f\u00fchlen lassen. Die Umgebung war perfekt f\u00fcr den Flug, super Ausblick und gutes Timing. Und der Fluglehrer hat sich an meine pers\u00f6nlichen Bed\u00fcrfnisse direkt angepasst. Ich werde diese Schule auf jeden Fall weiterempfehlen.<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1789862400\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJGUclQ9no95qZdI0_I_y3_cJYXBCQP-sgRTk-0sivoUA5agw=w40-h40-c-rp-mo-ba12-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJGUclQ9no95qZdI0_I_y3_cJYXBCQP-sgRTk-0sivoUA5agw=w80-h80-c-rp-mo-ba12-br100 2x\" alt=\"Aurelie Chenevoy profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Aurelie Chenevoy <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Super exp\u00e9rience, on \u00e9tait 3 \u00e0 sauter en parapente \u00e0 Gr\u00e9oli\u00e8res. Pierrot et Pierre-Yves nous ont accompagn\u00e9 pour cette aventure. Tout \u00e9tait super! Ils ont su nous partager leur passion et leur exp\u00e9rience dans la bonne humeur.<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1789862400\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKqv27vYzJHqFSM60eCeoWF_P8zPXMYHUkLVYMK94JEOauqhw=w40-h40-c-rp-mo-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKqv27vYzJHqFSM60eCeoWF_P8zPXMYHUkLVYMK94JEOauqhw=w80-h80-c-rp-mo-br100 2x\" alt=\"Yanis Meziani profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> Yanis Meziani <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Alors, comment dire, un moment magique avec Pierrot qui a \u00e9t\u00e9 d'une sympathie extraordinaire, tr\u00e8s p\u00e9dagogue dans ses explications et surtout qui te fait d\u00e9couvrir son magnifique\" bureau \" perch\u00e9 a plus de 1800 m\u00e8tres d'altitude .&#010;Une exp\u00e9rience que je n'oublierai jamais et encore merci pour ce plaisir de voler pour la premi\u00e8re fois \ud83e\ude82&#010;A bient\u00f4t ;)<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <div data-empty=\"0\" data-time=\"1789776000\" class=\"ti-review-item source-Google ti-image-layout-thumbnail\" data-id=\"cfcd208495d565ef66e7dff9f98764da\" data-language=\"\"> <div class=\"ti-inner\"> <div class=\"ti-review-header\"> <div class=\"ti-platform-icon ti-with-tooltip\"> <span class=\"ti-tooltip\">Posted on Google<\/span> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-img\"> <img decoding=\"async\" class=\"skip-lazy\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKwv0fB6YeFEO5b234D-4ro_PwOTEtglh1mIfmOOpPxBzfFcA=w40-h40-c-rp-mo-ba12-br100\" srcset=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKwv0fB6YeFEO5b234D-4ro_PwOTEtglh1mIfmOOpPxBzfFcA=w80-h80-c-rp-mo-ba12-br100 2x\" alt=\"remi bonhomme profile picture\" loading=\"lazy\" \/> <\/div> <div class=\"ti-profile-details\"> <div class=\"ti-name\"> remi bonhomme <\/div> <div class=\"ti-date\"><\/div> <\/div> <\/div> <span class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><span class=\"ti-verified-review ti-verified-platform\"><span class=\"ti-verified-tooltip\">Trustindex verifies that the original source of the review is Google.<\/span><\/span><\/span> <div class=\"ti-review-text-container ti-review-content\"><!-- R-CONTENT -->Un moment exceptionnel inoubliable avec des sensations incroyables\u2026.&#010;Pierrot ta gentillesse et ton professionnalisme font de ce moment un souvenir grav\u00e9<!-- R-CONTENT --><\/div> <span class=\"ti-read-more\" data-container=\".ti-review-content\" data-collapse-text=\"Hide\" data-open-text=\"Read more\"><\/span> <\/div> <\/div>  <\/div> <div class=\"ti-controls-line\"> <div class=\"dot\"><\/div> <\/div>   <div class=\"ti-verified-by ti-verified-by-row\" data-style=\"2\"> <div class=\"ti-inner\"> Verified by Trustindex <span class=\"ti-info-icon\"><\/span> <div class=\"ti-disclaimer\">Trustindex verified badge is the Universal Symbol of Trust. Only the greatest companies can get the verified badge who has a review score above 4.5, based on customer reviews over the past 12 months. <a href=\"https:\/\/www.trustindex.io\/?a=sys&amp;c=wp-verified-badge&amp;url=\/the-trustindex-verified-badge\/\" target=\"_blank\" rel=\"noopener\">Read more<\/a><\/div> <\/div> <\/div>  <\/div> <\/div> <\/div> <\/pre><pre class=\"ti-hidden-markup\" hidden style=\"display: none\"><script>\n(function () { if (window.tiLoaderFallback) { return; } window.tiLoaderFallback = true; function tiLoadLoader() { if (window.TrustindexWidget || document.querySelector('script[src*=\"https:\/\/cdn.trustindex.io\/loader.js\"]')) { return; } let script = document.createElement(\"script\"); script.async = true; script.src = \"https:\/\/cdn.trustindex.io\/loader.js\"; script.setAttribute(\"data-ccm-injected\", \"1\"); document.head.appendChild(script); } if (\"loading\" === document.readyState) { document.addEventListener(\"DOMContentLoaded\", tiLoadLoader); } else { tiLoadLoader(); } })();\n<\/script>\n<\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1d42fcd4 e-con-full e-flex e-con e-child\" data-id=\"1d42fcd4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31fb6c26 elementor-widget elementor-widget-text-editor\" data-id=\"31fb6c26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Plus de 1070 avis 5 \u00e9toiles<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>@import url(&lsquo;https:\/\/fonts.googleapis.com\/css2?family=Krona+One&amp;family=Nunito+Sans:wght@400;600;700;800&amp;display=swap&rsquo;); .ail-stages,.ail-stages *,.ail-stages *::before,.ail-stages *::after{box-sizing:border-box;margin:0;padding:0} .ail-stages{ &#8211;ail-orange:#EC672C; &#8211;ail-orange-hover:#d55a22; &#8211;ail-dark:#101820; &#8211;ail-kaki:#707455; &#8211;ail-bleu:#ABC8CA; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21964,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2228","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/2228","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=2228"}],"version-history":[{"count":252,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/2228\/revisions"}],"predecessor-version":[{"id":87657,"href":"https:\/\/www.ailements.fr\/en\/wp-json\/wp\/v2\/pages\/2228\/revisions\/87657"}],"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=2228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}