{"id":24999,"date":"2026-06-25T16:16:42","date_gmt":"2026-06-25T14:16:42","guid":{"rendered":"https:\/\/eudroneport.com\/?p=24999"},"modified":"2026-07-15T15:16:53","modified_gmt":"2026-07-15T13:16:53","slug":"reglementation-europeenne-drones","status":"publish","type":"post","link":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/","title":{"rendered":"La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l&rsquo;amateur au pilote professionnel d&rsquo;UAS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"24999\" class=\"elementor elementor-24999 elementor-24793\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-70e832ce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"70e832ce\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-401ae75d\" data-id=\"401ae75d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-afa62d7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"afa62d7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4f32ca1\" data-id=\"4f32ca1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6a2d21c elementor-widget elementor-widget-spacer\" data-id=\"6a2d21c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 25-10-2023 *\/\n.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}.e-con{--container-widget-width:100%}.e-con-inner>.elementor-widget-spacer,.e-con>.elementor-widget-spacer{width:var(--container-widget-width,var(--spacer-size));--align-self:var(--container-widget-align-self,initial);--flex-shrink:0}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,.e-con>.elementor-widget-spacer>.elementor-widget-container{height:100%;width:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty,.e-con>.elementor-widget-spacer.elementor-widget-empty{position:relative;min-height:22px;min-width:22px}.e-con-inner>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon,.e-con>.elementor-widget-spacer.elementor-widget-empty .elementor-widget-empty-icon{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;padding:0;width:22px;height:22px}<\/style>\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c743d8 elementor-widget elementor-widget-heading\" data-id=\"0c743d8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 25-10-2023 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><p class=\"elementor-heading-title elementor-size-default\">ARTICLES DE BLOG<\/p>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab48a00 elementor-widget elementor-widget-image\" data-id=\"ab48a00\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 25-10-2023 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"79\" height=\"4\" src=\"https:\/\/eudroneport.com\/wp-content\/uploads\/2022\/02\/line.png\" class=\"attachment-full size-full wp-image-9347\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1dae3d2 elementor-widget elementor-widget-heading\" data-id=\"1dae3d2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l'amateur au pilote professionnel d'UAS<\/h1>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b571c11 elementor-widget elementor-widget-spacer\" data-id=\"b571c11\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-55308e5 elementor-widget elementor-widget-text-editor\" data-id=\"55308e5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.17.0 - 25-10-2023 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<p>Le secteur europ\u00e9en des drones est pass\u00e9 du vol de loisirs \u00e0 une industrie a\u00e9ronautique professionnelle r\u00e9gie par un cadre r\u00e9glementaire harmonis\u00e9.<br class=\"blank\"\/><br class=\"blank\"\/> Les r\u00e8glements (UE) 2019\/947 et 2019\/945 \u00e9tablissent les principales r\u00e8gles relatives aux op\u00e9rations des drones, aux responsabilit\u00e9s des pilotes et aux exigences techniques dans les \u00c9tats membres de l&rsquo;AESA.<br class=\"blank\"\/><br class=\"blank\"\/> Pour faciliter la compr\u00e9hension de ce cadre, nous avons cr\u00e9\u00e9 une carte mentale interactive couvrant la terminologie cl\u00e9, les autorit\u00e9s comp\u00e9tentes, les cat\u00e9gories op\u00e9rationnelles, les responsabilit\u00e9s l\u00e9gales et les concepts de s\u00e9curit\u00e9 essentiels pour les pilotes de drones professionnels et les op\u00e9rateurs de syst\u00e8mes d&rsquo;a\u00e9ronefs sans pilote (UAS).<br class=\"blank\"\/><br class=\"blank\"\/> <strong>Consultez le guide ci-dessous pour approfondir votre compr\u00e9hension de la r\u00e9glementation europ\u00e9enne sur les drones et les utiliser de mani\u00e8re s\u00fbre, l\u00e9gale et professionnelle.<\/strong><\/p><div id=\"gtx-trans\" style=\"position: absolute; left: 508px; top: 349.844px;\"><div class=\"gtx-trans-icon\"> <\/div><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8be5170 elementor-widget elementor-widget-html\" data-id=\"8be5170\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- ============================================================\n     EU Drone Port \u2014 Mindmap embed for Elementor (HTML widget)\n     Self-contained: paste into an Elementor HTML widget as-is.\n     Adjust the wrapper height in the CSS (.uas-mindmap { height: 720px })\n     to fit your layout. British English version.\n     ============================================================ -->\n\n<div id=\"uas-mindmap\" class=\"uas-mindmap\">\n  <div id=\"uas-mindmap-root\"><\/div>\n<\/div>\n\n<!-- Brand fonts via Google Fonts (Ubuntu + Source Sans 3 + Poppins) -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Ubuntu:wght@300;400;500;700&family=Source+Sans+3:wght@300;400;500;600;700&family=Poppins:wght@400;600;700&display=swap\" rel=\"stylesheet\">\n\n<style>\n\/* ============================================================\n   ALL STYLES SCOPED UNDER #uas-mindmap\n   ============================================================ *\/\n#uas-mindmap {\n  \/* \u2500\u2500 Tokens (EU Drone Port) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\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  --color-primary:        #2C81C3;\n  --color-primary-dark:   #2270AB;\n  --color-primary-light:  #84B4DC;\n  --color-primary-pale:   #C9D9F3;\n  --color-primary-xpale:  #EBF3FB;\n  --color-yellow:         #F7BC35;\n  --color-yellow-dark:    #D9A020;\n  --color-yellow-pale:    #FEF3D0;\n  --color-white:          #FFFFFF;\n  --color-bg-alt:         #F4F8FC;\n  --color-text-primary:   #1A2A3A;\n  --color-text-secondary: #4A6080;\n  --color-text-disabled:  #9AAFC4;\n  --color-border:         #E0EAF4;\n  --font-family:          'Source Sans 3', 'Source Sans Pro', sans-serif;\n  --font-family-display:  'Ubuntu', sans-serif;\n  --font-family-accent:   'Poppins', sans-serif;\n  --shadow-xs:  0 1px 3px rgba(44,129,194,0.08);\n  --shadow-sm:  0 2px 8px rgba(44,129,194,0.10);\n  --shadow-md:  0 4px 16px rgba(44,129,194,0.14);\n  --shadow-lg:  0 8px 32px rgba(44,129,194,0.18);\n  --radius-md:  6px;\n  --radius-lg:  8px;\n  --radius-pill: 999px;\n  --transition-fast: 150ms ease;\n\n  position: relative;\n  width: 100%;\n  height: 720px;             \/* \u2190 Adjust to taste *\/\n  min-height: 560px;\n  overflow: hidden;\n  background:\n    radial-gradient(ellipse at 50% 40%, #ffffff 0%, #eaf1f8 55%, #d9e6f3 100%);\n  font-family: var(--font-family);\n  color: var(--color-text-primary);\n  border-radius: 12px;\n  box-shadow: 0 1px 4px rgba(44,129,194,0.08);\n  contain: layout paint;\n  isolation: isolate;\n}\n#uas-mindmap *, #uas-mindmap *::before, #uas-mindmap *::after {\n  box-sizing: border-box;\n}\n\n#uas-mindmap::before {\n  content: \"\";\n  position: absolute; inset: 0;\n  background-image: radial-gradient(rgba(44,129,194,0.10) 1px, transparent 1px);\n  background-size: 28px 28px;\n  pointer-events: none;\n  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);\n          mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);\n}\n\n#uas-mindmap .app {\n  position: absolute;\n  inset: 0;\n  overflow: hidden;\n}\n\n\/* \u2500\u2500 Topbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .topbar {\n  position: absolute; top: 0; left: 0; right: 0;\n  display: flex; align-items: center; justify-content: space-between;\n  padding: 16px 22px; z-index: 20; pointer-events: none;\n}\n#uas-mindmap .topbar > * { pointer-events: auto; }\n#uas-mindmap .brand { display: flex; align-items: center; gap: 12px; }\n#uas-mindmap .brand-logo {\n  width: 40px; height: 40px; background: #fff;\n  border-radius: 50%; display: grid; place-items: center;\n  box-shadow: var(--shadow-sm); overflow: hidden;\n}\n#uas-mindmap .brand-logo img { width: 100%; height: 100%; object-fit: contain; }\n#uas-mindmap .brand-text { display: flex; flex-direction: column; line-height: 1.1; }\n#uas-mindmap .brand-text .eyebrow {\n  font-family: var(--font-family-accent);\n  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;\n  color: var(--color-primary); font-weight: 600;\n}\n#uas-mindmap .brand-text .name {\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 15px;\n  color: var(--color-text-primary); margin-top: 2px;\n}\n#uas-mindmap .topbar-meta {\n  display: flex; align-items: center; gap: 12px;\n  font-size: 12px; color: var(--color-text-secondary);\n}\n#uas-mindmap .topbar-meta .pill {\n  display: inline-flex; align-items: center; gap: 6px;\n  padding: 5px 11px;\n  background: rgba(255,255,255,0.85);\n  border: 1px solid var(--color-border);\n  border-radius: var(--radius-pill);\n  backdrop-filter: blur(8px);\n}\n#uas-mindmap .topbar-meta .pill .dot {\n  width: 6px; height: 6px; border-radius: 50%; background: var(--color-yellow);\n}\n#uas-mindmap .topbar-meta .pill strong { font-weight: 600; color: var(--color-text-primary); }\n\n\/* \u2500\u2500 Canvas \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .canvas-wrap {\n  position: absolute; inset: 0;\n  overflow: hidden;\n}\n#uas-mindmap .canvas {\n  position: absolute;\n  left: 50%; top: 50%;\n  width: 1500px; height: 1000px;\n  margin-left: -750px;\n  margin-top: -500px;\n  transform-origin: center center;\n  transition: transform 250ms cubic-bezier(.2,.7,.2,1);\n}\n\n#uas-mindmap .connectors {\n  position: absolute; inset: 0; width: 100%; height: 100%;\n  pointer-events: none; overflow: visible;\n}\n#uas-mindmap .connectors path {\n  fill: none; stroke: var(--color-primary-light); stroke-width: 1.5;\n  opacity: 0.55; transition: stroke 200ms, stroke-width 200ms, opacity 200ms;\n}\n#uas-mindmap .connectors path.active {\n  stroke: var(--color-yellow); stroke-width: 2.5; opacity: 1;\n}\n#uas-mindmap .connectors path.child {\n  stroke: var(--color-primary-light); stroke-width: 1.2;\n  stroke-dasharray: 3 4; opacity: 0.6;\n}\n#uas-mindmap .connectors path.child.active {\n  stroke: var(--color-yellow-dark); opacity: 0.9; stroke-dasharray: none;\n}\n\n\/* \u2500\u2500 Root \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .root-node {\n  position: absolute; left: 50%; top: 50%;\n  transform: translate(-50%, -50%);\n  width: 280px; height: 280px; border-radius: 50%;\n  background: radial-gradient(circle at 30% 30%, #4FA0DC 0%, var(--color-primary) 60%, var(--color-primary-dark) 100%);\n  display: grid; place-items: center;\n  color: var(--color-white); text-align: center; padding: 28px;\n  box-shadow:\n    0 0 0 8px rgba(255,255,255,0.7),\n    0 0 0 9px rgba(44,129,194,0.18),\n    var(--shadow-lg);\n  z-index: 5;\n}\n#uas-mindmap .root-node .root-logo {\n  width: 56px; height: 56px; margin: 0 auto 10px;\n  background: #fff; border-radius: 50%; display: grid; place-items: center;\n  overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n}\n#uas-mindmap .root-node .root-logo img { width: 100%; height: 100%; object-fit: contain; }\n#uas-mindmap .root-node .root-eyebrow {\n  font-family: var(--font-family-accent);\n  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;\n  opacity: 0.85; font-weight: 600; margin-bottom: 6px;\n}\n#uas-mindmap .root-node .root-title {\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 22px; line-height: 1.15; letter-spacing: -0.01em;\n}\n#uas-mindmap .root-node .root-rule {\n  width: 36px; height: 2px; background: var(--color-yellow);\n  margin: 12px auto 8px; border-radius: 2px;\n}\n#uas-mindmap .root-node .root-sub {\n  font-size: 12px; font-weight: 400; opacity: 0.85; letter-spacing: 0.04em;\n}\n\n\/* \u2500\u2500 Branches \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .branch {\n  position: absolute; width: 240px;\n  transform: translate(-50%, -50%); cursor: pointer; user-select: none;\n  transition: transform 220ms cubic-bezier(.2,.7,.2,1);\n}\n#uas-mindmap .branch-card {\n  background: #fff; border: 1px solid var(--color-border);\n  border-radius: var(--radius-lg); padding: 14px 16px;\n  box-shadow: var(--shadow-sm); position: relative;\n  transition: box-shadow 200ms, border-color 200ms, transform 200ms;\n}\n#uas-mindmap .branch:hover .branch-card,\n#uas-mindmap .branch.active .branch-card {\n  box-shadow: var(--shadow-md);\n  border-color: var(--color-primary-light);\n  transform: translateY(-1px);\n}\n#uas-mindmap .branch.active .branch-card {\n  border-color: var(--color-yellow);\n  box-shadow: 0 0 0 3px rgba(247,188,53,0.25), var(--shadow-md);\n}\n#uas-mindmap .branch-card::before {\n  content: \"\"; position: absolute;\n  left: 0; top: 14px; bottom: 14px; width: 4px;\n  border-radius: 4px; background: var(--color-primary);\n}\n#uas-mindmap .branch-card.accent-yellow::before { background: var(--color-yellow); }\n#uas-mindmap .branch-card.accent-blue-dark::before { background: var(--color-primary-dark); }\n#uas-mindmap .branch-label {\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 15px; line-height: 1.25;\n  color: var(--color-text-primary); margin-bottom: 4px;\n}\n#uas-mindmap .branch-sub {\n  font-family: var(--font-family); font-size: 12px;\n  color: var(--color-text-secondary); letter-spacing: 0.02em;\n}\n#uas-mindmap .branch-summary {\n  font-size: 12px; color: var(--color-text-secondary);\n  margin-top: 8px; padding-top: 8px;\n  border-top: 1px solid var(--color-border); line-height: 1.45;\n}\n#uas-mindmap .branch-tag {\n  position: absolute; top: -10px; right: -10px;\n  width: 24px; height: 24px; border-radius: 50%;\n  background: var(--color-primary); color: #fff;\n  display: grid; place-items: center;\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 11px;\n  box-shadow: var(--shadow-sm); border: 2px solid #fff;\n}\n#uas-mindmap .branch-card.accent-yellow .branch-tag { background: var(--color-yellow); color: var(--color-text-primary); }\n#uas-mindmap .branch-card.accent-blue-dark .branch-tag { background: var(--color-primary-dark); }\n\n\/* \u2500\u2500 Leaves \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .leaf {\n  position: absolute; transform: translate(-50%, -50%);\n  background: rgba(255,255,255,0.95);\n  border: 1px solid var(--color-border);\n  border-radius: var(--radius-pill);\n  padding: 6px 12px 6px 10px;\n  font-size: 12px; color: var(--color-text-primary);\n  font-weight: 500; white-space: nowrap;\n  box-shadow: var(--shadow-xs);\n  display: inline-flex; align-items: center; gap: 6px;\n  backdrop-filter: blur(6px);\n  cursor: default; opacity: 0;\n  transition: opacity 250ms ease, transform 350ms cubic-bezier(.2,.7,.2,1);\n  max-width: 220px;\n}\n#uas-mindmap .leaf::before {\n  content: \"\"; width: 5px; height: 5px; border-radius: 50%;\n  background: var(--color-primary); flex-shrink: 0;\n}\n#uas-mindmap .leaf.accent-yellow::before { background: var(--color-yellow); }\n#uas-mindmap .leaf.accent-blue-dark::before { background: var(--color-primary-dark); }\n#uas-mindmap .leaf.visible { opacity: 1; }\n\n\/* \u2500\u2500 Detail panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .detail-panel {\n  position: absolute; top: 0; right: 0; bottom: 0;\n  width: 400px; background: #fff;\n  box-shadow: -8px 0 32px rgba(44,129,194,0.12);\n  border-left: 1px solid var(--color-border);\n  transform: translateX(100%);\n  transition: transform 320ms cubic-bezier(.2,.7,.2,1);\n  z-index: 30; display: flex; flex-direction: column; overflow: hidden;\n}\n#uas-mindmap .detail-panel.open { transform: translateX(0); }\n#uas-mindmap .detail-header {\n  padding: 26px 26px 18px;\n  border-bottom: 1px solid var(--color-border);\n  position: relative;\n}\n#uas-mindmap .detail-close {\n  position: absolute; top: 16px; right: 16px;\n  width: 30px; height: 30px; border-radius: 50%;\n  background: var(--color-bg-alt);\n  border: 1px solid var(--color-border);\n  display: grid; place-items: center; cursor: pointer;\n  color: var(--color-text-secondary);\n  font-size: 15px; line-height: 1;\n  transition: background 150ms;\n}\n#uas-mindmap .detail-close:hover { background: var(--color-primary-xpale); color: var(--color-primary); }\n#uas-mindmap .detail-eyebrow {\n  font-family: var(--font-family-accent);\n  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;\n  font-weight: 600; color: var(--color-primary);\n  margin-bottom: 8px; display: flex; align-items: center; gap: 8px;\n}\n#uas-mindmap .detail-eyebrow .num {\n  display: inline-grid; place-items: center;\n  width: 20px; height: 20px;\n  background: var(--color-primary); color: #fff;\n  border-radius: 50%; font-size: 10px;\n  font-family: var(--font-family-display);\n}\n#uas-mindmap .detail-eyebrow.accent-yellow .num { background: var(--color-yellow); color: var(--color-text-primary); }\n#uas-mindmap .detail-eyebrow.accent-blue-dark .num { background: var(--color-primary-dark); }\n#uas-mindmap .detail-title {\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 24px; line-height: 1.2;\n  letter-spacing: -0.01em; color: var(--color-text-primary);\n}\n#uas-mindmap .detail-sub {\n  font-family: var(--font-family); font-size: 13px;\n  color: var(--color-text-secondary); margin-top: 6px; letter-spacing: 0.02em;\n}\n#uas-mindmap .detail-body {\n  flex: 1; overflow-y: auto; padding: 22px 26px 36px;\n}\n#uas-mindmap .detail-extra {\n  font-size: 13px; line-height: 1.55;\n  color: var(--color-text-secondary); margin-bottom: 22px;\n  padding: 12px 14px; background: var(--color-bg-alt);\n  border-left: 3px solid var(--color-yellow);\n  border-radius: 0 var(--radius-md) var(--radius-md) 0;\n}\n#uas-mindmap .detail-section-label {\n  font-family: var(--font-family-accent);\n  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;\n  color: var(--color-text-secondary);\n  font-weight: 600; margin-bottom: 12px;\n  display: flex; align-items: center; gap: 8px;\n}\n#uas-mindmap .detail-section-label::after {\n  content: \"\"; flex: 1; height: 1px; background: var(--color-border);\n}\n#uas-mindmap .children-list { display: flex; flex-direction: column; gap: 10px; }\n#uas-mindmap .child-item {\n  padding: 12px 14px; border: 1px solid var(--color-border);\n  border-radius: var(--radius-md); background: #fff;\n  transition: border-color 150ms, background 150ms;\n}\n#uas-mindmap .child-item:hover { border-color: var(--color-primary-light); background: var(--color-primary-xpale); }\n#uas-mindmap .child-item .child-title {\n  font-family: var(--font-family-display);\n  font-weight: 700; font-size: 13px;\n  color: var(--color-text-primary); margin-bottom: 4px;\n  display: flex; align-items: baseline; gap: 8px;\n}\n#uas-mindmap .child-item .child-title::before {\n  content: \"\"; width: 6px; height: 6px; border-radius: 50%;\n  background: var(--color-primary); flex-shrink: 0; transform: translateY(-1px);\n}\n#uas-mindmap .detail-panel.accent-yellow .child-item .child-title::before { background: var(--color-yellow); }\n#uas-mindmap .detail-panel.accent-blue-dark .child-item .child-title::before { background: var(--color-primary-dark); }\n#uas-mindmap .child-item .child-note {\n  font-size: 12.5px; line-height: 1.5;\n  color: var(--color-text-secondary); padding-left: 14px;\n}\n\n\/* \u2500\u2500 Footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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#uas-mindmap .footer {\n  position: absolute; bottom: 0; left: 0; right: 0;\n  padding: 14px 22px;\n  display: flex; align-items: center; justify-content: space-between;\n  z-index: 20; pointer-events: none;\n}\n#uas-mindmap .footer > * { pointer-events: auto; }\n#uas-mindmap .legend {\n  display: flex; align-items: center; gap: 14px;\n  background: rgba(255,255,255,0.85); padding: 7px 14px;\n  border: 1px solid var(--color-border); border-radius: var(--radius-pill);\n  backdrop-filter: blur(8px); font-size: 12px; color: var(--color-text-secondary);\n}\n#uas-mindmap .legend .swatch { display: inline-flex; align-items: center; gap: 6px; }\n#uas-mindmap .legend .swatch i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }\n#uas-mindmap .legend .swatch.blue i { background: var(--color-primary); }\n#uas-mindmap .legend .swatch.yellow i { background: var(--color-yellow); }\n#uas-mindmap .legend .swatch.dark i { background: var(--color-primary-dark); }\n#uas-mindmap .zoom {\n  display: flex; align-items: center; gap: 6px;\n  background: rgba(255,255,255,0.92);\n  border: 1px solid var(--color-border);\n  border-radius: var(--radius-pill);\n  padding: 4px; backdrop-filter: blur(8px); box-shadow: var(--shadow-xs);\n}\n#uas-mindmap .zoom button {\n  width: 30px; height: 30px; border-radius: 50%;\n  border: none; background: transparent; cursor: pointer;\n  color: var(--color-text-secondary); font-size: 15px;\n  line-height: 1; display: grid; place-items: center;\n  transition: background 150ms, color 150ms;\n  font-family: var(--font-family);\n}\n#uas-mindmap .zoom button:hover { background: var(--color-primary-xpale); color: var(--color-primary); }\n#uas-mindmap .zoom .zoom-label {\n  font-size: 12px; font-weight: 600; color: var(--color-text-secondary);\n  padding: 0 4px; min-width: 44px; text-align: center;\n}\n\n#uas-mindmap .hint {\n  position: absolute; left: 50%; transform: translateX(-50%); bottom: 70px;\n  font-size: 12px; color: var(--color-text-secondary);\n  background: rgba(255,255,255,0.85); padding: 6px 14px;\n  border-radius: var(--radius-pill); border: 1px solid var(--color-border);\n  backdrop-filter: blur(8px); z-index: 15; pointer-events: none;\n  font-style: italic;\n  animation: uasHintFade 6s ease-in-out 1s forwards;\n}\n@keyframes uasHintFade {\n  0%, 70% { opacity: 1; }\n  100% { opacity: 0; }\n}\n\n@media (max-width: 900px) {\n  #uas-mindmap .detail-panel { width: 100%; }\n}\n<\/style>\n\n<!-- React + Babel from CDN -->\n<script src=\"https:\/\/unpkg.com\/react@18.3.1\/umd\/react.production.min.js\" crossorigin><\/script>\n<script src=\"https:\/\/unpkg.com\/react-dom@18.3.1\/umd\/react-dom.production.min.js\" crossorigin><\/script>\n<script src=\"https:\/\/unpkg.com\/@babel\/standalone@7.29.0\/babel.min.js\"><\/script>\n\n<script type=\"text\/babel\" data-presets=\"react\">\n(function () {\n  const { useState, useEffect, useMemo, useRef } = React;\n\n  const LOGO_URL = \"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/04\/Circular-Logo-copy.png\";\n\n  const DATA = {\n    root: {\n      title: \"Professional UAS Pilot\",\n      subtitle: \"Fundamentals & Regulations\"\n    },\n    branches: [\n      {\n        id: \"conceptos\", label: \"Conceptual Clarity\", sub: \"UAS \u00b7 RPAS \u00b7 Drone\",\n        accent: \"blue\", angle: -150,\n        summary: \"Precise technical terminology to move beyond colloquial language.\",\n        detail: \"The term UAS (Unmanned Aircraft System) is the official standard in Regulations (EU) 2019\/945 and 2019\/947. RPAS, drone, and model aircraft are all encompassed within the UAS concept.\",\n        children: [\n          { title: \"UAS\", note: \"Unmanned Aircraft System. Aircraft + remote control equipment. Encompasses RPAS and autonomous aircraft.\" },\n          { title: \"RPAS\", note: \"Remotely Piloted Aircraft System. Subset of UAS: aircraft + ground station + command links.\" },\n          { title: \"Drone\", note: \"Colloquial term for any unmanned aircraft.\" },\n          { title: \"Autonomous Aircraft\", note: \"Designed to operate without pilot intervention during flight.\" },\n          { title: \"Model Aircraft\", note: \"Small-scale remotely piloted aircraft used for sport or experimental purposes.\" }\n        ]\n      },\n      {\n        id: \"autoridades\", label: \"Competent Authorities\", sub: \"EASA \u00b7 AESA\",\n        accent: \"yellow\", angle: -90,\n        summary: \"Continental standards and national enforcement.\",\n        detail: \"Sector governance is divided between the harmonisation of standards at European level and enforcement and oversight at national level.\",\n        children: [\n          { title: \"EASA\", note: \"EU Aviation Safety Agency. 31 member states (EU + Iceland, Liechtenstein, Norway, Switzerland). Harmonises standards and drafts directly applicable regulations.\" },\n          { title: \"AESA\", note: \"State Aviation Safety Agency (Spain). Ensures compliance, promotes legislation, and holds exclusive sanctioning authority.\" }\n        ]\n      },\n      {\n        id: \"cronologia\", label: \"Legislative Timeline\", sub: \"2014 \u2192 2024\",\n        accent: \"blue\", angle: -30,\n        summary: \"Evolution of the regulatory framework from legal vacuum to the present day.\",\n        detail: \"From the first national framework to the current ecosystem with directly applicable European legislation.\",\n        children: [\n          { title: \"2014\", note: \"Law 18\/2014 (Art. 50): first regulatory framework in Spain.\" },\n          { title: \"2017\", note: \"Royal Decree 1036\/2017: regulates civil use of RPAS and repeals Art. 50 of the previous law.\" },\n          { title: \"2019\", note: \"Regulations (EU) 2019\/947 and 2019\/945: entry into force of the EASA common framework.\" },\n          { title: \"2024\", note: \"Royal Decree 517\/2024: develops aspects of national competence not regulated by the EU.\" }\n        ]\n      },\n      {\n        id: \"reglamentos\", label: \"European Regulations\", sub: \"2019\/945 + 2019\/947\",\n        accent: \"blue-dark\", angle: 30,\n        summary: \"The twin pillars of the sector: product and operation.\",\n        detail: \"Regulations binding in their entirety. Guidance Material (GM) and Acceptable Means of Compliance (AMC) are not binding, but are indispensable.\",\n        children: [\n          { title: \"Commission Delegated Regulation (EU) 2019\/945\", note: \"PRODUCT: design, manufacture, marketing, and technical requirements (classes C0\u2013C4). Amended by 2020\/1058 \u2192 classes C5 and C6.\" },\n          { title: \"Commission Implementing Regulation (EU) 2019\/947\", note: \"OPERATION: rules of use, pilot requirements, and categories. Amended by 2020\/639 (STS) and 2021\/1166 (technical matters and dates).\" },\n          { title: \"Non-binding material\", note: \"GM (Guidance Material) + AMC (Acceptable Means of Compliance). Indispensable for understanding and implementing the law.\" }\n        ]\n      },\n      {\n        id: \"categorias\", label: \"Operation Categories\", sub: \"Open \u00b7 Specific \u00b7 Certified\",\n        accent: \"yellow\", angle: 90,\n        summary: \"Classification of operations by risk level.\",\n        detail: \"From 1 July 2022 (Reg. 2021\/1166): mandatory use of green night lights and remote identification system.\",\n        children: [\n          { title: \"Open\", note: \"Low risk. No prior operational authorisation required.\" },\n          { title: \"Specific\", note: \"Medium risk. Includes Standard Scenarios (STS) introduced by Reg. 2020\/639 and other authorised operations.\" },\n          { title: \"Certified\", note: \"High risk. Requires aircraft and operator certification.\" }\n        ]\n      },\n      {\n        id: \"responsabilidades\", label: \"Professional Responsibilities\", sub: \"Operator vs Pilot\",\n        accent: \"blue\", angle: 150,\n        summary: \"Legal distinction between civil and operational responsibility.\",\n        detail: \"A pilot is also an operator when flying in their own time or as a self-employed professional using their own equipment (legal overlap).\",\n        children: [\n          { title: \"Remote Pilot\", note: \"Natural person responsible for the safe conduct of the flight. Manual controls or supervision during automated flights, always with the ability to intervene.\" },\n          { title: \"UAS Operator\", note: \"Natural or legal person who owns or leases the UAS. Legal responsibility: registration and maintenance.\" },\n          { title: \"Overlap\", note: \"Pilot = Operator in recreational flying or self-employed professional use with own equipment.\" }\n        ]\n      },\n      {\n        id: \"seguridad\", label: \"Operational Safety\", sub: \"Situational awareness\",\n        accent: \"blue-dark\", angle: 210,\n        summary: \"Mastery of concepts that prevent legal and physical incidents.\",\n        detail: \"Professional risk management demands a level of discipline equivalent to that of manned aviation.\",\n        children: [\n          { title: \"Gatherings of people\", note: \"Gatherings where people cannot avoid the impact of a free-falling UAS due to density and confined space.\" },\n          { title: \"Situational awareness\", note: \"Perception of oneself and the aircraft within the dynamic environment of flight. Enables forecasting of events and effective risk management.\" },\n          { title: \"Critical infrastructure\", note: \"Strategic installations (health, electricity, water, transport) whose damage would affect essential services.\" },\n          { title: \"Checklist\", note: \"Control list: a mandatory technical tool for systematic verification before any professional operation.\" }\n        ]\n      }\n    ]\n  };\n\n  const CANVAS_W = 1500, CANVAS_H = 1000;\n  const CX = CANVAS_W \/ 2, CY = CANVAS_H \/ 2;\n  const BRANCH_RADIUS = 360, LEAF_RADIUS = 200, LEAF_SPREAD = 70;\n\n  function polar(cx, cy, r, deg) {\n    const a = (deg * Math.PI) \/ 180;\n    return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) };\n  }\n  function curvePath(x1, y1, x2, y2, bend = 0.35) {\n    const mx = (x1 + x2) \/ 2, my = (y1 + y2) \/ 2;\n    const dx = x2 - x1, dy = y2 - y1;\n    const nx = -dy, ny = dx;\n    const len = Math.hypot(nx, ny) || 1;\n    const toCX = CX - mx, toCY = CY - my;\n    const sign = (nx * toCX + ny * toCY) > 0 ? -1 : 1;\n    const cxp = mx + (nx \/ len) * Math.hypot(dx, dy) * bend * sign;\n    const cyp = my + (ny \/ len) * Math.hypot(dx, dy) * bend * sign;\n    return `M ${x1} ${y1} Q ${cxp} ${cyp} ${x2} ${y2}`;\n  }\n\n  function App() {\n    const [activeId, setActiveId] = useState(null);\n    const [zoom, setZoom] = useState(0.6);\n    const [pan, setPan] = useState({ x: 0, y: 0 });\n    const draggingRef = useRef(null);\n    const wrapRef = useRef(null);\n\n    const layout = useMemo(() => {\n      const branches = DATA.branches.map((b) => {\n        const p = polar(CX, CY, BRANCH_RADIUS, b.angle);\n        const n = b.children.length;\n        const start = b.angle - LEAF_SPREAD \/ 2;\n        const step = n > 1 ? LEAF_SPREAD \/ (n - 1) : 0;\n        const leaves = b.children.map((c, i) => {\n          const la = n === 1 ? b.angle : start + step * i;\n          const rJ = LEAF_RADIUS + (i % 2 === 0 ? 0 : 24);\n          const lp = polar(p.x, p.y, rJ, la);\n          return { ...c, x: lp.x, y: lp.y };\n        });\n        return { ...b, x: p.x, y: p.y, leaves };\n      });\n      return { branches };\n    }, []);\n\n    const activeBranch = layout.branches.find((b) => b.id === activeId);\n\n    useEffect(() => {\n      function fit() {\n        const el = wrapRef.current;\n        if (!el) return;\n        const w = el.clientWidth, h = el.clientHeight;\n        const sx = (w - 60) \/ CANVAS_W;\n        const sy = (h - 140) \/ CANVAS_H;\n        const s = Math.min(sx, sy, 1);\n        setZoom(s < 0.35 ? 0.35 : s);\n      }\n      fit();\n      const ro = new ResizeObserver(fit);\n      if (wrapRef.current) ro.observe(wrapRef.current);\n      window.addEventListener(\"resize\", fit);\n      return () => {\n        ro.disconnect();\n        window.removeEventListener(\"resize\", fit);\n      };\n    }, []);\n\n    function onPointerDown(e) {\n      if (e.target.closest(\".branch\") || e.target.closest(\".detail-panel\") || e.target.closest(\".topbar\") || e.target.closest(\".footer\")) return;\n      draggingRef.current = { x: e.clientX, y: e.clientY, pan: { ...pan } };\n      if (wrapRef.current.setPointerCapture) wrapRef.current.setPointerCapture(e.pointerId);\n    }\n    function onPointerMove(e) {\n      if (!draggingRef.current) return;\n      const dx = e.clientX - draggingRef.current.x;\n      const dy = e.clientY - draggingRef.current.y;\n      setPan({ x: draggingRef.current.pan.x + dx, y: draggingRef.current.pan.y + dy });\n    }\n    function onPointerUp() { draggingRef.current = null; }\n\n    function adjustZoom(delta) {\n      setZoom((z) => Math.min(1.6, Math.max(0.35, +(z + delta).toFixed(2))));\n    }\n    function resetView() {\n      setPan({ x: 0, y: 0 });\n      const el = wrapRef.current;\n      if (!el) return;\n      const w = el.clientWidth, h = el.clientHeight;\n      const s = Math.min((w - 60) \/ CANVAS_W, (h - 140) \/ CANVAS_H, 1);\n      setZoom(s < 0.35 ? 0.35 : s);\n    }\n\n    return (\n      <div className=\"app\" ref={wrapRef} onPointerDown={onPointerDown} onPointerMove={onPointerMove} onPointerUp={onPointerUp} onPointerLeave={onPointerUp} style={{ cursor: draggingRef.current ? \"grabbing\" : \"default\" }}>\n        <div className=\"topbar\">\n          <div className=\"brand\">\n            <div className=\"brand-logo\"><img src={LOGO_URL} alt=\"EU Drone Port\" \/><\/div>\n            <div className=\"brand-text\">\n              <span className=\"eyebrow\">Training Guide \u00b7 UAS<\/span>\n              <span className=\"name\">Fundamentals & Regulations<\/span>\n            <\/div>\n          <\/div>\n          <div className=\"topbar-meta\">\n            <span className=\"pill\"><span className=\"dot\"><\/span><span>EASA \u00b7 AESA<\/span><\/span>\n            <span className=\"pill\"><strong>Reg. (EU) 2019\/945 + 947<\/strong><\/span>\n          <\/div>\n        <\/div>\n\n        <div className=\"canvas-wrap\">\n          <div className=\"canvas\" style={{ transform: `translate(${pan.x}px, ${pan.y}px) scale(${zoom})` }}>\n            <svg className=\"connectors\" viewBox={`0 0 ${CANVAS_W} ${CANVAS_H}`} preserveAspectRatio=\"none\">\n              {layout.branches.map((b) => {\n                const start = polar(CX, CY, 145, b.angle);\n                const isActive = activeId === b.id;\n                return (\n                  <path key={`c-${b.id}`} d={curvePath(start.x, start.y, b.x, b.y, 0.18)} className={isActive ? \"active\" : \"\"} \/>\n                );\n              })}\n              {layout.branches.map((b) =>\n                b.leaves.map((l, i) => {\n                  const isActive = activeId === b.id;\n                  return (\n                    <path key={`l-${b.id}-${i}`} d={curvePath(b.x, b.y, l.x, l.y, 0.18)} className={`child ${isActive ? \"active\" : \"\"}`} \/>\n                  );\n                })\n              )}\n            <\/svg>\n\n            <div className=\"root-node\">\n              <div>\n                <div className=\"root-logo\"><img src={LOGO_URL} alt=\"\" \/><\/div>\n                <div className=\"root-eyebrow\">Professional Pilot<\/div>\n                <div className=\"root-title\">{DATA.root.title}<\/div>\n                <div className=\"root-rule\"><\/div>\n                <div className=\"root-sub\">{DATA.root.subtitle}<\/div>\n              <\/div>\n            <\/div>\n\n            {layout.branches.map((b, idx) => (\n              <div key={b.id} className={`branch ${activeId === b.id ? \"active\" : \"\"}`} style={{ left: b.x, top: b.y }} onClick={(e) => { e.stopPropagation(); setActiveId(b.id); }}\n              >\n                <div className={`branch-card accent-${b.accent}`}>\n                  <div className=\"branch-tag\">{idx + 1}<\/div>\n                  <div className=\"branch-label\">{b.label}<\/div>\n                  <div className=\"branch-sub\">{b.sub}<\/div>\n                  <div className=\"branch-summary\">{b.summary}<\/div>\n                <\/div>\n              <\/div>\n            ))}\n\n            {layout.branches.map((b) =>\n              b.leaves.map((l, i) => {\n                const isActive = activeId === b.id;\n                return (\n                  <div key={`lf-${b.id}-${i}`} className={`leaf accent-${b.accent} ${isActive ? \"visible\" : \"\"}`} style={{ left: l.x, top: l.y, transform: `translate(-50%, -50%) scale(${isActive ? 1 : 0.85})`, pointerEvents: isActive ? \"auto\" : \"none\", }}>\n                    {l.title}\n                  <\/div>\n                );\n              })\n            )}\n          <\/div>\n        <\/div>\n\n        {!activeId && (\n          <div className=\"hint\">Tap any branch to explore the concepts \u2192<\/div>\n        )}\n\n        <div className={`detail-panel ${activeBranch ? \"open\" : \"\"} ${activeBranch ? \"accent-\" + activeBranch.accent : \"\"}`}>\n          {activeBranch && (\n            <React.Fragment>\n              <div className=\"detail-header\">\n                <button className=\"detail-close\" onClick={() => setActiveId(null)} aria-label=\"Close\">\u2715<\/button>\n                <div className={`detail-eyebrow accent-${activeBranch.accent}`}>\n                  <span className=\"num\">{DATA.branches.findIndex(x => x.id === activeBranch.id) + 1}<\/span>\n                  <span>{activeBranch.sub}<\/span>\n                <\/div>\n                <div className=\"detail-title\">{activeBranch.label}<\/div>\n                <div className=\"detail-sub\">{activeBranch.summary}<\/div>\n              <\/div>\n              <div className=\"detail-body\">\n                <div className=\"detail-extra\">{activeBranch.detail}<\/div>\n                <div className=\"detail-section-label\">Concepts<\/div>\n                <div className=\"children-list\">\n                  {activeBranch.children.map((c, i) => (\n                    <div key={i} className=\"child-item\">\n                      <div className=\"child-title\">{c.title}<\/div>\n                      <div className=\"child-note\">{c.note}<\/div>\n                    <\/div>\n                  ))}\n                <\/div>\n              <\/div>\n            <\/React.Fragment>\n          )}\n        <\/div>\n\n        <div className=\"footer\">\n          <div className=\"legend\">\n            <span className=\"swatch blue\"><i><\/i>Concepts<\/span>\n            <span className=\"swatch yellow\"><i><\/i>Key Regulations<\/span>\n            <span className=\"swatch dark\"><i><\/i>Operations<\/span>\n          <\/div>\n          <div className=\"zoom\">\n            <button onClick={() => adjustZoom(-0.1)} aria-label=\"Zoom out\">\u2212<\/button>\n            <span className=\"zoom-label\">{Math.round(zoom * 100)}%<\/span>\n            <button onClick={() => adjustZoom(0.1)} aria-label=\"Zoom in\">+<\/button>\n            <button onClick={resetView} aria-label=\"Reset\" title=\"Reset view\">\u293e<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n    );\n  }\n\n  const mount = document.getElementById(\"uas-mindmap-root\");\n  ReactDOM.createRoot(mount).render(<App \/>);\n})();\n<\/script>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f4961c elementor-widget elementor-widget-spacer\" data-id=\"3f4961c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-411450b elementor-align-center elementor-tablet-align-left arrow-button svg-dron-hover elementor-widget elementor-widget-button\" data-id=\"411450b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/training.eudroneport.com\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon elementor-align-icon-right\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" width=\"24px\" height=\"14px\" viewBox=\"0 0 24 14\"><title>167C96A0-E3C4-4CD3-95F9-A22F87114D01<\/title><g id=\"EUDronePort---UI-HOME-XL1440px\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"0122_EUDP-Service1.0_XL1440px\" transform=\"translate(-445.000000, -1107.000000)\" fill=\"#2C81C3\"><g id=\"Services-1\" transform=\"translate(190.000000, 568.000000)\"><g id=\"Button_arrow\" transform=\"translate(230.000000, 522.000000)\"><g id=\"Element\/Icon\/Verified-Copy\" transform=\"translate(25.000000, 12.000000)\"><path d=\"M23.1225434,9.83189079 L19.2521176,5.80466654 C19.0643304,5.60967818 18.8087064,5.5 18.5420395,5.5 C18.2753727,5.5 18.0197487,5.60967818 17.8319614,5.80466654 L17.8319614,5.80466654 C17.4441952,6.20639756 17.4441952,6.8552082 17.8319614,7.25693922 L21.392353,10.9545697 L1.00011001,10.9545697 C0.447764502,10.9545697 0,11.4157077 0,11.9845503 L0,11.9845503 C0,12.5533929 0.447764502,13.0145309 1.00011001,13.0145309 L21.4523596,13.0145309 L17.8319614,16.732761 C17.6426279,16.9261569 17.5361306,17.1894157 17.5361306,17.4640472 C17.5361306,17.7386787 17.6426279,18.0019375 17.8319614,18.1953335 L17.8319614,18.1953335 C18.0197487,18.3903218 18.2753727,18.5 18.5420395,18.5 C18.8087064,18.5 19.0643304,18.3903218 19.2521176,18.1953335 L23.1225434,14.1990086 C24.2924855,12.992623 24.2924855,11.0382764 23.1225434,9.83189079 Z\" id=\"Arrow-long-icon\"><\/path><\/g><\/g><\/g><\/g><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t<span class=\"elementor-button-text\">D\u00e9couvrez toutes les formations<\/span>\n\t\t<\/span>\n\t\t\t\t\t<\/a>\n\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<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.<\/p>\n","protected":false},"author":8,"featured_media":24998,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[40],"tags":[246,121],"class_list":["post-24999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-fr","tag-drones","tag-uas-fr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/\" \/>\n<meta property=\"og:site_name\" content=\"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-25T14:16:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-15T13:16:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1566\" \/>\n\t<meta property=\"og:image:height\" content=\"882\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mireia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mireia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/\"},\"author\":{\"name\":\"Mireia\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#\\\/schema\\\/person\\\/241bd6271b524f778b3521a5ff1dd846\"},\"headline\":\"La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l&rsquo;amateur au pilote professionnel d&rsquo;UAS\",\"datePublished\":\"2026-06-25T14:16:42+00:00\",\"dateModified\":\"2026-07-15T13:16:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/\"},\"wordCount\":196,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png\",\"keywords\":[\"drones\",\"UAS\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/\",\"url\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/\",\"name\":\"R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png\",\"datePublished\":\"2026-06-25T14:16:42+00:00\",\"dateModified\":\"2026-07-15T13:16:53+00:00\",\"description\":\"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#primaryimage\",\"url\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png\",\"contentUrl\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png\",\"width\":1566,\"height\":882,\"caption\":\"Carte mentale | EU Drone Port \ud83c\uddea\ud83c\uddfa\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/blog-fr\\\/reglementation-europeenne-drones\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/accueil\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l&#8217;amateur au pilote professionnel d&#8217;UAS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/\",\"name\":\"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa\",\"description\":\"A place to test your drones, bring your UAS to market, obtain authorisations for your flights, and learn from the best instructors.\",\"publisher\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#organization\",\"name\":\"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa\",\"url\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/Circular-Logo.png\",\"contentUrl\":\"https:\\\/\\\/eudroneport.com\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/Circular-Logo.png\",\"width\":533,\"height\":533,\"caption\":\"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa\"},\"image\":{\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/eudroneport.com\\\/fr\\\/#\\\/schema\\\/person\\\/241bd6271b524f778b3521a5ff1dd846\",\"name\":\"Mireia\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP","description":"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/","og_locale":"fr_FR","og_type":"article","og_title":"R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP","og_description":"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.","og_url":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/","og_site_name":"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa","article_published_time":"2026-06-25T14:16:42+00:00","article_modified_time":"2026-07-15T13:16:53+00:00","og_image":[{"width":1566,"height":882,"url":"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png","type":"image\/png"}],"author":"Mireia","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Mireia","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#article","isPartOf":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/"},"author":{"name":"Mireia","@id":"https:\/\/eudroneport.com\/fr\/#\/schema\/person\/241bd6271b524f778b3521a5ff1dd846"},"headline":"La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l&rsquo;amateur au pilote professionnel d&rsquo;UAS","datePublished":"2026-06-25T14:16:42+00:00","dateModified":"2026-07-15T13:16:53+00:00","mainEntityOfPage":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/"},"wordCount":196,"commentCount":0,"publisher":{"@id":"https:\/\/eudroneport.com\/fr\/#organization"},"image":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#primaryimage"},"thumbnailUrl":"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png","keywords":["drones","UAS"],"articleSection":["Blog"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/","url":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/","name":"R\u00e9glementation europ\u00e9enne des drones pour pilotes UAS | EUDP","isPartOf":{"@id":"https:\/\/eudroneport.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#primaryimage"},"image":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#primaryimage"},"thumbnailUrl":"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png","datePublished":"2026-06-25T14:16:42+00:00","dateModified":"2026-07-15T13:16:53+00:00","description":"D\u00e9couvrez la r\u00e9glementation europ\u00e9enne des drones gr\u00e2ce \u00e0 une carte mentale sur les r\u00e8gles EASA, les cat\u00e9gories UAS et la s\u00e9curit\u00e9.","breadcrumb":{"@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#primaryimage","url":"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png","contentUrl":"https:\/\/eudroneport.com\/wp-content\/uploads\/2026\/06\/Captura-de-pantalla-2026-06-25-a-las-16.13.03.png","width":1566,"height":882,"caption":"Carte mentale | EU Drone Port \ud83c\uddea\ud83c\uddfa"},{"@type":"BreadcrumbList","@id":"https:\/\/eudroneport.com\/fr\/blog-fr\/reglementation-europeenne-drones\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/eudroneport.com\/fr\/accueil\/"},{"@type":"ListItem","position":2,"name":"La r\u00e9glementation europ\u00e9enne sur les drones expliqu\u00e9e : de l&#8217;amateur au pilote professionnel d&#8217;UAS"}]},{"@type":"WebSite","@id":"https:\/\/eudroneport.com\/fr\/#website","url":"https:\/\/eudroneport.com\/fr\/","name":"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa","description":"A place to test your drones, bring your UAS to market, obtain authorisations for your flights, and learn from the best instructors.","publisher":{"@id":"https:\/\/eudroneport.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eudroneport.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/eudroneport.com\/fr\/#organization","name":"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa","url":"https:\/\/eudroneport.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/eudroneport.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/eudroneport.com\/wp-content\/uploads\/2022\/02\/Circular-Logo.png","contentUrl":"https:\/\/eudroneport.com\/wp-content\/uploads\/2022\/02\/Circular-Logo.png","width":533,"height":533,"caption":"EU Drone Port\u2122 \ud83c\uddea\ud83c\uddfa"},"image":{"@id":"https:\/\/eudroneport.com\/fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/eudroneport.com\/fr\/#\/schema\/person\/241bd6271b524f778b3521a5ff1dd846","name":"Mireia"}]}},"_links":{"self":[{"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/posts\/24999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/comments?post=24999"}],"version-history":[{"count":9,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/posts\/24999\/revisions"}],"predecessor-version":[{"id":25014,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/posts\/24999\/revisions\/25014"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/media\/24998"}],"wp:attachment":[{"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/media?parent=24999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/categories?post=24999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eudroneport.com\/fr\/wp-json\/wp\/v2\/tags?post=24999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}