<style id="elementor-post-3416">.elementor-3416 .elementor-element.elementor-element-40fd3d6{--display:flex;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-3416 .elementor-element.elementor-element-d77b6e5{text-align:center;}.elementor-3416 .elementor-element.elementor-element-d77b6e5 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:30px;font-weight:600;text-shadow:0px 0px 10px rgba(0,0,0,0.3);color:var( --e-global-color-70cc631 );}.elementor-3416 .elementor-element.elementor-element-0a2304d{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-3416 .elementor-element.elementor-element-0fdd593{width:var( --container-widget-width, 40% );max-width:40%;--container-widget-width:40%;--container-widget-flex-grow:0;}.elementor-3416 .elementor-element.elementor-element-0fdd593.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-3416 .elementor-element.elementor-element-026af76{--display:flex;}.elementor-3416 .elementor-element.elementor-element-55fb590{width:var( --container-widget-width, 90% );max-width:90%;--container-widget-width:90%;--container-widget-flex-grow:0;}.elementor-3416 .elementor-element.elementor-element-55fb590.elementor-element{--align-self:center;}@media(max-width:1024px){.elementor-3416 .elementor-element.elementor-element-0fdd593{width:var( --container-widget-width, 359.2px );max-width:359.2px;--container-widget-width:359.2px;--container-widget-flex-grow:0;}.elementor-3416 .elementor-element.elementor-element-55fb590{--container-widget-width:99%;--container-widget-flex-grow:0;width:var( --container-widget-width, 99% );max-width:99%;}}@media(max-width:767px){.elementor-3416 .elementor-element.elementor-element-0fdd593{width:var( --container-widget-width, 342px );max-width:342px;--container-widget-width:342px;--container-widget-flex-grow:0;}}</style>{"id":3416,"date":"2026-09-23T07:18:43","date_gmt":"2026-09-23T06:18:43","guid":{"rendered":"https:\/\/airtahiti-virtual.fr\/?page_id=3416"},"modified":"2026-09-23T07:22:30","modified_gmt":"2026-09-23T06:22:30","slug":"carte-routes-vta","status":"publish","type":"page","link":"https:\/\/airtahiti-virtual.fr\/en\/carte-routes-vta\/","title":{"rendered":"Carte Routes VTA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3416\" class=\"elementor elementor-3416\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40fd3d6 e-flex e-con-boxed e-con e-parent\" data-id=\"40fd3d6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d77b6e5 elementor-widget elementor-widget-heading\" data-id=\"d77b6e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Routes Air Tahiti Virtual<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a2304d e-flex e-con-boxed e-con e-parent\" data-id=\"0a2304d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0fdd593 elementor-widget__width-initial elementor-widget-tablet__width-initial elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0fdd593\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 style=\"text-align: center;\"><span style=\"text-decoration: underline;\"><strong>S\u00e9lectionnez votre route Air Tahiti Virtual\u00a0<\/strong><\/span><\/h3><ul><li style=\"list-style-type: none;\"><ul><li style=\"list-style-type: none;\"><ul><li><strong>Affichez les caract\u00e9ristiques de la route<\/strong><\/li><li><strong>G\u00e9n\u00e9rez votre plan de vol Simbrief<\/strong><\/li><\/ul><\/li><li style=\"list-style-type: none;\">\u00a0<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-026af76 e-con-full e-flex e-con e-parent\" data-id=\"026af76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55fb590 elementor-widget__width-initial elementor-widget elementor-widget-shortcode\" data-id=\"55fb590\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\" \/>\n    <style>\n        .atv-map-wrapper {\n            position: relative;\n            width: 100%;\n            height: 650px;\n            font-family: 'Helvetica Neue', Arial, sans-serif;\n            border-radius: 8px;\n            overflow: hidden;\n            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);\n        }\n        #map-atv-final {\n            display: block !important;\n            width: 100% !important;\n            height: 100% !important;\n            background-color: #1a1a1a !important;\n        }\n        .leaflet-container img {\n            max-width: none !important;\n            max-height: none !important;\n        }\n        .leaflet-popup-content-wrapper { \n            background: #222 !important; \n            color: #fff !important; \n            border-radius: 8px; \n            font-family: sans-serif; \n            box-shadow: 0 4px 15px rgba(0,0,0,0.6);\n            padding: 4px;\n        }\n        .leaflet-popup-tip { \n            background: #222 !important; \n        }\n        .atv-airport-label {\n            color: #ffffff !important;\n            font-family: 'Helvetica Neue', Arial, sans-serif !important;\n            font-size: 11px !important;\n            font-weight: bold !important;\n            text-shadow: 1px 1px 2px #000000, -1px -1px 2px #000000, 1px -1px 2px #000000, -1px 1px 2px #000000 !important;\n            white-space: nowrap !important;\n            transition: opacity 0.3s ease;\n        }\n        .atv-hub-label {\n            color: #ffcc00 !important;\n            font-size: 13px !important;\n        }\n\n        .atv-route-label {\n            color: #ffcc00 !important;\n            font-family: 'Helvetica Neue', Arial, sans-serif !important;\n            font-size: 11px !important;\n            font-weight: 700 !important;\n            text-shadow: 1px 1px 3px #000, -1px -1px 3px #000, 1px -1px 3px #000, -1px 1px 3px #000 !important;\n            white-space: nowrap !important;\n            pointer-events: none;\n            opacity: 0;\n            transition: opacity 0.2s ease-in-out;\n        }\n        .atv-route-label-active {\n            opacity: 1 !important;\n        }\n\n        \/* Popup *\/\n        .atv-popup-route {\n            padding: 8px 10px;\n            text-align: center;\n            max-height: 320px;\n            overflow-y: auto;\n        }\n        .atv-popup-title {\n            font-size: 15px;\n            font-weight: bold;\n            color: #ffcc00;\n            margin-bottom: 2px;\n        }\n        .atv-popup-subtitle {\n            font-size: 13px;\n            color: #ffffff;\n            font-weight: 600;\n            margin-bottom: 8px;\n        }\n        .atv-popup-actions {\n            display: flex;\n            flex-direction: column;\n            gap: 6px;\n        }\n        .atv-btn-fshub {\n            display: block;\n            padding: 6px 10px;\n            border-radius: 5px;\n            text-decoration: none;\n            font-size: 12px;\n            font-weight: 600;\n            text-align: center;\n            transition: background 0.2s ease;\n            cursor: pointer;\n            pointer-events: auto !important;\n        }\n        .atv-btn-simbrief {\n            background-color: #008cba;\n            color: #ffffff !important;\n        }\n        .atv-btn-simbrief:hover {\n            background-color: #007399;\n        }\n        .atv-btn-detail {\n            background-color: #333333;\n            color: #ffcc00 !important;\n            border: 1px solid #555;\n        }\n        .atv-btn-detail:hover {\n            background-color: #444444;\n        }\n\n        \/* Panneau de recherche (Gauche) *\/\n        .atv-panel {\n            position: absolute;\n            z-index: 1000;\n            background: rgba(26, 26, 26, 0.90);\n            backdrop-filter: blur(8px);\n            -webkit-backdrop-filter: blur(8px);\n            padding: 12px 14px;\n            border-radius: 8px;\n            border: 1px solid rgba(255, 255, 255, 0.15);\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n            color: #ffffff;\n            display: flex;\n            flex-direction: column;\n            gap: 6px;\n        }\n        .atv-panel label {\n            font-size: 10px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.8px;\n            color: #ffcc00;\n        }\n        .atv-panel select {\n            -webkit-appearance: none;\n            -moz-appearance: none;\n            appearance: none;\n            background-color: #2a2a2a;\n            color: #ffffff;\n            border: 1px solid rgba(255, 255, 255, 0.2);\n            height: 34px !important;\n            line-height: 34px !important;\n            padding: 0 28px 0 10px !important;\n            margin: 0 !important;\n            box-sizing: border-box !important;\n            border-radius: 5px;\n            font-size: 12px;\n            font-weight: 500;\n            outline: none;\n            cursor: pointer;\n            background-image: url(\"data:image\/svg+xml;charset=UTF-8,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffcc00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c\/polyline%3e%3c\/svg%3e\");\n            background-repeat: no-repeat;\n            background-position: right 8px center;\n            background-size: 14px;\n        }\n        .atv-panel select option {\n            background-color: #2a2a2a;\n            color: #ffffff;\n        }\n\n        .atv-search-left {\n            top: 15px;\n            left: 55px;\n            min-width: 260px;\n        }\n        .atv-search-row {\n            display: flex;\n            gap: 8px;\n        }\n        .atv-search-col {\n            display: flex;\n            flex-direction: column;\n            gap: 4px;\n            flex: 1;\n        }\n        .atv-btn-reset {\n            background: #444;\n            color: #fff;\n            border: 1px solid #666;\n            border-radius: 4px;\n            padding: 6px;\n            font-size: 11px;\n            font-weight: 600;\n            cursor: pointer;\n            margin-top: 4px;\n            transition: background 0.2s;\n        }\n        .atv-btn-reset:hover {\n            background: #666;\n        }\n        .atv-route-counter {\n            font-size: 11px;\n            color: #cccccc;\n            margin-top: 4px;\n            text-align: right;\n        }\n\n        @media (max-width: 768px) {\n            .atv-map-wrapper { height: 550px; }\n            .atv-search-left { \n                top: 10px; \n                left: 10px; \n                right: 10px; \n                min-width: auto; \n            }\n        }\n    <\/style>\n\n    <div class=\"atv-map-wrapper\">\n        <div class=\"atv-panel atv-search-left\">\n            <label>\ud83d\udd0e Filtrer par A\u00e9roport \/ Vol<\/label>\n            <div style=\"display:flex; flex-direction:column; gap:4px; margin-bottom:4px;\">\n                <label style=\"color:#aaa; font-size:9px;\">Archipel \/ Zone<\/label>\n                <select id=\"atv-archipel-select\">\n                    <option value=\"ALL\">Tous les archipels<\/option>\n                    <option value=\"SOCIETE\">\u00celes de la Soci\u00e9t\u00e9<\/option>\n                    <option value=\"TUAMOTU_NORD\">Tuamotu Nord<\/option>\n                    <option value=\"TUAMOTU_EST\">Tuamotu Est<\/option>\n                    <option value=\"MARQUISES\">Marquises<\/option>\n                    <option value=\"AUSTRALES\">Australes<\/option>\n                    <option value=\"GAMBIER\">Gambier<\/option>\n                    <option value=\"INTL\">International<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"atv-search-row\">\n                <div class=\"atv-search-col\">\n                    <label style=\"color:#aaa; font-size:9px;\">D\u00e9part<\/label>\n                    <select id=\"atv-dep-select\">\n                        <option value=\"\">-- TOUS --<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"atv-search-col\">\n                    <label style=\"color:#aaa; font-size:9px;\">Arriv\u00e9e<\/label>\n                    <select id=\"atv-arr-select\">\n                        <option value=\"\">-- TOUS --<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n            <button id=\"atv-reset-search\" class=\"atv-btn-reset\" style=\"display:none;\">Effacer la s\u00e9lection<\/button>\n            <div id=\"atv-route-counter\" class=\"atv-route-counter\">-- liaisons affich\u00e9es<\/div>\n        <\/div>\n\n        <div id=\"map-atv-final\"><\/div>\n    <\/div>\n\n    <script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@elfalem\/leaflet-curve@0.9.2\/dist\/leaflet.curve.min.js\"><\/script>\n\n    <script>\n    (function() {\n        function injecterCarte() {\n            var conteneur = document.getElementById('map-atv-final');\n            if (!conteneur || typeof L === 'undefined' || typeof L.curve === 'undefined' || conteneur._leaflet_id) {\n                return;\n            }\n\n            var map = L.map('map-atv-final', {\n                center: [-16.0, -148.0],\n                zoom: 6,\n                minZoom: 4,\n                zoomControl: true,\n                scrollWheelZoom: true\n            });\n\n            L.tileLayer('https:\/\/server.arcgisonline.com\/ArcGIS\/rest\/services\/World_Imagery\/MapServer\/tile\/{z}\/{y}\/{x}', {\n                attribution: 'Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGN, UPR-EGP, and the GIS User Community',\n                maxZoom: 17\n            }).addTo(map);\n\n            const airports = {\n                \"NTAA\": { coords: [-17.5537, -149.6072], name: \"Tahiti Faa'a\" },\n                \"NTTB\": { coords: [-16.4436, -151.7524], name: \"Bora Bora\" },\n                \"NTTG\": { coords: [-14.9556, -147.6579], name: \"Rangiroa\" },\n                \"NTKR\": { coords: [-14.4548, -145.0249], name: \"Takaroa\" }, \n                \"NTTH\": { coords: [-16.6881, -151.0278], name: \"Huahine\" },\n                \"NTTR\": { coords: [-16.7230, -151.4669], name: \"Raiatea\" },\n                \"NTTP\": { coords: [-16.4264, -152.2423], name: \"Maupiti\" },\n                \"NTTM\": { coords: [-17.4886, -149.7630], name: \"Moorea\" },\n                \"NTTE\": { coords: [-17.0148, -149.5888], name: \"Tetiaroa \/ Air Tetiaroa\" },\n                \"NTMD\": { coords: [-8.79331, -140.2229],  name: \"Nuku Hiva\" },\n                \"NTMN\": { coords: [-9.76819, -139.0109],  name: \"Hiva Oa\" },\n                \"NTMP\": { coords: [-9.34645, -140.0801],  name: \"Ua Pou\" },\n                \"NTMU\": { coords: [-8.93608, -139.5550],  name: \"Ua Huka\" },\n                \"NTAR\": { coords: [-22.4317, -151.3667], name: \"Rurutu\" },\n                \"NTAT\": { coords: [-23.3695, -149.5295], name: \"Tubuai\" },\n                \"NTAM\": { coords: [-22.6372, -152.8052], name: \"Rimatara\" },\n                \"NTAV\": { coords: [-23.8861, -147.6652], name: \"Raivavae\" },\n                \"NTGA\": { coords: [-17.3542, -145.5097], name: \"Anaa\" },\n                \"NTKF\": { coords: [-16.6867, -145.3326], name: \"Faaite\" },\n                \"NTKH\": { coords: [-15.9920, -140.1648], name: \"Fakahina\" },\n                \"NTGB\": { coords: [-15.8199, -140.8858], name: \"Fangatau\" },\n                \"NTGJ\": { coords: [-23.0829, -134.8871], name: \"Gambier \/ Mangareva\" },\n                \"NTTO\": { coords: [-18.0638, -140.9575], name: \"Hao\" },\n                \"NTGH\": { coords: [-17.5478, -142.6131], name: \"Hikueru\" },\n                \"NTGM\": { coords: [-16.5853, -143.6558], name: \"Makemo\" },\n                \"NTGN\": { coords: [-14.1769, -141.2669], name: \"Napuka\" },\n                \"NTGW\": { coords: [-19.2849, -138.7718], name: \"Nukutavake\" },\n                \"NTGP\": { coords: [-14.8101, -138.8110], name: \"Puka Puka\" },\n                \"NTGQ\": { coords: [-18.2952, -137.0168], name: \"Pukarua\" },\n                \"NTKO\": { coords: [-16.0497, -142.4767], name: \"Raroia\" },\n                \"NTGE\": { coords: [-18.4634, -136.4430], name: \"Reao\" },\n                \"NTKM\": { coords: [-15.8554, -142.2681], name: \"Takume\" },\n                \"NTGO\": { coords: [-17.3551, -138.4450], name: \"Tatakoto\" },\n                \"NTGY\": { coords: [-20.7817, -138.5678], name: \"Tureia\" },\n                \"NTUV\": { coords: [-18.7798, -138.8531], name: \"Vahitahi\" },\n                \"NCRG\": { coords: [-21.2024, -159.7982], name: \"Rarotonga\" },\n                \"NTGC\": { coords: [-15.1199, -148.2330], name: \"Tikehau\" },\n                \"NTGV\": { coords: [-14.8698, -148.7129], name: \"Mataiva\" },\n                \"NTHE\": { coords: [-14.4283, -146.2569], name: \"Ahe\" },\n                \"NTGI\": { coords: [-14.4361, -146.0694], name: \"Manihi\" },\n                \"NTGF\": { coords: [-16.0528, -145.6527], name: \"Fakarava\" },\n                \"NTGU\": { coords: [-15.2464, -146.6205], name: \"Arutua\" },\n                \"NTGD\": { coords: [-15.5736, -146.4149], name: \"Apataki\" },\n                \"NTGT\": { coords: [-14.7091, -145.2482], name: \"Takapoto\" },\n                \"NTKA\": { coords: [-15.7811, -145.1241], name: \"Kauehi\" },\n                \"NTKK\": { coords: [-15.4857, -145.4648], name: \"Aratika\" },\n                \"NTKT\": { coords: [-16.3396, -144.4032], name: \"Katiu\" },\n                \"NTGK\": { coords: [-15.6669, -146.8869], name: \"Kaukura\" },\n                \"NTKN\": { coords: [-16.1215, -146.3734], name: \"Niau\" }\n            };\n\n            const routesCSV = [\n                { id: 356870, code: \"VTA405\", from: \"NTAA\", to: \"NTTB\" },\n                { id: 357046, code: \"VTA520\", from: \"NTAA\", to: \"NTTG\" },\n                { id: 357047, code: \"VTA537\", from: \"NTTG\", to: \"NTAA\" },\n                { id: 357049, code: \"VTA571\", from: \"NTAA\", to: \"NTKR\" },\n                { id: 357050, code: \"VTA573\", from: \"NTKR\", to: \"NTAA\" },\n                { id: 357342, code: \"VTA360\", from: \"NTAA\", to: \"NTTH\" },\n                { id: 357343, code: \"VTA438\", from: \"NTTH\", to: \"NTAA\" },\n                { id: 357344, code: \"VTA304\", from: \"NTAA\", to: \"NTTR\" },\n                { id: 357345, code: \"VTA482\", from: \"NTTR\", to: \"NTAA\" },\n                { id: 357346, code: \"VTA482\", from: \"NTAA\", to: \"NTTB\" },\n                { id: 357347, code: \"VTA405\", from: \"NTTB\", to: \"NTAA\" },\n                { id: 362400, code: \"VTA756\", from: \"NTAA\", to: \"NTTP\" },\n                { id: 362401, code: \"VTA756\", from: \"NTTP\", to: \"NTAA\" },\n                { id: 362402, code: \"VTA228\", from: \"NTTM\", to: \"NTTB\" },\n                { id: 362403, code: \"VTA229\", from: \"NTTB\", to: \"NTTM\" },\n                { id: 362405, code: \"VTA823\", from: \"NTAA\", to: \"NTMD\" },\n                { id: 362408, code: \"VTA823\", from: \"NTMD\", to: \"NTAA\" },\n                { id: 362409, code: \"VTA820\", from: \"NTAA\", to: \"NTMN\" },\n                { id: 362411, code: \"VTA859\", from: \"NTMN\", to: \"NTAA\" },\n                { id: 362430, code: \"VTA935\", from: \"NTAA\", to: \"NTAR\" },\n                { id: 362431, code: \"VTA918\", from: \"NTAR\", to: \"NTAA\" },\n                { id: 362432, code: \"VTA914\", from: \"NTAA\", to: \"NTAT\" },\n                { id: 362433, code: \"VTA914\", from: \"NTAT\", to: \"NTAA\" },\n                { id: 362434, code: \"VTA932\", from: \"NTAA\", to: \"NTAM\" },\n                { id: 362435, code: \"VTA932\", from: \"NTAM\", to: \"NTAA\" },\n                { id: 362436, code: \"VTA947\", from: \"NTAA\", to: \"NTAV\" },\n                { id: 362437, code: \"VTA947\", from: \"NTAV\", to: \"NTAA\" },\n                { id: 362530, code: \"VTA856\", from: \"NTMN\", to: \"NTMD\" },\n                { id: 362528, code: \"VTA825\", from: \"NTMD\", to: \"NTMN\" },\n                { id: 403435, code: \"VTA894\", from: \"NTMD\", to: \"NTMU\" },\n                { id: 362531, code: \"VTA896\", from: \"NTMD\", to: \"NTMP\" },\n                { id: 362532, code: \"VTA892\", from: \"NTMP\", to: \"NTMD\" },\n                { id: 362534, code: \"VTA897\", from: \"NTMP\", to: \"NTMU\" },\n                { id: 403433, code: \"VTA893\", from: \"NTMU\", to: \"NTMD\" },\n                { id: 451582, code: \"VTA894\", from: \"NTMU\", to: \"NTMP\" },\n                { id: 362533, code: \"VTA899\", from: \"NTMU\", to: \"NTMP\" },            \n                { id: 362535, code: \"VTA920\", from: \"NTAT\", to: \"NTAR\" },\n                { id: 362536, code: \"VTA915\", from: \"NTAR\", to: \"NTAT\" },\n                { id: 362537, code: \"VTA946\", from: \"NTAT\", to: \"NTAV\" },\n                { id: 362538, code: \"VTA947\", from: \"NTAV\", to: \"NTAT\" },\n                { id: 362539, code: \"VTA923\", from: \"NTAT\", to: \"NTAM\" },\n                { id: 362540, code: \"VTA924\", from: \"NTAM\", to: \"NTAT\" },\n                { id: 362541, code: \"VTA979\", from: \"NTAA\", to: \"NTGA\" },\n                { id: 362542, code: \"VTA979\", from: \"NTGA\", to: \"NTAA\" },\n                { id: 362543, code: \"VTA959\", from: \"NTAA\", to: \"NTKF\" },\n                { id: 362544, code: \"VTA959\", from: \"NTKF\", to: \"NTAA\" },\n                { id: 362545, code: \"VTA975\", from: \"NTAA\", to: \"NTKH\" },\n                { id: 362546, code: \"VTA977\", from: \"NTKH\", to: \"NTAA\" },\n                { id: 362547, code: \"VTA982\", from: \"NTAA\", to: \"NTGB\" },\n                { id: 362548, code: \"VTA986\", from: \"NTGB\", to: \"NTAA\" },\n                { id: 362549, code: \"VTA956\", from: \"NTAA\", to: \"NTGJ\" },\n                { id: 362550, code: \"VTA956\", from: \"NTGJ\", to: \"NTAA\" },\n                { id: 362551, code: \"VTA961\", from: \"NTAA\", to: \"NTTO\" },\n                { id: 362552, code: \"VTA961\", from: \"NTTO\", to: \"NTAA\" },\n                { id: 362553, code: \"VTA965\", from: \"NTAA\", to: \"NTGH\" },\n                { id: 362554, code: \"VTA972\", from: \"NTGH\", to: \"NTAA\" },\n                { id: 362555, code: \"VTA966\", from: \"NTAA\", to: \"NTGM\" },\n                { id: 362556, code: \"VTA966\", from: \"NTGM\", to: \"NTAA\" },\n                { id: 362557, code: \"VTA982\", from: \"NTAA\", to: \"NTGN\" },\n                { id: 362558, code: \"VTA975\", from: \"NTGN\", to: \"NTAA\" },\n                { id: 362559, code: \"VTA9805\", from: \"NTAA\", to: \"NTGW\" },\n                { id: 362560, code: \"VTA9805\", from: \"NTGW\", to: \"NTAA\" },\n                { id: 362561, code: \"VTA975\", from: \"NTAA\", to: \"NTGP\" },\n                { id: 362562, code: \"VTA977\", from: \"NTGP\", to: \"NTAA\" },\n                { id: 362563, code: \"VTA981\", from: \"NTAA\", to: \"NTGQ\" },\n                { id: 362564, code: \"VTA981\", from: \"NTGQ\", to: \"NTAA\" },\n                { id: 362565, code: \"VTA966\", from: \"NTAA\", to: \"NTKO\" },\n                { id: 362566, code: \"VTA966\", from: \"NTKO\", to: \"NTAA\" },\n                { id: 362585, code: \"VTA981\", from: \"NTAA\", to: \"NTGE\" },\n                { id: 362588, code: \"VTA981\", from: \"NTGE\", to: \"NTAA\" },\n                { id: 362589, code: \"VTA966\", from: \"NTAA\", to: \"NTKM\" },\n                { id: 362591, code: \"VTA966\", from: \"NTKM\", to: \"NTAA\" },\n                { id: 362633, code: \"VTA981\", from: \"NTAA\", to: \"NTGO\" },\n                { id: 362634, code: \"VTA981\", from: \"NTGO\", to: \"NTAA\" },\n                { id: 362635, code: \"VTA9505\", from: \"NTAA\", to: \"NTGY\" },\n                { id: 362637, code: \"VTA9505\", from: \"NTGY\", to: \"NTAA\" },\n                { id: 362641, code: \"VTA9505\", from: \"NTAA\", to: \"NTUV\" },\n                { id: 362642, code: \"VTA9505\", from: \"NTUV\", to: \"NTAA\" },\n                { id: 362643, code: \"VTA34\", from: \"NTAA\", to: \"NCRG\" },\n                { id: 362644, code: \"VTA36\", from: \"NCRG\", to: \"NTAA\" },\n                { id: 366123, code: \"VTA545\", from: \"NTAA\", to: \"NTGC\" },\n                { id: 366124, code: \"VTA545\", from: \"NTGC\", to: \"NTAA\" },\n                { id: 366126, code: \"VTA516\", from: \"NTGV\", to: \"NTAA\" },\n                { id: 370019, code: \"VTA769\", from: \"NTTB\", to: \"NTTP\" },\n                { id: 370020, code: \"VTA768\", from: \"NTTP\", to: \"NTTB\" },\n                { id: 370021, code: \"VTA653\", from: \"NTTB\", to: \"NTTG\" },\n                { id: 370022, code: \"VTA266\", from: \"NTTM\", to: \"NTTH\" },\n                { id: 370023, code: \"VTA267\", from: \"NTTH\", to: \"NTTM\" },\n                { id: 370024, code: \"VTA248\", from: \"NTTM\", to: \"NTTR\" },\n                { id: 370025, code: \"VTA372\", from: \"NTTH\", to: \"NTTR\" },\n                { id: 370026, code: \"VTA313\", from: \"NTTR\", to: \"NTTH\" },\n                { id: 370027, code: \"VTA476\", from: \"NTTH\", to: \"NTTB\" },\n                { id: 370028, code: \"VTA490\", from: \"NTTB\", to: \"NTTH\" },\n                { id: 370029, code: \"VTA400\", from: \"NTTR\", to: \"NTTB\" },\n                { id: 370030, code: \"VTA235\", from: \"NTTB\", to: \"NTTR\" },\n                { id: 370031, code: \"VTA734\", from: \"NTTR\", to: \"NTTP\" },\n                { id: 370032, code: \"VTA733\", from: \"NTTP\", to: \"NTTR\" },  \n                { id: 451312, code: \"VTA587\", from: \"NTAA\", to: \"NTHE\" },\n                { id: 451313, code: \"VTA589\", from: \"NTHE\", to: \"NTAA\" },\n                { id: 451314, code: \"VTA580\", from: \"NTAA\", to: \"NTGD\" },\n                { id: 451315, code: \"VTA583\", from: \"NTGD\", to: \"NTAA\" },\n                { id: 451318, code: \"VTA594\", from: \"NTAA\", to: \"NTKK\" },\n                { id: 451320, code: \"VTA594\", from: \"NTKK\", to: \"NTAA\" },\n                { id: 451325, code: \"VTA596\", from: \"NTAA\", to: \"NTGU\" },\n                { id: 451327, code: \"VTA596\", from: \"NTGU\", to: \"NTAA\" },\n                { id: 451337, code: \"VTA552\", from: \"NTAA\", to: \"NTGF\" },\n                { id: 451339, code: \"VTA552\", from: \"NTGF\", to: \"NTAA\" },\n                { id: 451344, code: \"VTA937\", from: \"NTAR\", to: \"NTAM\" },\n                { id: 451345, code: \"VTA932\", from: \"NTAM\", to: \"NTAR\" },\n                { id: 451350, code: \"VTA572\", from: \"NTAA\", to: \"NTGI\" },\n                { id: 451351, code: \"VTA572\", from: \"NTGI\", to: \"NTAA\" },\n                { id: 451352, code: \"VTA560\", from: \"NTAA\", to: \"NTGK\" },\n                { id: 451353, code: \"VTA560\", from: \"NTGK\", to: \"NTAA\" },\n                { id: 451362, code: \"VTA561\", from: \"NTAA\", to: \"NTGT\" },\n                { id: 451363, code: \"VTA561\", from: \"NTGT\", to: \"NTAA\" },\n                { id: 451364, code: \"VTA560\", from: \"NTAA\", to: \"NTKN\" },\n                { id: 451365, code: \"VTA560\", from: \"NTKN\", to: \"NTAA\" },\n                { id: 451366, code: \"VTA591\", from: \"NTAA\", to: \"NTKA\" },\n                { id: 451367, code: \"VTA591\", from: \"NTKA\", to: \"NTAA\" },\n                { id: 451368, code: \"VTA591\", from: \"NTAA\", to: \"NTKT\" },\n                { id: 451369, code: \"VTA591\", from: \"NTKT\", to: \"NTAA\" },\n                { id: 451371, code: \"TOA001\", from: \"NTAA\", to: \"NTTE\" },\n                { id: 451372, code: \"TOA002\", from: \"NTTE\", to: \"NTAA\" },\n                { id: 451375, code: \"VTA699\", from: \"NTTG\", to: \"NTGC\" },\n                { id: 451376, code: \"VTA529\", from: \"NTGC\", to: \"NTTG\" },\n                { id: 451377, code: \"VTA537\", from: \"NTTG\", to: \"NTGF\" },\n                { id: 451378, code: \"VTA552\", from: \"NTGF\", to: \"NTTG\" },\n                { id: 451379, code: \"VTA583\", from: \"NTTG\", to: \"NTGD\" },\n                { id: 451380, code: \"VTA580\", from: \"NTGD\", to: \"NTTG\" },\n                { id: 451574, code: \"VTA272\", from: \"NTAA\", to: \"NTTM\" },\n                { id: 451575, code: \"VTA272\", from: \"NTTM\", to: \"NTTH\" },\n                { id: 451576, code: \"VTA272\", from: \"NTTH\", to: \"NTTB\" },\n                { id: 451577, code: \"VTA272\", from: \"NTTB\", to: \"NTAA\" },\n                { id: 451578, code: \"VTA543\", from: \"NTAA\", to: \"NTGC\" },\n                { id: 451579, code: \"VTA543\", from: \"NTGC\", to: \"NTTG\" },\n                { id: 451580, code: \"VTA543\", from: \"NTTG\", to: \"NTAA\" },\n                { id: 404239, code: \"VTA211\", from: \"NTAA\", to: \"NTTM\" }\n            ];\n\n            function getAirportGroup(icao) {\n                if ([\"NTTM\", \"NTTB\", \"NTTH\", \"NTTR\", \"NTTP\", \"NTTE\"].includes(icao)) return \"SOCIETE\";\n                if ([\"NTTG\", \"NTGC\", \"NTGD\", \"NTGV\", \"NTGF\", \"NTGT\", \"NTGK\", \"NTHE\", \"NTGI\", \"NTKK\", \"NTKR\", \"NTGU\", \"NTKT\", \"NTKA\", \"NTKN\"].includes(icao)) return \"TUAMOTU_NORD\";\n                if ([\"NTMD\", \"NTMN\", \"NTMP\", \"NTMU\"].includes(icao)) return \"MARQUISES\";\n                if ([\"NTAR\", \"NTAT\", \"NTAV\", \"NTAM\"].includes(icao)) return \"AUSTRALES\";\n                if ([\"NTGJ\"].includes(icao)) return \"GAMBIER\";\n                if ([\"NCRG\"].includes(icao)) return \"INTL\";\n                if ([\"NTAA\"].includes(icao)) return \"HUB_TAHITI\";\n                if ([\"NTGA\", \"NTGB\",\"NTGE\", \"NTGH\", \"NTGM\", \"NTGN\", \"NTGO\", \"NTGP\", \"NTGQ\", \"NTGW\", \"NTGY\", \"NTKF\", \"NTKH\", \"NTKM\", \"NTKO\", \"NTTO\", \"NTUV\"].includes(icao)) return \"TUAMOTU_EST\";\n            }\n\n            const groupBounds = {\n                \"ALL\": [[-24.5, -160.5], [-8.0, -134.0]],\n                \"SOCIETE\": [[-18.0, -153.0], [-16.0, -149.0]],\n                \"TUAMOTU_NORD\": [[-17.5, -149.8], [-14.0, -145.0]],\n                \"TUAMOTU_EST\": [[-21.5, -150.0], [-13.8, -135.0]],\n                \"MARQUISES\": [[-10.5, -141.0], [-8.5, -138.5]],\n                \"AUSTRALES\": [[-24.5, -153.5], [-17.0, -147.0]],\n                \"GAMBIER\": [[-23.8, -150.0], [-17.0, -134.0]],\n                \"INTL\": [[-22.0, -160.5], [-17.0, -149.0]]\n            };\n\n            var archipelSelect = document.getElementById('atv-archipel-select');\n            var depSelect = document.getElementById('atv-dep-select');\n            var arrSelect = document.getElementById('atv-arr-select');\n            var resetBtn = document.getElementById('atv-reset-search');\n            var counterEl = document.getElementById('atv-route-counter');\n\n            const groupedRoutes = {};\n            routesCSV.forEach(route => {\n                if (!airports[route.from] || !airports[route.to]) return;\n                \n                const routeKey = [route.from, route.to].sort().join('-');\n                \n                if (!groupedRoutes[routeKey]) {\n                    const groupA = getAirportGroup(route.from);\n                    const groupB = getAirportGroup(route.to);\n\n                    const associatedGroups = new Set();\n                    if (groupA !== \"HUB_TAHITI\") associatedGroups.add(groupA);\n                    if (groupB !== \"HUB_TAHITI\") associatedGroups.add(groupB);\n                    if (groupA === \"HUB_TAHITI\" && groupB === \"HUB_TAHITI\") associatedGroups.add(\"SOCIETE\");\n\n                    groupedRoutes[routeKey] = {\n                        from: route.from,\n                        to: route.to,\n                        fromName: airports[route.from].name,\n                        toName: airports[route.to].name,\n                        groups: Array.from(associatedGroups),\n                        isDash: (route.from === 'NCRG' || route.to === 'NCRG'),\n                        vols: []\n                    };\n                }\n                groupedRoutes[routeKey].vols.push(route);\n            });\n\n            function populateAirportSelects(archipel) {\n                var currentDep = depSelect.value;\n                var currentArr = arrSelect.value;\n\n                depSelect.innerHTML = '<option value=\"\">-- TOUS --<\/option>';\n                arrSelect.innerHTML = '<option value=\"\">-- TOUS --<\/option>';\n\n                var eligibleAirports = new Set();\n\n                if (archipel === \"ALL\") {\n                    Object.keys(airports).forEach(code => eligibleAirports.add(code));\n                } else {\n                    Object.values(groupedRoutes).forEach(group => {\n                        if (group.groups.includes(archipel)) {\n                            eligibleAirports.add(group.from);\n                            eligibleAirports.add(group.to);\n                        }\n                    });\n                }\n\n                var sortedList = Array.from(eligibleAirports).sort((a,b) => airports[a].name.localeCompare(airports[b].name));\n                sortedList.forEach(function(code) {\n                    var optText = code + ' - ' + airports[code].name;\n                    depSelect.options.add(new Option(optText, code));\n                    arrSelect.options.add(new Option(optText, code));\n                });\n\n                if (eligibleAirports.has(currentDep)) depSelect.value = currentDep;\n                if (eligibleAirports.has(currentArr)) arrSelect.value = currentArr;\n            }\n\n            populateAirportSelects(\"ALL\");\n\n            function buildCurveData(p1, p2, indexOffset) {\n                var factor = 0;\n                if (indexOffset > 0) {\n                    factor = (indexOffset % 2 === 1) ? Math.ceil(indexOffset \/ 2) : -Math.ceil(indexOffset \/ 2);\n                }\n\n                var curvature = 0.35 + (factor * 0.25);\n                var midLat = (p1[0] + p2[0]) \/ 2;\n                var midLng = (p1[1] + p2[1]) \/ 2;\n                \n                var cpLat = midLat + (p2[1] - p1[1]) * curvature;\n                var cpLng = midLng - (p2[0] - p1[0]) * curvature;\n\n                var centerLat = 0.25 * p1[0] + 0.5 * cpLat + 0.25 * p2[0];\n                var centerLng = 0.25 * p1[1] + 0.5 * cpLng + 0.25 * p2[1];\n\n                return {\n                    path: ['M', p1, 'Q', [cpLat, cpLng], p2],\n                    centerCoords: [centerLat, centerLng]\n                };\n            }\n\n            var renderedRoutes = [];\n            var airportMarkers = {};\n            var pairCounters = {};\n\n            \/\/ Affichage des a\u00e9roports\n            Object.keys(airports).forEach(function(code) {\n                var ap = airports[code];\n                var isHub = (code === 'NTAA');\n                \n                var markerHtml = '<div class=\"atv-airport-label ' + (isHub ? 'atv-hub-label' : '') + '\">' + code + '<\/div>';\n                \n                var marker = L.marker(ap.coords, {\n                    icon: L.divIcon({\n                        className: 'atv-marker-container',\n                        html: markerHtml,\n                        iconAnchor: [15, 10]\n                    })\n                }).addTo(map);\n\n                marker.bindPopup('<div class=\"atv-popup-title\">' + code + ' \u2014 ' + ap.name + '<\/div>');\n                airportMarkers[code] = marker;\n            });\n\n            \/\/ Affichage des routes\n            Object.values(groupedRoutes).forEach(group => {\n                var startCoords = airports[group.from].coords;\n                var endCoords = airports[group.to].coords;\n                var routePairKey = [group.from, group.to].sort().join('-');\n                \n                if (pairCounters[routePairKey] === undefined) {\n                    pairCounters[routePairKey] = 0;\n                } else {\n                    pairCounters[routePairKey]++;\n                }\n\n                var curveData = buildCurveData(startCoords, endCoords, pairCounters[routePairKey]);\n\n                var lineStyle = {\n                    color: '#800000',\n                    weight: 2.5,\n                    opacity: 0.85,\n                    lineCap: 'round'\n                };\n                if (group.isDash) lineStyle.dashArray = '5, 10';\n\n                var curve = L.curve(curveData.path, lineStyle).addTo(map);\n\n                var labelMarker = L.marker(curveData.centerCoords, {\n                    icon: L.divIcon({\n                        className: 'atv-route-label',\n                        html: group.from + ' \u21c4 ' + group.to,\n                        iconAnchor: [30, 10]\n                    }),\n                    interactive: false\n                }).addTo(map);\n\n                \/\/ Construction du popup avec ton bloc JavaScript fonctionnel\n                var popupContent = '<div class=\"atv-popup-route\">';\n                popupContent += '<div class=\"atv-popup-title\">' + group.from + ' \u21c4 ' + group.to + '<\/div>';\n                popupContent += '<div class=\"atv-popup-subtitle\">' + group.fromName + ' \u2014 ' + group.toName + '<\/div>';\n                popupContent += '<div class=\"atv-popup-actions\">';\n\n                var buttonsHtml = '';\n                group.vols.forEach(vol => {\n                    var fromIsland = airports[vol.from] ? airports[vol.from].name : vol.from;\n                    var toIsland = airports[vol.to] ? airports[vol.to].name : vol.to;\n\n                    var simbriefUrl = 'https:\/\/fshub.io\/sbi?d=' + vol.from + '&a=' + vol.to + '&af=' + vol.code;\n                    var detailUrl = 'https:\/\/fshub.io\/airline\/VTA\/routes\/' + vol.id + '\/show';\n\n                    var sbOnClick = 'event.stopPropagation(); window.open(\\'' + simbriefUrl + '\\', \\'_blank\\'); return false;';\n                    var dtOnClick = 'event.stopPropagation(); window.open(\\'' + detailUrl + '\\', \\'_blank\\'); return false;';\n\n                    buttonsHtml += '<a href=\"' + simbriefUrl + '\" target=\"_blank\" onclick=\"' + sbOnClick + '\" class=\"atv-btn-fshub atv-btn-simbrief\">\u2708 Plan SimBrief \u2014 ' + vol.code + ' (' + fromIsland + ' \u2794 ' + toIsland + ')<\/a>';\n                    buttonsHtml += '<a href=\"' + detailUrl + '\" target=\"_blank\" onclick=\"' + dtOnClick + '\" class=\"atv-btn-fshub atv-btn-detail\">\ud83d\udccb Fiche FsHub \u2014 ' + vol.code + ' (ID: ' + vol.id + ')<\/a>';\n                });\n\n                popupContent += buttonsHtml;\n                popupContent += '<\/div><\/div>';\n\n                curve.bindPopup(popupContent);\n\n                curve.on('mouseover', function(e) {\n                    this.setStyle({ color: '#ffcc00', weight: 4.5, opacity: 1 });\n                    var el = labelMarker.getElement();\n                    if (el) el.classList.add('atv-route-label-active');\n                });\n\n                curve.on('mouseout', function(e) {\n                    this.setStyle(lineStyle);\n                    var el = labelMarker.getElement();\n                    if (el) el.classList.remove('atv-route-label-active');\n                });\n\n                renderedRoutes.push({\n                    curve: curve,\n                    labelMarker: labelMarker,\n                    from: group.from,\n                    to: group.to,\n                    groups: group.groups\n                });\n            });\n\n            function filterRoutes() {\n                var selectedArchipel = archipelSelect.value;\n                var selectedDep = depSelect.value;\n                var selectedArr = arrSelect.value;\n\n                var visibleCount = 0;\n                var activeAirports = new Set();\n\n                renderedRoutes.forEach(function(item) {\n                    var matchArchipel = (selectedArchipel === \"ALL\") || item.groups.includes(selectedArchipel);\n                    var matchDep = !selectedDep || (item.from === selectedDep || item.to === selectedDep);\n                    var matchArr = !selectedArr || (item.from === selectedArr || item.to === selectedArr);\n\n                    if (matchArchipel && matchDep && matchArr) {\n                        if (!map.hasLayer(item.curve)) map.addLayer(item.curve);\n                        if (!map.hasLayer(item.labelMarker)) map.addLayer(item.labelMarker);\n                        visibleCount++;\n                        activeAirports.add(item.from);\n                        activeAirports.add(item.to);\n                    } else {\n                        if (map.hasLayer(item.curve)) map.removeLayer(item.curve);\n                        if (map.hasLayer(item.labelMarker)) map.removeLayer(item.labelMarker);\n                    }\n                });\n\n                counterEl.innerText = visibleCount + ' liaison(s) affich\u00e9e(s)';\n\n                if (selectedArchipel !== \"ALL\" || selectedDep !== \"\" || selectedArr !== \"\") {\n                    resetBtn.style.display = 'block';\n                } else {\n                    resetBtn.style.display = 'none';\n                }\n            }\n\n            archipelSelect.addEventListener('change', function() {\n                populateAirportSelects(this.value);\n                var bounds = groupBounds[this.value];\n                if (bounds) map.fitBounds(bounds, { padding: [30, 30] });\n                filterRoutes();\n            });\n\n            depSelect.addEventListener('change', filterRoutes);\n            arrSelect.addEventListener('change', filterRoutes);\n\n            resetBtn.addEventListener('click', function() {\n                archipelSelect.value = \"ALL\";\n                populateAirportSelects(\"ALL\");\n                depSelect.value = \"\";\n                arrSelect.value = \"\";\n                map.fitBounds(groupBounds[\"ALL\"], { padding: [20, 20] });\n                filterRoutes();\n            });\n\n            filterRoutes();\n        }\n\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', injecterCarte);\n        } else {\n            injecterCarte();\n        }\n    })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Routes Air Tahiti Virtual S\u00e9lectionnez votre route Air Tahiti Virtual\u00a0 Affichez les caract\u00e9ristiques de la route G\u00e9n\u00e9rez votre plan de vol Simbrief \u00a0<\/p>","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"ocean_front_end_style_editor":"no","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","footnotes":""},"class_list":["post-3416","page","type-page","status-publish","hentry","entry"],"acf":[],"_links":{"self":[{"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/pages\/3416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/comments?post=3416"}],"version-history":[{"count":10,"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/pages\/3416\/revisions"}],"predecessor-version":[{"id":3427,"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/pages\/3416\/revisions\/3427"}],"wp:attachment":[{"href":"https:\/\/airtahiti-virtual.fr\/en\/wp-json\/wp\/v2\/media?parent=3416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}