{"id":6023,"date":"2026-03-27T00:57:11","date_gmt":"2026-03-26T23:57:11","guid":{"rendered":"https:\/\/airexpo.org\/?page_id=6023"},"modified":"2026-04-14T22:24:42","modified_gmt":"2026-04-14T20:24:42","slug":"plateau-aerien-2026","status":"publish","type":"page","link":"https:\/\/airexpo.org\/en\/plateau-aerien-2026\/","title":{"rendered":"Plateau A\u00e9rien 2026"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n\n<!--\n=======================================================================\n  COMPOSANT BANDEAU H\u00c9RO \u2013 AirExpo\n  Compatible WordPress Twenty Twenty-Four\n  \u2192 \u00c0 coller dans un bloc \"HTML personnalis\u00e9\" en HAUT de chaque page.\n\n  PERSONNALISATION PAR PAGE :\n  1. Remplacez  VOTRE-PHOTO-ICI.jpg  par l'URL de votre image\n     (copiez le lien depuis M\u00e9diath\u00e8que \u203a Modifier \u203a Copier l'URL)\n  2. Modifiez le texte du badge  (ex : \"\u2708 AirExpo \u2014 Pr\u00e9sentation\")\n  3. Modifiez le titre  .ah-hero-title  (h1 de la page)\n  4. Modifiez le sous-titre  .ah-hero-subtitle\n  5. Changez la couleur de la vague SVG (#f8fafc = fond clair,\n     #ffffff = fond blanc, etc.) si besoin.\n=======================================================================\n-->\n\n<style>\n\/* =====================================================================\n   BANDEAU H\u00c9RO AIREXPO \u2013 styles autonomes, pr\u00e9fix\u00e9s .ae-hero-*\n   Aucun conflit avec Twenty Twenty-Four.\n===================================================================== *\/\n\n\/* \u2500\u2500 Variables (r\u00e9-utilis\u00e9es d'une page \u00e0 l'autre) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-wrap {\n    --navy:      #1a237e;\n    --navy-dark: #0d1642;\n    --cyan:      #00acc1;\n    --bg:        #f8fafc;\n}\n\n\/* \u2500\u2500 Breakout WordPress \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   Force le bloc \u00e0 occuper toute la largeur de l'\u00e9cran en s'\u00e9chappant\n   du conteneur de contenu de Twenty Twenty-Four (~650 px).\n   Technique : largeur 100vw + marge n\u00e9gative = calc(50% - 50vw).\n   (50% = moiti\u00e9 du conteneur parent, 50vw = moiti\u00e9 du viewport)\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-wrap {\n    width: 105vw;\n    position: relative;\n    margin-left: calc(50% - 50vw);\n    transform: translateX(-9%);\n    max-width: 110vw;\n    overflow: hidden;\n}\n\n\/* Lib\u00e8re les conteneurs WP qui bloquent le d\u00e9bordement *\/\n.wp-block-post-content,\n.entry-content,\n.wp-block-group,\n.wp-block-group__inner-container,\n.is-layout-constrained,\n.is-layout-flow {\n    overflow: visible !important;\n}\n\n\/* \u2500\u2500 Conteneur principal du h\u00e9ro \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero {\n    position: relative;\n    width: 100%;\n    height: 520px;\n    overflow: hidden;\n    background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 60%, #1565c0 100%);\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n}\n\n\/* \u2500\u2500 Photo de fond \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-img {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center 40%;\n    opacity: 0.45;\n    filter: brightness(0.9) contrast(1.05) saturate(0.8);\n    transition: transform 8s ease;\n}\n\n.ae-hero:hover .ae-hero-img {\n    transform: scale(1.04);\n}\n\n\/* \u2500\u2500 Calque d\u00e9grad\u00e9 diagonal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(\n        135deg,\n        rgba(13,22,66,0.70)  0%,\n        rgba(26,35,126,0.50) 50%,\n        rgba(0,172,193,0.20) 100%\n    );\n    z-index: 1;\n}\n\n\/* \u2500\u2500 Cercle lumineux d\u00e9coratif (coin bas-droit) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero::after {\n    content: '';\n    position: absolute;\n    bottom: -120px;\n    right: -80px;\n    width: 440px;\n    height: 440px;\n    border-radius: 50%;\n    background: radial-gradient(circle, rgba(0,172,193,0.18) 0%, transparent 70%);\n    z-index: 1;\n    animation: ae-float 18s ease-in-out infinite;\n}\n\n@keyframes ae-float {\n    0%, 100% { transform: translate(0, 0); }\n    50%       { transform: translate(-20px, -20px); }\n}\n\n\/* \u2500\u2500 Contenu centr\u00e9 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-content {\n    position: relative;\n    z-index: 2;\n    height: 100%;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    text-align: center;\n    padding: 40px 24px;\n    animation: ae-fadeInUp 0.9s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n@keyframes ae-fadeInUp {\n    from { opacity: 0; transform: translateY(36px); }\n    to   { opacity: 1; transform: translateY(0); }\n}\n\n\/* \u2500\u2500 Badge (cat\u00e9gorie \/ nom de la page) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-badge {\n    display: inline-block;\n    background: rgba(255,255,255,0.15);\n    border: 1px solid rgba(255,255,255,0.30);\n    backdrop-filter: blur(8px);\n    -webkit-backdrop-filter: blur(8px);\n    color: #e0f7fa;\n    font-size: 12px;\n    font-weight: 600;\n    letter-spacing: 2px;\n    text-transform: uppercase;\n    padding: 8px 20px;\n    border-radius: 30px;\n    margin-bottom: 22px;\n}\n\n\/* \u2500\u2500 Titre principal \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-title {\n    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;\n    font-size: clamp(36px, 6vw, 72px);\n    font-weight: 800;\n    color: #fff;\n    text-shadow: 0 4px 24px rgba(0,0,0,0.35);\n    letter-spacing: -1px;\n    line-height: 1.1;\n    margin: 0 0 18px;\n    background: linear-gradient(135deg, #ffffff 0%, #b3e5ff 100%);\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n}\n\n\/* \u2500\u2500 Sous-titre \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-subtitle {\n    font-size: clamp(15px, 2vw, 19px);\n    font-weight: 300;\n    color: rgba(255,255,255,0.88);\n    max-width: 560px;\n    text-shadow: 0 2px 8px rgba(0,0,0,0.30);\n    letter-spacing: 0.3px;\n    margin: 0;\n}\n\n\/* \u2500\u2500 Vague SVG de transition (bas du h\u00e9ro) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-hero-wave {\n    position: absolute;\n    bottom: -2px;\n    left: 0;\n    width: 100%;\n    z-index: 3;\n    line-height: 0;\n}\n\n.ae-hero-wave svg {\n    display: block;\n    width: 100%;\n    height: auto;\n}\n\n\/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (max-width: 768px) {\n    .ae-hero {\n        height: 380px;\n    }\n}\n<\/style>\n\n<!--\n======================================================================\n  HTML DU BANDEAU \u2013 copiez uniquement ce bloc dans WordPress.\n  Le bloc <style> ci-dessus doit \u00eatre inclus une seule fois par page\n  (id\u00e9alement dans un bloc HTML en haut, avant le h\u00e9ro).\n======================================================================\n-->\n<div class=\"ae-hero-wrap\">\n    <div class=\"ae-hero\">\n\n        <!-- \u26a0\ufe0f Remplacez l'URL par votre photo depuis la M\u00e9diath\u00e8que WP -->\n        <img decoding=\"async\"\n            class=\"ae-hero-img\"\n            src=\"http:\/\/airexpo.org\/wp-content\/uploads\/2025\/04\/132-11-mai-2024-A77M2-09500.jpg\"\n            alt=\"AirExpo \u2013 meeting a\u00e9rien\"\n        \/>\n\n        <div class=\"ae-hero-content\">\n\n            <!-- \u26a0\ufe0f Badge : adaptez selon la page (exemples ci-dessous) -->\n            <span class=\"ae-hero-badge\">AirExpo \u2014 Plateau<\/span>\n\n            <!-- \u26a0\ufe0f Titre principal de la page -->\n            <h1 class=\"ae-hero-title\">Plateau a\u00e9rien 2026<\/h1>\n\n            <!-- \u26a0\ufe0f Sous-titre \/ accroche -->\n            <p class=\"ae-hero-subtitle\">D\u00e9couvrez ici les a\u00e9ronefs pr\u00e9sents cette ann\u00e9e !<\/p>\n\n        <\/div>\n\n        <!-- Vague de transition vers le fond de la page.\n             Changez fill=\"#f8fafc\" si votre fond de page est blanc (#ffffff) -->\n        <div class=\"ae-hero-wave\">\n            <svg viewBox=\"0 0 1440 60\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" preserveAspectRatio=\"none\">\n                <path d=\"M0,40 C360,80 1080,0 1440,40 L1440,60 L0,60 Z\" fill=\"#f8fafc\"\/>\n            <\/svg>\n        <\/div>\n\n    <\/div>\n<\/div>\n\n\n<!-- ======================================================================\n     EXEMPLES PR\u00caTS \u00c0 L'EMPLOI \u2013 copiez le bloc complet de votre page\n     ====================================================================\n\n     \u2500\u2500 PAGE PR\u00c9SENTATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     <span class=\"ae-hero-badge\">\u2708 AirExpo \u2014 Pr\u00e9sentation<\/span>\n     <h1 class=\"ae-hero-title\">Bienvenue \u00e0 AirExpo<\/h1>\n     <p class=\"ae-hero-subtitle\">Le meeting a\u00e9rien \u00e9tudiant de l'ENAC, \u00e0 Toulouse depuis 1987<\/p>\n\n     \u2500\u2500 PAGE HISTOIRE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     <span class=\"ae-hero-badge\">\u2708 AirExpo \u2014 Histoire<\/span>\n     <h1 class=\"ae-hero-title\">De 1987 \u00e0 nos jours<\/h1>\n     <p class=\"ae-hero-subtitle\">Pr\u00e8s de 40 ans de passion, de b\u00e9n\u00e9volat et d'aviation historique<\/p>\n\n     \u2500\u2500 PAGE PLANNING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     <span class=\"ae-hero-badge\">\u2708 AirExpo \u2014 Programme<\/span>\n     <h1 class=\"ae-hero-title\">Planning de l'\u00e9dition 2026<\/h1>\n     <p class=\"ae-hero-subtitle\">Retrouvez tous les vols, d\u00e9monstrations et animations du week-end<\/p>\n\n     \u2500\u2500 PAGE CARTE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     <span class=\"ae-hero-badge\">\u2708 AirExpo \u2014 Carte interactive<\/span>\n     <h1 class=\"ae-hero-title\">Plan du site<\/h1>\n     <p class=\"ae-hero-subtitle\">Rep\u00e9rez les stands, parkings, sc\u00e8nes et acc\u00e8s en un coup d'\u0153il<\/p>\n\n     \u2500\u2500 PAGE DONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n     <span class=\"ae-hero-badge\">\u2708 AirExpo \u2014 Soutien<\/span>\n     <h1 class=\"ae-hero-title\">Soutenez AirExpo<\/h1>\n     <p class=\"ae-hero-subtitle\">Votre don nous aide \u00e0 faire voler la passion de l'aviation<\/p>\n\n====================================================================== -->\n\n\n\n<!-- ============================================================\n     PAGE PLATEAU A\u00c9RIEN 2026 \u2013 AIREXPO\n     \u00c0 coller dans un bloc \"HTML personnalis\u00e9\" sur la page d\u00e9di\u00e9e.\n\n     COMMENT AJOUTER \/ MODIFIER UN AVION :\n     \u2192 Descendez jusqu'\u00e0 la variable AIRCRAFT dans le <script>.\n     \u2192 Chaque avion est un objet { ... } dans le tableau.\n     \u2192 Remplacez les valeurs entre guillemets par vos propres donn\u00e9es.\n     \u2192 Pour la photo : remplacez \"URL_PHOTO_...\" par l'URL r\u00e9elle\n       de votre image (upload\u00e9e dans la m\u00e9diath\u00e8que WordPress).\n\n     CAT\u00c9GORIES DISPONIBLES : \"chasse\" | \"voltige\" | \"helico\" | \"civil\" | \"historique\"\n     (utilis\u00e9es pour les filtres en haut de page)\n     ============================================================ -->\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\n     HERO\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 -->\n<div class=\"ae-pa-page\">\n\n  <header class=\"ae-pa-hero\">\n    <div class=\"ae-pa-hero-stars\" aria-hidden=\"true\">\n      <span><\/span><span><\/span><span><\/span><span><\/span><span><\/span>\n      <span><\/span><span><\/span><span><\/span><span><\/span><span><\/span>\n      <span><\/span><span><\/span><span><\/span><span><\/span><span><\/span>\n      <span><\/span><span><\/span><span><\/span><span><\/span><span><\/span>\n    <\/div>\n    <div class=\"ae-pa-hero-plane\" aria-hidden=\"true\">\u2708<\/div>\n    <div class=\"ae-pa-hero-inner\">\n      <div class=\"ae-pa-hero-badge\">\u2726 Airexpo 2026 \u2014 40\u00e8me \u00e9dition \u2726<\/div>\n      <div class=\"ae-pa-hero-meta\">\n        <span>\ud83d\udcc5 9 mai 2026<\/span>\n        <span class=\"ae-pa-hero-sep\">\u00b7<\/span>\n        <span>\ud83d\udccd A\u00e9rodrome de Muret-Lherm<\/span>\n        <span class=\"ae-pa-hero-sep\">\u00b7<\/span>\n<\/span>\n      <\/div>\n    <\/div>\n  <\/header>\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\n       FILTRES\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 -->\n  <div class=\"ae-pa-filters\" role=\"group\" aria-label=\"Filtrer par cat\u00e9gorie\">\n    <button class=\"ae-pa-filter-btn ae-pa-filter-active\" data-filter=\"tous\">Tous<\/button>\n    <button class=\"ae-pa-filter-btn\" data-filter=\"chasse\">Chasse &amp; Militaire<\/button>\n    <button class=\"ae-pa-filter-btn\" data-filter=\"voltige\">Voltige<\/button>\n    <button class=\"ae-pa-filter-btn\" data-filter=\"helico\">H\u00e9licopt\u00e8re<\/button>\n    <button class=\"ae-pa-filter-btn\" data-filter=\"civil\">Civil<\/button>\n    <button class=\"ae-pa-filter-btn\" data-filter=\"historique\">Historique<\/button>\n  <\/div>\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\n       GRILLE DES AVIONS\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 -->\n  <section class=\"ae-pa-grid-section\">\n    <div class=\"ae-pa-grid\" id=\"ae-pa-grid\" role=\"list\">\n      <!-- Les cartes sont g\u00e9n\u00e9r\u00e9es par JavaScript ci-dessous -->\n    <\/div>\n    <p class=\"ae-pa-empty\" id=\"ae-pa-empty\" style=\"display:none;\">Aucun a\u00e9ronef dans cette cat\u00e9gorie pour le moment.<\/p>\n  <\/section>\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\n       NOTE DE BAS DE PAGE\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 -->\n  <div class=\"ae-pa-footer-note\">\n    <p>Le plateau a\u00e9rien est susceptible d&rsquo;\u00e9voluer. Les participants d\u00e9finitifs seront confirm\u00e9s au fur et \u00e0 mesure des semaines pr\u00e9c\u00e9dant l&rsquo;\u00e9v\u00e9nement.<\/p>\n  <\/div>\n\n<\/div><!-- \/.ae-pa-page -->\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\n     POPUP \/ MODAL\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 -->\n<div id=\"ae-pa-modal\" class=\"ae-pa-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ae-pa-modal-name\">\n  <div class=\"ae-pa-modal-backdrop\"><\/div>\n  <div class=\"ae-pa-modal-box\">\n    <button class=\"ae-pa-modal-close\" id=\"ae-pa-modal-close\" aria-label=\"Fermer\">&#x2715;<\/button>\n\n    <div class=\"ae-pa-modal-img-wrap\">\n      <img decoding=\"async\" id=\"ae-pa-modal-img\" src=\"\" alt=\"\" loading=\"lazy\" \/>\n      <span id=\"ae-pa-modal-credit\" class=\"ae-pa-img-credit\" style=\"display:none;\"><\/span>\n      <div class=\"ae-pa-modal-img-overlay\">\n        <span id=\"ae-pa-modal-pays\" class=\"ae-pa-modal-pays\"><\/span>\n        <span id=\"ae-pa-modal-cat\" class=\"ae-pa-modal-cat-badge\"><\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"ae-pa-modal-body\">\n      <h2 id=\"ae-pa-modal-name\" class=\"ae-pa-modal-name\"><\/h2>\n      <p  id=\"ae-pa-modal-desc\" class=\"ae-pa-modal-desc\"><\/p>\n\n      <div class=\"ae-pa-modal-specs\" id=\"ae-pa-modal-specs\">\n        <!-- Specs inject\u00e9es par JS -->\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\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\n     STYLES\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 -->\n<style>\n\/* \u2500\u2500 Variables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-pa-page {\n  --navy:      #0b1340;\n  --navy2:     #131d55;\n  --cyan:      #00c8e0;\n  --cyan-dark: #0097a7;\n  --gold:      #ffd54f;\n  --white:     #ffffff;\n  --card-bg:   #0e1848;\n  --font:      'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\/* \u2500\u2500 Reset page \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.ae-pa-page {\n  background: #080f2e;\n  min-height: 100vh;\n  font-family: var(--font);\n  color: var(--white);\n  \/* Pleine largeur WordPress \u2013 m\u00e9thode transform *\/\n  position: relative;\n  width: 100vw;\n  max-width: none;\n  left: 50%;\n  transform: translateX(-50%);\n  box-sizing: border-box;\n  overflow-x: hidden;\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\n   HERO\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 *\/\n.ae-pa-hero {\n  position: relative;\n  overflow: hidden;\n  padding: 72px 24px 56px;\n  text-align: center;\n  background:\n    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(0,200,224,0.20) 0%, transparent 70%),\n    linear-gradient(180deg, #0b1340 0%, #080f2e 100%);\n  border-bottom: 1px solid rgba(0,200,224,0.15);\n}\n\n\/* \u00c9toiles hero *\/\n.ae-pa-hero-stars { position:absolute; inset:0; pointer-events:none; }\n.ae-pa-hero-stars span {\n  position:absolute; border-radius:50%;\n  background:rgba(255,255,255,0.7);\n  animation: ae-pa-twinkle 3s ease-in-out infinite;\n}\n.ae-pa-hero-stars span:nth-child(1)  { width:2px;height:2px; top:10%; left:4%;  animation-delay:0s;   }\n.ae-pa-hero-stars span:nth-child(2)  { width:3px;height:3px; top:18%; left:12%; animation-delay:0.5s; }\n.ae-pa-hero-stars span:nth-child(3)  { width:2px;height:2px; top:6%;  left:25%; animation-delay:1s;   }\n.ae-pa-hero-stars span:nth-child(4)  { width:2px;height:2px; top:14%; left:40%; animation-delay:1.5s; }\n.ae-pa-hero-stars span:nth-child(5)  { width:3px;height:3px; top:8%;  left:58%; animation-delay:0.3s; }\n.ae-pa-hero-stars span:nth-child(6)  { width:2px;height:2px; top:20%; left:70%; animation-delay:0.8s; }\n.ae-pa-hero-stars span:nth-child(7)  { width:2px;height:2px; top:12%; left:82%; animation-delay:1.2s; }\n.ae-pa-hero-stars span:nth-child(8)  { width:3px;height:3px; top:5%;  left:92%; animation-delay:1.8s; }\n.ae-pa-hero-stars span:nth-child(9)  { width:2px;height:2px; top:30%; left:3%;  animation-delay:2.1s; }\n.ae-pa-hero-stars span:nth-child(10) { width:2px;height:2px; top:35%; left:95%; animation-delay:0.6s; }\n.ae-pa-hero-stars span:nth-child(11) { width:1px;height:1px; top:22%; left:50%; animation-delay:2.4s; opacity:0.5; }\n.ae-pa-hero-stars span:nth-child(12) { width:2px;height:2px; top:28%; left:33%; animation-delay:0.9s; }\n.ae-pa-hero-stars span:nth-child(13) { width:3px;height:3px; top:15%; left:62%; animation-delay:1.4s; }\n.ae-pa-hero-stars span:nth-child(14) { width:2px;height:2px; top:24%; left:78%; animation-delay:1.7s; }\n.ae-pa-hero-stars span:nth-child(15) { width:2px;height:2px; top:9%;  left:48%; animation-delay:2.2s; }\n.ae-pa-hero-stars span:nth-child(16) { width:1px;height:1px; top:32%; left:88%; animation-delay:0.4s; opacity:0.6; }\n.ae-pa-hero-stars span:nth-child(17) { width:3px;height:3px; top:4%;  left:20%; animation-delay:1.1s; }\n.ae-pa-hero-stars span:nth-child(18) { width:2px;height:2px; top:26%; left:6%;  animation-delay:1.9s; }\n.ae-pa-hero-stars span:nth-child(19) { width:2px;height:2px; top:16%; left:97%; animation-delay:2.6s; }\n.ae-pa-hero-stars span:nth-child(20) { width:1px;height:1px; top:38%; left:45%; animation-delay:0.7s; opacity:0.4; }\n\n@keyframes ae-pa-twinkle {\n  0%,100% { opacity:0.25; transform:scale(1); }\n  50%     { opacity:1;    transform:scale(1.8); }\n}\n\n\/* Avion d\u00e9coratif hero *\/\n.ae-pa-hero-plane {\n  position:absolute; top:20px; right:0;\n  font-size:180px; opacity:0.04;\n  transform:rotate(-12deg);\n  pointer-events:none; user-select:none;\n  animation: ae-pa-plane-drift 10s ease-in-out infinite;\n}\n@keyframes ae-pa-plane-drift {\n  0%,100% { transform:rotate(-12deg) translateY(0);   }\n  50%     { transform:rotate(-12deg) translateY(-12px); }\n}\n\n.ae-pa-hero-inner { position:relative; z-index:1; }\n\n.ae-pa-hero-badge {\n  display:inline-block; margin-bottom:16px;\n  padding:5px 18px;\n  border:1px solid rgba(255,213,79,0.45);\n  border-radius:50px;\n  color:var(--gold);\n  font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;\n  background:rgba(255,213,79,0.07);\n}\n\n.ae-pa-hero-title {\n  margin:0 0 10px;\n  font-size:clamp(32px, 6vw, 58px);\n  font-weight:900;\n  color:var(--white);\n  letter-spacing:-0.02em;\n  text-shadow: 0 0 60px rgba(0,200,224,0.5);\n  line-height:1.05;\n}\n\n.ae-pa-hero-sub {\n  margin:0 0 18px;\n  font-size:16px; font-weight:400;\n  color:rgba(255,255,255,0.65);\n  line-height:1.6;\n}\n.ae-pa-hero-sub strong { color:var(--cyan); font-weight:700; }\n\n.ae-pa-hero-meta {\n  display:flex; align-items:center; justify-content:center;\n  flex-wrap:wrap; gap:8px;\n  font-size:13px; font-weight:600;\n  color:rgba(255,255,255,0.75);\n}\n.ae-pa-hero-sep { opacity:0.35; }\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\n   FILTRES\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 *\/\n.ae-pa-filters {\n  display:flex; flex-wrap:wrap; justify-content:center;\n  gap:8px; padding:24px 16px 8px;\n  max-width:900px; margin:0 auto;\n}\n\n.ae-pa-filter-btn {\n  padding:8px 20px;\n  border:1px solid rgba(0,200,224,0.3);\n  border-radius:50px;\n  background:rgba(0,200,224,0.06);\n  color:rgba(255,255,255,0.65);\n  font-family:var(--font); font-size:13px; font-weight:600;\n  cursor:pointer;\n  transition:background 0.2s, border-color 0.2s, color 0.2s;\n}\n.ae-pa-filter-btn:hover {\n  background:rgba(0,200,224,0.15);\n  border-color:rgba(0,200,224,0.6);\n  color:var(--white);\n}\n.ae-pa-filter-btn.ae-pa-filter-active {\n  background:var(--cyan);\n  border-color:var(--cyan);\n  color:#001f26;\n  font-weight:700;\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\n   GRILLE\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 *\/\n.ae-pa-grid-section {\n  max-width:1200px;\n  margin:0 auto;\n  padding:24px 20px 48px;\n}\n\n.ae-pa-grid {\n  display:grid;\n  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n  gap:24px;\n}\n\n.ae-pa-empty {\n  text-align:center;\n  color:rgba(255,255,255,0.4);\n  font-size:15px;\n  padding:40px;\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\n   CARTES AVION\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 *\/\n.ae-pa-card {\n  position:relative;\n  border-radius:16px;\n  overflow:hidden;\n  background:var(--card-bg);\n  border:1px solid rgba(0,200,224,0.15);\n  cursor:pointer;\n  transition:transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;\n  box-shadow: 0 4px 20px rgba(0,0,0,0.4);\n  outline:none;\n}\n.ae-pa-card:hover, .ae-pa-card:focus-visible {\n  transform:translateY(-6px) scale(1.02);\n  box-shadow: 0 16px 48px rgba(0,200,224,0.25), 0 4px 20px rgba(0,0,0,0.5);\n  border-color:rgba(0,200,224,0.5);\n}\n.ae-pa-card:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }\n\n\/* Image *\/\n.ae-pa-card-img-wrap {\n  position:relative;\n  width:100%; padding-top:60%;\n  background: linear-gradient(135deg, #0d1848, #1a2870);\n  overflow:hidden;\n}\n.ae-pa-card-img-wrap img {\n  position:absolute; inset:0;\n  width:100%; height:100%;\n  object-fit:cover;\n  transition:transform 0.4s ease, filter 0.4s ease;\n  filter:brightness(0.88);\n}\n.ae-pa-card:hover .ae-pa-card-img-wrap img {\n  transform:scale(1.06);\n  filter:brightness(1);\n}\n\n\/* Pas de photo \u2192 placeholder *\/\n.ae-pa-card-img-placeholder {\n  position:absolute; inset:0;\n  display:flex; align-items:center; justify-content:center;\n  font-size:72px; opacity:0.2;\n}\n\n\/* Cr\u00e9dit photo *\/\n.ae-pa-img-credit {\n  position:absolute; bottom:4px; right:8px;\n  font-size:9px; font-weight:400;\n  color:rgba(255,255,255,0.45);\n  text-shadow:0 1px 3px rgba(0,0,0,0.8);\n  pointer-events:none; user-select:none;\n  letter-spacing:0.02em;\n  z-index:2;\n}\n\n\/* Pays + cat\u00e9gorie sur l'image *\/\n.ae-pa-card-overlay {\n  position:absolute; bottom:0; left:0; right:0;\n  padding:24px 12px 10px;\n  background:linear-gradient(to top, rgba(8,15,46,0.92) 0%, transparent 100%);\n  display:flex; justify-content:space-between; align-items:flex-end;\n}\n.ae-pa-card-pays {\n  font-size:13px; font-weight:600; color:rgba(255,255,255,0.85);\n}\n.ae-pa-card-cat {\n  font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;\n  padding:3px 9px; border-radius:50px;\n  background:rgba(0,200,224,0.25); color:var(--cyan);\n  border:1px solid rgba(0,200,224,0.35);\n}\n\n\/* Corps de la carte *\/\n.ae-pa-card-body {\n  padding:14px 16px 18px;\n}\n.ae-pa-card-name {\n  font-size:17px; font-weight:800; color:var(--white);\n  margin:0 0 6px; line-height:1.2;\n}\n.ae-pa-card-type {\n  font-size:12px; color:rgba(255,255,255,0.5); font-weight:400;\n  margin:0 0 12px;\n}\n\n\/* Aper\u00e7u mini specs *\/\n.ae-pa-card-specs-mini {\n  display:flex; flex-wrap:wrap; gap:6px;\n}\n.ae-pa-card-spec-chip {\n  font-size:11px; font-weight:600;\n  padding:3px 10px; border-radius:50px;\n  background:rgba(255,255,255,0.06);\n  color:rgba(255,255,255,0.55);\n  border:1px solid rgba(255,255,255,0.1);\n}\n\n\/* CTA discret *\/\n.ae-pa-card-cta {\n  display:flex; align-items:center; justify-content:flex-end;\n  margin-top:12px;\n  font-size:12px; font-weight:700; letter-spacing:0.05em;\n  color:var(--cyan); text-transform:uppercase;\n  gap:4px;\n  opacity:0.7; transition:opacity 0.2s;\n}\n.ae-pa-card:hover .ae-pa-card-cta { opacity:1; }\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\n   MODAL \/ POPUP\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 *\/\n.ae-pa-modal {\n  display:none;\n  position:fixed; inset:0; z-index:100000;\n  padding:20px 16px;\n  align-items:center; justify-content:center;\n  \/* animation *\/\n  opacity:0;\n  transition:opacity 0.3s ease;\n}\n.ae-pa-modal.ae-pa-modal-open {\n  display:flex;\n  opacity:1;\n}\n\/* Backdrop flou *\/\n.ae-pa-modal-backdrop {\n  position:absolute; inset:0;\n  background:rgba(5,10,35,0.85);\n  backdrop-filter:blur(6px);\n  -webkit-backdrop-filter:blur(6px);\n}\n\n\/* Bo\u00eete modale *\/\n.ae-pa-modal-box {\n  position:relative; z-index:1;\n  width:100%; max-width:640px;\n  max-height:90vh;\n  overflow-y:auto;\n  border-radius:20px;\n  background: linear-gradient(160deg, #0d1848 0%, #0a1230 100%);\n  border:1px solid rgba(0,200,224,0.3);\n  box-shadow: 0 30px 80px rgba(0,0,0,0.7), 0 0 0 1px rgba(0,200,224,0.08);\n  \/* animation zoom *\/\n  transform:scale(0.88);\n  transition:transform 0.3s cubic-bezier(.34,1.56,.64,1);\n}\n.ae-pa-modal.ae-pa-modal-open .ae-pa-modal-box {\n  transform:scale(1);\n}\n\n\/* Bouton fermeture *\/\n.ae-pa-modal-close {\n  position:sticky; top:12px; float:right;\n  margin:12px 12px 0 0;\n  width:36px; height:36px;\n  border:2px solid rgba(255,255,255,0.3);\n  border-radius:50%;\n  background:rgba(0,0,0,0.4);\n  color:#fff;\n  font-size:16px; cursor:pointer;\n  display:flex; align-items:center; justify-content:center;\n  transition:background 0.2s, border-color 0.2s, transform 0.2s;\n  z-index:2;\n}\n.ae-pa-modal-close:hover, .ae-pa-modal-close:focus {\n  background:var(--cyan); border-color:var(--cyan);\n  transform:rotate(90deg); outline:none;\n}\n\n\/* Image modale *\/\n.ae-pa-modal-img-wrap {\n  position:relative; width:100%; padding-top:52%;\n  overflow:hidden;\n  background: linear-gradient(135deg, #0d1848, #1a2870);\n  border-radius:20px 20px 0 0;\n  margin-top:-44px; \/* remonte sous le bouton close *\/\n}\n.ae-pa-modal-img-wrap img {\n  position:absolute; inset:0;\n  width:100%; height:100%;\n  object-fit:cover;\n  filter:brightness(0.75);\n}\n.ae-pa-modal-img-overlay {\n  position:absolute; bottom:0; left:0; right:0;\n  padding:28px 20px 14px;\n  background:linear-gradient(to top, rgba(8,15,46,0.9) 0%, transparent 100%);\n  display:flex; justify-content:space-between; align-items:flex-end;\n}\n.ae-pa-modal-pays {\n  font-size:14px; font-weight:600; color:#ffffff;\n}\n.ae-pa-modal-cat-badge {\n  font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;\n  padding:4px 12px; border-radius:50px;\n  background:rgba(0,200,224,0.25); color:#00c8e0;\n  border:1px solid rgba(0,200,224,0.4);\n}\n\n\/* Corps modale *\/\n.ae-pa-modal-body { padding:20px 24px 28px; }\n\n.ae-pa-modal-name {\n  margin:0 0 10px;\n  font-size:26px; font-weight:900; color:#ffffff;\n  text-shadow:0 0 30px rgba(0,200,224,0.3);\n  line-height:1.1;\n}\n\n.ae-pa-modal-desc {\n  margin:0 0 20px;\n  font-size:14px; color:#ffffff;\n  line-height:1.7;\n}\n\n\/* Tableau de specs *\/\n.ae-pa-modal-specs {\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:10px;\n}\n.ae-pa-spec-item {\n  background:rgba(255,255,255,0.04);\n  border:1px solid rgba(0,200,224,0.12);\n  border-radius:10px;\n  padding:10px 14px;\n}\n.ae-pa-spec-label {\n  font-size:10px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;\n  color:#ffd54f;\n  text-shadow: 0 0 8px rgba(255,213,79,0.85), 0 0 22px rgba(255,213,79,0.45);\n  margin-bottom:3px;\n}\n.ae-pa-spec-value {\n  font-size:14px; font-weight:600; color:#ffffff;\n  line-height:1.3;\n}\n\n\/* Spec sur ligne enti\u00e8re *\/\n.ae-pa-spec-full { grid-column:1\/-1; }\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\n   NOTE DE BAS DE PAGE\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 *\/\n.ae-pa-footer-note {\n  text-align:center;\n  padding:0 24px 48px;\n  max-width:700px; margin:0 auto;\n}\n.ae-pa-footer-note p {\n  font-size:12px; color:rgba(255,255,255,0.35);\n  line-height:1.6; margin:0;\n  background:rgba(255,255,255,0.03);\n  border:1px solid rgba(255,255,255,0.07);\n  border-radius:10px; padding:14px 18px;\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\n   RESPONSIVE MOBILE\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 *\/\n@media (max-width:600px) {\n  .ae-pa-hero { padding:48px 16px 36px; }\n  .ae-pa-hero-plane { font-size:100px; }\n  .ae-pa-grid { grid-template-columns:1fr; }\n  .ae-pa-modal-specs { grid-template-columns:1fr; }\n  .ae-pa-spec-full { grid-column:1; }\n  .ae-pa-modal-box { max-height:95vh; border-radius:16px; }\n  .ae-pa-modal-img-wrap { border-radius:16px 16px 0 0; }\n}\n\n\/* Scrollbar modale *\/\n.ae-pa-modal-box::-webkit-scrollbar { width:6px; }\n.ae-pa-modal-box::-webkit-scrollbar-track { background:transparent; }\n.ae-pa-modal-box::-webkit-scrollbar-thumb { background:rgba(0,200,224,0.3); border-radius:3px; }\n<\/style>\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\n     SCRIPT \u2013 DONN\u00c9ES ET LOGIQUE\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 -->\n<script>\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\n   \u25bc\u25bc\u25bc  MODIFIEZ ICI POUR AJOUTER \/ CHANGER LES AVIONS  \u25bc\u25bc\u25bc\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\n\n   CHAQUE AVION = un objet { ... } s\u00e9par\u00e9 par une virgule.\n\n   CHAMPS OBLIGATOIRES :\n     nom        \u2192 Nom de l'appareil affich\u00e9 sur la carte\n     pays       \u2192 Ex: \"\ud83c\uddeb\ud83c\uddf7 France\"\n     type       \u2192 Ex: \"Avion de chasse multir\u00f4le\"\n     categorie  \u2192 \"chasse\" | \"voltige\" | \"helico\" | \"civil\" | \"historique\"\n     photo      \u2192 URL de la photo (m\u00e9diath\u00e8que WordPress)\n                  \u2192 Si pas de photo, mettez \"\" et un avion s'affichera\n     description \u2192 Texte libre d\u00e9crivant l'appareil\n\n   CHAMPS SPECS (laisser \"\" si inconnu) :\n     motorisation, envergure, longueur, vitesse_max, equipage,\n     premiere_vol, nb_produits, anecdote (texte libre)\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 *\/\nvar AIRCRAFT = [\n  {\n    nom:          \"Rafale Solo Display\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion de chasse multir\u00f4le\",\n    categorie:    \"chasse\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/RSD-scaled.jpg\",\n    credit_photo: \"Lucas Schneider\",   \/* Lucas Schneider *\/\n    description:  \"Le Rafale de Dassault Aviation, fleuron de l'industrie fran\u00e7aise, incarne la puissance, l'agilit\u00e9 et la pr\u00e9cision. V\u00e9ritable avion omnir\u00f4le, il est capable d'intervenir sur tous les fronts : du combat a\u00e9rien \u00e0 la reconnaissance, jusqu'aux missions les plus strat\u00e9giques. Le Rafale Solo Display met en lumi\u00e8re toute l'\u00e9tendue de ses capacit\u00e9s dans une d\u00e9monstration spectaculaire...clairement un des moments de cette 40\u00e8me \u00e9dition \u00e0 ne pas manquer !\",\n    motorisation: \"2 \u00d7 SNECMA M88-2 (75 kN chacun)\",\n    envergure:    \"10,80 m\",\n    longueur:     \"15,27 m\",\n    vitesse_max:  \"1 912 km\/h (Mach 1,8)\",\n    equipage:     \"1 pilote\",\n    premiere_vol: \"4 juillet 1986\",\n    nb_produits:  \"Plus de 230 appareils (Rafales)\",\n    anecdote:     \"le Rafale Solo Display est constamment sollicit\u00e9 par les organisateurs des plus grands rassemblement en Europe !\"\n  },\n  {\n    nom:          \"Boeing PT-17 Stearman\",\n    pays:         \"\ud83c\uddfa\ud83c\uddf8 \u00c9tats-Unis\",\n    type:         \"Biplan d'entra\u00eenement de la Seconde Guerre mondiale\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/Boeing-PT17-Stearman-Lucas-Schneider-scaled.jpg\",\n    credit_photo: \"Lucas Schneider\",   \/* Lucas Schneider *\/\n    description:  \"Le Boeing Stearman, aussi appel\u00e9 Kaydet, est un biplan am\u00e9ricain embl\u00e9matique qui a form\u00e9 des milliers de pilotes alli\u00e9s durant la Seconde Guerre mondiale. Sa silhouette gracieuse et son moteur radial rugissant en font l'une des machines les plus appr\u00e9ci\u00e9es des amateurs d'aviation ancienne. Aujourd'hui, il continue de fasciner par son charme vintage et ses performances intemporelles. Un v\u00e9ritable voyage dans le ciel d'une autre \u00e9poque !\",\n    motorisation: \"1 \u00d7 Continental R-670 (220 ch)\",\n    envergure:    \"9,80 m\",\n    longueur:     \"7,54 m\",\n    vitesse_max:  \"201 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"1934\",\n    nb_produits:  \"Environ 10 346 appareils (toutes versions)\",\n    anecdote:     \"Le Stearman a form\u00e9 plus de 75 % des pilotes militaires am\u00e9ricains pendant la Seconde Guerre mondiale, ce qui lui a valu le surnom de \\\"Yellow Peril\\\" en raison de sa livr\u00e9e jaune r\u00e9glementaire.\"\n  },\n  {\n    nom:          \"Cessna FRA150M\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion Cessna d\u00e9velopp\u00e9 pour la voltige\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/Cessna-150M.jpg\",\n    credit_photo: \"APSAM\",   \/* APSAM *\/\n    description:  \"Le Cessna FRA150M est une version du c\u00e9l\u00e8bre Cessna 150 fabriqu\u00e9e sous licence en France par Reims Aviation. Ce biplace est l'avion \u00e9cole par r\u00e9f\u00e9rence. Il a form\u00e9 des g\u00e9n\u00e9rations de pilotes priv\u00e9s et professionnels en France. Robuste et fiable, il reste tr\u00e8s pr\u00e9sent sur les a\u00e9rodromes fran\u00e7ais. Con\u00e7u pour la voltige l\u00e9g\u00e8re, il permet de d\u00e9couvrir les premi\u00e8res sensations tout en restant accessible et rassurant !\",\n    motorisation: \"1 \u00d7 Continental O-240-A (110 ch)\",\n    envergure:    \"10,16 m\",\n    longueur:     \"7,29 m\",\n    vitesse_max:  \"201 km\/h\",\n    equipage:     \"2 (c\u00f4te \u00e0 c\u00f4te)\",\n    premiere_vol: \"1966 (version Reims Aviation)\",\n    nb_produits:  \"Plus de 23 000 Cessna 150\/152 (toutes versions mondiales)\",\n    anecdote:     \"C'est souvent sur ce type d'avion que les pilotes font leurs tout premiers tonneaux... des souvenirs qui restent \u00e0 vie\"\n  },\n  {\n    nom:          \"Stampe SV4\",\n    pays:         \"\ud83c\udde7\ud83c\uddea Belgique \/ \ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Biplan d'entra\u00eenement \u00e0 la voltige classique\",\n    categorie:    \"voltige\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/Stampe-SV4.jpeg\",\n    credit_photo: \"JP Neymond\",   \/* JP Neymond *\/\n    description:  \"Le Stampe SV4 est un biplan de voltige l\u00e9gendaire con\u00e7u en Belgique dans les ann\u00e9es 1930 par Jean Stampe. C'est l'\u00e9l\u00e9gance du biplan alli\u00e9e \u00e0 la pr\u00e9cision des figures. Il a form\u00e9 des g\u00e9n\u00e9rations de champions de voltige et demeure un symbole de l'a\u00e9ronautique sportive fran\u00e7aise. Il a fait parti de l'escadrille de pr\u00e9sentation de l'Arm\u00e9e de l'Air (anc\u00eatre de la patrouille de France) en 1947.\",\n    motorisation: \"1 \u00d7 de Havilland Gipsy Major I (130 ch)\",\n    envergure:    \"8,38 m\",\n    longueur:     \"6,80 m\",\n    vitesse_max:  \"200 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"1933\",\n    nb_produits:  \"Environ 1 050 appareils\",\n    anecdote:     \"La quasi-totalit\u00e9 des champions de France de voltige classique ont appris leur art sur un Stampe SV4. L'appareil est consid\u00e9r\u00e9 comme l'\u00e9cole de la voltige par excellence en France. Il reste encore aujourd'hui une r\u00e9f\u00e9rence pour apprendre les bases de la voltige... tout en douceur.\"\n  },\n  {\n    nom:          \"Fouga Magister\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion d'entra\u00eenement militaire \u00e0 r\u00e9action\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/Fouga-Magister.jpeg\",\n    credit_photo: \" FM \",   \/* FM *\/\n    description:  \"Le Fouga CM 170 Magister est le premier avion \u00e0 r\u00e9action d'entra\u00eenement au monde con\u00e7u d\u00e8s l'origine pour cette mission. Reconnaissable \u00e0 son empennage en \\\"V\\\" caract\u00e9ristique, il fut utilis\u00e9 par de nombreuses arm\u00e9es de l'air dans le monde et est l'appareil embl\u00e9matique de la Patrouille de France des ann\u00e9es 1960.\",\n    motorisation: \"2 \u00d7 Turbom\u00e9ca Marbor\u00e9 IIA (400 kgf chacun)\",\n    envergure:    \"11,40 m\",\n    longueur:     \"10,06 m\",\n    vitesse_max:  \"715 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"23 juillet 1952\",\n    nb_produits:  \"929 appareils\",\n    anecdote:     \"La Patrouille de France a vol\u00e9 sur Fouga Magister de 1964 \u00e0 1980, avant de passer \u00e0 l'Alpha Jet. L'empennage en \\\"papillon\\\" du Magister est sa signature visuelle inimitable, encore reconnaissable de loin.\"\n  },\n  {\n    nom:          \"Piper J-3 Cub\",\n    pays:         \"\ud83c\uddfa\ud83c\uddf8 \u00c9tats-Unis\",\n    type:         \"Ancien avion d'entra\u00eenement de l'arm\u00e9e am\u00e9ricaine\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/03\/Piper-J-3-Cub-1.jpg\",\n    credit_photo: \"Spot'Air\",   \/* Spot'Air *\/\n    description:  \"Le Piper J-3 Cub est l'un des avions les plus iconiques de l'histoire de l'aviation l\u00e9g\u00e8re. Sa couleur jaune \\\"Cub Yellow\\\" est reconnaissable entre toutes. Populaire pour l'initiation au pilotage avant et apr\u00e8s la Seconde Guerre mondiale, il reste un symbole universel de la libert\u00e9 de voler.\",\n    motorisation: \"1 \u00d7 Continental A-65 (65 ch)\",\n    envergure:    \"10,74 m\",\n    longueur:     \"6,71 m\",\n    vitesse_max:  \"130 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"1937\",\n    nb_produits:  \"19 888 appareils\",\n    anecdote:     \"Le Piper J-3 Cub f\u00eatera ses 80 ans le jour du meeting ! Cet avion, c'est le charme de l'aviation \u00e0 l'\u00e9tat pur : simple, l\u00e9ger, et tellement authentique. Voler avec lui, c'est ralentir et profiter de chaque instant, les yeux riv\u00e9s sur l'horizon. Le J-3 Cub a jou\u00e9 un r\u00f4le cl\u00e9 lors du D\u00e9barquement de Normandie en 1944 : utilis\u00e9 comme avion de liaison et de reconnaissance \u00e0 tr\u00e8s basse altitude, des milliers d'exemplaires ont servi l'arm\u00e9e am\u00e9ricaine. Sa lenteur \u00e9tait un atout... il pouvait observer discr\u00e8tement sans attirer l'attention !\"\n  },\n  {\n    nom:          \"UTVA 66\",\n    pays:         \"\ud83c\uddf7\ud83c\uddf8 Yougoslavie\",\n    type:         \"Avion de liaison et d'entra\u00eenement yougoslave\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/UTVA-66.jpg\",\n    credit_photo: \"FrenchAirshowTV\",\n    description:  \"L'UTVA 66 est un avion de liaison et d'entra\u00eenement construit en Yougoslavie dans les ann\u00e9es 1960 par la firme UTVA. Rare, surprenant et peu vu en meeting, c'est un avion discret qui r\u00e9serve pourtant une d\u00e9monstration pleine de finesse et d'originalit\u00e9. Robuste et polyvalent, il fut largement utilis\u00e9 par l'Arm\u00e9e de l'Air yougoslave pour l'entra\u00eenement de base et les missions de liaison. Sa conception simple et sa fiabilit\u00e9 en font un repr\u00e9sentant embl\u00e9matique de l'industrie a\u00e9ronautique des pays de l'Est pendant la Guerre Froide.\",\n    motorisation: \"1 \u00d7 Lycoming O-360-A1A (180 ch)\",\n    envergure:    \"11,40 m\",\n    longueur:     \"8,38 m\",\n    vitesse_max:  \"215 km\/h\",\n    equipage:     \"2 \u00e0 4 personnes\",\n    premiere_vol: \"1966\",\n    nb_produits:  \"Environ 100 appareils\",\n    anecdote:     \"L'UTVA 66 est l'un des rares avions de conception yougoslave \u00e0 avoir surv\u00e9cu jusqu'\u00e0 nos jours et qui est encore en \u00e9tat de navigabilit\u00e9. Sa pr\u00e9sence \u00e0 Airexpo est une v\u00e9ritable opportunit\u00e9 de d\u00e9couvrir un nouvel a\u00e9ronef !\"\n  },\n  {\n    nom:          \"Socata TBM 700\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion d'affaires \u00e0 turbopropulseur\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/TBM700.jpg\",\n    credit_photo: \"ALAT\",\n    description:  \"Le Socata TBM 700 est un avion monomoteur \u00e0 turbopropulseur de haute performance con\u00e7u et fabriqu\u00e9 en France par SOCATA. Alliant luxe, vitesse et \u00e9conomie, il repr\u00e9sente l'excellence de l'aviation d'affaires l\u00e9g\u00e8re fran\u00e7aise. Premier monomoteur pressuris\u00e9 \u00e0 turbine, il a marqu\u00e9 son \u00e9poque par sa polyvalence et sa fiabilit\u00e9. Utilis\u00e9 aussi bien dans le civil que par les forces fran\u00e7aises, notamment par l'Arm\u00e9e de Terre, il assure par exemple des missions de transport d'autorit\u00e9s avec une efficacit\u00e9 redoutable.\",\n    motorisation: \"1 \u00d7 Pratt & Whitney Canada PT6A-64 (700 ch)\",\n    envergure:    \"12,68 m\",\n    longueur:     \"10,64 m\",\n    vitesse_max:  \"555 km\/h\",\n    equipage:     \"1 pilote + 5 passagers\",\n    premiere_vol: \"14 juillet 1987\",\n    nb_produits:  \"Plus de 1 000 appareils (toutes versions TBM)\",\n    anecdote:     \"Le TBM 700 cache derri\u00e8re son apparence discr\u00e8te un avion capable de performances proche de certains jets...avec une consommation bien plus ma\u00eetris\u00e9e.\"\n  },\n  {\n    nom:          \"Yakovlev Yak-50\",\n    pays:         \"\ud83c\uddf7\ud83c\uddfa URSS\",\n    type:         \"Avion d'entra\u00eenement et de voltige monoplace sovi\u00e9tique\",\n    categorie:    \"voltige\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Yak-50.jpeg\",\n    credit_photo: \"LANGENFELD\",\n    description:  \"Le Yakovlev Yak-50 est un avion de voltige monoplace con\u00e7u en Union Sovi\u00e9tique dans les ann\u00e9es 1970. D\u00e9velopp\u00e9 pour les comp\u00e9titions internationales de voltige, il a remport\u00e9 de nombreux titres mondiaux entre les mains de pilotes sovi\u00e9tiques. Dot\u00e9 d'un puissant moteur radial de 360 chevaux, il est capable d'encha\u00eener figures et tonneaux avec une pr\u00e9cision redoutable.\",\n    motorisation: \"1 \u00d7 Vedeneyev M14P (360 ch)\",\n    envergure:    \"9,50 m\",\n    longueur:     \"7,68 m\",\n    vitesse_max:  \"370 km\/h\",\n    equipage:     \"1 pilote\",\n    premiere_vol: \"1975\",\n    nb_produits:  \"Environ 300 appareils\",\n    anecdote:     \"Son moteur en \u00e9toile embl\u00e9matique vrombissant est l'une de ses signatures sonores les plus reconnaissables dans les meetings a\u00e9riensn un bruit reconnaissable entre mille !\"\n  },\n  {\n    nom:          \"MC-15 \\\"Cri-Cri\\\"\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion ultra-l\u00e9ger bir\u00e9acteur exp\u00e9rimental\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Cri-cri-scaled.jpg\",\n    credit_photo: \"\",\n    description:  \"Le MC-15 Cri-Cri est le plus petit avion bimoteur habit\u00e9 au monde, con\u00e7u par l'ing\u00e9nieur Michel Colomban. Avec ses deux minuscules moteurs \u00e9lectriques ou deux-temps et ses 4,90 m d'envergure, il est aussi agile qu'impressionnant. Sa pr\u00e9sence dans un meeting ne manque jamais de surprendre le public, tant sa taille contraste avec ses capacit\u00e9s de voltige ! Il partagera la ciel avec l'UTVA66 pour une d\u00e9monstration qui prmet de vous surprendre !\",\n    motorisation: \"2 \u00d7 JPX PUL 212 (15 ch chacun) ou version \u00e9lectrique\",\n    envergure:    \"4,90 m\",\n    longueur:     \"3,90 m\",\n    vitesse_max:  \"220 km\/h\",\n    equipage:     \"1 pilote\",\n    premiere_vol: \"19 juillet 1973\",\n    nb_produits:  \"Environ 100 appareils construits par des amateurs \u00e0 travers le monde\",\n    anecdote:     \"Le Cri-Cri est homologu\u00e9 comme l'avion bimoteur habit\u00e9 le plus l\u00e9ger du monde avec seulement 78 kg \u00e0 vide. Il a m\u00eame \u00e9t\u00e9 utilis\u00e9 pour des vols \u00e9lectriques pionniers par Airbus, faisant de lui un symbole d'innovation autant que de charme.\"\n  },\n  {\n    nom:          \"Nanchang CJ-6\",\n    pays:         \"\ud83c\udde8\ud83c\uddf3 Chine\",\n    type:         \"Avion d'entra\u00eenement militaire chinois\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Nanchang-CJ6.jpg\",\n    credit_photo: \"\",\n    description:  \"Le Nanchang CJ-6 est un avion d'entra\u00eenement de base con\u00e7u en Chine dans les ann\u00e9es 1950 pour remplacer le Yak-18 sovi\u00e9tique. Produit en grande s\u00e9rie pour l'Arm\u00e9e de l'Air chinoise, il fut utilis\u00e9 pour former des milliers de pilotes militaires. Son moteur en \u00e9toile, ses lignes classiques et sa robustesse en font aujourd'hui un avion pris\u00e9 par les collectionneurs et les passionn\u00e9s d'aviation ancienne. Ce bijou d'histoire, peu courant en meeting, est toujours impressionant \u00e0 voir en vol !\",\n    motorisation: \"1 \u00d7 Zhuzhou HS6A (moteur en \u00e9toile, 285 ch)\",\n    envergure:    \"10,22 m\",\n    longueur:     \"8,46 m\",\n    vitesse_max:  \"297 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"1958\",\n    nb_produits:  \"Plus de 2 000 appareils\",\n    anecdote:     \"Export\u00e9 dans plusieurs pays, le CJ-6 est aujourd'hui tr\u00e8s populaire aux \u00c9tats-Unis et en Europe comme avion de voltige et de collection.\"\n  },\n  {\n    nom:          \"Vulcanair P-68\",\n    pays:         \"\ud83c\uddee\ud83c\uddf9 Italie\",\n    type:         \"Bimoteur l\u00e9ger polyvalent\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Vulcanair-P-68-scaled.jpeg\",\n    credit_photo: \"\",\n    description:  \"Le Vulcanair P-68 est un bimoteur l\u00e9ger italien reconnaissable \u00e0 sa configuration \u00e0 aile haute et son train fixe. D\u00e9velopp\u00e9 initialement par Partenavia puis repris par Vulcanair, il est utilis\u00e9 aussi bien pour le transport de passagers que pour des missions de surveillance, de patrouille maritime ou de photographie a\u00e9rienne. Sa visibilit\u00e9 exceptionnelle et sa fiabilit\u00e9 en font un appareil tr\u00e8s polyvalent, appr\u00e9ci\u00e9 par de nombreux op\u00e9rateurs civils et gouvernementaux. Celui pr\u00e9sent au meeting est un avion laboratoire utilis\u00e9 par la patrouille de l'ISAE-SUPAERO.\",\n    motorisation: \"2 \u00d7 Lycoming IO-360-A1B6 (200 ch chacun)\",\n    envergure:    \"12,00 m\",\n    longueur:     \"9,35 m\",\n    vitesse_max:  \"331 km\/h\",\n    equipage:     \"1 pilote + jusqu'\u00e0 6 passagers\",\n    premiere_vol: \"1970 (Partenavia P.68)\",\n    nb_produits:  \"Plus de 400 appareils (toutes versions)\",\n    anecdote:     \"Le P-68 est notamment utilis\u00e9 en France pour des missions de surveillance des c\u00f4tes et de lutte contre les incendies de for\u00eats. Sa grande fenestration lui conf\u00e8re un poste de pilotage avec une vue panoramique incomparable.\"\n  },\n  {\n    nom:          \"Aquila AT-01\",\n    pays:         \"\ud83c\udde9\ud83c\uddea Allemagne\",\n    type:         \"Avion biplace l\u00e9ger en mat\u00e9riaux composites\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Aquila-AT01.png\",\n    credit_photo: \"\",\n    description:  \"L'Aquila AT-01 est un avion biplace l\u00e9ger tout composite con\u00e7u et fabriqu\u00e9 en Allemagne. Il incarne la modernit\u00e9 de l'aviation g\u00e9n\u00e9rale europ\u00e9enne : fuselage en fibre de verre, lignes \u00e9pur\u00e9es et performances remarquables pour un avion de cette cat\u00e9gorie. Tr\u00e8s appr\u00e9ci\u00e9 pour la formation et le voyage, il est l'exemple m\u00eame du savoir-faire a\u00e9ronautique allemand appliqu\u00e9 \u00e0 l'aviation l\u00e9g\u00e8re. Ceux pr\u00e9sents au meeting sont des avions d'\u00e9cole utilis\u00e9 par la patrouille de l'ISAE-SUPAERO.\",\n    motorisation: \"1 \u00d7 Rotax 912S (100 ch)\",\n    envergure:    \"10,00 m\",\n    longueur:     \"7,10 m\",\n    vitesse_max:  \"240 km\/h\",\n    equipage:     \"2 (c\u00f4te \u00e0 c\u00f4te)\",\n    premiere_vol: \"1999\",\n    nb_produits:  \"Plus de 100 appareils\",\n    anecdote:     \"L'Aquila AT-01 est certifi\u00e9 EASA et r\u00e9pond aux normes CS-23 les plus strictes, ce qui en fait un avion de formation de r\u00e9f\u00e9rence dans plusieurs \u00e9coles de pilotage europ\u00e9ennes.\"\n  },\n  {\n    nom:          \"Socata TB20 Trinidad\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion de voyage monomoteur haute performance\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Socata-TB20-scaled.jpg\",\n    credit_photo: \"AGEPAC\",\n    description:  \"Le Socata TB20 Trinidad est un avion de voyage monomoteur pressuris\u00e9 fabriqu\u00e9 par SOCATA \u00e0 Tarbes. Membre de la famille TB (Tarbes-Bagn\u00e8res), il se distingue par son train rentrant, sa cabine spacieuse et ses performances de croisi\u00e8re \u00e9lev\u00e9es. Tr\u00e8s appr\u00e9ci\u00e9 des pilotes priv\u00e9s et des voyageurs exigeants, il allie confort, autonomie et facilit\u00e9 de pilotage dans un avion enti\u00e8rement con\u00e7u et fabriqu\u00e9 en France. Celui pr\u00e9sent au meeting est un avion d'\u00e9cole de l'ENAC.\",\n    motorisation: \"1 \u00d7 Lycoming IO-540-C4D5D (250 ch)\",\n    envergure:    \"9,97 m\",\n    longueur:     \"7,63 m\",\n    vitesse_max:  \"310 km\/h\",\n    equipage:     \"1 pilote + 4 passagers\",\n    premiere_vol: \"1980\",\n    nb_produits:  \"Plus de 700 appareils (toutes versions TB)\",\n    anecdote:     \"La famille TB de SOCATA (TB9, TB10, TB20, TB21) a \u00e9t\u00e9 con\u00e7ue dans un esprit de progressivit\u00e9 : du biplace \u00e9cole jusqu'au voyage haute performance. Le TB20 est souvent le r\u00eave de nombreux pilotes priv\u00e9s pour sa polyvalence et son confort.\"\n  },\n  {\n    nom:          \"Diamond DA42 Twin Star\",\n    pays:         \"\ud83c\udde6\ud83c\uddf9 Autriche\",\n    type:         \"Bimoteur l\u00e9ger \u00e0 turbodiesel\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Diamond-DA42.png\",\n    credit_photo: \"ENAC\",\n    description:  \"Le Diamond DA42 Twin Star est un bimoteur l\u00e9ger autrichien con\u00e7u par Diamond Aircraft. Il se distingue par ses moteurs diesel modernes, sa cellule enti\u00e8rement en fibre de carbone et son cockpit enti\u00e8rement num\u00e9rique Garmin G1000. Tr\u00e8s efficient et \u00e9conomique, il est largement utilis\u00e9 pour la formation aux qualifications multi-moteurs ainsi que dans les flottes de taxis a\u00e9riens. Celui pr\u00e9sent au meeting est un avion d'\u00e9cole de l'ENAC.\",\n    motorisation: \"2 \u00d7 Austro Engine AE300 (turbodiesel, 170 ch chacun)\",\n    envergure:    \"13,56 m\",\n    longueur:     \"8,56 m\",\n    vitesse_max:  \"356 km\/h\",\n    equipage:     \"1\u20132 pilotes + 2 passagers\",\n    premiere_vol: \"9 d\u00e9cembre 2002\",\n    nb_produits:  \"Plus de 700 appareils\",\n    anecdote:     \"Le DA42 a \u00e9t\u00e9 le premier avion l\u00e9ger certifi\u00e9 avec des moteurs diesel modernes en Europe. Avec ses deux moteurs diesel, sa consommation est r\u00e9duite de pr\u00e8s de 50 % par rapport \u00e0 des moteurs essence \u00e9quivalents, ce qui en fait l'un des bimoteurs les plus \u00e9conomiques du march\u00e9.\"\n  },\n  {\n    nom:          \"Mudry CAP 10\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion de voltige biplace\",\n    categorie:    \"voltige\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Cap-10-ENAC.png\",\n    credit_photo: \"ENAC\",\n    description:  \"Le Mudry CAP 10 est un avion de voltige biplace en tandem fabriqu\u00e9 par les Avions Mudry et Cie \u00e0 Bernay, en Normandie. Symbole de la voltige fran\u00e7aise, il a form\u00e9 de nombreux champions et continues d'\u00eatre utilis\u00e9 dans les \u00e9coles de voltige et par l'Arm\u00e9e de l'Air fran\u00e7aise pour la s\u00e9lection et la formation des pilotes. Son train fixe, sa cellule robuste et sa sym\u00e9trie verticale parfaite en font un excellent avion pour apprendre et affiner les figures de voltige. Celui pr\u00e9sent au meeting est un avion de voltige de l'ENAC.\",\n    motorisation: \"1 \u00d7 Lycoming AEIO-360-B2F (180 ch)\",\n    envergure:    \"8,06 m\",\n    longueur:     \"7,16 m\",\n    vitesse_max:  \"283 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"1968\",\n    nb_produits:  \"Plus de 250 appareils\",\n    anecdote:     \"Le CAP 10 est encore aujourd'hui utilis\u00e9 par l'Arm\u00e9e de l'Air et de l'Espace fran\u00e7aise pour la s\u00e9lection initiale des pilotes. C'est souvent \u00e0 bord d'un CAP 10 que les futurs pilotes de chasse d\u00e9couvrent les joies \u2014 et les vertiges \u2014 de la voltige !\"\n  },\n  {\n    nom:          \"Swift S-1\",\n    pays:         \"\ud83c\uddf5\ud83c\uddf1 Pologne\",\n    type:         \"Planeur de voltige monoplace\",\n    categorie:    \"voltige\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Swift-S-1-scaled.jpeg\",\n    credit_photo: \"\",\n    description:  \"Le Swift S-1 est un planeur de voltige monoplace con\u00e7u en Pologne, taill\u00e9 pour les comp\u00e9titions de haut niveau. D'une l\u00e9g\u00e8ret\u00e9 et d'une pr\u00e9cision remarquables, il encha\u00eene les figures avec une aisance d\u00e9concertante. Le Swift S-1 est d'une maniabilit\u00e9 extr\u00eame au service de la voltige, et ce sans moteur ! Avec sa silhouette hors du commun, attendez-vous \u00e0 des vrilles, boucles et renversements. Ce planeur repousse les limites du vol acrobatique et offre un spectacle \u00e0 couper le souffle !\",\n    motorisation: \"1 \u00d7 Lycoming AEIO-360 (200 ch)\",\n    envergure:    \"12,70 m\",\n    longueur:     \"6,91 m\",\n    vitesse_max:  \"292 km\/h\",\n    equipage:     \"1 pilote\",\n    premiere_vol: \"1991\",\n    nb_produits:  \"Quelques dizaines d'appareils\",\n    anecdote:     \"Le Swift S-1 a \u00e9t\u00e9 con\u00e7u pour rivaliser avec les meilleurs avions de voltige au monde. Sa l\u00e9g\u00e8ret\u00e9 lui permet d'atteindre des facteurs de charge extr\u00eames tout en restant parfaitement contr\u00f4lable entre les mains d'un pilote exp\u00e9riment\u00e9.\"\n  },\n  {\n    nom:          \"MP205 Busard\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Avion en kit - Motoplaneur biplace l\u00e9ger\",\n    categorie:    \"civil\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/MP205-Busard-scaled.jpg\",\n    credit_photo: \"Jean-Luc Gu\u00e9rin\",\n    description:  \"Le MP205 Busard est un motoplaneur biplace l\u00e9ger de conception fran\u00e7aise. C'est un avion en kit, pens\u00e9 pour \u00eatre construit par ses propres mains. Un projet autant technique que passionn\u00e9, au service du plaisir de voler. Ses lignes fines et son faible poids lui conf\u00e8rent des performances de vol plan\u00e9 remarquables, tandis que son moteur lui permet de d\u00e9coller de mani\u00e8re autonome. En vol, il s\u00e9duit par sa maniabilit\u00e9, ses performances et l'\u00e9l\u00e9gance de ses trajectoires.\",\n    motorisation: \"1 \u00d7 Rotax 503 (50 ch)\",\n    envergure:    \"13,20 m\",\n    longueur:     \"7,30 m\",\n    vitesse_max:  \"200 km\/h\",\n    equipage:     \"2 (c\u00f4te \u00e0 c\u00f4te)\",\n    premiere_vol: \"Ann\u00e9es 1990\",\n    nb_produits:  \"Construction amateur, exemplaires limit\u00e9s\",\n    anecdote:     \"Le Busard illustre parfaitement le savoir-faire des constructeurs amateurs fran\u00e7ais : un appareil con\u00e7u avec ing\u00e9niosit\u00e9 pour maximiser les performances de vol en silence, tout en conservant l'autonomie d'un vrai avion. De plus, chaque Busard est unique car il refl\u00e8te le travail et la passion de son constructeur\"\n  },\n  {\n    nom:          \"North American T-28 Trojan\",\n    pays:         \"\ud83c\uddfa\ud83c\uddf8 \u00c9tats-Unis\",\n    type:         \"Avion d'entra\u00eenement militaire \u00e0 moteur radial\",\n    categorie:    \"historique\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/North-American-T28.jpg\",\n    credit_photo: \"\",\n    description:  \"Le North American T-28 Trojan est un avion d'entra\u00eenement militaire am\u00e9ricain des ann\u00e9es 1950, successeur du c\u00e9l\u00e8bre T-6 Texan. Puissant et rac\u00e9, il a form\u00e9 des milliers de pilotes pour la Navy et l'Air Force am\u00e9ricaines, ainsi que de nombreuses arm\u00e9es de l'air \u00e0 travers le monde. Son impressionnant moteur en \u00e9toile et sa silhouette robuste en font l'une des attractions incontournables des meetings a\u00e9riens.\",\n    motorisation: \"1 \u00d7 Wright R-1820 Cyclone (1 425 ch)\",\n    envergure:    \"12,39 m\",\n    longueur:     \"10,06 m\",\n    vitesse_max:  \"552 km\/h\",\n    equipage:     \"2 (tandem)\",\n    premiere_vol: \"26 septembre 1949\",\n    nb_produits:  \"1 948 appareils\",\n    anecdote:     \"Le T-28 Trojan a \u00e9galement \u00e9t\u00e9 utilis\u00e9 en version contre-insurrection (T-28D Nomad) au Vietnam. \u00c9quip\u00e9 d'armement, il s'est transform\u00e9 en avion d'attaque l\u00e9g\u00e8re redoutable \u2014 preuve qu'un bon avion d'entra\u00eenement cache souvent un guerrier en puissance.\"\n  },\n  {\n    nom:          \"Crazy Piper Team\",\n    pays:         \"\ud83c\uddeb\ud83c\uddf7 France\",\n    type:         \"Patrouille acrobatique \u2014 Piper PA-18 \u00b7 Piper PA-11 \u00b7 Mudry CAP 10\",\n    categorie:    \"voltige\",\n    photo:        \"http:\/\/airexpo.org\/wp-content\/uploads\/2026\/04\/Crazy-Piper-Team.jpg\",\n    credit_photo: \"\",\n    description:  \"La Crazy Piper Team est une patrouille acrobatique pas comme les autres ! Compos\u00e9e d'un Piper PA-18 Super Cub, d'un Piper PA-11 Cub Special et d'un Mudry CAP 10, elle m\u00e9lange avec humour et brio des avions aux caract\u00e8res tr\u00e8s diff\u00e9rents. Entre les Piper classiques et le nerveux CAP 10, la patrouille encha\u00eene des figures d\u00e9cal\u00e9es et spectaculaires qui ne manquent jamais de faire r\u00e9agir le public. Un show unique, plein de vie et de surprises !\",\n    motorisation: \"PA-18 : Lycoming O-320 (150 ch) \u00b7 PA-11 : Continental C-90 (90 ch) \u00b7 CAP 10 : Lycoming AEIO-360 (180 ch)\",\n    envergure:    \"PA-18 : 10,73 m \u00b7 PA-11 : 10,74 m \u00b7 CAP 10 : 8,06 m\",\n    longueur:     \"PA-18 : 6,88 m \u00b7 PA-11 : 6,71 m \u00b7 CAP 10 : 7,16 m\",\n    vitesse_max:  \"PA-18 : 185 km\/h \u00b7 PA-11 : 161 km\/h \u00b7 CAP 10 : 283 km\/h\",\n    equipage:     \"3 pilotes (1 par appareil)\",\n    premiere_vol: \"\",\n    nb_produits:  \"\",\n    anecdote:     \"Voir un Piper Cub voler en formation avec un avion de voltige comme le CAP 10, c'est un peu comme regarder un tracteur danser avec un sportif de haut niveau \u2014 et c'est justement \u00e7a qui rend le show inoubliable !\"\n  }\n];\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\n   \u25b2\u25b2\u25b2  FIN DE LA ZONE DE PERSONNALISATION  \u25b2\u25b2\u25b2\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 *\/\n\n\n\/* \u2500\u2500 Labels cat\u00e9gorie \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nvar CAT_LABELS = {\n  chasse:     \"Chasse\",\n  voltige:    \"Voltige\",\n  helico:     \"H\u00e9licopt\u00e8re\",\n  civil:      \"Civil\",\n  historique: \"Historique\"\n};\n\n\/* \u2500\u2500 Compteur global \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nvar countEl = document.getElementById('ae-pa-count-label');\nif (countEl) countEl.textContent = AIRCRAFT.length + ' participant' + (AIRCRAFT.length > 1 ? 's' : '');\n\n\/* \u2500\u2500 Rendu des cartes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction renderCards(filter) {\n  var grid  = document.getElementById('ae-pa-grid');\n  var empty = document.getElementById('ae-pa-empty');\n  var list  = filter === 'tous' ? AIRCRAFT : AIRCRAFT.filter(function(a){ return a.categorie === filter; });\n  grid.innerHTML = '';\n\n  if (list.length === 0) {\n    empty.style.display = 'block';\n    return;\n  }\n  empty.style.display = 'none';\n\n  list.forEach(function(aircraft, i) {\n    var card = document.createElement('div');\n    card.className = 'ae-pa-card';\n    card.setAttribute('role', 'listitem');\n    card.setAttribute('tabindex', '0');\n    card.setAttribute('aria-label', 'Voir les d\u00e9tails de ' + aircraft.nom);\n\n    \/* Chips mini specs *\/\n    var chips = '';\n    if (aircraft.vitesse_max) chips += '<span class=\"ae-pa-card-spec-chip\">\u26a1 ' + aircraft.vitesse_max + '<\/span>';\n    if (aircraft.envergure)   chips += '<span class=\"ae-pa-card-spec-chip\">\u2194 ' + aircraft.envergure + '<\/span>';\n    if (aircraft.equipage)    chips += '<span class=\"ae-pa-card-spec-chip\">\ud83d\udc64 ' + aircraft.equipage + '<\/span>';\n\n    \/* Image ou placeholder *\/\n    var hasPhoto = aircraft.photo && aircraft.photo !== '' && !aircraft.photo.startsWith('URL_');\n    var imgInner = hasPhoto\n      ? '<img decoding=\"async\" src=\"' + aircraft.photo + '\" alt=\"Photo de ' + aircraft.nom + '\" loading=\"lazy\" \/>'\n      : '<div class=\"ae-pa-card-img-placeholder\">\u2708<\/div>';\n    var creditHtml = (hasPhoto && aircraft.credit_photo)\n      ? '<span class=\"ae-pa-img-credit\">\u00a9 ' + aircraft.credit_photo + '<\/span>'\n      : '';\n\n    card.innerHTML =\n      '<div class=\"ae-pa-card-img-wrap\">' +\n        imgInner +\n        creditHtml +\n        '<div class=\"ae-pa-card-overlay\">' +\n          '<span class=\"ae-pa-card-pays\">' + aircraft.pays + '<\/span>' +\n          '<span class=\"ae-pa-card-cat\">' + (CAT_LABELS[aircraft.categorie] || aircraft.categorie) + '<\/span>' +\n        '<\/div>' +\n      '<\/div>' +\n      '<div class=\"ae-pa-card-body\">' +\n        '<p class=\"ae-pa-card-name\">' + aircraft.nom + '<\/p>' +\n        '<p class=\"ae-pa-card-type\">' + aircraft.type + '<\/p>' +\n        '<div class=\"ae-pa-card-specs-mini\">' + chips + '<\/div>' +\n        '<div class=\"ae-pa-card-cta\">En savoir plus <span>\u2192<\/span><\/div>' +\n      '<\/div>';\n\n    \/* Ouvrir la modale au clic ou Entr\u00e9e *\/\n    function openThis() { openModal(aircraft); }\n    card.addEventListener('click', openThis);\n    card.addEventListener('keydown', function(e){\n      if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); openThis(); }\n    });\n\n    grid.appendChild(card);\n  });\n}\n\n\/* \u2500\u2500 Modale \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nvar modal    = document.getElementById('ae-pa-modal');\nvar modalBox = modal.querySelector('.ae-pa-modal-box');\nvar closeBtn = document.getElementById('ae-pa-modal-close');\n\nfunction openModal(aircraft) {\n  \/* Image *\/\n  var imgEl = document.getElementById('ae-pa-modal-img');\n  if (aircraft.photo && aircraft.photo !== '' && !aircraft.photo.startsWith('URL_')) {\n    imgEl.src = aircraft.photo;\n    imgEl.alt = 'Photo de ' + aircraft.nom;\n    imgEl.style.display = 'block';\n  } else {\n    imgEl.src = ''; imgEl.style.display = 'none';\n  }\n\n  \/* Cr\u00e9dit photo dans la modale *\/\n  var creditEl = document.getElementById('ae-pa-modal-credit');\n  if (aircraft.credit_photo && imgEl.style.display !== 'none') {\n    creditEl.textContent = '\u00a9 ' + aircraft.credit_photo;\n    creditEl.style.display = 'block';\n  } else {\n    creditEl.style.display = 'none';\n  }\n\n  \/* Textes *\/\n  document.getElementById('ae-pa-modal-pays').textContent = aircraft.pays;\n  document.getElementById('ae-pa-modal-cat').textContent  = CAT_LABELS[aircraft.categorie] || aircraft.categorie;\n  document.getElementById('ae-pa-modal-name').textContent = aircraft.nom;\n  document.getElementById('ae-pa-modal-desc').textContent = aircraft.description || '';\n\n  \/* Specs *\/\n  var specsData = [\n    { label: 'Type',           value: aircraft.type },\n    { label: 'Motorisation',   value: aircraft.motorisation },\n    { label: 'Envergure',      value: aircraft.envergure },\n    { label: 'Longueur',       value: aircraft.longueur },\n    { label: 'Vitesse max',    value: aircraft.vitesse_max },\n    { label: '\u00c9quipage',       value: aircraft.equipage },\n    { label: 'Premier vol',    value: aircraft.premiere_vol },\n    { label: 'Production',     value: aircraft.nb_produits },\n    { label: '\ud83d\udca1 Le saviez-vous ?', value: aircraft.anecdote, full: true }\n  ];\n\n  var specsHtml = '';\n  specsData.forEach(function(s) {\n    if (!s.value) return;\n    specsHtml +=\n      '<div class=\"ae-pa-spec-item' + (s.full ? ' ae-pa-spec-full' : '') + '\">' +\n        '<div class=\"ae-pa-spec-label\">' + s.label + '<\/div>' +\n        '<div class=\"ae-pa-spec-value\">' + s.value + '<\/div>' +\n      '<\/div>';\n  });\n  document.getElementById('ae-pa-modal-specs').innerHTML = specsHtml;\n\n  \/* Affichage *\/\n  modal.style.display = 'flex';\n  requestAnimationFrame(function(){\n    modal.classList.add('ae-pa-modal-open');\n  });\n  document.body.style.overflow = 'hidden';\n  closeBtn.focus();\n}\n\nfunction closeModal() {\n  modal.classList.remove('ae-pa-modal-open');\n  document.body.style.overflow = '';\n  setTimeout(function(){ modal.style.display = 'none'; }, 320);\n}\n\ncloseBtn.addEventListener('click', closeModal);\n\nmodal.querySelector('.ae-pa-modal-backdrop').addEventListener('click', closeModal);\n\ndocument.addEventListener('keydown', function(e) {\n  if ((e.key === 'Escape' || e.key === 'Esc') && modal.classList.contains('ae-pa-modal-open')) {\n    closeModal();\n  }\n});\n\n\/* \u2500\u2500 Filtres \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\ndocument.querySelectorAll('.ae-pa-filter-btn').forEach(function(btn) {\n  btn.addEventListener('click', function() {\n    document.querySelectorAll('.ae-pa-filter-btn').forEach(function(b){ b.classList.remove('ae-pa-filter-active'); });\n    btn.classList.add('ae-pa-filter-active');\n    renderCards(btn.getAttribute('data-filter'));\n  });\n});\n\n\/* \u2500\u2500 Init \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nrenderCards('tous');\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":15,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6023","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/pages\/6023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/comments?post=6023"}],"version-history":[{"count":44,"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/pages\/6023\/revisions"}],"predecessor-version":[{"id":6293,"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/pages\/6023\/revisions\/6293"}],"wp:attachment":[{"href":"https:\/\/airexpo.org\/en\/wp-json\/wp\/v2\/media?parent=6023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}