{"id":31,"date":"2026-03-26T09:07:13","date_gmt":"2026-03-26T08:07:13","guid":{"rendered":"https:\/\/preprod.excel-vision.eu\/?page_id=31"},"modified":"2026-10-19T15:22:19","modified_gmt":"2026-10-19T13:22:19","slug":"elementor-31","status":"publish","type":"page","link":"https:\/\/preprod.excel-vision.eu\/de\/","title":{"rendered":"Accueil Patient"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31\" class=\"elementor elementor-31\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e4ffa2a e-flex e-con-boxed e-con e-parent\" data-id=\"3e4ffa2a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;position&quot;:&quot;fixed&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-765064d5 e-con-full e-flex e-con e-child\" data-id=\"765064d5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7279f17b elementor-widget elementor-widget-theme-site-logo elementor-widget-image\" data-id=\"7279f17b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-site-logo.default\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/preprod.excel-vision.eu\/de\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1844\" height=\"520\" src=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016.png\" class=\"attachment-full size-full wp-image-128\" alt=\"\" srcset=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016.png 1844w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016-300x85.png 300w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016-1024x289.png 1024w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016-768x217.png 768w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/IMG-5016-1536x433.png 1536w\" sizes=\"(max-width: 1844px) 100vw, 1844px\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5555c7c5 e-con-full e-flex e-con e-child\" data-id=\"5555c7c5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e2b135a elementor-nav-menu--stretch elementor-nav-menu__align-end elementor-nav-menu--dropdown-mobile elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu\" data-id=\"4e2b135a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\\&quot;true\\&quot; class=\\&quot;e-font-icon-svg e-fas-caret-down\\&quot; viewBox=\\&quot;0 0 320 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}\" data-widget_type=\"nav-menu.default\">\n\t\t\t\t\t\t\t\t<nav aria-label=\"Header Patient\" class=\"elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-underline e--animation-fade\">\n\t\t\t\t<ul id=\"menu-1-4e2b135a\" class=\"elementor-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-83\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/\" class=\"elementor-item\">Accueil<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1747\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/centres-partenaires\/\" class=\"elementor-item\">Centres partenaires<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-106\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/defauts-visuels\/\" class=\"elementor-item\">D\u00e9fauts visuels<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-108\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lastigmatisme\/\" class=\"elementor-sub-item\">L\u2019astigmatisme<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-109\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lhypermetropie\/\" class=\"elementor-sub-item\">L&rsquo;hyperm\u00e9tropie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-110\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-myopie\/\" class=\"elementor-sub-item\">La myopie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-107\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-presbytie\/\" class=\"elementor-sub-item\">La presbytie<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-278\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/techniques-operatoires\/\" class=\"elementor-item\">Techniques op\u00e9ratoires<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-283\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/pkr\/\" class=\"elementor-sub-item\">PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-282\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/trans-pkr\/\" class=\"elementor-sub-item\">Trans PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-280\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-lasik\/\" class=\"elementor-sub-item\">Femto-LASIK<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-279\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-cataracte\/\" class=\"elementor-sub-item\">Femto-CATARACTE<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-281\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/presby-lasik\/\" class=\"elementor-sub-item\">Presby-LASIK<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2880\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/valeurs\/\" class=\"elementor-item\">Nos valeurs<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-286\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/faq\/\" class=\"elementor-item\">FAQ<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-284\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/carriere\/\" class=\"elementor-item\">Carri\u00e8re<\/a><\/li>\n<\/ul>\t\t\t<\/nav>\n\t\t\t\t\t<div class=\"elementor-menu-toggle\" role=\"button\" tabindex=\"0\" aria-label=\"Men\u00fc Umschalter\" aria-expanded=\"false\">\n\t\t\t<svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--open e-font-icon-svg e-eicon-menu-bar\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M104 333H896C929 333 958 304 958 271S929 208 896 208H104C71 208 42 237 42 271S71 333 104 333ZM104 583H896C929 583 958 554 958 521S929 458 896 458H104C71 458 42 487 42 521S71 583 104 583ZM104 833H896C929 833 958 804 958 771S929 708 896 708H104C71 708 42 737 42 771S71 833 104 833Z\"><\/path><\/svg><svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--close e-font-icon-svg e-eicon-close\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z\"><\/path><\/svg>\t\t<\/div>\n\t\t\t\t\t<nav class=\"elementor-nav-menu--dropdown elementor-nav-menu__container\" aria-hidden=\"true\">\n\t\t\t\t<ul id=\"menu-2-4e2b135a\" class=\"elementor-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-83\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/\" class=\"elementor-item\" tabindex=\"-1\">Accueil<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1747\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/centres-partenaires\/\" class=\"elementor-item\" tabindex=\"-1\">Centres partenaires<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-106\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/defauts-visuels\/\" class=\"elementor-item\" tabindex=\"-1\">D\u00e9fauts visuels<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-108\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lastigmatisme\/\" class=\"elementor-sub-item\" tabindex=\"-1\">L\u2019astigmatisme<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-109\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lhypermetropie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">L&rsquo;hyperm\u00e9tropie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-110\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-myopie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">La myopie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-107\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-presbytie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">La presbytie<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-278\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/techniques-operatoires\/\" class=\"elementor-item\" tabindex=\"-1\">Techniques op\u00e9ratoires<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-283\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/pkr\/\" class=\"elementor-sub-item\" tabindex=\"-1\">PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-282\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/trans-pkr\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Trans PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-280\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-lasik\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Femto-LASIK<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-279\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-cataracte\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Femto-CATARACTE<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-281\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/presby-lasik\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Presby-LASIK<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2880\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/valeurs\/\" class=\"elementor-item\" tabindex=\"-1\">Nos valeurs<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-286\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/faq\/\" class=\"elementor-item\" tabindex=\"-1\">FAQ<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-284\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/carriere\/\" class=\"elementor-item\" tabindex=\"-1\">Carri\u00e8re<\/a><\/li>\n<\/ul>\t\t\t<\/nav>\n\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-16bac967 e-con-full e-flex e-con e-parent\" data-id=\"16bac967\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/correctvisioneurope.group\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/6472703_3d-Appearing-Eye-Pupil_By_Juanjo_McLittle_Artlist_4K.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;,&quot;shape_divider_bottom&quot;:&quot;opacity-tilt&quot;}\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div>\t\t<div class=\"elementor-shape elementor-shape-bottom\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 2600 131.1\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0 0L2600 0 2600 69.1 0 0z\"\/>\n\t<path class=\"elementor-shape-fill\" style=\"opacity:0.5\" d=\"M0 0L2600 0 2600 69.1 0 69.1z\"\/>\n\t<path class=\"elementor-shape-fill\" style=\"opacity:0.25\" d=\"M2600 0L0 0 0 130.1 2600 69.1z\"\/>\n<\/svg>\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7cb44772 e-con-full e-flex e-con e-child\" data-id=\"7cb44772\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-44ecbcb1 e-con-full e-flex e-con e-child\" data-id=\"44ecbcb1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6f004ba2 e-con-full e-flex e-con e-child\" data-id=\"6f004ba2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37e1d22 elementor-widget elementor-widget-heading\" data-id=\"37e1d22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Chirurgie r\u00e9fractive<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7089f98b elementor-widget-divider--view-line_text elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider\" data-id=\"7089f98b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t\t<h2 class=\"elementor-divider__text elementor-divider__element\">\n\t\t\t\tUn r\u00e9seau de cliniques sp\u00e9cialis\u00e9es dans le traitement des d\u00e9fauts visuels au laser <br>\t\t\t\t<\/h2>\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39c0d9d elementor-align-center elementor-widget elementor-widget-button\" data-id=\"39c0d9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/pro.excel-vision.eu\/fr\/formulaire-contact?orig=EV\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Prendre rendez-vous<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7445d3 e-con-full e-flex e-con e-child\" data-id=\"7445d3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1d4be30b e-con-full e-flex e-con e-child\" data-id=\"1d4be30b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-771b47d6 elementor-view-stacked elementor-position-inline-start elementor-tablet-position-block-start elementor-widget__width-initial elementor-shape-circle elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"771b47d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-globe-europe\" viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tLeader Europ\u00e9en\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75cd0f18 elementor-view-stacked elementor-position-inline-start elementor-tablet-position-block-start elementor-shape-circle elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"75cd0f18\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-hospital\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t+9 CHU partenaires\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5d792631 elementor-view-stacked elementor-position-inline-start elementor-tablet-position-block-start elementor-widget-mobile__width-initial elementor-widget__width-initial elementor-shape-circle elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"5d792631\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-eye\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t+120 partenaires ophtalmologues\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e525eb3 elementor-view-stacked elementor-position-inline-start elementor-tablet-position-block-start elementor-widget-mobile__width-initial elementor-widget__width-initial elementor-shape-circle elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"1e525eb3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-check-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\t+ de 6000 proc\u00e9dures annuelles\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/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<div class=\"elementor-element elementor-element-7e132621 e-con-full e-flex e-con e-parent\" data-id=\"7e132621\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-011f4d5 elementor-widget elementor-widget-heading\" data-id=\"011f4d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Nos centres partenaires<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c057f5 elementor-widget elementor-widget-menu-anchor\" data-id=\"2c057f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"centre\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e56f1cf elementor-widget elementor-widget-html\" data-id=\"e56f1cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Michroma&display=swap\" rel=\"stylesheet\">\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\"\/>\n\n<section class=\"ev-map-section\">\n  <div class=\"ev-map-head\">\n    <div class=\"ev-map-eyebrow\">EXCEL VISION<\/div>\n    <h2>Nos centres partenaires<\/h2>\n    <p>S\u00e9lectionnez une r\u00e9gion pour d\u00e9couvrir les centres partenaires disponibles.<\/p>\n\n    <div class=\"ev-country-filters\" role=\"group\" aria-label=\"Filtrer les centres par pays\">\n      <button type=\"button\" class=\"ev-country-filter is-active\" data-country=\"ALL\">Tous<\/button>\n      <button type=\"button\" class=\"ev-country-filter\" data-country=\"FR\">France<\/button>\n      <button type=\"button\" class=\"ev-country-filter\" data-country=\"BE\">Belgique<\/button>\n      <button type=\"button\" class=\"ev-country-filter\" data-country=\"DE\">Allemagne<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"ev-map-shell\">\n    <div class=\"ev-map-wrap\" id=\"mapWrap\">\n      <div id=\"map\"><\/div>\n\n      <div class=\"ev-map-legend\" aria-hidden=\"true\">\n        <span class=\"ev-map-legend-dot\"><\/span>\n        <span>Centre partenaire<\/span>\n      <\/div>\n\n      <div class=\"region-focus-overlay\" id=\"focusOverlay\" aria-hidden=\"true\">\n        <div class=\"region-focus-meta\">\n          <span class=\"region-focus-kicker\">R\u00c9GION S\u00c9LECTIONN\u00c9E<\/span>\n          <strong id=\"focusRegionName\">R\u00e9gion<\/strong>\n          <span id=\"focusRegionCount\">0 centre partenaire<\/span>\n        <\/div>\n\n        <button type=\"button\" class=\"region-focus-close\" id=\"focusCloseBtn\" aria-label=\"Fermer la r\u00e9gion\">\n          <span aria-hidden=\"true\">\u00d7<\/span>\n        <\/button>\n\n        <svg class=\"region-focus-svg\" id=\"focusSvg\" preserveAspectRatio=\"xMidYMid meet\" aria-hidden=\"true\">\n          <path id=\"focusPath\" class=\"region-focus-shape\"><\/path>\n          <g id=\"focusCitiesGroup\"><\/g>\n        <\/svg>\n      <\/div>\n\n      <!-- TEST STRASBOURG : sous-carte des m\u00e9decins, visible uniquement au clic sur Strasbourg. -->\n      <div class=\"ev-doctors-overlay\" id=\"strasbourgDoctorsOverlay\" role=\"dialog\"\n           aria-modal=\"true\" aria-labelledby=\"evDoctorsTitle\" aria-hidden=\"true\">\n        <div class=\"ev-doctors-heading\">\n          <div class=\"ev-doctors-heading-copy\">\n            <span class=\"ev-doctors-eyebrow\">EXCEL VISION \u00b7 STRASBOURG<\/span>\n            <h3 id=\"evDoctorsTitle\">D\u00e9couvrez les chirurgiens<\/h3>\n            <p>D\u00e9couvrez les m\u00e9decins sur la carte ou dans la liste. Cliquez sur un profil pour acc\u00e9der \u00e0 sa page.<\/p>\n          <\/div>\n          <button type=\"button\" class=\"ev-doctors-back\" id=\"strasbourgBackBtn\" aria-label=\"Retour \u00e0 la r\u00e9gion\">\n            <span aria-hidden=\"true\">\u2190<\/span> <span>Retour \u00e0 la r\u00e9gion<\/span>\n          <\/button>\n        <\/div>\n\n        <div class=\"ev-doctors-content\">\n          <div class=\"ev-doctors-map-box\">\n            <div id=\"strasbourgDoctorMap\" aria-label=\"Carte des m\u00e9decins \u00e0 Strasbourg\"><\/div>\n            <div class=\"ev-doctors-map-loading\" id=\"evDoctorsMapLoading\" aria-live=\"polite\" hidden>Recherche des derni\u00e8res localisations\u2026<\/div>\n          <\/div>\n          <aside class=\"ev-doctors-sidebar\" aria-label=\"Liste des m\u00e9decins s\u00e9lectionn\u00e9s\">\n            <div class=\"ev-doctors-sidebar-heading\">\n              <strong>M\u00e9decins<\/strong>\n              <span id=\"evDoctorsCount\">0<\/span>\n            <\/div>\n            <label class=\"ev-doctors-search-label\" for=\"evDoctorSearch\">Rechercher un m\u00e9decin<\/label>\n            <input type=\"search\" class=\"ev-doctors-search\" id=\"evDoctorSearch\" placeholder=\"Nom ou pr\u00e9nom\u2026\" autocomplete=\"off\" \/>\n            <div class=\"ev-doctors-list\" id=\"strasbourgDoctorsList\"><\/div>\n          <\/aside>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  :root {\n    --ev-red: #d40000;\n    --ev-red-dark: #ad0000;\n    --ev-ink: #151515;\n    --ev-muted: #686868;\n    --ev-line: #d9dcdf;\n    --ev-surface: #ffffff;\n    --ev-bg: #f2f3f4;\n  }\n\n  .ev-map-section {\n    position: relative;\n    z-index: 20;\n    isolation: isolate;\n    overflow: hidden;\n    padding: 72px 28px 42px;\n    background:\n      radial-gradient(circle at 50% 37%, rgba(255,255,255,.98) 0%, rgba(248,249,250,.97) 42%, rgba(235,237,239,.98) 100%);\n    font-family: Arial, sans-serif;\n  }\n\n  .ev-map-section::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    pointer-events: none;\n    opacity: .45;\n    background-image:\n      linear-gradient(rgba(0,0,0,.018) 1px, transparent 1px),\n      linear-gradient(90deg, rgba(0,0,0,.018) 1px, transparent 1px);\n    background-size: 44px 44px;\n    mask-image: linear-gradient(to bottom, transparent 0, #000 18%, #000 78%, transparent 100%);\n  }\n\n  .ev-map-head {\n    position: relative;\n    z-index: 40;\n    width: min(1120px, 100%);\n    margin: 0 auto 18px;\n    text-align: center;\n  }\n\n  .ev-map-eyebrow {\n    margin-bottom: 10px;\n    color: var(--ev-red);\n    font-family: 'Michroma', sans-serif;\n    font-size: 10px;\n    letter-spacing: .28em;\n  }\n\n  .ev-map-head h2 {\n    margin: 0;\n    color: var(--ev-ink);\n    font-family: 'Michroma', sans-serif;\n    font-size: clamp(24px, 3vw, 42px);\n    font-weight: 400;\n    letter-spacing: -.02em;\n  }\n\n  .ev-map-head p {\n    max-width: 720px;\n    margin: 14px auto 0;\n    color: var(--ev-muted);\n    font-size: 15px;\n    line-height: 1.65;\n  }\n\n  .ev-country-filters {\n    display: inline-flex;\n    gap: 6px;\n    margin-top: 24px;\n    padding: 5px;\n    border: 1px solid rgba(0,0,0,.07);\n    border-radius: 999px;\n    background: rgba(255,255,255,.76);\n    box-shadow: 0 8px 30px rgba(0,0,0,.055);\n    backdrop-filter: blur(14px);\n    -webkit-backdrop-filter: blur(14px);\n  }\n\n  .ev-country-filter {\n    appearance: none;\n    border: 0;\n    border-radius: 999px;\n    padding: 9px 15px;\n    background: transparent;\n    color: #626262;\n    font: 600 12px\/1 Arial, sans-serif;\n    cursor: pointer;\n    transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;\n  }\n\n  .ev-country-filter:hover {\n    color: var(--ev-ink);\n    background: rgba(0,0,0,.04);\n  }\n\n  .ev-country-filter.is-active {\n    color: #fff;\n    background: var(--ev-red);\n    box-shadow: 0 5px 15px rgba(212,0,0,.2);\n  }\n\n  .ev-map-shell {\n    position: relative;\n    z-index: 30;\n    width: min(1280px, 100%);\n    margin: 0 auto;\n    border: 1px solid rgba(0,0,0,.055);\n    border-radius: 30px;\n    background: rgba(255,255,255,.34);\n    box-shadow:\n      0 28px 80px rgba(0,0,0,.075),\n      inset 0 1px 0 rgba(255,255,255,.9);\n    overflow: hidden;\n    backdrop-filter: blur(3px);\n    -webkit-backdrop-filter: blur(3px);\n  }\n\n  .ev-map-wrap {\n    position: relative;\n    width: 100%;\n    height: 780px;\n    isolation: isolate;\n    overflow: hidden;\n  }\n\n  #map,\n  .leaflet-container {\n    position: relative;\n    z-index: 10;\n    width: 100%;\n    height: 100%;\n    background: transparent !important;\n    outline: none;\n  }\n\n  \/* La carte principale n\u2019affiche pas de zoom, la sous-carte de Strasbourg oui. *\/\n  #map .leaflet-control-zoom { display: none !important; }\n  .ev-map-section #strasbourgDoctorMap .leaflet-control-zoom {\n    display: block !important;\n    visibility: visible !important;\n  }\n  .ev-map-section #strasbourgDoctorMap .leaflet-control-zoom a,\n  .ev-map-section #strasbourgDoctorMap .leaflet-control-zoom a:hover,\n  .ev-map-section #strasbourgDoctorMap .leaflet-control-zoom a:focus {\n    background: #fff !important;\n    color: #263646 !important;\n  }\n\n\n  \/* Rendu SVG plus stable sur Chrome\/Safari pendant les interactions. *\/\n  .leaflet-overlay-pane svg {\n    overflow: visible;\n    shape-rendering: geometricPrecision;\n  }\n\n  \/* IMPORTANT : on conserve les z-index natifs de Leaflet.\n     Les neutraliser peut faire passer marqueurs, SVG et tooltips\n     les uns devant les autres de mani\u00e8re instable au survol. *\/\n\n  .region-path {\n    vector-effect: non-scaling-stroke;\n    cursor: pointer;\n    transition:\n      opacity .18s ease,\n      fill .18s ease,\n      fill-opacity .18s ease,\n      stroke .18s ease;\n    will-change: fill, stroke, opacity;\n  }\n\n  \/* Pas de transform\/scale sur un path Leaflet :\n     le d\u00e9placement de la g\u00e9om\u00e9trie sous la souris provoquait\n     des mouseover\/mouseout successifs et donc du scintillement. *\/\n  .region-hover {\n    transform: none !important;\n    filter: none !important;\n  }\n\n  .region-dimmed {\n    opacity: .10 !important;\n    pointer-events: none !important;\n  }\n\n  .region-selected {\n    opacity: 0 !important;\n    pointer-events: none !important;\n  }\n\n  .country-outline-path {\n    vector-effect: non-scaling-stroke;\n    pointer-events: none;\n  }\n\n  .country-label-icon {\n    width: auto !important;\n    height: auto !important;\n    margin: 0 !important;\n    pointer-events: none !important;\n    background: none !important;\n    border: 0 !important;\n  }\n\n  .country-label {\n    color: rgba(20,20,20,.28);\n    font-family: 'Michroma', sans-serif;\n    font-size: 10px;\n    letter-spacing: .18em;\n    white-space: nowrap;\n    text-transform: uppercase;\n    text-shadow: 0 1px 0 rgba(255,255,255,.8);\n  }\n\n  .city-marker-shell {\n    position: relative;\n    width: 12px;\n    height: 12px;\n    display: grid;\n    place-items: center;\n  }\n\n  .city-square {\n    position: relative;\n    width: 8px;\n    height: 8px;\n    box-sizing: border-box;\n    border: 2px solid #fff;\n    border-radius: 50%;\n    background: var(--ev-red);\n    box-shadow:\n      0 0 0 1px rgba(212,0,0,.16),\n      0 3px 8px rgba(0,0,0,.18);\n    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;\n  }\n\n  .city-marker-shell::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    border: 1px solid rgba(212,0,0,.22);\n    border-radius: 50%;\n    opacity: 0;\n    transform: scale(.8);\n    transition: opacity .2s ease, transform .2s ease;\n  }\n\n  .leaflet-marker-icon:hover .city-square {\n    transform: scale(1.28);\n    background: var(--ev-red-dark);\n    box-shadow:\n      0 0 0 4px rgba(212,0,0,.08),\n      0 5px 12px rgba(0,0,0,.19);\n  }\n\n  .leaflet-marker-icon:hover .city-marker-shell::after {\n    opacity: 1;\n    transform: scale(1.65);\n  }\n\n  .city-tooltip {\n    margin-top: -1px !important;\n    padding: 8px 11px 8px 13px;\n    border: 1px solid rgba(0,0,0,.06);\n    border-radius: 11px;\n    background: rgba(255,255,255,.96);\n    color: #171717;\n    box-shadow: 0 10px 28px rgba(0,0,0,.11), 0 2px 6px rgba(0,0,0,.05);\n    font-family: Arial, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    white-space: nowrap;\n    backdrop-filter: blur(12px);\n    -webkit-backdrop-filter: blur(12px);\n  }\n\n  .city-tooltip::before { display: none; }\n\n  .city-tooltip::after {\n    content: \"\";\n    position: absolute;\n    top: 8px;\n    bottom: 8px;\n    left: 5px;\n    width: 2px;\n    border-radius: 999px;\n    background: var(--ev-red);\n  }\n\n  .ev-map-legend {\n    position: absolute;\n    left: 22px;\n    bottom: 20px;\n    z-index: 400;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 9px 12px;\n    border: 1px solid rgba(0,0,0,.055);\n    border-radius: 999px;\n    background: rgba(255,255,255,.84);\n    color: #5d5d5d;\n    box-shadow: 0 8px 24px rgba(0,0,0,.07);\n    font: 600 11px\/1 Arial, sans-serif;\n    backdrop-filter: blur(12px);\n    -webkit-backdrop-filter: blur(12px);\n    pointer-events: none;\n  }\n\n  .ev-map-legend-dot {\n    width: 8px;\n    height: 8px;\n    border: 2px solid #fff;\n    border-radius: 50%;\n    background: var(--ev-red);\n    box-shadow: 0 0 0 1px rgba(212,0,0,.18);\n  }\n\n  .region-focus-overlay {\n    position: absolute;\n    inset: 0;\n    z-index: 2000;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n    pointer-events: none;\n    touch-action: none;\n    background:\n      radial-gradient(circle at 50% 48%, rgba(255,255,255,.50), rgba(248,249,250,.06) 58%, rgba(236,238,240,.20));\n  }\n\n  .region-focus-overlay.active {\n    display: flex;\n    pointer-events: auto;\n    animation: focusBackdropIn .28s ease both;\n  }\n\n  .region-focus-meta {\n    position: absolute;\n    top: 26px;\n    left: 28px;\n    z-index: 2150;\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    max-width: min(340px, calc(100% - 120px));\n    padding: 14px 16px;\n    border: 1px solid rgba(0,0,0,.055);\n    border-radius: 16px;\n    background: rgba(255,255,255,.84);\n    box-shadow: 0 10px 30px rgba(0,0,0,.075);\n    backdrop-filter: blur(16px);\n    -webkit-backdrop-filter: blur(16px);\n  }\n\n  .region-focus-kicker {\n    margin-bottom: 6px;\n    color: var(--ev-red);\n    font-family: 'Michroma', sans-serif;\n    font-size: 8px;\n    letter-spacing: .14em;\n  }\n\n  .region-focus-meta strong {\n    color: #171717;\n    font-family: 'Michroma', sans-serif;\n    font-size: clamp(15px, 2vw, 21px);\n    font-weight: 400;\n    line-height: 1.3;\n  }\n\n  .region-focus-meta > span:last-child {\n    margin-top: 6px;\n    color: #737373;\n    font-size: 12px;\n    font-weight: 600;\n  }\n\n  .region-focus-close {\n    position: absolute;\n    top: 26px;\n    right: 28px;\n    z-index: 2200;\n    display: grid;\n    place-items: center;\n    width: 42px;\n    height: 42px;\n    padding: 0;\n    border: 1px solid rgba(0,0,0,.07);\n    border-radius: 50%;\n    background: rgba(255,255,255,.90);\n    color: #232323;\n    box-shadow: 0 8px 24px rgba(0,0,0,.10);\n    font: 300 28px\/1 Arial, sans-serif;\n    cursor: pointer;\n    backdrop-filter: blur(12px);\n    -webkit-backdrop-filter: blur(12px);\n    transition: transform .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease;\n  }\n\n  .region-focus-close:hover {\n    transform: scale(1.07);\n    color: var(--ev-red);\n    background: #fff;\n    box-shadow: 0 10px 28px rgba(0,0,0,.13);\n  }\n\n  .region-focus-svg {\n    width: 100%;\n    height: 100%;\n    overflow: visible;\n    pointer-events: none;\n  }\n\n  .region-focus-shape {\n    fill: rgba(255,255,255,.98);\n    stroke: var(--ev-red);\n    stroke-width: 1.45;\n    vector-effect: non-scaling-stroke;\n    filter:\n      drop-shadow(0 24px 38px rgba(0,0,0,.10))\n      drop-shadow(0 6px 12px rgba(0,0,0,.07));\n    transform-origin: center;\n    animation: regionReveal .42s cubic-bezier(.22,1,.36,1) forwards;\n    pointer-events: none;\n  }\n\n  .focus-city-link {\n    pointer-events: auto;\n    cursor: pointer;\n  }\n\n  .focus-city-halo {\n    fill: rgba(212,0,0,.09);\n    opacity: 0;\n    transform-box: fill-box;\n    transform-origin: center;\n    transition: opacity .18s ease, transform .18s ease;\n  }\n\n  .focus-city-dot {\n    fill: var(--ev-red);\n    stroke: #fff;\n    stroke-width: 2.2;\n    vector-effect: non-scaling-stroke;\n    filter: drop-shadow(0 3px 5px rgba(0,0,0,.20));\n    animation: cityPop .26s ease both;\n    transition: r .18s ease, fill .18s ease;\n  }\n\n  .focus-city-label-bg {\n    fill: rgba(255,255,255,.94);\n    stroke: rgba(0,0,0,.055);\n    stroke-width: 1;\n    opacity: 0;\n    filter: drop-shadow(0 6px 14px rgba(0,0,0,.09));\n    transition: opacity .16s ease;\n  }\n\n  .focus-city-label {\n    fill: #111;\n    font-family: Arial, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    opacity: 0;\n    pointer-events: none;\n    transition: opacity .16s ease;\n  }\n\n  .focus-city-link:hover .focus-city-halo,\n  .focus-city-link:focus .focus-city-halo { opacity: 1; transform: scale(1.16); }\n\n  .focus-city-link:hover .focus-city-label,\n  .focus-city-link:focus .focus-city-label,\n  .focus-city-link:hover .focus-city-label-bg,\n  .focus-city-link:focus .focus-city-label-bg { opacity: 1; }\n\n  @keyframes focusBackdropIn {\n    from { opacity: 0; }\n    to { opacity: 1; }\n  }\n\n  @keyframes regionReveal {\n    0% { opacity: 0; transform: scale(.92); }\n    100% { opacity: 1; transform: scale(1); }\n  }\n\n  @keyframes cityPop {\n    from { opacity: 0; transform: scale(.55); }\n    to { opacity: 1; transform: scale(1); }\n  }\n\n  \/* ---------- Strasbourg : carte locale des m\u00e9decins ---------- *\/\n  .ev-doctors-overlay {\n    position: absolute;\n    inset: 0;\n    z-index: 3000;\n    display: none;\n    flex-direction: column;\n    padding: 25px 28px 13px;\n    box-sizing: border-box;\n    background: linear-gradient(135deg, #fbfcfd 0%, #eef0f2 100%);\n    color: #171717;\n    font-family: Arial, sans-serif;\n  }\n\n  .ev-doctors-overlay.is-open { display: flex; animation: focusBackdropIn .24s ease both; }\n  .ev-doctors-heading {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 20px;\n    flex: 0 0 auto;\n    margin-bottom: 20px;\n  }\n  .ev-doctors-eyebrow {\n    color: var(--ev-red);\n    font: 10px\/1.5 'Michroma', sans-serif;\n    letter-spacing: .13em;\n  }\n  .ev-doctors-heading h3 {\n    margin: 9px 0 6px;\n    font: 400 clamp(20px, 2.1vw, 30px)\/1.25 'Michroma', sans-serif;\n    color: #151515;\n  }\n  .ev-doctors-heading p { margin: 0; color: #626971; font-size: 13px; line-height: 1.55; }\n  .ev-doctors-back {\n    display: flex;\n    align-items: center;\n    gap: 9px;\n    flex: 0 0 auto;\n    padding: 11px 16px;\n    border: 1px solid #dee2e5;\n    border-radius: 999px;\n    background: #fff;\n    color: #262a2e;\n    font: 700 12px\/1 Arial, sans-serif;\n    cursor: pointer;\n    box-shadow: 0 4px 16px rgba(0,0,0,.045);\n    transition: border-color .18s, background .18s, color .18s;\n  }\n  .ev-doctors-back:hover { border-color: var(--ev-red); color: var(--ev-red); }\n  .ev-doctors-back span:first-child { font-size: 19px; font-weight: 400; }\n  .ev-doctors-content {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) 310px;\n    gap: 16px;\n    flex: 1 1 auto;\n    min-height: 0;\n  }\n  .ev-doctors-map-box {\n    position: relative;\n    min-width: 0;\n    min-height: 0;\n    border: 1px solid #dce2e7;\n    border-radius: 20px;\n    overflow: hidden;\n    background: #e9eff3;\n    box-shadow: 0 12px 35px rgba(17, 31, 45, .05);\n  }\n  #strasbourgDoctorMap {\n    width: 100%;\n    height: 100%;\n    background: #e9eff3 !important;\n  }\n  \/* La carte imbriqu\u00e9e ne doit pas h\u00e9riter des contr\u00f4les de l'autre carte. *\/\n  #strasbourgDoctorMap.leaflet-container { position: relative; z-index: 1; }\n  #strasbourgDoctorMap .leaflet-control-attribution { font-size: 9px; }\n  .ev-doctors-sidebar {\n    display: flex;\n    flex-direction: column;\n    min-height: 0;\n    border: 1px solid #e2e6e9;\n    border-radius: 20px;\n    background: #fff;\n    overflow: hidden;\n    box-shadow: 0 12px 35px rgba(17, 31, 45, .045);\n  }\n  .ev-doctors-sidebar-heading {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 19px 17px 14px;\n    border-bottom: 1px solid #edf0f1;\n  }\n  .ev-doctors-sidebar-heading strong { font: 700 14px\/1 Arial, sans-serif; }\n  .ev-doctors-sidebar-heading span {\n    display: grid;\n    place-items: center;\n    min-width: 26px;\n    height: 26px;\n    padding: 0 3px;\n    border-radius: 99px;\n    background: #ebf4ff;\n    color: #086db9;\n    font: 700 12px\/1 Arial, sans-serif;\n  }\n  .ev-doctors-list { min-height: 0; overflow-y: auto; padding: 8px; }\n  .ev-doctor-row {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    width: 100%;\n    margin-bottom: 4px;\n    padding: 12px 11px;\n    box-sizing: border-box;\n    border: 1px solid transparent;\n    border-radius: 12px;\n    background: transparent;\n    text-align: left;\n    cursor: pointer;\n    transition: background .18s, border-color .18s;\n  }\n  .ev-doctor-row:hover,\n  .ev-doctor-row.is-selected { background: #edf6ff; border-color: #d4e8fb; }\n  .ev-doctor-row .ev-doctor-mini-dot {\n    flex: 0 0 12px;\n    width: 12px;\n    height: 12px;\n    box-sizing: border-box;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #087dcf;\n    box-shadow: 0 0 0 1px #087dcf;\n  }\n  .ev-doctor-row-name { flex: 1; min-width: 0; color: #26313b; font: 700 12px\/1.45 Arial, sans-serif; }\n  .ev-doctor-row-arrow { color: #087dcf; font: 700 19px\/1 Arial, sans-serif; }\n  .ev-doctor-marker { background: transparent !important; border: none !important; }\n  .ev-doctor-pin {\n    position: relative;\n    display: grid;\n    place-items: center;\n    width: 26px;\n    height: 26px;\n    border-radius: 50%;\n    background: rgba(10, 117, 203, .16);\n    box-shadow: 0 0 0 6px rgba(10,117,203,.065);\n    animation: evDoctorAppear .36s both;\n  }\n  .ev-doctor-pin::after {\n    content: '';\n    display: block;\n    width: 15px;\n    height: 15px;\n    box-sizing: border-box;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #087dcf;\n    box-shadow: 0 2px 7px rgba(3,66,114,.30);\n    transition: transform .18s, background .18s;\n  }\n  .ev-doctor-marker:hover .ev-doctor-pin::after,\n  .ev-doctor-marker.ev-doctor-active .ev-doctor-pin::after { transform: scale(1.23); background: #005fba; }\n  .ev-doctor-popup.leaflet-popup { margin-bottom: 14px; }\n  .ev-doctor-popup .leaflet-popup-content-wrapper {\n    border: 1px solid #e4e9ed;\n    border-radius: 16px;\n    padding: 0;\n    box-shadow: 0 12px 40px rgba(22,45,65,.18);\n  }\n  .ev-doctor-popup .leaflet-popup-content { margin: 0; width: auto !important; }\n  .ev-doctor-popup-inner { min-width: 215px; padding: 16px; font-family: Arial, sans-serif; }\n  .ev-doctor-popup-eyebrow { display: block; margin-bottom: 6px; color: #74808a; font: 700 9px\/1.4 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }\n  .ev-doctor-popup-name { display: block; margin-bottom: 13px; color: #20272f; font: 700 15px\/1.35 Arial, sans-serif; }\n  .ev-doctor-popup-link {\n    display: inline-flex;\n    justify-content: center;\n    align-items: center;\n    gap: 8px;\n    width: 100%;\n    box-sizing: border-box;\n    padding: 11px 13px;\n    border-radius: 9px;\n    background: #d40000;\n    color: #fff !important;\n    font: 700 12px\/1 Arial, sans-serif;\n    text-align: center;\n    text-decoration: none !important;\n    transition: background .18s;\n  }\n  .ev-doctor-popup-link:hover { background: #a90000; }\n  .ev-doctor-popup-link.is-placeholder { cursor: not-allowed; opacity: .56; }\n  .ev-doctors-disclaimer { flex: 0 0 auto; margin: 10px 1px 0; color: #7a838b; font-size: 11px; line-height: 1.4; }\n  @keyframes evDoctorAppear {\n    0% { opacity: 0; transform: scale(.5); }\n    100% { opacity: 1; transform: scale(1); }\n  }\n\n\n  \/* Liste enrichie : recherche, adresses et m\u00e9decins sans point v\u00e9rifi\u00e9. *\/\n  .ev-doctors-search-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }\n  .ev-doctors-search { box-sizing: border-box; width: calc(100% - 26px); margin: 12px 13px 6px; padding: 11px 13px; border-radius: 10px; border: 1px solid #dce3e8; font: 12px Arial, sans-serif; color: #171717; outline: none; background: #fbfcfe; }\n  .ev-doctors-search:focus { border-color: #087dcf; box-shadow: 0 0 0 3px rgba(8,125,207,.10); }\n  .ev-doctor-row-copy { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }\n  .ev-doctor-row-copy .ev-doctor-row-name { flex: none; }\n  .ev-doctor-row-address { color: #7b8790; font: 11px\/1.4 Arial, sans-serif; }\n  .ev-doctor-row.is-unlocated .ev-doctor-mini-dot { background: #a4aab2; box-shadow: 0 0 0 1px #a4aab2; }\n  .ev-doctor-row.is-unlocated .ev-doctor-row-arrow { color: #9aa1a8; }\n  .ev-doctors-map-loading { position: absolute; bottom: 13px; left: 13px; z-index: 620; padding: 9px 11px; border-radius: 9px; background: #fff; color: #354455; box-shadow: 0 3px 20px rgba(0,0,0,.09); font: 600 11px\/1.3 Arial,sans-serif; }\n  .ev-doctors-map-loading[hidden] { display: none !important; }\n  .ev-doctor-popup-address { display: block; margin: -3px 0 13px; color: #697681; font: 12px\/1.5 Arial,sans-serif; }\n  .ev-doctor-popup-warning { display: block; color: #7e8993; font: 11px\/1.45 Arial,sans-serif; }\n  .ev-doctors-disclaimer { max-width: 1060px; }\n  @media (max-width: 768px) { .ev-doctors-search { padding: 8px 10px; margin: 8px 10px 4px; } .ev-doctor-row-address { font-size: 10px; } }\n\n  @media (max-width: 768px) {\n    \/* Le composant reste dans un stacking context bas sur mobile.\n       Les widgets fixed externes (cookies, bouton flottant, chat...)\n       peuvent ainsi rester au-dessus et recevoir leurs clics. *\/\n    .ev-map-section {\n      padding: 46px 12px 24px;\n      z-index: 1;\n    }\n    .ev-map-head { margin-bottom: 14px; }\n    .ev-map-head p { font-size: 14px; padding: 0 8px; }\n\n    .ev-country-filters {\n      width: min(100%, 420px);\n      overflow-x: auto;\n      justify-content: flex-start;\n      scrollbar-width: none;\n    }\n    .ev-country-filters::-webkit-scrollbar { display: none; }\n    .ev-country-filter { flex: 0 0 auto; padding: 9px 13px; }\n\n    .ev-map-shell { border-radius: 22px; }\n    .ev-map-wrap { height: 68vh; min-height: 520px; max-height: 720px; }\n\n    \/* Les gestes tactiles sont captur\u00e9s UNIQUEMENT par la carte.\n       Les boutons cookies \/ flottants situ\u00e9s au-dessus ou autour\n       restent donc totalement ind\u00e9pendants et cliquables. *\/\n    #map,\n    #map.leaflet-container {\n      touch-action: none !important;\n      user-select: none;\n      -webkit-user-select: none;\n      -webkit-tap-highlight-color: transparent;\n    }\n\n    .region-path { stroke-width: 1 !important; pointer-events: auto !important; }\n    .region-hover { transform: none; filter: none; }\n\n    .city-marker-shell { width: 16px; height: 16px; }\n    .city-square { width: 11px; height: 11px; }\n    .country-label { font-size: 8px; }\n\n    .ev-map-legend { left: 12px; bottom: 12px; padding: 8px 10px; }\n\n    .region-focus-meta {\n      top: 14px;\n      left: 14px;\n      max-width: calc(100% - 82px);\n      padding: 11px 12px;\n      border-radius: 13px;\n    }\n\n    .region-focus-kicker { font-size: 7px; }\n    .region-focus-meta strong { font-size: 14px; }\n    .region-focus-meta > span:last-child { font-size: 11px; }\n\n    .region-focus-close {\n      top: 14px;\n      right: 14px;\n      width: 42px;\n      height: 42px;\n      font-size: 30px;\n    }\n\n    .region-focus-shape { stroke-width: 1.2; }\n    .focus-city-label { font-size: 13px; }\n\n    .ev-doctors-overlay { padding: 15px 12px 10px; }\n    .ev-doctors-heading { align-items: flex-start; margin-bottom: 11px; gap: 9px; }\n    .ev-doctors-eyebrow { font-size: 8px; }\n    .ev-doctors-heading h3 { font-size: 16px; margin: 6px 0; }\n    .ev-doctors-heading p { font-size: 11px; line-height: 1.4; }\n    .ev-doctors-back { padding: 9px 10px; }\n    .ev-doctors-back span:last-child { display: none; }\n    .ev-doctors-back span:first-child { font-size: 21px; }\n    .ev-doctors-content { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(210px, 56%) minmax(0, 1fr); gap: 9px; }\n    .ev-doctors-map-box, .ev-doctors-sidebar { border-radius: 14px; }\n    .ev-doctors-sidebar-heading { padding: 11px 12px 7px; }\n    .ev-doctors-list { padding: 5px; }\n    .ev-doctor-row { padding: 9px; }\n    .ev-doctors-disclaimer { margin-top: 6px; font-size: 9px; }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .region-path,\n    .city-square,\n    .city-marker-shell::after,\n    .region-focus-close,\n    .region-focus-shape,\n    .focus-city-dot,\n    .focus-city-halo,\n    .focus-city-label,\n    .focus-city-label-bg,\n    .ev-doctor-pin,\n    .ev-doctor-pin::after {\n      animation: none !important;\n      transition: none !important;\n    }\n    .country-label {\n  display: none !important;\n}\n  }\n\n  \/* ================================================================\n     STRASBOURG V2 : portraits et neutralisation du rose du th\u00e8me WP\n     ================================================================ *\/\n  .ev-map-section .ev-doctor-portrait {\n    position: relative;\n    display: grid;\n    flex: 0 0 auto;\n    place-items: center;\n    overflow: hidden;\n    border: 1px solid #dce6ed;\n    border-radius: 12px;\n    background: linear-gradient(140deg, #edf4f8, #e4ebef);\n    color: #8ba4b5;\n  }\n  .ev-map-section .ev-doctor-portrait--list { width: 44px; height: 44px; }\n  .ev-map-section .ev-doctor-portrait--popup { width: 66px; height: 72px; border-radius: 13px; }\n  .ev-map-section .ev-doctor-portrait svg { width: 26px; height: 26px; }\n  .ev-map-section .ev-doctor-portrait--popup svg { width: 34px; height: 34px; }\n  .ev-map-section .ev-doctor-portrait img {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    display: block;\n    object-fit: cover;\n    object-position: center 20%;\n    background: #edf4f8;\n  }\n  .ev-map-section .ev-doctor-row-photo-box { position: relative; flex: 0 0 44px; width: 44px; height: 44px; }\n  .ev-map-section .ev-doctor-row-photo-box .ev-doctor-mini-dot {\n    position: absolute;\n    bottom: -3px;\n    right: -3px;\n    width: 12px;\n    height: 12px;\n    flex: none;\n    z-index: 2;\n  }\n  .ev-map-section .ev-doctor-row.is-unlocated .ev-doctor-mini-dot {\n    background: #a4aab2 !important;\n    box-shadow: 0 0 0 1px #a4aab2 !important;\n  }\n  .ev-map-section .ev-doctor-popup-intro {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin-bottom: 13px;\n  }\n  .ev-map-section .ev-doctor-popup-details { flex: 1; min-width: 0; }\n  .ev-map-section .ev-doctor-popup-name { display: block; margin-bottom: 5px; }\n  .ev-map-section .ev-doctor-popup-address { margin: 0; }\n  .ev-map-section .ev-doctor-popup-inner { min-width: 248px; box-sizing: border-box; }\n\n  \/* Les th\u00e8mes Elementor\/WordPress peuvent appliquer un rose au survol\n     de tous les <button> et <a>, ou \u00e0 leur \u00e9tat :focus\/:active. *\/\n  .ev-map-section .ev-doctor-row,\n  .ev-map-section .ev-doctor-row:link,\n  .ev-map-section .ev-doctor-row:visited {\n    text-decoration: none !important;\n    background: #ffffff !important;\n    color: #26313b !important;\n    border-color: transparent !important;\n    box-shadow: none !important;\n    outline-color: transparent;\n    -webkit-tap-highlight-color: transparent;\n  }\n  .ev-map-section .ev-doctor-row:hover,\n  .ev-map-section .ev-doctor-row:focus,\n  .ev-map-section .ev-doctor-row:active,\n  .ev-map-section .ev-doctor-row.is-selected {\n    background: #edf6ff !important;\n    background-color: #edf6ff !important;\n    border-color: #d4e8fb !important;\n    color: #26313b !important;\n    box-shadow: none !important;\n    text-decoration: none !important;\n  }\n  .ev-map-section .ev-doctor-row:focus-visible {\n    outline: 2px solid #087dcf !important;\n    outline-offset: -2px;\n  }\n  .ev-map-section .ev-doctor-row .ev-doctor-row-name,\n  .ev-map-section .ev-doctor-row:hover .ev-doctor-row-name,\n  .ev-map-section .ev-doctor-row:focus .ev-doctor-row-name,\n  .ev-map-section .ev-doctor-row.is-selected .ev-doctor-row-name {\n    color: #26313b !important;\n  }\n  .ev-map-section .ev-doctor-row .ev-doctor-row-address,\n  .ev-map-section .ev-doctor-row:hover .ev-doctor-row-address,\n  .ev-map-section .ev-doctor-row:focus .ev-doctor-row-address {\n    color: #7b8790 !important;\n  }\n  .ev-map-section .ev-doctor-row .ev-doctor-row-arrow,\n  .ev-map-section .ev-doctor-row:hover .ev-doctor-row-arrow,\n  .ev-map-section .ev-doctor-row:focus .ev-doctor-row-arrow { color: #087dcf !important; }\n  .ev-map-section .ev-doctor-popup-link,\n  .ev-map-section .ev-doctor-popup-link:link,\n  .ev-map-section .ev-doctor-popup-link:visited,\n  .ev-map-section .ev-doctor-popup-link:focus,\n  .ev-map-section .ev-doctor-popup-link:active {\n    background: #d40000 !important;\n    border: 0 !important;\n    color: #ffffff !important;\n    text-decoration: none !important;\n    box-shadow: none !important;\n  }\n  .ev-map-section .ev-doctor-popup-link:hover { background: #ad0000 !important; color: #fff !important; }\n  .ev-map-section .ev-doctors-back,\n  .ev-map-section .ev-doctors-back:hover,\n  .ev-map-section .ev-doctors-back:focus,\n  .ev-map-section .ev-doctors-back:active {\n    background: #fff !important;\n    background-color: #fff !important;\n    color: #262a2e !important;\n    box-shadow: 0 4px 16px rgba(0,0,0,.045) !important;\n  }\n  .ev-map-section .ev-doctors-back:hover { color: #d40000 !important; border-color: #d40000 !important; }\n  .ev-map-section .ev-doctors-search,\n  .ev-map-section .ev-doctors-search:hover,\n  .ev-map-section .ev-doctors-search:focus { background: #fbfcfe !important; color: #171717 !important; }\n  .ev-map-section .ev-country-filter:hover,\n  .ev-map-section .ev-country-filter:focus {\n    background: rgba(0,0,0,.04) !important;\n    color: #151515 !important;\n  }\n  .ev-map-section .ev-country-filter.is-active,\n  .ev-map-section .ev-country-filter.is-active:hover,\n  .ev-map-section .ev-country-filter.is-active:focus,\n  .ev-map-section .ev-country-filter.is-active:active {\n    background: #d40000 !important;\n    color: #fff !important;\n  }\n  .ev-map-section .region-focus-close:hover,\n  .ev-map-section .region-focus-close:focus { background: #fff !important; color: #d40000 !important; }\n  @media (max-width: 768px) {\n    .ev-map-section .ev-doctor-portrait--list { width: 40px; height: 40px; }\n    .ev-map-section .ev-doctor-row-photo-box { width: 40px; height: 40px; flex-basis: 40px; }\n    .ev-map-section .ev-doctor-popup-inner { min-width: 206px; }\n    .ev-map-section .ev-doctor-portrait--popup { width: 56px; height: 62px; }\n  }\n\n<\/style>\n\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const isMobile = window.matchMedia(\"(max-width: 768px)\").matches;\n\n  const CONFIG = {\n    regionsUrl: \"https:\/\/gisco-services.ec.europa.eu\/distribution\/v2\/nuts\/geojson\/NUTS_RG_10M_2024_4326_LEVL_2.geojson\",\n    countriesUrl: \"https:\/\/gisco-services.ec.europa.eu\/distribution\/v2\/nuts\/geojson\/NUTS_RG_10M_2024_4326_LEVL_0.geojson\",\n    countries: [\"FR\", \"BE\", \"DE\"],\n    countryNames: { FR: \"France\", BE: \"Belgique\", DE: \"Allemagne\" },\n    svgNs: \"http:\/\/www.w3.org\/2000\/svg\",\n    xlinkNs: \"http:\/\/www.w3.org\/1999\/xlink\"\n  };\n\nconst partnerCities = [\n    { name: \"Aix-en-Provence\", country: \"FR\", lat: 43.5297, lng: 5.4474, url: \"\/centre-aix-en-provence\/\" },\n    { name: \"Amiens\", country: \"FR\", lat: 49.8941, lng: 2.2958, url: \"\/centre-amiens\/\" },\n    { name: \"Aubergenville\", country: \"FR\", lat: 48.9590, lng: 1.8540, url: \"\/centre-aubergenville\/\" },\n    { name: \"Aulnay-sous-Bois\", country: \"FR\", lat: 48.9381, lng: 2.4940, url: \"\/centre-aulnay-sous-bois\/\" },\n    { name: \"Arras\", country: \"FR\", lat: 50.2910, lng: 2.7775, url: \"\/centre-arras-2\/\" },\n    { name: \"Auxerre\", country: \"FR\", lat: 47.7982, lng: 3.5738, url: \"\/centre-auxerre\/\" },\n    { name: \"Beauvais\", country: \"FR\", lat: 49.4295, lng: 2.0807, url: \"\/centre-beauvais\/\" },\n    { name: \"Belfort\", country: \"FR\", lat: 47.6397, lng: 6.8638, url: \"\/centre-belfort\/\" },\n    { name: \"Blois\", country: \"FR\", lat: 47.5861, lng: 1.3359, url: \"\/centre-blois\/\" },\n    { name: \"Bourges\", country: \"FR\", lat: 47.0810, lng: 2.3988, url: \"\/centre-bourges\/\" },\n    { name: \"Caen\", country: \"FR\", lat: 49.1829, lng: -0.3707, url: \"\/centre-caen\/\" },\n    { name: \"Carcassonne\", country: \"FR\", lat: 43.2130, lng: 2.3491, url: \"\/centre-carcassonne\/\" },\n    { name: \"Deauville\", country: \"FR\", lat: 49.3599, lng: 0.0745, url: \"\/centre-deauville\/\" },\n    { name: \"Dijon\", country: \"FR\", lat: 47.3220, lng: 5.0415, url: \"\/centre-dijon\/\" },\n    { name: \"Le Havre\", country: \"FR\", lat: 49.4944, lng: 0.1079, url: \"\/centre-le-havre\/\" },\n    { name: \"Le Mans\", country: \"FR\", lat: 48.0061, lng: 0.1996, url: \"\/centre-le-mans\/\" },\n    { name: \"L'Union\", country: \"FR\", lat: 43.6560, lng: 1.4829, url: \"\/centre-lunion\/\" },\n    { name: \"Lyon\", country: \"FR\", lat: 45.7640, lng: 4.8357, url: \"\/centre-lyon\/\" },\n    { name: \"Metz\", country: \"FR\", lat: 49.1193, lng: 6.1757, url: \"\/centre-metz\/\" },\n    { name: \"Mende\", country: \"FR\", lat: 44.5180, lng: 3.5000, url: \"\/centre-mende\/\" },\n    { name: \"Montb\u00e9liard\", country: \"FR\", lat: 47.5106, lng: 6.7985, url: \"\/centre-montbeliard\/\" },\n    { name: \"Montpellier\", country: \"FR\", lat: 43.6108, lng: 3.8767, url: \"\/centre-montpellier\/\" },\n    { name: \"Mulhouse\", country: \"FR\", lat: 47.7508, lng: 7.3359, url: \"\/centre-mulhouse\/\" },\n    { name: \"Nancy\", country: \"FR\", lat: 48.6921, lng: 6.1844, url: \"\/centre-nancy\/\" },\n    { name: \"Pau\", country: \"FR\", lat: 43.2951, lng: -0.3708, url: \"\/centre-pau\/\" },\n    { name: \"Poitiers\", country: \"FR\", lat: 46.5802, lng: 0.3404, url: \"\/centre-poitiers\/\" },\n    { name: \"Rodez\", country: \"FR\", lat: 44.3517, lng: 2.5750, url: \"\/centre-rodez\/\" },\n    { name: \"Royan\", country: \"FR\", lat: 45.6230, lng: -1.0432, url: \"\/centre-royan-2\/\" },\n    { name: \"Rouen\", country: \"FR\", lat: 49.4431, lng: 1.0993, url: \"\/centre-rouen\/\" },\n    { name: \"Rouffach\", country: \"FR\", lat: 47.9585, lng: 7.3003, url: \"\/centre-rouffach\/\" },\n    { name: \"Terville\", country: \"FR\", lat: 49.3469, lng: 6.1337, url: \"\/centre-terville\/\" },\n    { name: \"Toulouse\", country: \"FR\", lat: 43.6047, lng: 1.4442, url: \"\/centre-toulouse\/\" },\n    { name: \"Trouville-la-Rivi\u00e8re\", country: \"FR\", lat: 49.3000, lng: 1.0500, url: \"\/centre-tourville\/\" },\n    { name: \"Versailles\", country: \"FR\", lat: 48.8049, lng: 2.1204, url: \"\/centre-versailles\/\" },\n    { name: \"Vienne\", country: \"FR\", lat: 45.5257, lng: 4.8746, url: \"\/centre-vienne\/\" },\n    { name: \"Villerupt\", country: \"FR\", lat: 49.4674, lng: 5.9290, url: \"\/centre-villerupt\/\" },\n    { name: \"Strasbourg\", country: \"FR\", lat: 48.5734, lng: 7.7521, url: \"\/centre-strasbourg\/\" },\n\n    { name: \"Bastogne\", country: \"BE\", lat: 50.0004, lng: 5.7185, url: \"\/centre-bastogne\/\" },\n    { name: \"Bonheiden\", country: \"BE\", lat: 51.0227, lng: 4.5477, url: \"\/centre-bonheiden-2\/\" },\n    { name: \"Bruxelles\", country: \"BE\", lat: 50.8503, lng: 4.3517, url: \"\/centre-bruxelles\/\" },\n    { name: \"Charleroi\", country: \"BE\", lat: 50.4108, lng: 4.4446, url: \"\/centre-charleroi\/\" },\n    { name: \"Courtrai\", country: \"BE\", lat: 50.8266, lng: 3.2647, url: \"\/centre-courtai\/\" },\n    { name: \"Ottignies\", country: \"BE\", lat: 50.6654, lng: 4.5668, url: \"\/centre-ottignies\/\" },\n    { name: \"Wavre\", country: \"BE\", lat: 50.7172, lng: 4.6110, url: \"\/centre-wavre\/\" },\n\n    { name: \"Aachen\", country: \"DE\", lat: 50.7753, lng: 6.0839, url: \"\/centre-aachen\/\" },\n    { name: \"Augsburg\", country: \"DE\", lat: 48.3705, lng: 10.8978, url: \"\/centre-augsburg\/\" },\n    { name: \"Baden-Baden\", country: \"DE\", lat: 48.7606, lng: 8.2398, url: \"\/centre-baden-baden\/\" },\n    { name: \"Bocholt\", country: \"DE\", lat: 51.8388, lng: 6.6153, url: \"\/centre-bocholt\/\" },\n    { name: \"Bochum\", country: \"DE\", lat: 51.4818, lng: 7.2162, url: \"\/centre-bochum\/\" },\n    { name: \"Karlsruhe\", country: \"DE\", lat: 49.0069, lng: 8.4037, url: \"\/centre-karlsruhe\/\" },\n    { name: \"Langen\", country: \"DE\", lat: 49.9929, lng: 8.6620, url: \"\/centre-langen\/\" },\n    { name: \"Minden\", country: \"DE\", lat: 52.2895, lng: 8.9146, url: \"\/centre-minden\/\" },\n    { name: \"M\u00fcnchen\", country: \"DE\", lat: 48.1374, lng: 11.5755, url: \"\/zentrum-muenchen\/\" },\n    { name: \"M\u00fcnster\", country: \"DE\", lat: 51.9607, lng: 7.6261, url: \"\/centre-munster\/\" },\n    { name: \"Rosenheim\", country: \"DE\", lat: 47.8564, lng: 12.1280, url: \"\/centre-rosenheim\/\" },\n    { name: \"Ulm\", country: \"DE\", lat: 48.4011, lng: 9.9876, url: \"\/centre-ulm-2\/\" },\n    { name: \"Sindelfingen\", country: \"DE\", lat: 48.7075, lng: 9.0048, url: \"\/centre-sindelfingen\/\" }\n  ];\n\n  \/*\n   * EXCEL VISION \u2014 STRASBOURG : LISTE D\u00c9FINITIVE FOURNIE PAR L'UTILISATEUR.\n   * Noms masqu\u00e9s dans les captures non int\u00e9gr\u00e9s. BIJON appara\u00eet 2 fois : d\u00e9doublonn\u00e9.\n   * Adresse = UN lieu d'exercice public s\u00e9lectionn\u00e9, pas n\u00e9cessairement le seul.\n   * Coordonn\u00e9es provenant de fiches publi\u00e9es ou relev\u00e9es de l'adresse professionnelle.\n   * Si lat\/lng valent null, une requ\u00eate de g\u00e9ocodage du lieu indiqu\u00e9 est faite \u00e0\n   * l'ouverture (G\u00e9oplateforme IGN, puis API Adresse BAN). Sans r\u00e9ponse fiable,\n   * pas de point fictif : m\u00e9decin maintenu dans la liste.\n   * Un praticien sans adresse Strasbourg confirm\u00e9e est list\u00e9 sans marqueur.\n   * La page personnalis\u00e9e est laiss\u00e9e vide tant que l'URL r\u00e9elle est inconnue.\n   * L'URL de Dan DERHY a \u00e9t\u00e9 conserv\u00e9e telle qu'elle figurait dans le fichier re\u00e7u.\n   *\/\n  const strasbourgDoctors = [\n    { id: \"boujan\", nom: \"BOUJAN\", prenom: \"Aryan\", adresse: \"6 rue Fran\u00e7ois Epailly, 67000 Strasbourg\", lat: 48.5720911, lng: 7.7930243, url: \"\", photo: \"\", source: \"https:\/\/anteoshealth.com\/annuaire\/praticien\/10108242792\" },\n    { id: \"elahi-chahrokh\", nom: \"ELAHI\", prenom: \"Chahrokh\", adresse: \"13 rue de la Douane, 67000 Strasbourg\", lat: 48.57955, lng: 7.74937, url: \"\", photo: \"\", source: \"https:\/\/anteoshealth.com\/annuaire\/praticien\/10002421385\" },\n    { id: \"benichou-claude\", nom: \"BENICHOU\", prenom: \"Claude\", adresse: \"12 rue du Foss\u00e9 des Tanneurs, 67000 Strasbourg\", lat: null, lng: null, url: \"\", photo: \"\", source: \"https:\/\/www.elsan.care\/fr\/praticien\/ophtalmologue\/benichou-claude\" },\n    { id: \"derhy\", nom: \"DERHY\", prenom: \"Dan\", adresse: \"6 rue de l'\u00c9glise, 67000 Strasbourg\", lat: 48.5846330, lng: 7.7471051, url: \"\/docteur-dehry\", photo: \"\/wp-content\/uploads\/2026\/10\/dr-dehry.jpg\", source: \"https:\/\/www.elsan.care\/fr\/praticien\/ophtalmologue\/derhy-dan\" },\n    { id: \"tran-minh\", nom: \"TRAN-MINH\", prenom: \"Duc\", adresse: \"3 rue du 22 Novembre, 67000 Strasbourg\", lat: 48.5830791, lng: 7.7412668, url: \"\", photo: \"\", source: \"https:\/\/www.pagesjaunes.fr\/pros\/08941769\" },\n    { id: \"bijon\", nom: \"BIJON\", prenom: \"Jean Christophe\", adresse: \"6 rue Fran\u00e7ois Epailly, 67000 Strasbourg\", lat: 48.5720911, lng: 7.7930243, url: \"\", photo: \"\", source: \"https:\/\/annuairesante.ameli.fr\/professionnels-de-sante\/fiche-detaillee-bijon-jean-christophe-BrU1lTI3NDa6\" },\n    { id: \"benichou-jeremie\", nom: \"BENICHOU\", prenom: \"J\u00e9r\u00e9mie\", adresse: \"12 rue du Foss\u00e9 des Tanneurs, 67000 Strasbourg\", lat: null, lng: null, url: \"\", photo: \"\", source: \"https:\/\/www.elsan.care\/fr\/praticien\/ophtalmologue\/benichou-jeremie\" },\n    { id: \"hartmann\", nom: \"HARTMANN\", prenom: \"Marie\", adresse: \"13 rue de la Douane, 67000 Strasbourg\", lat: 48.57955, lng: 7.74937, url: \"\", photo: \"\", source: \"https:\/\/www.ophtalmologues-strasbourg.fr\/medecin\/dr-marie-hartmann\/\" },\n    { id: \"costa-burguete\", nom: \"COSTA-BURGUETE\", prenom: \"Sandrine\", adresse: \"\", lat: null, lng: null, url: \"\", photo: \"\", source: \"https:\/\/www.pointvision.com\/bordeaux\/medecin\/sandrine-costa-burguete\/\" },\n    { id: \"thinagaran\", nom: \"THINAGARAN\", prenom: \"Sashin\", adresse: \"30 rue de l'Ail, 67000 Strasbourg\", lat: 48.579954, lng: 7.748735, url: \"\", photo: \"\", source: \"https:\/\/www.ophtalmologues-strasbourg.fr\/medecin\/docteur-sashin-thinagaran\/\" },\n    { id: \"hemmendinger\", nom: \"HEMMENDINGER\", prenom: \"Serge\", adresse: \"32 avenue du G\u00e9n\u00e9ral de Gaulle, 67000 Strasbourg\", lat: 48.577544, lng: 7.768979, url: \"\", photo: \"\", source: \"https:\/\/anteoshealth.com\/annuaire\/praticien\/10002426673\" },\n    { id: \"elahi-sina\", nom: \"ELAHI\", prenom: \"Sina\", adresse: \"30 rue de l'Ail, 67000 Strasbourg\", lat: 48.579954, lng: 7.748735, url: \"\", photo: \"\", source: \"https:\/\/imedecin.fr\/67\/strasbourg\/elahi-sina-91yk\" },\n    { id: \"razafimino\", nom: \"RAZAFIMINO\", prenom: \"Sonia\", adresse: \"64 rue du Rhin Tortu, 67100 Strasbourg\", lat: null, lng: null, url: \"\", photo: \"\", source: \"https:\/\/www.pagesjaunes.fr\/pros\/64714797\" },\n    { id: \"hebras-restat\", nom: \"HEBRAS-RESTAT\", prenom: \"Sylvie\", adresse: \"25 boulevard du Pr\u00e9sident Wilson, 67000 Strasbourg\", lat: 48.5895311, lng: 7.7401222, url: \"\", photo: \"\", source: \"https:\/\/anteoshealth.com\/annuaire\/praticien\/10002461084\" },\n    { id: \"bourcier\", nom: \"BOURCIER\", prenom: \"Tristan\", adresse: \"1 place de l'H\u00f4pital, 67000 Strasbourg\", lat: 48.5759608, lng: 7.7435712, url: \"\", photo: \"\", source: \"https:\/\/anteoshealth.com\/annuaire\/praticien\/10002466919\" },\n    { id: \"soto-biforcos\", nom: \"SOTO BIFORCOS\", prenom: \"Victor\", adresse: \"2 rue Fran\u00e7ois Epailly, 67000 Strasbourg\", lat: 48.5723787, lng: 7.7928728, url: \"\", photo: \"\", source: \"https:\/\/www.doctolib.fr\/ophtalmologue\/strasbourg\/victor-soto-biforcos\" }\n  ];\n\n  const COUNTRY_LABELS = [\n    { country: \"FR\", name: \"FRANCE\", lat: 46.85, lng: 2.10 },\n    { country: \"BE\", name: \"BELGIQUE\", lat: 50.85, lng: 4.55 },\n    { country: \"DE\", name: \"ALLEMAGNE\", lat: 51.15, lng: 10.10 }\n  ];\n\n  const map = L.map(\"map\", {\n    zoomControl: false,\n    attributionControl: false,\n\n    \/\/ La carte reste volontairement fixe sur ordinateur.\n    scrollWheelZoom: false,\n    doubleClickZoom: false,\n    boxZoom: false,\n    keyboard: false,\n\n    \/\/ Sur mobile uniquement : d\u00e9placement au doigt + pinch-to-zoom.\n    dragging: isMobile,\n    touchZoom: isMobile,\n    tap: false,\n\n    \/\/ Zoom plus souple sur smartphone.\n    zoomSnap: isMobile ? 0.25 : 1,\n    zoomDelta: isMobile ? 0.5 : 1,\n    bounceAtZoomLimits: false\n  });\n\n  map.setMinZoom(isMobile ? 4 : 4);\n  map.setMaxZoom(isMobile ? 10 : 9);\n\n  \/\/ S\u00e9curit\u00e9 : on force explicitement le comportement selon l'appareil.\n  map.scrollWheelZoom.disable();\n  map.doubleClickZoom.disable();\n  map.boxZoom.disable();\n  map.keyboard.disable();\n\n  if (isMobile) {\n    map.dragging.enable();\n    map.touchZoom.enable();\n  } else {\n    map.dragging.disable();\n    map.touchZoom.disable();\n  }\n\n  const focusOverlay = document.getElementById(\"focusOverlay\");\n  const focusSvg = document.getElementById(\"focusSvg\");\n  const focusPath = document.getElementById(\"focusPath\");\n  const focusCitiesGroup = document.getElementById(\"focusCitiesGroup\");\n  const focusCloseBtn = document.getElementById(\"focusCloseBtn\");\n  const focusRegionName = document.getElementById(\"focusRegionName\");\n  const focusRegionCount = document.getElementById(\"focusRegionCount\");\n  const mapElement = document.getElementById(\"map\");\n  const filterButtons = [...document.querySelectorAll(\".ev-country-filter\")];\n  const strasbourgDoctorsOverlay = document.getElementById(\"strasbourgDoctorsOverlay\");\n  const strasbourgBackBtn = document.getElementById(\"strasbourgBackBtn\");\n  const strasbourgDoctorsList = document.getElementById(\"strasbourgDoctorsList\");\n  const evDoctorsCount = document.getElementById(\"evDoctorsCount\");\n  let strasbourgMap = null;\n  const strasbourgMarkers = new Map();\n  const strasbourgRows = new Map();\n  let strasbourgDoctorsOpen = false;\n\n  const citiesLayer = L.layerGroup().addTo(map);\n  const countryLabelsLayer = L.layerGroup().addTo(map);\n\n  let regionsLayer = null;\n  let countriesOutlineLayer = null;\n  let selectedLayer = null;\n  let isFocusMode = false;\n  let activeCountry = \"ALL\";\n  const projectionCache = new WeakMap();\n\n  function getCountryCode(feature) {\n    return feature?.properties?.CNTR_CODE || feature?.properties?.CNTR_ID || \"\";\n  }\n\n  function getRegionName(feature) {\n    return feature?.properties?.NUTS_NAME ||\n           feature?.properties?.NAME_LATN ||\n           feature?.properties?.NUTS_ID ||\n           \"R\u00e9gion\";\n  }\n\n  function isMetroFR(feature) {\n    const id = feature.properties?.NUTS_ID || \"\";\n    return !id.startsWith(\"FRM\") && !id.startsWith(\"FRY\");\n  }\n\n  function shouldKeepFeature(feature) {\n    const country = getCountryCode(feature);\n    if (!CONFIG.countries.includes(country)) return false;\n    if (country === \"FR\") return isMetroFR(feature);\n    return true;\n  }\n\n  function shouldKeepCountryFeature(feature) {\n    const id = feature.properties?.CNTR_ID || feature.properties?.NUTS_ID || feature.properties?.CNTR_CODE;\n    return CONFIG.countries.includes(id);\n  }\n\n  function removeCorsicaFromFrance(feature) {\n    const countryId = feature.properties?.CNTR_ID || feature.properties?.NUTS_ID || feature.properties?.CNTR_CODE;\n    if (countryId !== \"FR\") return feature;\n    if (!feature.geometry || feature.geometry.type !== \"MultiPolygon\") return feature;\n\n    const filteredPolygons = feature.geometry.coordinates.filter(polygon => {\n      const outerRing = polygon[0];\n      if (!outerRing || !outerRing.length) return false;\n\n      let minLng = Infinity, maxLng = -Infinity, minLat = Infinity, maxLat = -Infinity;\n      outerRing.forEach(([lng, lat]) => {\n        if (lng < minLng) minLng = lng;\n        if (lng > maxLng) maxLng = lng;\n        if (lat < minLat) minLat = lat;\n        if (lat > maxLat) maxLat = lat;\n      });\n\n      const isCorsica = minLng > 8 && maxLng < 10 && minLat > 41 && maxLat < 44;\n      return !isCorsica;\n    });\n\n    return {\n      ...feature,\n      geometry: { ...feature.geometry, coordinates: filteredPolygons }\n    };\n  }\n\n  function getRegionStyle(feature) {\n    const visible = activeCountry === \"ALL\" || getCountryCode(feature) === activeCountry;\n    return {\n      color: visible ? \"#d8dbde\" : \"#e8eaec\",\n      weight: isMobile ? 0.85 : 0.58,\n      fillColor: \"#ffffff\",\n      fillOpacity: visible ? 1 : 0.23,\n      opacity: visible ? 1 : 0.35,\n      className: \"region-path\",\n      lineJoin: \"round\",\n      lineCap: \"round\"\n    };\n  }\n\n  function getCountryOutlineStyle(feature) {\n    const country = feature.properties?.CNTR_ID || feature.properties?.CNTR_CODE || feature.properties?.NUTS_ID;\n    const visible = activeCountry === \"ALL\" || country === activeCountry;\n    return {\n      color: \"#303338\",\n      weight: visible ? 1.25 : 0.7,\n      fill: false,\n      opacity: visible ? .78 : .16,\n      className: \"country-outline-path\",\n      lineJoin: \"round\",\n      lineCap: \"round\",\n      interactive: false\n    };\n  }\n\n  function highlightRegion(event) {\n    if (isFocusMode || isMobile) return;\n    const layer = event.target;\n    if (activeCountry !== \"ALL\" && getCountryCode(layer.feature) !== activeCountry) return;\n\n    layer.setStyle({\n      color: \"#d40000\",\n      \/* On garde une largeur quasi stable pour \u00e9viter tout effet de saut. *\/\n      weight: isMobile ? 0.95 : 0.82,\n      fillColor: \"#f9fafb\",\n      fillOpacity: 1,\n      opacity: 1\n    });\n\n    const el = layer.getElement();\n    if (el) el.classList.add(\"region-hover\");\n  }\n\n  function resetRegion(event) {\n    if (isFocusMode || !regionsLayer || isMobile) return;\n    regionsLayer.resetStyle(event.target);\n    const el = event.target.getElement();\n    if (el) el.classList.remove(\"region-hover\");\n  }\n\n  function pointInRing(point, ring) {\n    const x = point[0], y = point[1];\n    let inside = false;\n    for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n      const xi = ring[i][0], yi = ring[i][1];\n      const xj = ring[j][0], yj = ring[j][1];\n      const intersects = ((yi > y) !== (yj > y)) &&\n        (x < ((xj - xi) * (y - yi)) \/ ((yj - yi) || 1e-12) + xi);\n      if (intersects) inside = !inside;\n    }\n    return inside;\n  }\n\n  function pointInPolygon(point, polygonCoords) {\n    if (!polygonCoords?.length) return false;\n    if (!pointInRing(point, polygonCoords[0])) return false;\n    for (let i = 1; i < polygonCoords.length; i++) {\n      if (pointInRing(point, polygonCoords[i])) return false;\n    }\n    return true;\n  }\n\n  function pointInGeometry(point, geometry) {\n    if (!geometry) return false;\n    if (geometry.type === \"Polygon\") return pointInPolygon(point, geometry.coordinates);\n    if (geometry.type === \"MultiPolygon\") return geometry.coordinates.some(poly => pointInPolygon(point, poly));\n    return false;\n  }\n\n  function getCitiesForRegion(feature) {\n    return partnerCities.filter(city => pointInGeometry([city.lng, city.lat], feature.geometry));\n  }\n\n  function findRegionLayerAtLatLng(latlng) {\n    if (!regionsLayer) return null;\n    let foundLayer = null;\n    const point = [latlng.lng, latlng.lat];\n\n    regionsLayer.eachLayer(layer => {\n      if (foundLayer) return;\n      if (activeCountry !== \"ALL\" && getCountryCode(layer.feature) !== activeCountry) return;\n      if (pointInGeometry(point, layer.feature.geometry)) foundLayer = layer;\n    });\n    return foundLayer;\n  }\n\n  function createCityMarker(city) {\n    if (activeCountry !== \"ALL\" && city.country !== activeCountry) return;\n\n    const markerSize = isMobile ? 16 : 12;\n    const marker = L.marker([city.lat, city.lng], {\n      icon: L.divIcon({\n        className: \"\",\n        html: '<div class=\"city-marker-shell\"><div class=\"city-square\"><\/div><\/div>',\n        iconSize: [markerSize, markerSize],\n        iconAnchor: [markerSize \/ 2, markerSize \/ 2]\n      }),\n      keyboard: false\n    });\n\n    if (!isMobile) {\n      marker.bindTooltip(city.name, {\n        permanent: false,\n        direction: \"top\",\n        offset: [0, -8],\n        className: \"city-tooltip\"\n      });\n    }\n\n    marker.on(\"click\", e => {\n      L.DomEvent.stopPropagation(e);\n      const layer = findRegionLayerAtLatLng(marker.getLatLng());\n      if (layer && !isFocusMode) activateRegionFocus(layer);\n    });\n\n    citiesLayer.addLayer(marker);\n  }\n\n  function loadAllCityMarkers() {\n    citiesLayer.clearLayers();\n    partnerCities.forEach(createCityMarker);\n  }\n\n  function renderCountryLabels() {\n    countryLabelsLayer.clearLayers();\n    COUNTRY_LABELS\n      .filter(item => activeCountry === \"ALL\" || item.country === activeCountry)\n      .forEach(item => {\n        const marker = L.marker([item.lat, item.lng], {\n          interactive: false,\n          icon: L.divIcon({\n            className: \"country-label-icon\",\n            html: `<div class=\"country-label\">${item.name}<\/div>`,\n            iconSize: null\n          })\n        });\n        countryLabelsLayer.addLayer(marker);\n      });\n  }\n\n  function getBoundsForCountry(countryCode) {\n    if (!regionsLayer) return null;\n    const bounds = L.latLngBounds([]);\n    let hasData = false;\n\n    regionsLayer.eachLayer(layer => {\n      if (countryCode === \"ALL\" || getCountryCode(layer.feature) === countryCode) {\n        bounds.extend(layer.getBounds());\n        hasData = true;\n      }\n    });\n\n    return hasData ? bounds : null;\n  }\n\nfunction fitActiveCountry() {\n  const bounds = getBoundsForCountry(activeCountry);\n  if (!bounds?.isValid()) return;\n\n  \/\/ Vue g\u00e9n\u00e9rale sur ordinateur\n  if (!isMobile && activeCountry === \"ALL\") {\n    const padding = L.point(24, 24);\n\n    const fittedZoom = map.getBoundsZoom(\n      bounds,\n      false,\n      padding\n    );\n\n    const targetZoom = Math.min(\n      fittedZoom + 0.6,\n      map.getMaxZoom()\n    );\n\n    map.setView(\n      bounds.getCenter(),\n      targetZoom,\n      {\n        animate: false\n      }\n    );\n\n    return;\n  }\n\n  \/\/ Mobile et vue par pays\n  map.fitBounds(bounds, {\n    padding: activeCountry === \"ALL\"\n      ? [14, 14]\n      : (isMobile ? [28, 28] : [70, 70]),\n\n    animate: !isMobile,\n    duration: .55\n  });\n}\n\n  function applyCountryFilter(countryCode) {\n    if (!CONFIG.countries.includes(countryCode) && countryCode !== \"ALL\") return;\n    if (isFocusMode) clearFocusState();\n\n    activeCountry = countryCode;\n\n    filterButtons.forEach(button => {\n      button.classList.toggle(\"is-active\", button.dataset.country === activeCountry);\n      button.setAttribute(\"aria-pressed\", button.dataset.country === activeCountry ? \"true\" : \"false\");\n    });\n\n    if (regionsLayer) regionsLayer.setStyle(getRegionStyle);\n    if (countriesOutlineLayer) countriesOutlineLayer.setStyle(getCountryOutlineStyle);\n    loadAllCityMarkers();\n    renderCountryLabels();\n    fitActiveCountry();\n\n    if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n  }\n\n  filterButtons.forEach(button => {\n    button.addEventListener(\"click\", () => applyCountryFilter(button.dataset.country));\n  });\n\n  function clearFocusCities() {\n    focusCitiesGroup.innerHTML = \"\";\n  }\n\n   \/* --------- Navigation interactive dans Strasbourg --------- *\/\n   const evDoctorSearch = document.getElementById(\"evDoctorSearch\");\n   const evDoctorsMapLoading = document.getElementById(\"evDoctorsMapLoading\");\n   const doctorLocations = strasbourgDoctors.filter(d => d.adresse);\n   let doctorGeocodingPromise = null;\n\n   function getDoctorDisplayName(doctor) {\n     return `Dr ${doctor.nom} ${doctor.prenom}`;\n   }\n   \/*\n    * Photo optionnelle : renseigner `photo` dans strasbourgDoctors avec une\n    * URL HTTPS ou une URL relative de la m\u00e9diath\u00e8que WordPress.\n    * Sans photo : silhouette neutre, jamais un portrait invent\u00e9 du m\u00e9decin.\n    *\/\n   function getDoctorProfileUrl(doctor) {\n     const url = String(doctor.url || \"\").trim();\n     return \/^\\\/(?!\\\/)\/.test(url) || \/^https:\\\/\\\/\/i.test(url) ? url : \"\";\n   }\n   function getDoctorPhotoUrl(doctor) {\n     const url = String(doctor.photo || \"\").trim();\n     return \/^\\\/(?!\\\/)\/.test(url) || \/^https:\\\/\\\/\/i.test(url) ? url : \"\";\n   }\n   function createDoctorPortrait(doctor, variant) {\n     const portrait = document.createElement(\"span\");\n     portrait.className = `ev-doctor-portrait ev-doctor-portrait--${variant}`;\n     portrait.setAttribute(\"aria-hidden\", \"true\");\n     const icon = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"svg\");\n     icon.setAttribute(\"viewBox\", \"0 0 32 32\");\n     icon.setAttribute(\"fill\", \"none\");\n     icon.setAttribute(\"stroke\", \"currentColor\");\n     icon.setAttribute(\"stroke-width\", \"1.8\");\n     icon.setAttribute(\"stroke-linecap\", \"round\");\n     const head = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"circle\");\n     head.setAttribute(\"cx\", \"16\");\n     head.setAttribute(\"cy\", \"11\");\n     head.setAttribute(\"r\", \"5\");\n     const shoulders = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"path\");\n     shoulders.setAttribute(\"d\", \"M5 27c1.3-6 5.1-9 11-9s9.7 3 11 9\");\nicon.append(head, shoulders);\n\nconst url = getDoctorPhotoUrl(doctor);\n\nif (url) {\n  const img = document.createElement(\"img\");\n  img.src = url;\n  img.alt = \"\";\n  img.loading = \"lazy\";\n  img.decoding = \"async\";\n\n  \/\/ Afficher l'ic\u00f4ne uniquement si la photo ne charge pas\n  img.addEventListener(\"error\", () => {\n    img.remove();\n    portrait.appendChild(icon);\n  }, { once: true });\n\n  portrait.appendChild(img);\n} else {\n  \/\/ Aucune photo renseign\u00e9e\n  portrait.appendChild(icon);\n}\n\nreturn portrait;\n\n   }\n   function hasDoctorPosition(doctor) {\n     return Number.isFinite(doctor.lat) && Number.isFinite(doctor.lng);\n   }\n   function getDoctorShortAddress(doctor) {\n     return doctor.adresse ? doctor.adresse.replace(\/, 67\\d{3} Strasbourg$\/i, \"\") : \"Adresse \u00e0 Strasbourg non confirm\u00e9e\";\n   }\n   function normalizeSearch(value) {\n     return String(value || \"\").normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\").toLowerCase().trim();\n   }\n   function setSelectedDoctor(id) {\n     strasbourgRows.forEach((row, key) => row.classList.toggle(\"is-selected\", key === id));\n     strasbourgMarkers.forEach((marker, key) => {\n       const element = marker.getElement();\n       if (element) element.classList.toggle(\"ev-doctor-active\", key === id);\n     });\n   }\n   function showDoctor(doctor, pan = false) {\n     const marker = strasbourgMarkers.get(doctor.id);\n     if (!marker || !strasbourgMap) return;\n     setSelectedDoctor(doctor.id);\n     if (pan) strasbourgMap.panTo(marker.getLatLng(), { animate: true, duration: .25 });\n     marker.openPopup();\n   }\n   function createDoctorPopup(doctor) {\n     const content = document.createElement(\"div\");\n     content.className = \"ev-doctor-popup-inner\";\n     const intro = document.createElement(\"div\");\n     intro.className = \"ev-doctor-popup-intro\";\n     const portrait = createDoctorPortrait(doctor, \"popup\");\n     const details = document.createElement(\"div\");\n     details.className = \"ev-doctor-popup-details\";\n     const eyebrow = document.createElement(\"span\");\n     eyebrow.className = \"ev-doctor-popup-eyebrow\";\n     eyebrow.textContent = \"M\u00e9decin \u00b7 Strasbourg\";\n     const doctorName = document.createElement(\"strong\");\n     doctorName.className = \"ev-doctor-popup-name\";\n     doctorName.textContent = getDoctorDisplayName(doctor);\n     const address = document.createElement(\"span\");\n     address.className = \"ev-doctor-popup-address\";\n     address.textContent = doctor.adresse || \"Adresse \u00e0 confirmer\";\n     details.append(eyebrow, doctorName, address);\n     intro.append(portrait, details);\n\n     const link = document.createElement(\"a\");\n     link.className = \"ev-doctor-popup-link\";\n     link.textContent = \"En savoir plus  \u2192\";\n     const url = getDoctorProfileUrl(doctor);\n     if (url) {\n       link.href = url;\n       link.setAttribute(\"aria-label\", `En savoir plus sur ${getDoctorDisplayName(doctor)}`);\n     } else {\n       link.classList.add(\"is-placeholder\");\n       link.setAttribute(\"aria-disabled\", \"true\");\n       link.title = \"Page personnalis\u00e9e \u00e0 renseigner dans strasbourgDoctors\";\n       link.addEventListener(\"click\", event => event.preventDefault());\n     }\n     content.append(intro, link);\n     return content;\n   }\n   function renderDoctorList() {\n     const search = normalizeSearch(evDoctorSearch.value);\n     strasbourgRows.forEach((row, id) => {\n       const doctor = strasbourgDoctors.find(d => d.id === id);\n       const found = normalizeSearch(`${doctor.nom} ${doctor.prenom} ${doctor.adresse}`).includes(search);\n       row.hidden = !found;\n       row.style.display = found ? \"flex\" : \"none\";\n     });\n   }\n   evDoctorSearch.addEventListener(\"input\", renderDoctorList);\n\n   \/* Les marqueurs d'une m\u00eame adresse sont d\u00e9cal\u00e9s de quelques pixels,\n      leur vraie coordonn\u00e9e reste celle du cabinet (sans fausse g\u00e9olocalisation). *\/\n   function doctorMarkerOffset(doctor) {\n     const sameAddress = doctorLocations.filter(d => hasDoctorPosition(d) && d.adresse === doctor.adresse);\n     if (sameAddress.length <= 1) return [0, 0];\n     const index = sameAddress.findIndex(d => d.id === doctor.id);\n     const angle = -Math.PI \/ 2 + (2 * Math.PI * index) \/ sameAddress.length;\n     const r = sameAddress.length === 2 ? 15 : 22;\n     return [Math.round(Math.cos(angle) * r), Math.round(Math.sin(angle) * r)];\n   }\n   function addDoctorMarker(doctor, index) {\n     if (!hasDoctorPosition(doctor) || strasbourgMarkers.has(doctor.id)) return;\n     const [dx, dy] = doctorMarkerOffset(doctor);\n     const marker = L.marker([doctor.lat, doctor.lng], {\n       keyboard: true,\n       title: getDoctorDisplayName(doctor),\n       zIndexOffset: 100 + index,\n       icon: L.divIcon({\n         className: \"ev-doctor-marker\",\n         html: `<span class=\"ev-doctor-pin\" style=\"animation-delay:${Math.min(index * 35, 420)}ms\"><\/span>`,\n         iconSize: [26,26],\n         iconAnchor: [13 - dx, 13 - dy],\n         popupAnchor: [dx, dy - 14]\n       })\n     }).addTo(strasbourgMap);\n     marker.bindPopup(createDoctorPopup(doctor), {\n       className: \"ev-doctor-popup\",\n       closeButton: true,\n       closeOnClick: true,\n       autoPan: true,\n       maxWidth: 260,\n       minWidth: 220\n     });\n     marker.on(\"mouseover\", () => { if (!isMobile) showDoctor(doctor); });\n     marker.on(\"click\", () => showDoctor(doctor));\n     strasbourgMarkers.set(doctor.id, marker);\n     const row = strasbourgRows.get(doctor.id);\n     if (row) {\n       row.classList.remove(\"is-unlocated\");\n       const detail = row.querySelector(\".ev-doctor-row-address\");\n       if (detail) detail.textContent = getDoctorShortAddress(doctor);\n     }\n   }\n   function makeDoctorRows() {\n     if (strasbourgRows.size) return;\n     evDoctorsCount.textContent = String(strasbourgDoctors.length);\n     strasbourgDoctors.forEach(doctor => {\n       const url = getDoctorProfileUrl(doctor);\n       \/\/ Un <a> r\u00e9el uniquement si la page existe d\u00e9j\u00e0 dans les donn\u00e9es.\n       \/\/ Sans URL v\u00e9rifi\u00e9e, rester un bouton fonctionnel de s\u00e9lection sur carte.\n       const row = document.createElement(url ? \"a\" : \"button\");\n       if (url) {\n         row.href = url;\n         row.setAttribute(\"aria-label\", `Voir la page de ${getDoctorDisplayName(doctor)}`);\n       } else {\n         row.type = \"button\";\n         row.setAttribute(\"aria-label\", `Localiser ${getDoctorDisplayName(doctor)} sur la carte ; page personnalis\u00e9e \u00e0 venir`);\n         row.title = \"Page personnalis\u00e9e \u00e0 ajouter. Cliquez pour afficher la fiche sur la carte.\";\n       }\n       row.className = \"ev-doctor-row\" + (hasDoctorPosition(doctor) ? \"\" : \" is-unlocated\");\n\n       const photoBox = document.createElement(\"span\");\n       photoBox.className = \"ev-doctor-row-photo-box\";\n       photoBox.appendChild(createDoctorPortrait(doctor, \"list\"));\n       const dot = document.createElement(\"span\");\n       dot.className = \"ev-doctor-mini-dot\";\n       dot.setAttribute(\"aria-hidden\", \"true\");\n       photoBox.appendChild(dot);\n\n       const copy = document.createElement(\"span\");\n       copy.className = \"ev-doctor-row-copy\";\n       const name = document.createElement(\"span\");\n       name.className = \"ev-doctor-row-name\";\n       name.textContent = getDoctorDisplayName(doctor);\n       const address = document.createElement(\"span\");\n       address.className = \"ev-doctor-row-address\";\n       address.textContent = doctor.adresse ? getDoctorShortAddress(doctor) : \"Adresse Strasbourg \u00e0 confirmer\";\n       copy.append(name, address);\n       const arrow = document.createElement(\"span\");\n       arrow.className = \"ev-doctor-row-arrow\";\n       arrow.textContent = url ? \"\u2197\" : \"\u203a\";\n       arrow.setAttribute(\"aria-hidden\", \"true\");\n       row.append(photoBox, copy, arrow);\n\n       row.addEventListener(\"mouseenter\", () => {\n         if (!isMobile && hasDoctorPosition(doctor)) showDoctor(doctor);\n       });\n       if (!url) {\n         row.addEventListener(\"click\", () => {\n           if (hasDoctorPosition(doctor)) showDoctor(doctor, true);\n           else if (doctor.adresse) row.title = \"G\u00e9olocalisation en cours ou indisponible pour ce cabinet\";\n           else row.title = \"L'adresse \u00e0 Strasbourg doit \u00eatre confirm\u00e9e avant l'ajout du point\";\n         });\n       }\n       strasbourgRows.set(doctor.id, row);\n       strasbourgDoctorsList.appendChild(row);\n     });\n   }\n\n   \/* Pas de points invent\u00e9s : les seules adresses sans coordonn\u00e9es sont r\u00e9solues\n      en ligne lors de l'ouverture de la carte par service g\u00e9ographique public.\n      Refuser les r\u00e9ponses hors Strasbourg ou \u00e0 faible pr\u00e9cision. *\/\n   async function geocodeDoctorAddress(address) {\n     const q = encodeURIComponent(address);\n     const endpoints = [\n       `https:\/\/data.geopf.fr\/geocodage\/search\/?q=${q}&index=address&limit=1`,\n       `https:\/\/api-adresse.data.gouv.fr\/search\/?q=${q}&limit=1`\n     ];\n     for (const endpoint of endpoints) {\n       try {\n         const controller = new AbortController();\n         const timeout = setTimeout(() => controller.abort(), 6000);\n         let response;\n         try { response = await fetch(endpoint, { signal: controller.signal }); }\n         finally { clearTimeout(timeout); }\n         if (!response.ok) continue;\n         const payload = await response.json();\n         const match = (payload.features || []).find(f => {\n           const prop = f.properties || {};\n           const label = `${prop.label || \"\"} ${prop.city || \"\"}`.toLowerCase();\n           const score = Number(prop.score ?? 0);\n           const coords = f.geometry?.coordinates;\n           return label.includes(\"strasbourg\") && score >= .60 &&\n             Array.isArray(coords) && coords.length === 2 &&\n             coords[0] > 7.6 && coords[0] < 7.9 && coords[1] > 48.48 && coords[1] < 48.65;\n         });\n         if (match) return { lat: match.geometry.coordinates[1], lng: match.geometry.coordinates[0] };\n       } catch (error) { console.warn(\"G\u00e9ocodage non disponible\", address, error); }\n     }\n     return null;\n   }\n   function updateDoctorMapBounds() {\n     if (!strasbourgMap) return;\n     const coords = strasbourgDoctors.filter(hasDoctorPosition).map(d => [d.lat, d.lng]);\n     if (coords.length) {\n       strasbourgMap.fitBounds(L.latLngBounds(coords).pad(.14), {\n         padding: isMobile ? [28,28] : [46,46], maxZoom: 14, animate: false\n       });\n     } else strasbourgMap.setView([48.583,7.753], 12);\n   }\n   async function resolveUnlocatedAddresses() {\n     const addresses = [...new Set(strasbourgDoctors.filter(d => d.adresse && !hasDoctorPosition(d)).map(d => d.adresse))];\n     if (!addresses.length) return;\n     evDoctorsMapLoading.hidden = false;\n     await Promise.all(addresses.map(async addr => {\n       const location = await geocodeDoctorAddress(addr);\n       if (!location) return;\n       strasbourgDoctors.filter(d => d.adresse === addr).forEach(d => Object.assign(d, location));\n     }));\n     strasbourgDoctors.forEach(addDoctorMarker);\n     if (strasbourgDoctorsOpen) updateDoctorMapBounds();\n     evDoctorsMapLoading.hidden = true;\n     const unresolved = strasbourgDoctors.filter(d => d.adresse && !hasDoctorPosition(d));\n     if (unresolved.length) {\n       evDoctorsMapLoading.hidden = false;\n       evDoctorsMapLoading.textContent = `${unresolved.length} adresse(s) \u00e0 g\u00e9olocaliser : v\u00e9rifiez la connexion au service de g\u00e9ocodage.`;\n     }\n   }\n   function initializeStrasbourgMap() {\n     if (strasbourgMap) return;\n     strasbourgMap = L.map(\"strasbourgDoctorMap\", {\n       zoomControl: true,\n       attributionControl: true,\n       scrollWheelZoom: false,\n       doubleClickZoom: true,\n       dragging: true,\n       touchZoom: true,\n       keyboard: true\n     }).setView([48.583, 7.753], 12);\n     L.tileLayer(\"https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png\", {\n       maxZoom: 19,\n       attribution: '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\" target=\"_blank\" rel=\"noopener\">OpenStreetMap<\/a> contributors'\n     }).addTo(strasbourgMap);\n     makeDoctorRows();\n     strasbourgDoctors.forEach(addDoctorMarker);\n     strasbourgMap.on(\"popupclose\", () => setSelectedDoctor(null));\n     doctorGeocodingPromise = resolveUnlocatedAddresses();\n   }\n   function openStrasbourgDoctors() {\n     if (strasbourgDoctorsOpen) return;\n     strasbourgDoctorsOpen = true;\n     strasbourgDoctorsOverlay.classList.add(\"is-open\");\n     strasbourgDoctorsOverlay.setAttribute(\"aria-hidden\", \"false\");\n     focusOverlay.setAttribute(\"aria-hidden\", \"true\");\n     initializeStrasbourgMap();\n     requestAnimationFrame(() => {\n       strasbourgMap.invalidateSize();\n       updateDoctorMapBounds();\n       strasbourgBackBtn.focus({ preventScroll: true });\n     });\n   }\n   function closeStrasbourgDoctors() {\n     if (!strasbourgDoctorsOpen) return;\n     strasbourgDoctorsOpen = false;\n     strasbourgDoctorsOverlay.classList.remove(\"is-open\");\n     strasbourgDoctorsOverlay.setAttribute(\"aria-hidden\", \"true\");\n     focusOverlay.setAttribute(\"aria-hidden\", isFocusMode ? \"false\" : \"true\");\n     if (strasbourgMap) strasbourgMap.closePopup();\n     setSelectedDoctor(null);\n   }\n   strasbourgBackBtn.addEventListener(\"click\", closeStrasbourgDoctors);\n\n  function clearFocusState() {\n    closeStrasbourgDoctors();\n    isFocusMode = false;\n    selectedLayer = null;\n    focusOverlay.classList.remove(\"active\");\n    focusOverlay.setAttribute(\"aria-hidden\", \"true\");\n    focusPath.setAttribute(\"d\", \"\");\n    clearFocusCities();\n\n    if (regionsLayer) {\n      regionsLayer.eachLayer(layer => {\n        regionsLayer.resetStyle(layer);\n        const el = layer.getElement();\n        if (el) el.classList.remove(\"region-hover\", \"region-dimmed\", \"region-selected\");\n      });\n    }\n\n    citiesLayer.eachLayer(marker => {\n      if (marker.setOpacity) marker.setOpacity(1);\n    });\n\n    countryLabelsLayer.eachLayer(marker => {\n      if (marker.setOpacity) marker.setOpacity(1);\n    });\n\n    if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n  }\n\n  function getFeatureBounds(feature) {\n    let cached = projectionCache.get(feature);\n    if (cached?.bounds) return cached.bounds;\n    const bounds = L.geoJSON(feature).getBounds();\n    const data = cached || {};\n    data.bounds = bounds;\n    projectionCache.set(feature, data);\n    return bounds;\n  }\n\n  function buildFeatureProjection(feature, targetWidth, targetHeight) {\n    const bounds = getFeatureBounds(feature);\n    const sw = map.latLngToContainerPoint(bounds.getSouthWest());\n    const ne = map.latLngToContainerPoint(bounds.getNorthEast());\n\n    const minX = Math.min(sw.x, ne.x);\n    const maxX = Math.max(sw.x, ne.x);\n    const minY = Math.min(sw.y, ne.y);\n    const maxY = Math.max(sw.y, ne.y);\n    const width = Math.max(1, maxX - minX);\n    const height = Math.max(1, maxY - minY);\n\n    const focusRatio = isMobile ? .80 : .67;\n    const scale = Math.min((targetWidth * focusRatio) \/ width, (targetHeight * focusRatio) \/ height);\n    const centerX = (minX + maxX) \/ 2;\n    const centerY = (minY + maxY) \/ 2;\n    const destCenterX = targetWidth \/ 2;\n    const destCenterY = targetHeight \/ 2 + (isMobile ? 24 : 18);\n\n    return {\n      project(lat, lng) {\n        const point = map.latLngToContainerPoint([lat, lng]);\n        return {\n          x: (point.x - centerX) * scale + destCenterX,\n          y: (point.y - centerY) * scale + destCenterY\n        };\n      }\n    };\n  }\n\n  function geometryToSvgPath(feature, projection) {\n    function ringToPath(ring) {\n      return ring.map((coord, index) => {\n        const [lng, lat] = coord;\n        const p = projection.project(lat, lng);\n        return `${index === 0 ? \"M\" : \"L\"} ${p.x.toFixed(2)} ${p.y.toFixed(2)}`;\n      }).join(\" \") + \" Z\";\n    }\n\n    function polygonToPath(coords) {\n      return coords.map(ringToPath).join(\" \");\n    }\n\n    const geometry = feature.geometry;\n    if (geometry.type === \"Polygon\") return polygonToPath(geometry.coordinates);\n    if (geometry.type === \"MultiPolygon\") return geometry.coordinates.map(polygonToPath).join(\" \");\n    return \"\";\n  }\n\n  function renderFocusCities(feature, projection) {\n    clearFocusCities();\n    const cities = getCitiesForRegion(feature);\n    if (!cities.length) return;\n\n    const baseRadius = isMobile ? 7 : 5.5;\n    const haloRadius = isMobile ? 15 : 13;\n\n    cities.forEach((city, index) => {\n      const p = projection.project(city.lat, city.lng);\n      const isStrasbourg = city.country === \"FR\" && city.name === \"Strasbourg\";\n      const href = isStrasbourg ? \"#strasbourg-medecins\" : (city.url || \"#\");\n\n      const link = document.createElementNS(CONFIG.svgNs, \"a\");\n      link.setAttribute(\"class\", \"focus-city-link\");\n      link.setAttributeNS(CONFIG.xlinkNs, \"href\", href);\n      link.setAttribute(\"href\", href);\n      link.setAttribute(\"tabindex\", \"0\");\n      link.setAttribute(\"aria-label\", isStrasbourg ? \"Afficher les m\u00e9decins de Strasbourg\" : city.name);\n\n      const halo = document.createElementNS(CONFIG.svgNs, \"circle\");\n      halo.setAttribute(\"cx\", p.x.toFixed(2));\n      halo.setAttribute(\"cy\", p.y.toFixed(2));\n      halo.setAttribute(\"r\", haloRadius);\n      halo.setAttribute(\"class\", \"focus-city-halo\");\n\n      const dot = document.createElementNS(CONFIG.svgNs, \"circle\");\n      dot.setAttribute(\"cx\", p.x.toFixed(2));\n      dot.setAttribute(\"cy\", p.y.toFixed(2));\n      dot.setAttribute(\"r\", baseRadius);\n      dot.setAttribute(\"class\", \"focus-city-dot\");\n      dot.style.animationDelay = `${Math.min(index * 34, 240)}ms`;\n\n      const labelText = document.createElementNS(CONFIG.svgNs, \"text\");\n      labelText.setAttribute(\"x\", (p.x + 14).toFixed(2));\n      labelText.setAttribute(\"y\", (p.y + 4).toFixed(2));\n      labelText.setAttribute(\"class\", \"focus-city-label\");\n      labelText.textContent = city.name;\n\n      const approxWidth = Math.max(62, city.name.length * 7.1 + 18);\n      const labelBg = document.createElementNS(CONFIG.svgNs, \"rect\");\n      labelBg.setAttribute(\"x\", (p.x + 8).toFixed(2));\n      labelBg.setAttribute(\"y\", (p.y - 12).toFixed(2));\n      labelBg.setAttribute(\"width\", approxWidth.toFixed(2));\n      labelBg.setAttribute(\"height\", \"24\");\n      labelBg.setAttribute(\"rx\", \"8\");\n      labelBg.setAttribute(\"class\", \"focus-city-label-bg\");\n\n      const title = document.createElementNS(CONFIG.svgNs, \"title\");\n      title.textContent = isStrasbourg\n        ? \"Strasbourg \u2014 afficher les m\u00e9decins\"\n        : `${city.name} \u2014 ouvrir le centre`;\n\n      link.addEventListener(\"click\", event => {\n        event.stopPropagation();\n        if (isStrasbourg) {\n          event.preventDefault();\n          openStrasbourgDoctors();\n        }\n      });\n      link.addEventListener(\"touchstart\", event => event.stopPropagation(), { passive: true });\n      link.addEventListener(\"keydown\", event => {\n        if (event.key === \"Enter\" || event.key === \" \") {\n          event.preventDefault();\n          if (isStrasbourg) openStrasbourgDoctors();\n          else window.location.href = href;\n        }\n      });\n\n      link.appendChild(halo);\n      link.appendChild(dot);\n      link.appendChild(labelBg);\n      link.appendChild(labelText);\n      link.appendChild(title);\n      focusCitiesGroup.appendChild(link);\n    });\n  }\n\n  function updateFocusOverlay() {\n    if (!selectedLayer) return;\n\n    const feature = selectedLayer.feature;\n    const cities = getCitiesForRegion(feature);\n    const svgRect = focusSvg.getBoundingClientRect();\n    const targetWidth = svgRect.width || 1000;\n    const targetHeight = svgRect.height || 600;\n\n    focusSvg.setAttribute(\"viewBox\", `0 0 ${targetWidth} ${targetHeight}`);\n\n    const projection = buildFeatureProjection(feature, targetWidth, targetHeight);\n    focusPath.setAttribute(\"d\", geometryToSvgPath(feature, projection));\n    renderFocusCities(feature, projection);\n\n    focusRegionName.textContent = getRegionName(feature);\n    focusRegionCount.textContent = `${cities.length} centre${cities.length > 1 ? \"s\" : \"\"} partenaire${cities.length > 1 ? \"s\" : \"\"}`;\n  }\n\n  function activateRegionFocus(layer) {\n    if (!layer || isFocusMode) return;\n    if (activeCountry !== \"ALL\" && getCountryCode(layer.feature) !== activeCountry) return;\n\n    isFocusMode = true;\n    selectedLayer = layer;\n\n    regionsLayer.eachLayer(otherLayer => {\n      const el = otherLayer.getElement();\n      if (!el) return;\n      el.classList.remove(\"region-hover\");\n\n      if (otherLayer === layer) el.classList.add(\"region-selected\");\n      else el.classList.add(\"region-dimmed\");\n    });\n\n    citiesLayer.eachLayer(marker => {\n      if (marker.setOpacity) marker.setOpacity(.08);\n    });\n\n    countryLabelsLayer.eachLayer(marker => {\n      if (marker.setOpacity) marker.setOpacity(.05);\n    });\n\n    focusOverlay.classList.add(\"active\");\n    focusOverlay.setAttribute(\"aria-hidden\", \"false\");\n    updateFocusOverlay();\n\n    if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n  }\n\n  function closeFocusFromButton(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    clearFocusState();\n  }\n\n  focusCloseBtn.addEventListener(\"click\", closeFocusFromButton);\n  focusCloseBtn.addEventListener(\"touchend\", closeFocusFromButton, { passive: false });\n  focusCloseBtn.addEventListener(\"touchstart\", event => event.stopPropagation(), { passive: true });\n\n  focusOverlay.addEventListener(\"click\", event => {\n    if (event.target === focusOverlay || event.target === focusSvg) clearFocusState();\n  });\n  focusSvg.addEventListener(\"click\", event => event.stopPropagation());\n\n  document.addEventListener(\"keydown\", event => {\n    if (event.key !== \"Escape\") return;\n    if (strasbourgDoctorsOpen) closeStrasbourgDoctors();\n    else if (isFocusMode) clearFocusState();\n  });\n\n  \/*\n   * IMPORTANT MOBILE\n   * ----------------\n   * Aucun touchstart\/touchend n'est attach\u00e9 \u00e0 document.\n   * Leaflet g\u00e8re directement le tap, le drag et le pinch dans #map.\n   * Cela \u00e9vite que la carte intercepte les clics des boutons cookies,\n   * chat, t\u00e9l\u00e9phone ou autres boutons flottants superpos\u00e9s \u00e0 la page.\n   *\/\n\n  async function loadRegions() {\n    const response = await fetch(CONFIG.regionsUrl);\n    if (!response.ok) throw new Error(`Erreur HTTP ${response.status}`);\n    const data = await response.json();\n    return data.features.filter(shouldKeepFeature);\n  }\n\n  async function loadCountryOutlines() {\n    const response = await fetch(CONFIG.countriesUrl);\n    if (!response.ok) throw new Error(`Erreur HTTP ${response.status}`);\n    const data = await response.json();\n    return data.features.filter(shouldKeepCountryFeature).map(removeCorsicaFromFrance);\n  }\n\n  async function initMap() {\n    try {\n      const [regionFeatures, countryFeatures] = await Promise.all([\n        loadRegions(),\n        loadCountryOutlines()\n      ]);\n\n      regionsLayer = L.geoJSON(regionFeatures, {\n        style: getRegionStyle,\n        onEachFeature: (feature, layer) => {\n          function openLayerFromEvent(event) {\n            L.DomEvent.stopPropagation(event);\n            if (isFocusMode) return;\n            if (activeCountry !== \"ALL\" && getCountryCode(feature) !== activeCountry) return;\n            activateRegionFocus(layer);\n          }\n\n          \/\/ Leaflet distingue nativement un simple tap d'un d\u00e9placement\/zoom.\n          \/\/ On n'ajoute donc aucun preventDefault tactile personnalis\u00e9.\n          layer.on({\n            mouseover: highlightRegion,\n            mouseout: resetRegion,\n            click: openLayerFromEvent\n          });\n        }\n      }).addTo(map);\n\n      countriesOutlineLayer = L.geoJSON(countryFeatures, {\n        style: getCountryOutlineStyle,\n        interactive: false\n      }).addTo(map);\n\n      loadAllCityMarkers();\n      renderCountryLabels();\n      fitActiveCountry();\n\n      countriesOutlineLayer.bringToFront();\n  \n      setTimeout(() => {\n        map.invalidateSize();\n        fitActiveCountry();\n        if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n          }, 120);\n\n      window.addEventListener(\"resize\", () => {\n        if (strasbourgDoctorsOpen && strasbourgMap) strasbourgMap.invalidateSize();\n        map.invalidateSize();\n        if (isFocusMode && selectedLayer) updateFocusOverlay();\n        else fitActiveCountry();\n        if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n          });\n\n      window.addEventListener(\"orientationchange\", () => {\n        setTimeout(() => {\n          map.invalidateSize();\n          if (strasbourgDoctorsOpen && strasbourgMap) {\n            strasbourgMap.invalidateSize();\n            updateDoctorMapBounds();\n          }\n          if (isFocusMode && selectedLayer) updateFocusOverlay();\n          else fitActiveCountry();\n        }, 250);\n      });\n\n      map.on(\"zoomend moveend\", () => {\n        if (isFocusMode && selectedLayer) updateFocusOverlay();\n        if (countriesOutlineLayer) countriesOutlineLayer.bringToFront();\n          });\n\n    } catch (error) {\n      console.error(\"Erreur lors du chargement de la carte :\", error);\n      mapElement.innerHTML = `\n        <div style=\"display:grid;place-items:center;height:100%;padding:2rem;text-align:center;font-family:Arial,sans-serif;color:#555;\">\n          Impossible de charger la carte pour le moment.\n        <\/div>`;\n    }\n  }\n\n  initMap();\n});\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-330fa2c2 custom-gallery e-flex e-con-boxed e-con e-child\" data-id=\"330fa2c2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5e4198ad e-con-full left e-flex e-con e-child\" data-id=\"5e4198ad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-29792bf2 desktopContent e-flex e-con-boxed e-con e-child\" data-id=\"29792bf2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-66dd36d9 e-con-full desktopContentSection e-flex e-con e-child\" data-id=\"66dd36d9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e8af259 reveal elementor-widget elementor-widget-heading\" data-id=\"4e8af259\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Prise de contact<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a0ab60c elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"3a0ab60c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vous nous contactez par t\u00e9l\u00e9phone ou via le formulaire de contact, en pr\u00e9cisant vos coordonn\u00e9es ainsi que votre d\u00e9faut visuel, afin que nous puissions vous transmettre les coordonn\u00e9es d\u2019au moins deux ophtalmologistes partenaires situ\u00e9s au plus pr\u00e8s de chez vous.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d7445a0 elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"7d7445a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/pro.excel-vision.eu\/fr\/formulaire-contact?orig=EV\">\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\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">En savoir plus<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-74bc4c6d e-con-full desktopContentSection e-flex e-con e-child\" data-id=\"74bc4c6d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2dd95ef3 reveal elementor-widget elementor-widget-heading\" data-id=\"2dd95ef3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Choisissez votre sp\u00e9cialiste<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72c803b5 elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"72c803b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Une fois votre chirurgien ophtalmologiste choisi, nous vous invitons \u00e0 prendre contact avec lui afin d\u2019obtenir une date de rendez-vous pr\u00e9op\u00e9ratoire.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c4feade elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"1c4feade\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/preprod.excel-vision.eu\/#centre\">\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\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">En savoir plus<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-665dbeb7 e-con-full desktopContentSection e-flex e-con e-child\" data-id=\"665dbeb7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ae0e349 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-image\" data-id=\"6ae0e349\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"600\" height=\"450\" src=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/femto_z8_neo_ultra_precise.png\" class=\"attachment-large size-large wp-image-13\" alt=\"\" srcset=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/femto_z8_neo_ultra_precise.png 600w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/femto_z8_neo_ultra_precise-300x225.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a5522ca reveal elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"2a5522ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Rendez-vous pr\u00e9op\u00e9ratoire<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d203a8a elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"1d203a8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Les mesures pr\u00e9op\u00e9ratoires permettent de v\u00e9rifier que vous ne pr\u00e9sentez aucune contre-indication (k\u00e9ratoc\u00f4ne, dystrophie, anomalies corn\u00e9ennes) \u00e0 cette intervention. C\u2019est suite aux examens pr\u00e9op\u00e9ratoires que l\u2019ophtalmologiste vous proposera la technique op\u00e9ratoire la plus adapt\u00e9e \u00e0 votre d\u00e9faut visuel.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-526c1e4 elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"526c1e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/preprod.excel-vision.eu\/defauts-visuels\/\">\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\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">En savoir plus<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3a68ab46 e-con-full desktopContentSection e-flex e-con e-child\" data-id=\"3a68ab46\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3aa9907a elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-image\" data-id=\"3aa9907a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-1024x683.jpg\" class=\"attachment-large size-large wp-image-14\" alt=\"\" srcset=\"https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-1024x683.jpg 1024w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-300x200.jpg 300w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-768x512.jpg 768w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-1536x1024.jpg 1536w, https:\/\/preprod.excel-vision.eu\/wp-content\/uploads\/2026\/03\/pexels-technobulka-8824105-scaled-1-2048x1366.jpg 2048w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a0ad5d9 reveal elementor-widget elementor-widget-heading\" data-id=\"3a0ad5d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Le jour de l'op\u00e9ration<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67470bcc elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"67470bcc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Une nouvelle vue commence pour vous !<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d4da961 elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"6d4da961\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/preprod.excel-vision.eu\/faq\/\">\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\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-right\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Trouver votre clinique<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\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\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bf47e42 e-flex e-con-boxed e-con e-child\" data-id=\"bf47e42\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_offset_mobile&quot;:100,&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7d17a8cf e-flex e-con-boxed e-con e-child\" data-id=\"7d17a8cf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;sticky_offset_mobile&quot;:0,&quot;sticky_effects_offset_mobile&quot;:0,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-77de0263 e-con-full desktopPhotos e-flex e-con e-child\" data-id=\"77de0263\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t<div class=\"elementor-element elementor-element-419b3fbd e-con-full desktopPhoto e-flex e-con e-child\" data-id=\"419b3fbd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6af4a3fd e-con-full desktopPhoto e-flex e-con e-child\" data-id=\"6af4a3fd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f7073d0 elementor-widget elementor-widget-spacer\" data-id=\"f7073d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4f6ab7bb e-con-full desktopPhoto e-flex e-con e-child\" data-id=\"4f6ab7bb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21e5c71e elementor-widget elementor-widget-spacer\" data-id=\"21e5c71e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b99f44f e-con-full desktopPhoto e-flex e-con e-child\" data-id=\"5b99f44f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-98241 elementor-widget elementor-widget-spacer\" data-id=\"98241\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-483a7dc0 e-flex e-con-boxed e-con e-parent\" data-id=\"483a7dc0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d9d6968 elementor-widget elementor-widget-html\" data-id=\"6d9d6968\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.0\/gsap.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.11.0\/ScrollTrigger.min.js\"><\/script>\r\n\r\n<script>\r\nlet mediaAnimation = gsap.matchMedia();\r\nScrollTrigger.defaults({\r\n  markers: false\r\n});\r\n\r\nconst colors = [\"#2E4D71\", \"#856546\", \"#05625C\", \"#5A483E\", \"#886648\"];\r\n\r\nmediaAnimation.add(\"(min-width: 0px)\", () => {\r\n  \/\/ Desktop animations\r\n  const details = gsap.utils.toArray(\".desktopContentSection:not(:first-child)\");\r\n  const photos = gsap.utils.toArray(\".desktopPhoto:not(:first-child)\");\r\n\r\n  gsap.set(photos, { clipPath: 'inset(100% 0% 0% 0%)', autoAlpha: 1 });\r\n\r\n  const allPhotos = gsap.utils.toArray(\".desktopPhoto\");\r\n\r\n  details.forEach((section, i) => {\r\n      let bgColor = colors[i + 1];\r\n      ScrollTrigger.create({\r\n          trigger: section,\r\n          start: \"200 bottom\",\r\n          end: \"+=100%\",\r\n          \r\n          onToggle: self => {\r\n              if (self.isActive) {\r\n                  gsap.to(\".custom-gallery\", { backgroundColor: bgColor });\r\n              } else if ((i === 0 && self.direction < 0) || (i === details.length - 1 && self.direction > 0)) {\r\n                  gsap.to(\".custom-gallery\", { backgroundColor: \"#2E4D71\" });\r\n              }\r\n          }\r\n      });\r\n  });\r\n\r\n  details.forEach((detail, index) => {\r\n      let headline = detail.querySelector(\".reveal\");\r\n      let animation = gsap.timeline()\r\n          .to(photos[index], { clipPath: 'inset(0% 0% 0% 0%)', autoAlpha: 1, duration: 1.5 })\r\n          .set(allPhotos[index], { autoAlpha: 1, duration: 1.5 });\r\n\r\n      ScrollTrigger.create({\r\n          trigger: headline,\r\n          start: \"top 120%\",\r\n          end: \"top 60%\",\r\n          animation: animation,\r\n          scrub: true,\r\n          markers: false\r\n      });\r\n  });\r\n});\r\n\r\nmediaAnimation.add(\"(max-width: 665px)\", () => {\r\n  \/\/ Mobile animations\r\n  const details = gsap.utils.toArray(\".desktopContentSection:not(:first-child)\");\r\n\r\n  details.forEach((section, i) => {\r\n      let bgColor = colors[i + 1];\r\n      ScrollTrigger.create({\r\n          trigger: section,\r\n          start: \"200 bottom\",\r\n          end: \"+=100%\",\r\n          \r\n          onToggle: self => {\r\n              if (self.isActive) {\r\n                  gsap.to(\".custom-gallery\", { backgroundColor: bgColor });\r\n              } else if ((i === 0 && self.direction < 0) || (i === details.length - 1 && self.direction > 0)) {\r\n                  gsap.to(\".custom-gallery\", { backgroundColor: \"#2E4D71\" });\r\n              }\r\n          }\r\n      });\r\n  });\r\n});\r\n<\/script>\r\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-fe01198 elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"fe01198\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;opacity-tilt&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 2600 131.1\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M0 0L2600 0 2600 69.1 0 0z\"\/>\n\t<path class=\"elementor-shape-fill\" style=\"opacity:0.5\" d=\"M0 0L2600 0 2600 69.1 0 69.1z\"\/>\n\t<path class=\"elementor-shape-fill\" style=\"opacity:0.25\" d=\"M2600 0L0 0 0 130.1 2600 69.1z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-586c3ebe reveal elementor-widget elementor-widget-heading\" data-id=\"586c3ebe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Contr\u00f4ler ma vision<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ca2d27 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"3ca2d27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/pro.excel-vision.eu\/fr\/formulaire-contact?orig=EV\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Prendre rendez-vous<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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-3712f23 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"3712f23\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e6b357c e-con-full e-flex e-con e-child\" data-id=\"e6b357c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6764117 e-con-full e-flex e-con e-child\" data-id=\"6764117\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-226a743 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"226a743\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:&quot;100&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">\u00cates-vous un professionnel de sant\u00e9 ?<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3013cd0 elementor-absolute elementor-align-center elementor-widget elementor-widget-button\" data-id=\"3013cd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/preprod.excel-vision.eu\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Non<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-379378a elementor-absolute elementor-widget elementor-widget-button\" data-id=\"379378a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/preprod.excel-vision.eu\/accueil-pro\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Oui<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<footer class=\"elementor-element elementor-element-26d77b86 e-flex e-con-boxed e-con e-parent\" data-id=\"26d77b86\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-53d4b5d7 e-con-full e-flex e-con e-child\" data-id=\"53d4b5d7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5d62b437 e-con-full e-flex e-con e-child\" data-id=\"5d62b437\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64cb0970 elementor-nav-menu__align-start elementor-nav-menu--dropdown-mobile elementor-nav-menu--stretch elementor-nav-menu__text-align-center elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu\" data-id=\"64cb0970\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;horizontal&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\\&quot;true\\&quot; class=\\&quot;e-font-icon-svg e-fas-caret-down\\&quot; viewBox=\\&quot;0 0 320 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}\" data-widget_type=\"nav-menu.default\">\n\t\t\t\t\t\t\t\t<nav aria-label=\"Menu\" class=\"elementor-nav-menu--main elementor-nav-menu__container elementor-nav-menu--layout-horizontal e--pointer-none\">\n\t\t\t\t<ul id=\"menu-1-64cb0970\" class=\"elementor-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-83\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/\" class=\"elementor-item\">Accueil<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1747\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/centres-partenaires\/\" class=\"elementor-item\">Centres partenaires<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-106\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/defauts-visuels\/\" class=\"elementor-item\">D\u00e9fauts visuels<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-108\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lastigmatisme\/\" class=\"elementor-sub-item\">L\u2019astigmatisme<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-109\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lhypermetropie\/\" class=\"elementor-sub-item\">L&rsquo;hyperm\u00e9tropie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-110\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-myopie\/\" class=\"elementor-sub-item\">La myopie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-107\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-presbytie\/\" class=\"elementor-sub-item\">La presbytie<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-278\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/techniques-operatoires\/\" class=\"elementor-item\">Techniques op\u00e9ratoires<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-283\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/pkr\/\" class=\"elementor-sub-item\">PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-282\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/trans-pkr\/\" class=\"elementor-sub-item\">Trans PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-280\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-lasik\/\" class=\"elementor-sub-item\">Femto-LASIK<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-279\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-cataracte\/\" class=\"elementor-sub-item\">Femto-CATARACTE<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-281\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/presby-lasik\/\" class=\"elementor-sub-item\">Presby-LASIK<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2880\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/valeurs\/\" class=\"elementor-item\">Nos valeurs<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-286\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/faq\/\" class=\"elementor-item\">FAQ<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-284\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/carriere\/\" class=\"elementor-item\">Carri\u00e8re<\/a><\/li>\n<\/ul>\t\t\t<\/nav>\n\t\t\t\t\t<div class=\"elementor-menu-toggle\" role=\"button\" tabindex=\"0\" aria-label=\"Men\u00fc Umschalter\" aria-expanded=\"false\">\n\t\t\t<svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--open e-font-icon-svg e-eicon-menu-bar\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M104 333H896C929 333 958 304 958 271S929 208 896 208H104C71 208 42 237 42 271S71 333 104 333ZM104 583H896C929 583 958 554 958 521S929 458 896 458H104C71 458 42 487 42 521S71 583 104 583ZM104 833H896C929 833 958 804 958 771S929 708 896 708H104C71 708 42 737 42 771S71 833 104 833Z\"><\/path><\/svg><svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--close e-font-icon-svg e-eicon-close\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z\"><\/path><\/svg>\t\t<\/div>\n\t\t\t\t\t<nav class=\"elementor-nav-menu--dropdown elementor-nav-menu__container\" aria-hidden=\"true\">\n\t\t\t\t<ul id=\"menu-2-64cb0970\" class=\"elementor-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-83\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/\" class=\"elementor-item\" tabindex=\"-1\">Accueil<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1747\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/centres-partenaires\/\" class=\"elementor-item\" tabindex=\"-1\">Centres partenaires<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-106\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/defauts-visuels\/\" class=\"elementor-item\" tabindex=\"-1\">D\u00e9fauts visuels<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-108\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lastigmatisme\/\" class=\"elementor-sub-item\" tabindex=\"-1\">L\u2019astigmatisme<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-109\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/lhypermetropie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">L&rsquo;hyperm\u00e9tropie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-110\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-myopie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">La myopie<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-107\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/la-presbytie\/\" class=\"elementor-sub-item\" tabindex=\"-1\">La presbytie<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-278\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/techniques-operatoires\/\" class=\"elementor-item\" tabindex=\"-1\">Techniques op\u00e9ratoires<\/a>\n<ul class=\"sub-menu elementor-nav-menu--dropdown\">\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-283\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/pkr\/\" class=\"elementor-sub-item\" tabindex=\"-1\">PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-282\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/trans-pkr\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Trans PKR<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-280\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-lasik\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Femto-LASIK<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-279\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/femto-cataracte\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Femto-CATARACTE<\/a><\/li>\n\t<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-281\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/presby-lasik\/\" class=\"elementor-sub-item\" tabindex=\"-1\">Presby-LASIK<\/a><\/li>\n<\/ul>\n<\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-2880\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/valeurs\/\" class=\"elementor-item\" tabindex=\"-1\">Nos valeurs<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-286\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/faq\/\" class=\"elementor-item\" tabindex=\"-1\">FAQ<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-284\"><a href=\"https:\/\/preprod.excel-vision.eu\/de\/carriere\/\" class=\"elementor-item\" tabindex=\"-1\">Carri\u00e8re<\/a><\/li>\n<\/ul>\t\t\t<\/nav>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-657c740b e-con-full e-flex e-con e-child\" data-id=\"657c740b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-455dc679 elementor-widget elementor-widget-heading\" data-id=\"455dc679\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">+ 33 3 90 40 26 91\n<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4eb4abc4 e-con-full e-flex e-con e-child\" data-id=\"4eb4abc4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2240f4fb e-con-full e-flex e-con e-child\" data-id=\"2240f4fb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53491855 elementor-widget elementor-widget-heading\" data-id=\"53491855\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/preprod.excel-vision.eu\/mentions-legales\/\">Mentions l\u00e9gales<\/a><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6870b535 e-con-full e-flex e-con e-child\" data-id=\"6870b535\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c6bf62b e-grid-align-right e-grid-align-mobile-center elementor-shape-rounded elementor-grid-0 elementor-widget elementor-widget-social-icons\" data-id=\"4c6bf62b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"social-icons.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-social-icons-wrapper elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-linkedin elementor-repeater-item-a229ff5\" href=\"https:\/\/www.linkedin.com\/company\/excel-vision\/posts\/?feedView=all\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Linkedin<\/span>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-linkedin\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"><\/path><\/svg>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-facebook-f elementor-repeater-item-993ef04\" href=\"https:\/\/www.facebook.com\/cliniqueExcelVision\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Facebook-f<\/span>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-facebook-f\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"><\/path><\/svg>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<span class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t<a class=\"elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-f4f16ac\" href=\"https:\/\/www.youtube.com\/@excelvision1213\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-screen-only\">Youtube<\/span>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-youtube\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"><\/path><\/svg>\t\t\t\t\t<\/a>\n\t\t\t\t<\/span>\n\t\t\t\t\t<\/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\t<\/div>\n\t\t\t\t<\/footer>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Chirurgie r\u00e9fractive Un r\u00e9seau de cliniques sp\u00e9cialis\u00e9es dans le traitement des d\u00e9fauts visuels au laser Prendre rendez-vous Leader Europ\u00e9en +9 CHU partenaires +120 partenaires ophtalmologues + de 6000 proc\u00e9dures annuelles Nos centres partenaires EXCEL VISION Nos centres partenaires S\u00e9lectionnez une r\u00e9gion pour d\u00e9couvrir les centres partenaires disponibles. Tous France Belgique Allemagne Centre partenaire R\u00c9GION S\u00c9LECTIONN\u00c9E [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-31","page","type-page","status-publish","hentry","category-patient"],"_links":{"self":[{"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/pages\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":476,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/pages\/31\/revisions"}],"predecessor-version":[{"id":3598,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/pages\/31\/revisions\/3598"}],"wp:attachment":[{"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/preprod.excel-vision.eu\/de\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}