{"id":15,"date":"2025-05-06T12:47:26","date_gmt":"2025-05-06T12:47:26","guid":{"rendered":"https:\/\/drcuno.aif-staging.com\/?page_id=15"},"modified":"2025-08-25T14:37:56","modified_gmt":"2025-08-25T14:37:56","slug":"home","status":"publish","type":"page","link":"https:\/\/drcuno.aif-staging.com\/de\/","title":{"rendered":"Startseite"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#000000\u2033 custom_margin=\"-80px||||false|false\" custom_padding=\"0px||0px||false|false\" custom_css_main_element=\"height: 100px;\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"0px||0px||true|false\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 custom_padding_last_edited=\"on|phone\" module_id=\"home-hero\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#000000\u2033 background_enable_image=\"off\" background_size=\"contain\" custom_margin=\"||||false|false\" custom_padding=\"100px||||false|false\" custom_padding_tablet=\"80px||||false|false\" custom_padding_phone=\"50px||0px||false|false\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"height: calc(100vh - 100px) !important;||\"][et_pb_row column_structure=\"2_3,1_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text module_class=\"gsap-diapo-up play-again revert\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_heading_font||||||||\" text_text_color=\"#FFFFFF\" text_font_size=\"32px\" text_letter_spacing=\"0.2em\" text_line_height=\"1em\" text_font_size_tablet=\"27px\" text_font_size_phone=\"22px\" text_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<p>Dr.<br \/>Alexander<br \/>Cuno<\/p>\n<p>[\/et_pb_text][et_pb_text module_class=\"gsap-diapo-up play-again revert\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|300|||||||\" text_text_color=\"#FFFFFF\" text_font_size=\"20px\" text_letter_spacing=\"1px\" header_font=\"|300|||||||\" header_text_color=\"#FFFFFF\" header_font_size=\"70px\" max_width=\"480px\" max_width_tablet=\"480px\" max_width_phone=\"480px\" max_width_last_edited=\"on|desktop\" custom_margin=\"150px||150px||true|false\" custom_margin_tablet=\"100px||100px||true|false\" custom_margin_phone=\"80px||80px|||true|false\" custom_margin_last_edited=\"on|phone\" header_font_size_tablet=\"55px\" header_font_size_phone=\"35px\" header_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h1>Gesichtsplastik<br \/>\n<strong>&amp; HNO-Arzt<\/strong><br \/>\n<em>in Genf<\/em><\/h1>\n<p>Raffinierte \u00c4sthetik und chirurgische Perfektion[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text disabled_on=\"on|on|off\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_orientation=\"right\" custom_margin=\"250px||||false|false\" global_colors_info=\"{}\"]<\/p>\n    <!-- HTML -->\r\n    <div class=\"consultation-block\" onclick=\"window.location.href='\/contact-us\/';\">\r\n        <div class=\"line\">\r\n            <span class=\"arrow-head\"><\/span>\r\n        <\/div>\r\n        <img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\" alt=\"Book a consultation\" class=\"consultation-icon\">\r\n        <p class=\"consultation-text\">Buchen Sie eine Beratung<\/p>\r\n    <\/div>\r\n\r\n    <!-- CSS -->\r\n    <style>\r\n        .consultation-block {\r\n            position: relative;\r\n            width: 100px;\r\n            height: 180px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            justify-content: center;\r\n            text-align: center;\r\n            overflow: hidden;\r\n            cursor: pointer;\r\n            background-color: transparent;\r\n\t\t\tmargin-right: 0;\r\n\t\t\tmargin-left: auto;\r\n        }\r\n\r\n        .line {\r\n            position: absolute;\r\n            top: 10px;\r\n            left: calc(50% - 0.5px);\r\n            width: 1px;\r\n            height: 35px;\r\n            background-color: #fff;\r\n            will-change: top;\r\n\t\t\ttransform: translateX(-50%);\r\n        }\r\n\r\n        .arrow-head {\r\n            position: absolute;\r\n            width: 8px;\r\n            height: 8px;\r\n            top: -5px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background: url('https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/arrow-top-2.png') no-repeat center center;\r\n            background-size: contain;\r\n            opacity: 0;\r\n            pointer-events: none;\r\n        }\r\n\r\n        .consultation-icon {\r\n            width: 35px;\r\n            height: 35px;\r\n            transition: transform 0.15s ease;\r\n        }\r\n\r\n        .consultation-text {\r\n            font-weight: bold;\r\n            margin-top: 5px;\r\n            color: #fff;\r\n            font-size: 13px !important;\r\n            transition: opacity 0.3s ease;\r\n            line-height: 1.3em !important;\r\n        }\r\n\r\n        .consultation-block:hover .consultation-text {\r\n            opacity: 1;\r\n        }\r\n\r\n        .consultation-block:hover .consultation-icon {\r\n            transform: scale(1.1);\r\n        }\r\n    <\/style>\r\n\r\n    <!-- JS -->\r\n    <script>\r\n    document.addEventListener(\"DOMContentLoaded\", function () {\r\n        const block = document.querySelector('.consultation-block');\r\n        const line = document.querySelector('.line');\r\n        const icon = document.querySelector('.consultation-icon');\r\n        const arrowHead = document.querySelector('.arrow-head');\r\n\r\n        let lineTimeline = null;\r\n        let arrowTween = null;\r\n        let iconTween = null;\r\n\r\n        block.addEventListener('mouseenter', () => {\r\n            \/\/ Stop les animations pr\u00e9c\u00e9dentes\r\n            if (lineTimeline) lineTimeline.kill();\r\n            if (arrowTween) arrowTween.kill();\r\n            if (iconTween) iconTween.kill();\r\n\r\n            \/\/ Cr\u00e9e une nouvelle timeline pour la ligne avec rebond\r\n            lineTimeline = gsap.timeline();\r\n\r\n            lineTimeline.to(line, {\r\n                duration: 0.5,\r\n                top: '147px',\r\n                ease: 'power2.out'\r\n            }).to(line, {\r\n                duration: 0.2,\r\n                top: '144px',\r\n                ease: 'power1.out'\r\n            }, \">0\");\r\n\r\n            \/\/ Fl\u00e8che : apparition diff\u00e9r\u00e9e\r\n            arrowTween = gsap.to(arrowHead, {\r\n                delay: 0.4,\r\n                duration: 0.2,\r\n                opacity: 1,\r\n                ease: 'power1.out'\r\n            });\r\n\r\n            \/\/ Ic\u00f4ne : changement rapide\r\n            iconTween = gsap.to(icon, {\r\n                duration: 0.1,\r\n                onComplete: () => {\r\n                    icon.src = \"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white-hover.png\";\r\n                }\r\n            });\r\n        });\r\n\r\n        block.addEventListener('mouseleave', () => {\r\n            \/\/ Stop les animations pr\u00e9c\u00e9dentes\r\n            if (lineTimeline) lineTimeline.kill();\r\n            if (arrowTween) arrowTween.kill();\r\n            if (iconTween) iconTween.kill();\r\n\r\n            \/\/ Ligne retour vers le haut\r\n            lineTimeline = gsap.timeline();\r\n\r\n            lineTimeline.to(line, {\r\n                duration: 0.2,\r\n                top: '10px',\r\n                ease: 'bounce.out'\r\n            });\r\n\r\n            \/\/ Fl\u00e8che disparition imm\u00e9diate\r\n            arrowTween = gsap.to(arrowHead, {\r\n                duration: 0.15,\r\n                opacity: 0\r\n            });\r\n\r\n            \/\/ Ic\u00f4ne retour\r\n            iconTween = gsap.to(icon, {\r\n                duration: 0.1,\r\n                onComplete: () => {\r\n                    icon.src = \"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\";\r\n                }\r\n            });\r\n        });\r\n    });\r\n<\/script>\r\n\r\n    \n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text module_class=\"lined-title\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_2_text_align=\"center\" header_2_font_size=\"80px\" header_2_line_height=\"1.3em\" max_width=\"650px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"on|tablet\" module_alignment=\"center\" header_2_font_size_tablet=\"55px\" header_2_font_size_phone=\"35px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h2><span class=\"gsap-diapo-up play-again\">Die Gesichtschirurgie ist eine<\/span><br \/><span class=\"gsap-diapo-up play-again\">eine Frage des Vertrauens.<\/span><br \/><span class=\"gsap-diapo-up play-again\">Hier ist der Grund, warum Sie dabei sind<\/span><br \/><span class=\"gsap-diapo-up play-again\">gute H\u00e4nde.<\/span><\/h2>\n<p>[\/et_pb_text][et_pb_text module_class=\"gsap-diapo-up play-again revert\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|-et_global_body_font_weight|||||||\" text_line_height=\"1.6em\" text_orientation=\"center\" max_width=\"500px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"on|tablet\" module_alignment=\"center\" global_colors_info=\"{}\"]<\/p>\n<p>Als doppelt zertifizierter Gesichtschirurg ist Dr. Cuno auf prim\u00e4re und revidierte Nasenkorrekturen spezialisiert. Seine Philosophie? Nat\u00fcrlichkeit, Pr\u00e4zision, Kunstfertigkeit und Diskretion.<\/p>\n<p>Dr. Cuno und sein Expertenteam werden daf\u00fcr sorgen, dass Sie sich w\u00e4hrend der gesamten Reise wohl, informiert und sicher f\u00fchlen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 custom_padding_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding_tablet=\"\" custom_padding_phone=\"0px||||false|false\" global_colors_info=\"{}\"][et_pb_row custom_padding_last_edited=\"on|phone\" module_class=\"offer-clinic\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#000000\u2033 custom_padding=\"50px|70px|50px|70px|true|true\" custom_padding_tablet=\"50px|70px|50px|70px|true|true\" custom_padding_phone=\"50px|30px|50px|30px|true|true\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFF\" text_line_height=\"1.6em\" max_width=\"500px\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>In der Klinik von Dr. Cuno in Genf kombinieren wir Fachwissen, Pr\u00e4zision und die neueste Technologie, um Ihnen fachm\u00e4nnische Ergebnisse der plastischen Gesichtschirurgie zu liefern, die nat\u00fcrlich und auf Ihre individuellen Bed\u00fcrfnisse zugeschnitten sind.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFFFF\" header_2_line_height=\"1.5em\" max_width=\"330px\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h2>Unser <strong>modernste Klinik im Herzen von Genf<\/strong> Angebote:<\/h2>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-1%22>Hochmoderne Technologie<\/span><\/h3>\n<p>\"content_phone=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-1%22>Topaktuell<br \/>Technologie<\/span><\/h3>\n<p>\" content_last_edited=\"on|desktop\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_3_font=\"|300|||||||\" header_3_text_color=\"#FFFFFFFF\" header_3_font_size=\"50px\" header_3_line_height=\"1.1em\" custom_margin_tablet=\"\" custom_margin_phone=\"||14px||false|false\" custom_margin_last_edited=\"on|phone\" custom_padding=\"20px||||false|false\" header_3_font_size_tablet=\"35px\" header_3_font_size_phone=\"28px\" header_3_font_size_last_edited=\"on|phone\" border_width_top=\"1px\" border_color_top=\"#FFFFFF\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"off|phone\" custom_css_main_element_phone=\"max-width: 250px !important;\"]<\/p>\n<h3><span class=\"to-italic image-change-1\">Hochmoderne Technologie<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-2%22>Einrichtungen von Weltklasse<\/span><\/h3>\n<p>\"content_phone=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-2%22>Weltklasse<br \/>\nEinrichtungen<\/span><\/h3>\n<p>\" content_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_3_font=\"|300|||||||\" header_3_text_color=\"#FFFFFFFF\" header_3_font_size=\"50px\" header_3_line_height=\"1.1em\" custom_margin_tablet=\"\" custom_margin_phone=\"||14px||false|false\" custom_margin_last_edited=\"on|phone\" custom_padding=\"20px||||false|false\" header_3_font_size_tablet=\"35px\" header_3_font_size_phone=\"28px\" header_3_font_size_last_edited=\"on|phone\" border_width_top=\"1px\" border_color_top=\"#FFFFFF\" global_colors_info=\"{}\"]<\/p>\n<h3><span class=\"to-italic image-change-2\">Einrichtungen von Weltklasse<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-3%22>Ein Engagement f\u00fcr Komfort und Sicherheit<\/span><\/h3>\n<p>\"content_phone=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-3%22>Eine Verpflichtung<br \/>\nzum Trost<br \/>\n&amp; Sicherheit<\/span><\/h3>\n<p>\" content_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_3_font=\"|300|||||||\" header_3_text_color=\"#FFFFFFFF\" header_3_font_size=\"50px\" header_3_line_height=\"1.1em\" custom_margin_tablet=\"\" custom_margin_phone=\"||14px||false|false\" custom_margin_last_edited=\"on|phone\" custom_padding=\"20px||||false|false\" header_3_font_size_tablet=\"35px\" header_3_font_size_phone=\"28px\" header_3_font_size_last_edited=\"on|phone\" border_width_top=\"1px\" border_color_top=\"#FFFFFF\" global_colors_info=\"{}\"]<\/p>\n<h3><span class=\"to-italic image-change-3\">Ein Engagement f\u00fcr Komfort und Sicherheit<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-4%22>Personalisierte Pflege<\/span><\/h3>\n<p>\"content_phone=\"<\/p>\n<h3><span class=\"%22to-italic\" image-change-4%22>Personalisierte<br \/>\ncarey<\/span><\/h3>\n<p>\" content_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_3_font=\"|300|||||||\" header_3_text_color=\"#FFFFFFFF\" header_3_font_size=\"50px\" header_3_line_height=\"1.1em\" custom_margin_tablet=\"\" custom_margin_phone=\"||||false|false\" custom_margin_last_edited=\"on|phone\" custom_padding=\"20px||20px||true|false\" custom_padding_tablet=\"20px||20px||true|false\" custom_padding_phone=\"||14px||false|false\" custom_padding_last_edited=\"on|phone\" header_3_font_size_tablet=\"35px\" header_3_font_size_phone=\"28px\" header_3_font_size_last_edited=\"on|phone\" border_width_top=\"1px\" border_color_top=\"#FFFFFF\" border_width_bottom=\"1px\" border_color_bottom=\"#FFFFFF\" global_colors_info=\"{}\"]<\/p>\n<h3><span class=\"to-italic image-change-4\">Personalisierte Pflege<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text disabled_on=\"off|off|on\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFFFF\" text_line_height=\"1.6em\" module_alignment=\"left\" custom_margin=\"||||false|false\" custom_padding=\"15px||||false|false\" global_colors_info=\"{}\"]<\/p>\n<p>Ob Sie nun erw\u00e4gen <strong>\u00e4sthetische Gesichtschirurgie<\/strong> zum ersten Mal oder auf der Suche nach einem <strong>\u00dcberarbeitungsverfahren<\/strong>wird jede Behandlung sorgf\u00e4ltig auf Ihre individuellen Bed\u00fcrfnisse zugeschnitten, um die <strong>die ausgewogensten und nat\u00fcrlichsten Ergebnisse.<\/strong><\/p>\n<p>[\/et_pb_text][et_pb_text disabled_on=\"off|off|on\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFFFF\" text_line_height=\"1.6em\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>Mit <strong>Doppelbrett-Zertifizierung<\/strong> in <strong>Gesichtsplastik<\/strong> und rekonstruktive Chirurgie und <strong>HNO-\/Kopf- und Halschirurgie<\/strong>Dr. Cuno verbindet technische Exzellenz mit einem k\u00fcnstlerischen Auge in einem diskreten, luxuri\u00f6sen Rahmen, der mit den neuesten Entwicklungen in der Medizintechnik ausgestattet ist.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\"1_2,1_2\u2033 custom_padding_last_edited=\"on|phone\" disabled_on=\"on|on|off\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#000000\u2033 custom_padding=\"30px|70px|50px|70px|false|true\" custom_padding_tablet=\"0px||||false|true\" custom_padding_phone=\"30px|30px|30px|30px|true|true\" global_colors_info=\"{}\"][et_pb_column type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFFFF\" text_line_height=\"1.6em\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>Ob Sie nun erw\u00e4gen <strong>\u00e4sthetische Gesichtschirurgie<\/strong> zum ersten Mal oder auf der Suche nach einem <strong>\u00dcberarbeitungsverfahren<\/strong>wird jede Behandlung sorgf\u00e4ltig auf Ihre individuellen Bed\u00fcrfnisse zugeschnitten, um die <strong>die ausgewogensten und nat\u00fcrlichsten Ergebnisse.<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFF\" text_line_height=\"1.6em\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>Mit <strong>Doppelbrett-Zertifizierung<\/strong> in <strong>Gesichtsplastik<\/strong> und rekonstruktive Chirurgie und <strong>HNO-\/Kopf- und Halschirurgie<\/strong>Dr. Cuno verbindet technische Exzellenz mit einem k\u00fcnstlerischen Auge in einem diskreten, luxuri\u00f6sen Rahmen, der mit den neuesten Entwicklungen in der Medizintechnik ausgestattet ist.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 custom_padding_last_edited=\"on|tablet\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"||0px||false|false\" custom_padding_tablet=\"||0px||false|false\" custom_padding_phone=\"0px||0px||false|false\" global_colors_info=\"{}\"][et_pb_row column_structure=\"1_2,1_2\u2033 custom_padding_last_edited=\"on|desktop\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"|5%||5%|false|true\" custom_padding_tablet=\"|0%||0%|false|true\" custom_padding_phone=\"|0%||0%|false|true\" global_colors_info=\"{}\"][et_pb_column type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_2_text_align=\"left\" header_2_font_size=\"80px\" max_width=\"380px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"off|desktop\" module_alignment=\"left\" custom_margin_tablet=\"\" custom_margin_phone=\"||-15px||false|false\" custom_margin_last_edited=\"on|phone\" header_2_font_size_tablet=\"55px\" header_2_font_size_phone=\"35px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h2>Was unsere Patienten sagen<\/h2>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"280px\" custom_margin=\"||15px||false|false\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" global_colors_info=\"{}\"]<\/p>\n<p>Authentische Erfahrungen, echte Ver\u00e4nderungen<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|-et_global_body_font_weight|||||||\" text_line_height=\"1.6em\" max_width=\"600px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"on|tablet\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>Vertrauen wird durch echte Geschichten geschaffen. Unsere Patienten erz\u00e4hlen von ihrem Weg - von ihren anf\u00e4nglichen Bedenken bis hin zur Behandlung und dem Vertrauen, das sie gewonnen haben. Ihre Worte spiegeln die Pr\u00e4zision, das Fachwissen und die Hingabe wider, die unseren Ansatz ausmachen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row custom_padding_last_edited=\"on|desktop\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"|5%||5%|false|true\" custom_padding_tablet=\"|0%||0%|false|true\" custom_padding_phone=\"|0%||0%|false|true\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_slider arrows_custom_color=\"#000000\u2033 dot_nav_custom_color=\"#000000\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"RGBA(255,255,255,0)\" custom_padding=\"0px||70px||false|false\" global_colors_info=\"{}\"][et_pb_slide _builder_version=\"4.27.4\u2033 _module_preset=\"default\" body_font=\"-et_global_heading_font||on||||||\" body_text_color=\"#000000\u2033 body_font_size=\"36px\" body_letter_spacing=\"1px\" body_line_height=\"1.5em\" body_font_size_tablet=\"30px\" body_font_size_phone=\"22px\" body_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\" sticky_transition=\"on\"]\"Ich sehe immer noch aus wie ich selbst, nur um Jahre j\u00fcnger und erfrischter. Der gesamte Prozess war fantastisch. Dr. Cuno und sein gesamtes Team haben mir das Gef\u00fchl gegeben, dass ich mich w\u00e4hrend des gesamten Prozesses wohl und entspannt f\u00fchle.\"<br \/>\n<span class=\"name-review\">Sophie<\/span>[\/et_pb_slide][et_pb_slide _builder_version=\"4.27.4\u2033 _module_preset=\"default\" body_font=\"-et_global_heading_font||on||||||\" body_text_color=\"#000000\u2033 body_font_size=\"36px\" body_letter_spacing=\"1px\" body_line_height=\"1.5em\" body_font_size_tablet=\"30px\" body_font_size_phone=\"22px\" body_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\" sticky_transition=\"on\"]\"Ich sehe immer noch aus wie ich selbst, nur um Jahre j\u00fcnger und erfrischter. Der gesamte Prozess war fantastisch. Dr. Cuno und sein gesamtes Team haben mir das Gef\u00fchl gegeben, dass ich mich w\u00e4hrend des gesamten Prozesses wohl und entspannt f\u00fchle.\"<br \/>\n<span class=\"name-review\">Sophie<\/span>[\/et_pb_slide][\/et_pb_slider][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 use_custom_gutter=\"on\" gutter_width=\"1\u2033 specialty=\"on\" custom_padding_last_edited=\"on|phone\" padding_top_2=\"0px\" padding_right_1=\"0px\" padding_right_2=\"0px\" padding_bottom_2=\"0px\" padding_left_1=\"0px\" padding_left_2=\"0px\" padding_top_bottom_link_1=\"false\" padding_top_bottom_link_2=\"true\" padding_left_right_link_1=\"true\" padding_left_right_link_2=\"true\" module_id=\"teambloc\" module_class=\"vcenter-left-col gsap-diapo-up play-again revert\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"RGBA(255,255,255,0)\" inner_width=\"100%\" inner_width_tablet=\"100%\" inner_width_phone=\"100%\" inner_width_last_edited=\"on|phone\" inner_max_width=\"100%\" inner_max_width_tablet=\"1280px\" inner_max_width_phone=\"1280px\" inner_max_width_last_edited=\"on|tablet\" custom_margin=\"||||false|false\" custom_margin_tablet=\"||0px||false|false\" custom_margin_phone=\"||0px||false|false\" custom_margin_last_edited=\"on|tablet\" custom_padding=\"|0px|0px|0px|false|true\" custom_padding_tablet=\"|0px|0px|0px|false|true\" custom_padding_phone=\"0px|0px|0px|0px|false|true\" custom_css_main_element=\"z-index: 4;\" global_colors_info=\"{}\"][et_pb_column type=\"1_2\u2033 specialty_columns=\"2\u2033 _builder_version=\"4.16\u2033 custom_padding=\"|||\" global_colors_info=\"{}\" custom_padding__hover=\"|||\"][et_pb_row_inner custom_padding_last_edited=\"on|desktop\" module_class=\"vcentered-col\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#f1f1f1\u2033 custom_padding=\"140px|20%|140px|20%|true|true\" custom_padding_tablet=\"70px|10%|70px|10%|true|true\" custom_padding_phone=\"70px|10%|70px|10%|true|true\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"off|desktop\" custom_css_main_element_tablet=\"height: fit-content !important;\"][et_pb_column_inner saved_specialty_column_type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_heading_font||||||||\" text_font_size=\"24px\" header_2_font_size=\"38px\" header_2_line_height=\"1.3em\" custom_margin=\"||3px||false|false\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|phone\" header_2_font_size_tablet=\"38px\" header_2_font_size_phone=\"32px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<p>Darf ich vorstellen: Dr. Alexander Cuno:<\/p>\n<h2 style=\"margin-top: 10px;\">Mit chirurgischer Pr\u00e4zision Vertrauen schaffen<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|300|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_letter_spacing=\"1px\" text_font_size_tablet=\"20px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|tablet\" global_colors_info=\"{}\"]<\/p>\n<p>Sicherheit, Komfort und nat\u00fcrliche Ergebnisse<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=\"https:\/\/drcuno.aif-staging.com\/alexander-cuno\/\" button_text=\"Mehr erfahren\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_button=\"on\" button_text_size=\"14px\" button_text_color=\"#FFFFFF\" button_bg_color=\"#000000\u2033 button_border_width=\"1px\" button_border_color=\"#000000\u2033 button_border_radius=\"25px\" button_letter_spacing=\"1px\" button_font=\"-et_global_body_font|500|||||||\" button_use_icon=\"off\" custom_margin_tablet=\"20px||20px||true|false\" custom_margin_phone=\"20px||20px||true|false\" custom_margin_last_edited=\"on|tablet\" custom_padding=\"6px|20px|6px|20px|true|true\" global_colors_info=\"{}\" button_text_color__hover=\"#000000\u2033 button_text_color__hover_enabled=\"on|desktop\" button_bg_color__hover=\"RGBA(255,255,255,0)\" button_bg_color__hover_enabled=\"on|desktop\" button_border_color__hover=\"#FFFFFF\" button_border_color__hover_enabled=\"off|desktop\" button_bg_enable_color__hover=\"on\"][\/et_pb_button][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]Dr. Cunos umfangreiche internationale Erfahrung in der Gesichtsplastik und in der HNO-Chirurgie gew\u00e4hrleistet h\u00f6chste Standards in Funktion und Form.<\/p>\n<p>Er hat eine spezielle Ausbildung in der Nasen- und \u00e4sthetischen Gesichtschirurgie absolviert, einschlie\u00dflich eines angesehenen Stipendiums f\u00fcr plastische und rekonstruktive Gesichtschirurgie in Australien.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner disabled_on=\"off|off|on\" admin_label=\"Row\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_image=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/07\/dr-cuno-01.jpg\" background_position=\"top_center\" height_last_edited=\"off|phone\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_tablet=\"height: 700px\" custom_css_main_element_phone=\"height: 450px\"][et_pb_column_inner saved_specialty_column_type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_css_main_element=\"min-height: 550px !important;\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"min-height: 400px !important;\" custom_css_main_element_tablet=\"min-height: 550px !important;\"][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][et_pb_column type=\"1_2\u2033 admin_label=\"Column\" _builder_version=\"4.16\u2033 custom_padding=\"|||\" global_colors_info=\"{}\" custom_padding__hover=\"|||\"][et_pb_image src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/07\/dr-cuno-01.jpg\" alt=\"klinik-chirurgie-in-der-schweiz-geneva\" title_text=\"dr-cuno-01\u2033 disabled_on=\"on|on|off\" admin_label=\"Image\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" width_tablet=\"\" width_phone=\"\" width_last_edited=\"on|phone\" animation_direction=\"right\" custom_css_main_element=\"z-index: 999999999999 !important;\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_tablet=\"z-index: 999999999999 !important;\" custom_css_main_element_phone=\"z-index: 999999999999 !important;\"][\/et_pb_image][\/et_pb_column][\/et_pb_section][et_pb_section fb_built=\"1\u2033 disabled_on=\"off|off|off\" module_id=\"head3d\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#0b0c10\u2033 custom_padding=\"||||false|false\" custom_css_main_element=\"z-index: 5 !important;\" global_colors_info=\"{}\"][et_pb_row custom_padding_last_edited=\"on|desktop\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_margin=\"||||false|false\" custom_margin_tablet=\"||0px||false|false\" custom_margin_last_edited=\"off|desktop\" custom_padding=\"|5%|0px|5%|false|true\" custom_padding_tablet=\"|0%||0%|false|true\" custom_padding_phone=\"|0%||0%|false|true\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_css_main_element=\"margin-bottom: -180px !important;\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|tablet\" custom_css_main_element_tablet=\"margin-bottom: 0px !important;\" custom_css_main_element_phone=\"margin-bottom: 0px !important;\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_2_text_align=\"left\" header_2_text_color=\"#FFFFFF\" header_2_font_size=\"80px\" max_width=\"380px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"off|desktop\" module_alignment=\"left\" custom_margin=\"||10px||false|false\" custom_margin_tablet=\"\" custom_margin_phone=\"||-15px||false|false\" custom_margin_last_edited=\"on|phone\" header_2_font_size_tablet=\"55px\" header_2_font_size_phone=\"35px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h2>Behandlungen<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|500|||||||\" text_text_color=\"#FFFFFFFF\" text_line_height=\"1.6em\" max_width=\"400px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"on|tablet\" module_alignment=\"left\" global_colors_info=\"{}\"]<\/p>\n<p>Jedes Gesicht ist einzigartig, und das gilt auch f\u00fcr jede Behandlung. Ganz gleich, ob es darum geht, die nat\u00fcrlichen Gesichtsz\u00fcge zu betonen, fr\u00fchere Eingriffe zu korrigieren oder funktionelle Probleme zu beheben - unser Ansatz ist sorgf\u00e4ltig, individuell und darauf ausgerichtet, das beste Ergebnis f\u00fcr Sie zu erzielen.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\"4.27.4\u2033 _module_preset=\"default\" width=\"100%\" max_width=\"1920px\" custom_padding=\"0px||0px||true|false\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text disabled_on=\"on|on|off\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_margin=\"||||false|false\" custom_padding=\"||||false|false\" custom_css_main_element=\"margin-top: -350px !important;||margin-bottom: -350px !important;\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"off|desktop\"]<\/p>\n    <div id=\"gltf-container-69fb2212de6d8\" style=\"width: 100%; height: 2600px; min-height: 2600px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-69fb2212de6d8 {\r\n            width: 100% !important;\r\n            height: 2600px !important;\r\n            min-height: 2600px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-69fb2212de6d8 canvas {\r\n            width: 100% !important;\r\n            height: 100% !important;\r\n        }\r\n\/* Initialiser l'\u00e9tat d'arriv\u00e9e smooth des textes *\/\r\n.threedmessage-1,\r\n.threedmessage-2,\r\n.threedmessage-3,\r\n.threedmessage-4,\r\n.threedmessage-5 {\r\n    opacity: 0;\r\n    transform: translateY(20px);\r\n    transition: none;\r\n}\t\t\r\n\t\t\r\n        \/* Responsive: toujours afficher les messages *\/\r\n@media screen and (max-width: 981px) {\r\n    .threedmessage-1,\r\n    .threedmessage-2,\r\n    .threedmessage-3,\r\n    .threedmessage-4,\r\n    .threedmessage-5 {\r\n        display: block !important;\r\n        opacity: 1 !important;\r\n        transform: translateY(0) !important;\r\n        pointer-events: auto !important;\r\n    }\r\n}\r\n@-moz-document url-prefix() {\r\n  [class*=\"threedmessage-\"] {\r\n    display: block !important;\r\n  }\r\n}\r\n\r\n\r\n    <\/style>\r\n    <script>\r\n        window.addEventListener('load', function() {\r\n\t\t\tconst isMobile = window.innerWidth <= 981;\r\n\t\t\tconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\nif (isMobile) {\r\n    \/\/ Forcer l'affichage statique des messages sans interactivit\u00e9 pour tablette et mobile, avec ajout de if (isMobile) return; un peu partout\r\n    document.querySelectorAll('[class*=\"threedmessage-\"]').forEach(el => {\r\n        el.style.display = 'block';\r\n        el.style.opacity = '1';\r\n        el.style.transform = 'translateY(0)';\r\n        el.style.pointerEvents = 'none';\r\n    });\r\n}\r\n\r\n            if (typeof THREE === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof THREE.GLTFLoader === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof gsap === 'undefined') {\r\n                return;\r\n            }\r\n\r\n            const container = document.getElementById('gltf-container-69fb2212de6d8');\r\n\r\n            if (!container) {\r\n                return;\r\n            }\r\n\t\t\tconst messZoneTop = 350;\r\nconst messZoneBottom = 600;\r\n\r\n            let messageBlocks = [];\r\n            let blockOffsets = [];\r\n            let hoveredBlockIndex = -1;\r\n            let lastHoveredBlockIndex = -1;\r\n            let currentMessageIndex = -1;\r\n            let isHoveringBlock = false;\r\n            let canvasRect = null;\r\n            const zoomMessageFactor = 0.7;\r\n\t\t\tconst zoomMessageSpeed = 1.5;\r\n\t\t\t\r\n            const updateCanvasRect = () => {\r\n                canvasRect = container.getBoundingClientRect();\r\n            };\r\n\r\n            const updateMessageBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                const groupedBlocks = {};\r\n                Array.from(document.querySelectorAll('[class*=\"threedmessage-\"]'))\r\n                    .filter(el => el.className.match(\/threedmessage-\\d+\/))\r\n                    .forEach(el => {\r\n                        const match = el.className.match(\/threedmessage-(\\d+)\/);\r\n                        if (!match) return;\r\n                        const key = match[1];\r\n                        if (!groupedBlocks[key]) {\r\n                            groupedBlocks[key] = [];\r\n                        }\r\n                        groupedBlocks[key].push(el);\r\n                    });\r\n\r\n                const sortedKeys = Object.keys(groupedBlocks).sort((a, b) => parseInt(a) - parseInt(b));\r\n\r\n                messageBlocks = sortedKeys.map(k => groupedBlocks[k]);\r\n                blockOffsets = sortedKeys.map(k => {\r\n                    const group = groupedBlocks[k];\r\n                    const offsets = { top: 0, bottom: 0, left: 0, right: 0 };\r\n                    group.forEach(block => {\r\n                        const classes = block.className.split(' ');\r\n                        classes.forEach(cls => {\r\n                            if (cls.match(\/^zone(top|bottom|left|right)-?\\d+$\/)) {\r\n                                const match = cls.match(\/^zone(top|bottom|left|right)-?(\\d+)$\/);\r\n                                if (match) {\r\n                                    const type = match[1].toLowerCase();\r\n                                    const value = parseFloat(match[2]);\r\n                                    if (!isNaN(value)) {\r\n                                        offsets[type] = value \/ 100;\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    });\r\n                    return offsets;\r\n                });\r\n\r\n                messageBlocks.flat().forEach(block => {\r\n                    block.style.display = 'none';\r\n                    block.style.opacity = '0';\r\n                    block.style.transform = 'translateY(20px)';\r\n                    if (!isFirefox) {\r\n    block.addEventListener('mouseover', () => {\r\n        const match = block.className.match(\/threedmessage-(\\d+)\/);\r\n        if (!match) return;\r\n        const index = sortedKeys.indexOf(match[1]);\r\n        hoveredBlockIndex = index;\r\n        lastHoveredBlockIndex = index;\r\n        if (currentMessageIndex !== index) {\r\n            showMessageBlock(index);\r\n            currentMessageIndex = index;\r\n        }\r\n    });\r\n\r\n    block.addEventListener('mouseout', () => {\r\n        hoveredBlockIndex = -1;\r\n        if (currentMessageIndex !== -1 && messageBlocks[currentMessageIndex]) {\r\n            showMessageBlock(currentMessageIndex);\r\n        }\r\n    });\r\n}\r\nif (isFirefox) {\r\n    block.addEventListener('mouseenter', () => {\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n        block.style.transition = 'opacity 0.4s ease-out, transform 0.4s ease-out';\r\n    });\r\n\r\n    block.addEventListener('mouseleave', () => {\r\n        block.style.opacity = '0';\r\n        block.style.visibility = 'hidden';\r\n        block.style.pointerEvents = 'none';\r\n        block.style.transition = 'opacity 0.3s ease-in, transform 0.3s ease-in';\r\n    });\r\n}\r\n\r\n                });\r\n            };\r\n\r\n            const showMessageBlock = (index) => {\r\n\t\t\t\tif (isMobile) return;\r\n                messageBlocks.forEach((group, i) => {\r\n                    group.forEach(block => {\r\n                        gsap.killTweensOf(block);\r\n                        if (i === index) {\r\n                            if (block.style.display !== 'block') {\r\n    block.style.display = 'block';\r\n    block.style.opacity = '0';\r\n    block.style.transform = 'translateY(20px)';\r\n}\r\n\r\ngsap.killTweensOf(block);\r\ngsap.to(block, {\r\n    autoAlpha: 1,\r\n    y: 0,\r\n    duration: 0.5,\r\n    ease: \"power2.out\"\r\n});\r\n\r\n                        } else {\r\n                            if (block.style.display !== 'none') {\r\n    if (!isFirefox) {\r\n        gsap.to(block, {\r\n            autoAlpha: 0,\r\n            y: -20,\r\n            duration: 0.4,\r\n            ease: \"power2.in\",\r\n            onComplete: () => {\r\n                block.style.display = 'none';\r\n            }\r\n        });\r\n    } else {\r\n        \/\/ Pour Firefox : on garde le bloc visible\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.display = 'block';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n    }\r\n}\r\n\r\n                        }\r\n                    });\r\n                });\r\n            };\r\n\r\n            const hideAllBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                if (currentMessageIndex !== -1 && !isFirefox) {\r\n                    messageBlocks.forEach(group => {\r\n                        group.forEach(block => {\r\n                            if (block.style.display !== 'none') {\r\n                                gsap.killTweensOf(block);\r\n                                gsap.to(block, {\r\n                                    autoAlpha: 0,\r\n                                    y: -20,\r\n                                    duration: 0.4,\r\n                                    ease: \"power2.in\",\r\n                                    onComplete: () => {\r\n                                        block.style.display = 'none';\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                    });\r\n                    currentMessageIndex = -1;\r\n                    if (isHoveringBlock) {\r\n                        isHoveringBlock = false;\r\n                        gsap.to(camera.position, {\r\n                            x: initialCameraPosition.x,\r\n                            y: initialCameraPosition.y,\r\n                            z: initialCameraPosition.z,\r\n                            duration: zoomMessageSpeed, \/\/ Speed zoom out, qui peut-\u00eatre ajust\u00e9 avec valeur fixe pour \u00eatre d\u00e9solidaris\u00e9 de la vitesse de zoom-in\r\n                            ease: \"power2.out\"\r\n                        });\r\n                    }\r\n                }\r\n            };\r\n\r\n            updateMessageBlocks();\r\n            updateCanvasRect();\r\n\r\n            const observer = new MutationObserver(() => {\r\n                updateMessageBlocks();\r\n            });\r\n            observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n            const scene = new THREE.Scene();\r\n            const camera = new THREE.PerspectiveCamera(75, container.clientWidth \/ container.clientHeight, 0.1, 1000);\r\n            const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\r\n            \r\n            renderer.setSize(container.clientWidth, container.clientHeight);\r\n            container.appendChild(renderer.domElement);\r\n            \r\n            const ambientLight = new THREE.AmbientLight(0xffffff, 0.4);\r\n            scene.add(ambientLight);\r\n            const directionalLight = new THREE.DirectionalLight(0xffffff, 0.6);\r\n            directionalLight.position.set(1, 1, 1);\r\n            scene.add(directionalLight);\r\n            const pointLight = new THREE.PointLight(0xffffff, 0.5, 100);\r\n            pointLight.position.set(0, 5, 5);\r\n            scene.add(pointLight);\r\n            \r\n            let model = null;\r\n            let modelContainer = null;\r\n            let initialCameraPosition = { x: 0, y: 0, z: 0 };\r\n\r\n            const loader = new THREE.GLTFLoader();\r\n            loader.load(\r\n                'https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/Cara.glb',\r\n                function(gltf) {\r\n                    model = gltf.scene;\r\n                    modelContainer = new THREE.Group();\r\n                    modelContainer.add(model);\r\n                    scene.add(modelContainer);\r\n                    \r\n                    let meshCount = 0;\r\n                    model.traverse(function(child) {\r\n                        if (child.isMesh && child.geometry) {\r\n                            meshCount++;\r\n                                                                                                const baseMaterial = new THREE.MeshBasicMaterial({\r\n                                        color: '#0B0C10',\r\n                                        transparent: true,\r\n                                        opacity: 1,\r\n                                        depthWrite: false,\r\n                                        polygonOffset: true,\r\n                                        polygonOffsetFactor: 1,\r\n                                        polygonOffsetUnits: 1\r\n                                    });\r\n                                                                const baseMesh = new THREE.Mesh(child.geometry, baseMaterial);\r\n                                child.parent.add(baseMesh);\r\n\r\n                                                                    const wireframeGeom = new THREE.WireframeGeometry(child.geometry);\r\n                                \r\n                                const wireframeMaterial = new THREE.LineBasicMaterial({\r\n                                    color: '#787a7b',\r\n                                    linewidth: 1                                });\r\n                                const wireframeLines = new THREE.LineSegments(wireframeGeom, wireframeMaterial);\r\n                                child.parent.add(wireframeLines);\r\n\r\n                                child.visible = false;\r\n                                                    }\r\n                    });\r\n                    \r\n                    const box = new THREE.Box3().setFromObject(model);\r\n                    const center = box.getCenter(new THREE.Vector3());\r\n                    const size = box.getSize(new THREE.Vector3());\r\n                    model.position.x -= center.x;\r\n                    model.position.z -= center.z;\r\n                    model.position.y -= (box.min.y + size.y \/ 2);\r\n                    \r\n                    if (false) {\r\n                        gsap.to(modelContainer.rotation, {\r\n                            y: \"+=\" + (Math.PI * 2),\r\n                            duration: 10,\r\n                            repeat: -1,\r\n                            ease: \"none\"\r\n                        });\r\n                    }\r\n                    \r\n                    const fov = camera.fov * (Math.PI \/ 180);\r\n                    const modelHeight = size.y;\r\n                    initialCameraPosition.z = (modelHeight \/ 2) \/ Math.tan(fov \/ 2) * 1.9;\r\n                    camera.position.set(initialCameraPosition.x, initialCameraPosition.y, initialCameraPosition.z);\r\n                },\r\n                undefined,\r\n                function(error) {\r\n                }\r\n            );\r\n\r\n            container.addEventListener('mouseleave', hideAllBlocks);\r\n\r\n            window.addEventListener('resize', () => {\r\n                camera.aspect = container.clientWidth \/ container.clientHeight;\r\n                camera.updateProjectionMatrix();\r\n                renderer.setSize(container.clientWidth, container.clientHeight);\r\n                updateCanvasRect();\r\n            });\r\n\r\n            window.addEventListener('scroll', updateCanvasRect);\r\n            \r\n            function animate() {\r\n                requestAnimationFrame(animate);\r\n                renderer.render(scene, camera);\r\n            }\r\n            animate();\r\n\r\n            document.body.addEventListener('mousemove', function(event) {\r\n                if (!model || !modelContainer || !initialCameraPosition.z) return;\r\n                const mouseX = event.clientX;\r\n                const mouseY = event.clientY;\r\n\r\n                if (mouseX >= canvasRect.left && mouseX <= canvasRect.right && mouseY >= canvasRect.top && mouseY <= canvasRect.bottom) {\r\n                    if (messageBlocks.length > 0) {\r\n                        const relativeMouseY = mouseY - canvasRect.top;\r\n                        const adjustedHeight = canvasRect.height - messZoneTop - messZoneBottom;\r\nconst adjustedY = relativeMouseY - messZoneTop;\r\n\r\nif (adjustedY < 0 || adjustedY > adjustedHeight) {\r\n    if (!isFirefox) {\r\n        hideAllBlocks(); \/\/ En dehors des zones actives\r\n    }\r\n    return;\r\n}\r\n\r\nconst zoneSize = adjustedHeight \/ messageBlocks.length;\r\nlet zoneIndex = Math.floor(adjustedY \/ zoneSize);\r\nzoneIndex = Math.max(0, Math.min(messageBlocks.length - 1, zoneIndex));\r\n\r\n\r\n                        if (hoveredBlockIndex !== -1) {\r\n                            if (currentMessageIndex !== hoveredBlockIndex) {\r\n                                showMessageBlock(hoveredBlockIndex);\r\n                                currentMessageIndex = hoveredBlockIndex;\r\n                            }\r\n                            const group = messageBlocks[hoveredBlockIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[hoveredBlockIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        } else {\r\n                            if (currentMessageIndex !== zoneIndex || lastHoveredBlockIndex !== -1) {\r\n                                showMessageBlock(zoneIndex);\r\n                                currentMessageIndex = zoneIndex;\r\n                            }\r\n                            lastHoveredBlockIndex = -1;\r\n                            const group = messageBlocks[zoneIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock && hoveredBlockIndex === -1) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[zoneIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        }\r\n                    }\r\n                                        const relativeMouseX = ((mouseX - canvasRect.left) \/ canvasRect.width) * 2 - 1;\r\n                    const relativeMouseY = ((mouseY - canvasRect.top) \/ canvasRect.height) * 2 - 1;\r\n                    const invert = 1;\r\n                    const tiltFactorX = invert * relativeMouseX;\r\n                    let tiltFactorY = invert * relativeMouseY;\r\n                    let tiltIntensityY = 1;\r\n                    if (tiltFactorY > 0) {\r\n                        tiltIntensityY = 0.2;\r\n                    } else if (tiltFactorY < 0) {\r\n                        tiltIntensityY = 0.5;\r\n                    }\r\n                    tiltFactorY *= tiltIntensityY;\r\n                    gsap.to(modelContainer.rotation, {\r\n                        x: tiltFactorY * -0.5,\r\n                        y: tiltFactorX * -0.5,\r\n                        duration: 0.5,\r\n                        ease: \"power2.out\"\r\n                    });\r\n                                    }\r\n            });\r\n\r\n            document.body.addEventListener('mouseout', function(event) {\r\n\t\t\t\tif (isMobile) return;\r\n                if (event.relatedTarget === null || !container.contains(event.relatedTarget)) {\r\n                    hideAllBlocks();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n    \n<p>[\/et_pb_text][et_pb_text disabled_on=\"on|off|on\" admin_label=\"Text\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n    <div id=\"gltf-container-69fb2212de797\" style=\"width: 100%; height: 1000px; min-height: 1000px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-69fb2212de797 {\r\n            width: 100% !important;\r\n            height: 1000px !important;\r\n            min-height: 1000px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-69fb2212de797 canvas {\r\n            width: 100% !important;\r\n            height: 100% !important;\r\n        }\r\n\/* Initialiser l'\u00e9tat d'arriv\u00e9e smooth des textes *\/\r\n.threedmessage-1,\r\n.threedmessage-2,\r\n.threedmessage-3,\r\n.threedmessage-4,\r\n.threedmessage-5 {\r\n    opacity: 0;\r\n    transform: translateY(20px);\r\n    transition: none;\r\n}\t\t\r\n\t\t\r\n        \/* Responsive: toujours afficher les messages *\/\r\n@media screen and (max-width: 981px) {\r\n    .threedmessage-1,\r\n    .threedmessage-2,\r\n    .threedmessage-3,\r\n    .threedmessage-4,\r\n    .threedmessage-5 {\r\n        display: block !important;\r\n        opacity: 1 !important;\r\n        transform: translateY(0) !important;\r\n        pointer-events: auto !important;\r\n    }\r\n}\r\n@-moz-document url-prefix() {\r\n  [class*=\"threedmessage-\"] {\r\n    display: block !important;\r\n  }\r\n}\r\n\r\n\r\n    <\/style>\r\n    <script>\r\n        window.addEventListener('load', function() {\r\n\t\t\tconst isMobile = window.innerWidth <= 981;\r\n\t\t\tconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\nif (isMobile) {\r\n    \/\/ Forcer l'affichage statique des messages sans interactivit\u00e9 pour tablette et mobile, avec ajout de if (isMobile) return; un peu partout\r\n    document.querySelectorAll('[class*=\"threedmessage-\"]').forEach(el => {\r\n        el.style.display = 'block';\r\n        el.style.opacity = '1';\r\n        el.style.transform = 'translateY(0)';\r\n        el.style.pointerEvents = 'none';\r\n    });\r\n}\r\n\r\n            if (typeof THREE === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof THREE.GLTFLoader === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof gsap === 'undefined') {\r\n                return;\r\n            }\r\n\r\n            const container = document.getElementById('gltf-container-69fb2212de797');\r\n\r\n            if (!container) {\r\n                return;\r\n            }\r\n\t\t\tconst messZoneTop = 0;\r\nconst messZoneBottom = 0;\r\n\r\n            let messageBlocks = [];\r\n            let blockOffsets = [];\r\n            let hoveredBlockIndex = -1;\r\n            let lastHoveredBlockIndex = -1;\r\n            let currentMessageIndex = -1;\r\n            let isHoveringBlock = false;\r\n            let canvasRect = null;\r\n            const zoomMessageFactor = 0.7;\r\n\t\t\tconst zoomMessageSpeed = 1.5;\r\n\t\t\t\r\n            const updateCanvasRect = () => {\r\n                canvasRect = container.getBoundingClientRect();\r\n            };\r\n\r\n            const updateMessageBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                const groupedBlocks = {};\r\n                Array.from(document.querySelectorAll('[class*=\"threedmessage-\"]'))\r\n                    .filter(el => el.className.match(\/threedmessage-\\d+\/))\r\n                    .forEach(el => {\r\n                        const match = el.className.match(\/threedmessage-(\\d+)\/);\r\n                        if (!match) return;\r\n                        const key = match[1];\r\n                        if (!groupedBlocks[key]) {\r\n                            groupedBlocks[key] = [];\r\n                        }\r\n                        groupedBlocks[key].push(el);\r\n                    });\r\n\r\n                const sortedKeys = Object.keys(groupedBlocks).sort((a, b) => parseInt(a) - parseInt(b));\r\n\r\n                messageBlocks = sortedKeys.map(k => groupedBlocks[k]);\r\n                blockOffsets = sortedKeys.map(k => {\r\n                    const group = groupedBlocks[k];\r\n                    const offsets = { top: 0, bottom: 0, left: 0, right: 0 };\r\n                    group.forEach(block => {\r\n                        const classes = block.className.split(' ');\r\n                        classes.forEach(cls => {\r\n                            if (cls.match(\/^zone(top|bottom|left|right)-?\\d+$\/)) {\r\n                                const match = cls.match(\/^zone(top|bottom|left|right)-?(\\d+)$\/);\r\n                                if (match) {\r\n                                    const type = match[1].toLowerCase();\r\n                                    const value = parseFloat(match[2]);\r\n                                    if (!isNaN(value)) {\r\n                                        offsets[type] = value \/ 100;\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    });\r\n                    return offsets;\r\n                });\r\n\r\n                messageBlocks.flat().forEach(block => {\r\n                    block.style.display = 'none';\r\n                    block.style.opacity = '0';\r\n                    block.style.transform = 'translateY(20px)';\r\n                    if (!isFirefox) {\r\n    block.addEventListener('mouseover', () => {\r\n        const match = block.className.match(\/threedmessage-(\\d+)\/);\r\n        if (!match) return;\r\n        const index = sortedKeys.indexOf(match[1]);\r\n        hoveredBlockIndex = index;\r\n        lastHoveredBlockIndex = index;\r\n        if (currentMessageIndex !== index) {\r\n            showMessageBlock(index);\r\n            currentMessageIndex = index;\r\n        }\r\n    });\r\n\r\n    block.addEventListener('mouseout', () => {\r\n        hoveredBlockIndex = -1;\r\n        if (currentMessageIndex !== -1 && messageBlocks[currentMessageIndex]) {\r\n            showMessageBlock(currentMessageIndex);\r\n        }\r\n    });\r\n}\r\nif (isFirefox) {\r\n    block.addEventListener('mouseenter', () => {\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n        block.style.transition = 'opacity 0.4s ease-out, transform 0.4s ease-out';\r\n    });\r\n\r\n    block.addEventListener('mouseleave', () => {\r\n        block.style.opacity = '0';\r\n        block.style.visibility = 'hidden';\r\n        block.style.pointerEvents = 'none';\r\n        block.style.transition = 'opacity 0.3s ease-in, transform 0.3s ease-in';\r\n    });\r\n}\r\n\r\n                });\r\n            };\r\n\r\n            const showMessageBlock = (index) => {\r\n\t\t\t\tif (isMobile) return;\r\n                messageBlocks.forEach((group, i) => {\r\n                    group.forEach(block => {\r\n                        gsap.killTweensOf(block);\r\n                        if (i === index) {\r\n                            if (block.style.display !== 'block') {\r\n    block.style.display = 'block';\r\n    block.style.opacity = '0';\r\n    block.style.transform = 'translateY(20px)';\r\n}\r\n\r\ngsap.killTweensOf(block);\r\ngsap.to(block, {\r\n    autoAlpha: 1,\r\n    y: 0,\r\n    duration: 0.5,\r\n    ease: \"power2.out\"\r\n});\r\n\r\n                        } else {\r\n                            if (block.style.display !== 'none') {\r\n    if (!isFirefox) {\r\n        gsap.to(block, {\r\n            autoAlpha: 0,\r\n            y: -20,\r\n            duration: 0.4,\r\n            ease: \"power2.in\",\r\n            onComplete: () => {\r\n                block.style.display = 'none';\r\n            }\r\n        });\r\n    } else {\r\n        \/\/ Pour Firefox : on garde le bloc visible\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.display = 'block';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n    }\r\n}\r\n\r\n                        }\r\n                    });\r\n                });\r\n            };\r\n\r\n            const hideAllBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                if (currentMessageIndex !== -1 && !isFirefox) {\r\n                    messageBlocks.forEach(group => {\r\n                        group.forEach(block => {\r\n                            if (block.style.display !== 'none') {\r\n                                gsap.killTweensOf(block);\r\n                                gsap.to(block, {\r\n                                    autoAlpha: 0,\r\n                                    y: -20,\r\n                                    duration: 0.4,\r\n                                    ease: \"power2.in\",\r\n                                    onComplete: () => {\r\n                                        block.style.display = 'none';\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                    });\r\n                    currentMessageIndex = -1;\r\n                    if (isHoveringBlock) {\r\n                        isHoveringBlock = false;\r\n                        gsap.to(camera.position, {\r\n                            x: initialCameraPosition.x,\r\n                            y: initialCameraPosition.y,\r\n                            z: initialCameraPosition.z,\r\n                            duration: zoomMessageSpeed, \/\/ Speed zoom out, qui peut-\u00eatre ajust\u00e9 avec valeur fixe pour \u00eatre d\u00e9solidaris\u00e9 de la vitesse de zoom-in\r\n                            ease: \"power2.out\"\r\n                        });\r\n                    }\r\n                }\r\n            };\r\n\r\n            updateMessageBlocks();\r\n            updateCanvasRect();\r\n\r\n            const observer = new MutationObserver(() => {\r\n                updateMessageBlocks();\r\n            });\r\n            observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n            const scene = new THREE.Scene();\r\n            const camera = new THREE.PerspectiveCamera(75, container.clientWidth \/ container.clientHeight, 0.1, 1000);\r\n            const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\r\n            \r\n            renderer.setSize(container.clientWidth, container.clientHeight);\r\n            container.appendChild(renderer.domElement);\r\n            \r\n            const ambientLight = new THREE.AmbientLight(0xffffff, 0.4);\r\n            scene.add(ambientLight);\r\n            const directionalLight = new THREE.DirectionalLight(0xffffff, 0.6);\r\n            directionalLight.position.set(1, 1, 1);\r\n            scene.add(directionalLight);\r\n            const pointLight = new THREE.PointLight(0xffffff, 0.5, 100);\r\n            pointLight.position.set(0, 5, 5);\r\n            scene.add(pointLight);\r\n            \r\n            let model = null;\r\n            let modelContainer = null;\r\n            let initialCameraPosition = { x: 0, y: 0, z: 0 };\r\n\r\n            const loader = new THREE.GLTFLoader();\r\n            loader.load(\r\n                'https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/Cara.glb',\r\n                function(gltf) {\r\n                    model = gltf.scene;\r\n                    modelContainer = new THREE.Group();\r\n                    modelContainer.add(model);\r\n                    scene.add(modelContainer);\r\n                    \r\n                    let meshCount = 0;\r\n                    model.traverse(function(child) {\r\n                        if (child.isMesh && child.geometry) {\r\n                            meshCount++;\r\n                                                                                                const baseMaterial = new THREE.MeshBasicMaterial({\r\n                                        color: '#0B0C10',\r\n                                        transparent: true,\r\n                                        opacity: 1,\r\n                                        depthWrite: false,\r\n                                        polygonOffset: true,\r\n                                        polygonOffsetFactor: 1,\r\n                                        polygonOffsetUnits: 1\r\n                                    });\r\n                                                                const baseMesh = new THREE.Mesh(child.geometry, baseMaterial);\r\n                                child.parent.add(baseMesh);\r\n\r\n                                                                    const wireframeGeom = new THREE.WireframeGeometry(child.geometry);\r\n                                \r\n                                const wireframeMaterial = new THREE.LineBasicMaterial({\r\n                                    color: '#787a7b',\r\n                                    linewidth: 1                                });\r\n                                const wireframeLines = new THREE.LineSegments(wireframeGeom, wireframeMaterial);\r\n                                child.parent.add(wireframeLines);\r\n\r\n                                child.visible = false;\r\n                                                    }\r\n                    });\r\n                    \r\n                    const box = new THREE.Box3().setFromObject(model);\r\n                    const center = box.getCenter(new THREE.Vector3());\r\n                    const size = box.getSize(new THREE.Vector3());\r\n                    model.position.x -= center.x;\r\n                    model.position.z -= center.z;\r\n                    model.position.y -= (box.min.y + size.y \/ 2);\r\n                    \r\n                    if (false) {\r\n                        gsap.to(modelContainer.rotation, {\r\n                            y: \"+=\" + (Math.PI * 2),\r\n                            duration: 10,\r\n                            repeat: -1,\r\n                            ease: \"none\"\r\n                        });\r\n                    }\r\n                    \r\n                    const fov = camera.fov * (Math.PI \/ 180);\r\n                    const modelHeight = size.y;\r\n                    initialCameraPosition.z = (modelHeight \/ 2) \/ Math.tan(fov \/ 2) * 1.4;\r\n                    camera.position.set(initialCameraPosition.x, initialCameraPosition.y, initialCameraPosition.z);\r\n                },\r\n                undefined,\r\n                function(error) {\r\n                }\r\n            );\r\n\r\n            container.addEventListener('mouseleave', hideAllBlocks);\r\n\r\n            window.addEventListener('resize', () => {\r\n                camera.aspect = container.clientWidth \/ container.clientHeight;\r\n                camera.updateProjectionMatrix();\r\n                renderer.setSize(container.clientWidth, container.clientHeight);\r\n                updateCanvasRect();\r\n            });\r\n\r\n            window.addEventListener('scroll', updateCanvasRect);\r\n            \r\n            function animate() {\r\n                requestAnimationFrame(animate);\r\n                renderer.render(scene, camera);\r\n            }\r\n            animate();\r\n\r\n            document.body.addEventListener('mousemove', function(event) {\r\n                if (!model || !modelContainer || !initialCameraPosition.z) return;\r\n                const mouseX = event.clientX;\r\n                const mouseY = event.clientY;\r\n\r\n                if (mouseX >= canvasRect.left && mouseX <= canvasRect.right && mouseY >= canvasRect.top && mouseY <= canvasRect.bottom) {\r\n                    if (messageBlocks.length > 0) {\r\n                        const relativeMouseY = mouseY - canvasRect.top;\r\n                        const adjustedHeight = canvasRect.height - messZoneTop - messZoneBottom;\r\nconst adjustedY = relativeMouseY - messZoneTop;\r\n\r\nif (adjustedY < 0 || adjustedY > adjustedHeight) {\r\n    if (!isFirefox) {\r\n        hideAllBlocks(); \/\/ En dehors des zones actives\r\n    }\r\n    return;\r\n}\r\n\r\nconst zoneSize = adjustedHeight \/ messageBlocks.length;\r\nlet zoneIndex = Math.floor(adjustedY \/ zoneSize);\r\nzoneIndex = Math.max(0, Math.min(messageBlocks.length - 1, zoneIndex));\r\n\r\n\r\n                        if (hoveredBlockIndex !== -1) {\r\n                            if (currentMessageIndex !== hoveredBlockIndex) {\r\n                                showMessageBlock(hoveredBlockIndex);\r\n                                currentMessageIndex = hoveredBlockIndex;\r\n                            }\r\n                            const group = messageBlocks[hoveredBlockIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[hoveredBlockIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        } else {\r\n                            if (currentMessageIndex !== zoneIndex || lastHoveredBlockIndex !== -1) {\r\n                                showMessageBlock(zoneIndex);\r\n                                currentMessageIndex = zoneIndex;\r\n                            }\r\n                            lastHoveredBlockIndex = -1;\r\n                            const group = messageBlocks[zoneIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock && hoveredBlockIndex === -1) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[zoneIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        }\r\n                    }\r\n                                        const relativeMouseX = ((mouseX - canvasRect.left) \/ canvasRect.width) * 2 - 1;\r\n                    const relativeMouseY = ((mouseY - canvasRect.top) \/ canvasRect.height) * 2 - 1;\r\n                    const invert = 1;\r\n                    const tiltFactorX = invert * relativeMouseX;\r\n                    let tiltFactorY = invert * relativeMouseY;\r\n                    let tiltIntensityY = 1;\r\n                    if (tiltFactorY > 0) {\r\n                        tiltIntensityY = 0.2;\r\n                    } else if (tiltFactorY < 0) {\r\n                        tiltIntensityY = 0.5;\r\n                    }\r\n                    tiltFactorY *= tiltIntensityY;\r\n                    gsap.to(modelContainer.rotation, {\r\n                        x: tiltFactorY * -0.5,\r\n                        y: tiltFactorX * -0.5,\r\n                        duration: 0.5,\r\n                        ease: \"power2.out\"\r\n                    });\r\n                                    }\r\n            });\r\n\r\n            document.body.addEventListener('mouseout', function(event) {\r\n\t\t\t\tif (isMobile) return;\r\n                if (event.relatedTarget === null || !container.contains(event.relatedTarget)) {\r\n                    hideAllBlocks();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n    \n<p>[\/et_pb_text][et_pb_text disabled_on=\"off|on|on\" admin_label=\"Text\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n    <div id=\"gltf-container-69fb2212de839\" style=\"width: 100%; height: 600px; min-height: 600px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-69fb2212de839 {\r\n            width: 100% !important;\r\n            height: 600px !important;\r\n            min-height: 600px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-69fb2212de839 canvas {\r\n            width: 100% !important;\r\n            height: 100% !important;\r\n        }\r\n\/* Initialiser l'\u00e9tat d'arriv\u00e9e smooth des textes *\/\r\n.threedmessage-1,\r\n.threedmessage-2,\r\n.threedmessage-3,\r\n.threedmessage-4,\r\n.threedmessage-5 {\r\n    opacity: 0;\r\n    transform: translateY(20px);\r\n    transition: none;\r\n}\t\t\r\n\t\t\r\n        \/* Responsive: toujours afficher les messages *\/\r\n@media screen and (max-width: 981px) {\r\n    .threedmessage-1,\r\n    .threedmessage-2,\r\n    .threedmessage-3,\r\n    .threedmessage-4,\r\n    .threedmessage-5 {\r\n        display: block !important;\r\n        opacity: 1 !important;\r\n        transform: translateY(0) !important;\r\n        pointer-events: auto !important;\r\n    }\r\n}\r\n@-moz-document url-prefix() {\r\n  [class*=\"threedmessage-\"] {\r\n    display: block !important;\r\n  }\r\n}\r\n\r\n\r\n    <\/style>\r\n    <script>\r\n        window.addEventListener('load', function() {\r\n\t\t\tconst isMobile = window.innerWidth <= 981;\r\n\t\t\tconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\nif (isMobile) {\r\n    \/\/ Forcer l'affichage statique des messages sans interactivit\u00e9 pour tablette et mobile, avec ajout de if (isMobile) return; un peu partout\r\n    document.querySelectorAll('[class*=\"threedmessage-\"]').forEach(el => {\r\n        el.style.display = 'block';\r\n        el.style.opacity = '1';\r\n        el.style.transform = 'translateY(0)';\r\n        el.style.pointerEvents = 'none';\r\n    });\r\n}\r\n\r\n            if (typeof THREE === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof THREE.GLTFLoader === 'undefined') {\r\n                return;\r\n            }\r\n            if (typeof gsap === 'undefined') {\r\n                return;\r\n            }\r\n\r\n            const container = document.getElementById('gltf-container-69fb2212de839');\r\n\r\n            if (!container) {\r\n                return;\r\n            }\r\n\t\t\tconst messZoneTop = 0;\r\nconst messZoneBottom = 0;\r\n\r\n            let messageBlocks = [];\r\n            let blockOffsets = [];\r\n            let hoveredBlockIndex = -1;\r\n            let lastHoveredBlockIndex = -1;\r\n            let currentMessageIndex = -1;\r\n            let isHoveringBlock = false;\r\n            let canvasRect = null;\r\n            const zoomMessageFactor = 0.7;\r\n\t\t\tconst zoomMessageSpeed = 1.5;\r\n\t\t\t\r\n            const updateCanvasRect = () => {\r\n                canvasRect = container.getBoundingClientRect();\r\n            };\r\n\r\n            const updateMessageBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                const groupedBlocks = {};\r\n                Array.from(document.querySelectorAll('[class*=\"threedmessage-\"]'))\r\n                    .filter(el => el.className.match(\/threedmessage-\\d+\/))\r\n                    .forEach(el => {\r\n                        const match = el.className.match(\/threedmessage-(\\d+)\/);\r\n                        if (!match) return;\r\n                        const key = match[1];\r\n                        if (!groupedBlocks[key]) {\r\n                            groupedBlocks[key] = [];\r\n                        }\r\n                        groupedBlocks[key].push(el);\r\n                    });\r\n\r\n                const sortedKeys = Object.keys(groupedBlocks).sort((a, b) => parseInt(a) - parseInt(b));\r\n\r\n                messageBlocks = sortedKeys.map(k => groupedBlocks[k]);\r\n                blockOffsets = sortedKeys.map(k => {\r\n                    const group = groupedBlocks[k];\r\n                    const offsets = { top: 0, bottom: 0, left: 0, right: 0 };\r\n                    group.forEach(block => {\r\n                        const classes = block.className.split(' ');\r\n                        classes.forEach(cls => {\r\n                            if (cls.match(\/^zone(top|bottom|left|right)-?\\d+$\/)) {\r\n                                const match = cls.match(\/^zone(top|bottom|left|right)-?(\\d+)$\/);\r\n                                if (match) {\r\n                                    const type = match[1].toLowerCase();\r\n                                    const value = parseFloat(match[2]);\r\n                                    if (!isNaN(value)) {\r\n                                        offsets[type] = value \/ 100;\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    });\r\n                    return offsets;\r\n                });\r\n\r\n                messageBlocks.flat().forEach(block => {\r\n                    block.style.display = 'none';\r\n                    block.style.opacity = '0';\r\n                    block.style.transform = 'translateY(20px)';\r\n                    if (!isFirefox) {\r\n    block.addEventListener('mouseover', () => {\r\n        const match = block.className.match(\/threedmessage-(\\d+)\/);\r\n        if (!match) return;\r\n        const index = sortedKeys.indexOf(match[1]);\r\n        hoveredBlockIndex = index;\r\n        lastHoveredBlockIndex = index;\r\n        if (currentMessageIndex !== index) {\r\n            showMessageBlock(index);\r\n            currentMessageIndex = index;\r\n        }\r\n    });\r\n\r\n    block.addEventListener('mouseout', () => {\r\n        hoveredBlockIndex = -1;\r\n        if (currentMessageIndex !== -1 && messageBlocks[currentMessageIndex]) {\r\n            showMessageBlock(currentMessageIndex);\r\n        }\r\n    });\r\n}\r\nif (isFirefox) {\r\n    block.addEventListener('mouseenter', () => {\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n        block.style.transition = 'opacity 0.4s ease-out, transform 0.4s ease-out';\r\n    });\r\n\r\n    block.addEventListener('mouseleave', () => {\r\n        block.style.opacity = '0';\r\n        block.style.visibility = 'hidden';\r\n        block.style.pointerEvents = 'none';\r\n        block.style.transition = 'opacity 0.3s ease-in, transform 0.3s ease-in';\r\n    });\r\n}\r\n\r\n                });\r\n            };\r\n\r\n            const showMessageBlock = (index) => {\r\n\t\t\t\tif (isMobile) return;\r\n                messageBlocks.forEach((group, i) => {\r\n                    group.forEach(block => {\r\n                        gsap.killTweensOf(block);\r\n                        if (i === index) {\r\n                            if (block.style.display !== 'block') {\r\n    block.style.display = 'block';\r\n    block.style.opacity = '0';\r\n    block.style.transform = 'translateY(20px)';\r\n}\r\n\r\ngsap.killTweensOf(block);\r\ngsap.to(block, {\r\n    autoAlpha: 1,\r\n    y: 0,\r\n    duration: 0.5,\r\n    ease: \"power2.out\"\r\n});\r\n\r\n                        } else {\r\n                            if (block.style.display !== 'none') {\r\n    if (!isFirefox) {\r\n        gsap.to(block, {\r\n            autoAlpha: 0,\r\n            y: -20,\r\n            duration: 0.4,\r\n            ease: \"power2.in\",\r\n            onComplete: () => {\r\n                block.style.display = 'none';\r\n            }\r\n        });\r\n    } else {\r\n        \/\/ Pour Firefox : on garde le bloc visible\r\n        block.style.opacity = '1';\r\n        block.style.visibility = 'visible';\r\n        block.style.display = 'block';\r\n        block.style.transform = 'translateY(0)';\r\n        block.style.pointerEvents = 'auto';\r\n    }\r\n}\r\n\r\n                        }\r\n                    });\r\n                });\r\n            };\r\n\r\n            const hideAllBlocks = () => {\r\n\t\t\t\tif (isMobile) return;\r\n                if (currentMessageIndex !== -1 && !isFirefox) {\r\n                    messageBlocks.forEach(group => {\r\n                        group.forEach(block => {\r\n                            if (block.style.display !== 'none') {\r\n                                gsap.killTweensOf(block);\r\n                                gsap.to(block, {\r\n                                    autoAlpha: 0,\r\n                                    y: -20,\r\n                                    duration: 0.4,\r\n                                    ease: \"power2.in\",\r\n                                    onComplete: () => {\r\n                                        block.style.display = 'none';\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n                    });\r\n                    currentMessageIndex = -1;\r\n                    if (isHoveringBlock) {\r\n                        isHoveringBlock = false;\r\n                        gsap.to(camera.position, {\r\n                            x: initialCameraPosition.x,\r\n                            y: initialCameraPosition.y,\r\n                            z: initialCameraPosition.z,\r\n                            duration: zoomMessageSpeed, \/\/ Speed zoom out, qui peut-\u00eatre ajust\u00e9 avec valeur fixe pour \u00eatre d\u00e9solidaris\u00e9 de la vitesse de zoom-in\r\n                            ease: \"power2.out\"\r\n                        });\r\n                    }\r\n                }\r\n            };\r\n\r\n            updateMessageBlocks();\r\n            updateCanvasRect();\r\n\r\n            const observer = new MutationObserver(() => {\r\n                updateMessageBlocks();\r\n            });\r\n            observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n            const scene = new THREE.Scene();\r\n            const camera = new THREE.PerspectiveCamera(75, container.clientWidth \/ container.clientHeight, 0.1, 1000);\r\n            const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\r\n            \r\n            renderer.setSize(container.clientWidth, container.clientHeight);\r\n            container.appendChild(renderer.domElement);\r\n            \r\n            const ambientLight = new THREE.AmbientLight(0xffffff, 0.4);\r\n            scene.add(ambientLight);\r\n            const directionalLight = new THREE.DirectionalLight(0xffffff, 0.6);\r\n            directionalLight.position.set(1, 1, 1);\r\n            scene.add(directionalLight);\r\n            const pointLight = new THREE.PointLight(0xffffff, 0.5, 100);\r\n            pointLight.position.set(0, 5, 5);\r\n            scene.add(pointLight);\r\n            \r\n            let model = null;\r\n            let modelContainer = null;\r\n            let initialCameraPosition = { x: 0, y: 0, z: 0 };\r\n\r\n            const loader = new THREE.GLTFLoader();\r\n            loader.load(\r\n                'https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/Cara.glb',\r\n                function(gltf) {\r\n                    model = gltf.scene;\r\n                    modelContainer = new THREE.Group();\r\n                    modelContainer.add(model);\r\n                    scene.add(modelContainer);\r\n                    \r\n                    let meshCount = 0;\r\n                    model.traverse(function(child) {\r\n                        if (child.isMesh && child.geometry) {\r\n                            meshCount++;\r\n                                                                                                const baseMaterial = new THREE.MeshBasicMaterial({\r\n                                        color: '#0B0C10',\r\n                                        transparent: true,\r\n                                        opacity: 1,\r\n                                        depthWrite: false,\r\n                                        polygonOffset: true,\r\n                                        polygonOffsetFactor: 1,\r\n                                        polygonOffsetUnits: 1\r\n                                    });\r\n                                                                const baseMesh = new THREE.Mesh(child.geometry, baseMaterial);\r\n                                child.parent.add(baseMesh);\r\n\r\n                                                                    const wireframeGeom = new THREE.WireframeGeometry(child.geometry);\r\n                                \r\n                                const wireframeMaterial = new THREE.LineBasicMaterial({\r\n                                    color: '#787a7b',\r\n                                    linewidth: 1                                });\r\n                                const wireframeLines = new THREE.LineSegments(wireframeGeom, wireframeMaterial);\r\n                                child.parent.add(wireframeLines);\r\n\r\n                                child.visible = false;\r\n                                                    }\r\n                    });\r\n                    \r\n                    const box = new THREE.Box3().setFromObject(model);\r\n                    const center = box.getCenter(new THREE.Vector3());\r\n                    const size = box.getSize(new THREE.Vector3());\r\n                    model.position.x -= center.x;\r\n                    model.position.z -= center.z;\r\n                    model.position.y -= (box.min.y + size.y \/ 2);\r\n                    \r\n                    if (false) {\r\n                        gsap.to(modelContainer.rotation, {\r\n                            y: \"+=\" + (Math.PI * 2),\r\n                            duration: 10,\r\n                            repeat: -1,\r\n                            ease: \"none\"\r\n                        });\r\n                    }\r\n                    \r\n                    const fov = camera.fov * (Math.PI \/ 180);\r\n                    const modelHeight = size.y;\r\n                    initialCameraPosition.z = (modelHeight \/ 2) \/ Math.tan(fov \/ 2) * 1.4;\r\n                    camera.position.set(initialCameraPosition.x, initialCameraPosition.y, initialCameraPosition.z);\r\n                },\r\n                undefined,\r\n                function(error) {\r\n                }\r\n            );\r\n\r\n            container.addEventListener('mouseleave', hideAllBlocks);\r\n\r\n            window.addEventListener('resize', () => {\r\n                camera.aspect = container.clientWidth \/ container.clientHeight;\r\n                camera.updateProjectionMatrix();\r\n                renderer.setSize(container.clientWidth, container.clientHeight);\r\n                updateCanvasRect();\r\n            });\r\n\r\n            window.addEventListener('scroll', updateCanvasRect);\r\n            \r\n            function animate() {\r\n                requestAnimationFrame(animate);\r\n                renderer.render(scene, camera);\r\n            }\r\n            animate();\r\n\r\n            document.body.addEventListener('mousemove', function(event) {\r\n                if (!model || !modelContainer || !initialCameraPosition.z) return;\r\n                const mouseX = event.clientX;\r\n                const mouseY = event.clientY;\r\n\r\n                if (mouseX >= canvasRect.left && mouseX <= canvasRect.right && mouseY >= canvasRect.top && mouseY <= canvasRect.bottom) {\r\n                    if (messageBlocks.length > 0) {\r\n                        const relativeMouseY = mouseY - canvasRect.top;\r\n                        const adjustedHeight = canvasRect.height - messZoneTop - messZoneBottom;\r\nconst adjustedY = relativeMouseY - messZoneTop;\r\n\r\nif (adjustedY < 0 || adjustedY > adjustedHeight) {\r\n    if (!isFirefox) {\r\n        hideAllBlocks(); \/\/ En dehors des zones actives\r\n    }\r\n    return;\r\n}\r\n\r\nconst zoneSize = adjustedHeight \/ messageBlocks.length;\r\nlet zoneIndex = Math.floor(adjustedY \/ zoneSize);\r\nzoneIndex = Math.max(0, Math.min(messageBlocks.length - 1, zoneIndex));\r\n\r\n\r\n                        if (hoveredBlockIndex !== -1) {\r\n                            if (currentMessageIndex !== hoveredBlockIndex) {\r\n                                showMessageBlock(hoveredBlockIndex);\r\n                                currentMessageIndex = hoveredBlockIndex;\r\n                            }\r\n                            const group = messageBlocks[hoveredBlockIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[hoveredBlockIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        } else {\r\n                            if (currentMessageIndex !== zoneIndex || lastHoveredBlockIndex !== -1) {\r\n                                showMessageBlock(zoneIndex);\r\n                                currentMessageIndex = zoneIndex;\r\n                            }\r\n                            lastHoveredBlockIndex = -1;\r\n                            const group = messageBlocks[zoneIndex] || [];\r\n                            const isHovering = group.some(el => {\r\n                                const blockRect = el.getBoundingClientRect();\r\n                                return mouseX >= blockRect.left && mouseX <= blockRect.right &&\r\n                                       mouseY >= blockRect.top && mouseY <= blockRect.bottom;\r\n                            });\r\n\r\n                            if (isHovering && !isHoveringBlock && hoveredBlockIndex === -1) {\r\n                                isHoveringBlock = true;\r\n                                const offsets = blockOffsets[zoneIndex] || { top: 0, bottom: 0, left: 0, right: 0 };\r\n                                const offsetX = (offsets.right - offsets.left) * initialCameraPosition.z * 0.5;\r\n                                const offsetY = (offsets.top - offsets.bottom) * initialCameraPosition.z * 0.5;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x + offsetX,\r\n                                    y: initialCameraPosition.y + offsetY,\r\n                                    z: initialCameraPosition.z * zoomMessageFactor,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            } else if (!isHovering && isHoveringBlock) {\r\n                                isHoveringBlock = false;\r\n                                gsap.to(camera.position, {\r\n                                    x: initialCameraPosition.x,\r\n                                    y: initialCameraPosition.y,\r\n                                    z: initialCameraPosition.z,\r\n                                    duration: zoomMessageSpeed,\r\n                                    ease: \"power2.out\"\r\n                                });\r\n                            }\r\n                        }\r\n                    }\r\n                                        const relativeMouseX = ((mouseX - canvasRect.left) \/ canvasRect.width) * 2 - 1;\r\n                    const relativeMouseY = ((mouseY - canvasRect.top) \/ canvasRect.height) * 2 - 1;\r\n                    const invert = 1;\r\n                    const tiltFactorX = invert * relativeMouseX;\r\n                    let tiltFactorY = invert * relativeMouseY;\r\n                    let tiltIntensityY = 1;\r\n                    if (tiltFactorY > 0) {\r\n                        tiltIntensityY = 0.2;\r\n                    } else if (tiltFactorY < 0) {\r\n                        tiltIntensityY = 0.5;\r\n                    }\r\n                    tiltFactorY *= tiltIntensityY;\r\n                    gsap.to(modelContainer.rotation, {\r\n                        x: tiltFactorY * -0.5,\r\n                        y: tiltFactorX * -0.5,\r\n                        duration: 0.5,\r\n                        ease: \"power2.out\"\r\n                    });\r\n                                    }\r\n            });\r\n\r\n            document.body.addEventListener('mouseout', function(event) {\r\n\t\t\t\tif (isMobile) return;\r\n                if (event.relatedTarget === null || !container.contains(event.relatedTarget)) {\r\n                    hideAllBlocks();\r\n                }\r\n            });\r\n        });\r\n    <\/script>\r\n    \n<p>[\/et_pb_text][et_pb_text content_tablet=\"<img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3>Plastische Gesichtschirurgie<\/h3>\n<div class=\"%22et_pb_button_module_wrapper\" et_pb_button_0_tb_header_wrapper et_pb_module%22><a class=\"%22et_pb_button\" et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button%22 href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Mehr erfahren<\/a><\/div>\n<p>\"content_phone=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3><a href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/face-plastic-surgery\/%22\/\">Plastische Gesichtschirurgie <span style=\"%22position:\" relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>\" content_last_edited=\"on|phone\" disabled_on=\"off|off|off\" module_class=\"threedmessage-1 threedmcontainer\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|300|||||||\" text_text_color=\"#FFFFFF\" header_3_text_align=\"left\" header_3_text_color=\"#FFFFFF\" header_3_font_size=\"30px\" max_width=\"200px\" max_width_tablet=\"200px\" max_width_phone=\"100px\" max_width_last_edited=\"on|phone\" custom_margin=\"||||false|false\" header_3_font_size_tablet=\"25px\" header_3_font_size_phone=\"19px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"position: absolute;||top: 220px;||left: 70%;||width: fit-content !important;\" text_text_shadow_style=\"preset2\u2033 text_text_shadow_color=\"#000000\u2033 header_3_text_shadow_style=\"preset2\u2033 header_3_text_shadow_color=\"#000000\u2033 global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"position: absolute;||top: 30px;||right: 10%;||width: fit-content !important;\" custom_css_main_element_tablet=\"position: absolute;||top: 80px;||right: 10%;||width: fit-content !important;\"]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Plastische Gesichtschirurgie<\/h3>\n<div class=\"et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper  et_pb_module\"><a class=\"et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button\" href=\"https:\/\/drcuno.aif-staging.com\/de\/face-plastic-surgery\/\">Mehr erfahren<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<p><img class=\"%22tilting-sonar%22\" src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" \/><\/p>\n<h3>Ohr-Verfahren<\/h3>\n<div class=\"%22et_pb_button_module_wrapper\" et_pb_button_0_tb_header_wrapper et_pb_module%22><a class=\"%22et_pb_button\" et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button%22 href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Mehr erfahren<\/a><\/div>\n<p>\"content_phone=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3><a href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/face-plastic-surgery\/%22\/\">Ohr-Verfahren <span style=\"%22position:\" relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>\" content_last_edited=\"on|phone\" disabled_on=\"off|off|off\" module_class=\"threedmessage-2 threedmcontainer\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|300|||||||\" text_text_color=\"#FFFFFF\" header_3_text_align=\"left\" header_3_text_color=\"#FFFFFF\" header_3_font_size=\"30px\" text_orientation=\"right\" max_width=\"200px\" max_width_tablet=\"200px\" max_width_phone=\"100px\" max_width_last_edited=\"on|phone\" custom_margin=\"||||false|false\" header_3_font_size_tablet=\"25px\" header_3_font_size_phone=\"19px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"position: absolute;||top: 720px;||left: 20%;||width: fit-content !important;\" text_text_shadow_style=\"preset2\u2033 text_text_shadow_color=\"#000000\u2033 header_3_text_shadow_style=\"preset2\u2033 header_3_text_shadow_color=\"#000000\u2033 global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"position: absolute;||top: 200px;||left: 10%;||width: fit-content !important;\" custom_css_main_element_tablet=\"position: absolute;||top: 300px;||left: 10%;||width: fit-content !important;\"]<img decoding=\"async\" class=\"tilting-sonar\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" \/><\/p>\n<h3>Ohr-Verfahren<\/h3>\n<div class=\"et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper  et_pb_module\"><a class=\"et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button\" href=\"https:\/\/drcuno.aif-staging.com\/de\/face-plastic-surgery\/\">Mehr erfahren<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3>Nasenkorrekturen und Nasenoperationen<\/h3>\n<div class=\"%22et_pb_button_module_wrapper\" et_pb_button_0_tb_header_wrapper et_pb_module%22><a class=\"%22et_pb_button\" et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button%22 href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Mehr erfahren<\/a><\/div>\n<p>\"content_phone=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3><a href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Nasenkorrekturen und Nasenoperationen <span style=\"%22position:\" relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>\" content_last_edited=\"on|phone\" disabled_on=\"off|off|off\" module_class=\"threedmessage-2 threedmcontainer zoneleft20\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|300|||||||\" text_text_color=\"#FFFFFF\" header_3_text_align=\"left\" header_3_text_color=\"#FFFFFF\" header_3_font_size=\"30px\" max_width=\"200px\" max_width_tablet=\"200px\" max_width_phone=\"100px\" max_width_last_edited=\"on|phone\" custom_margin=\"||||false|false\" header_3_font_size_tablet=\"25px\" header_3_font_size_phone=\"19px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"position: absolute;||top: 550px;||left: 70%;||width: fit-content !important;\" text_text_shadow_style=\"preset2\u2033 text_text_shadow_color=\"#000000\u2033 header_3_text_shadow_style=\"preset2\u2033 header_3_text_shadow_color=\"#000000\u2033 global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"position: absolute;||top: 170px;||right: 10%;||width: fit-content !important;\" custom_css_main_element_tablet=\"position: absolute;||top: 270px;||right: 10%;||width: fit-content !important;\"]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Nasenkorrekturen und Nasenoperationen<\/h3>\n<div class=\"et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper  et_pb_module\"><a class=\"et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button\" href=\"https:\/\/drcuno.aif-staging.com\/de\/primary-rhinolasty\/\">Mehr erfahren<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3>Plastische Chirurgie am Hals<\/h3>\n<div class=\"%22et_pb_button_module_wrapper\" et_pb_button_0_tb_header_wrapper et_pb_module%22><a class=\"%22et_pb_button\" et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button%22 href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Mehr erfahren<\/a><\/div>\n<p>\"content_phone=\"<img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3><a href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/face-plastic-surgery\/%22\/\">Plastische Chirurgie am Hals <span style=\"%22position:\" relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>\" content_last_edited=\"on|desktop\" disabled_on=\"off|off|off\" module_class=\"threedmessage-3 threedmcontainer\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|300|||||||\" text_text_color=\"#FFFFFF\" header_3_text_align=\"right\" header_3_text_color=\"#FFFFFF\" header_3_font_size=\"30px\" text_orientation=\"right\" max_width=\"200px\" max_width_tablet=\"200px\" max_width_phone=\"100px\" max_width_last_edited=\"on|phone\" custom_margin=\"||||false|false\" header_3_font_size_tablet=\"25px\" header_3_font_size_phone=\"19px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"position: absolute;||top: 950px;||left: 20%;||width: fit-content !important;\" text_text_shadow_style=\"preset2\u2033 text_text_shadow_color=\"#000000\u2033 header_3_text_shadow_style=\"preset2\u2033 header_3_text_shadow_color=\"#000000\u2033 global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"position: absolute;||top: 330px;||left: 10%;||width: fit-content !important;\" custom_css_main_element_tablet=\"position: absolute;||top: 470px;||left: 10%;||width: fit-content !important;\"]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Plastische Chirurgie am Hals<\/h3>\n<div class=\"et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper  et_pb_module\"><a class=\"et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button\" href=\"https:\/\/drcuno.aif-staging.com\/de\/face-plastic-surgery\/\">Mehr erfahren<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=\"<\/p>\n<p><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3>Nicht-chirurgische \u00c4sthetische Medizin<\/h3>\n<div class=\"%22et_pb_button_module_wrapper\" et_pb_button_0_tb_header_wrapper et_pb_module%22><a class=\"%22et_pb_button\" et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button%22 href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/primary-rhinolasty\/%22\/\">Mehr erfahren<\/a><\/div>\n<p>\"content_phone=\"<img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22\" class=\"%22tilting-sonar%22\" \/><\/p>\n<h3><a href=\"\/de\/%22https:\/\/drcuno.aif-staging.com\/injection-rhinoplasty\/%22\/\">Nicht-chirurgische \u00c4sthetische Medizin <span style=\"%22position:\" relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>\" content_last_edited=\"on|phone\" disabled_on=\"off|off|off\" module_class=\"threedmessage-4 threedmcontainer\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"-et_global_body_font|300|||||||\" text_text_color=\"#FFFFFF\" header_3_text_align=\"left\" header_3_text_color=\"#FFFFFF\" header_3_font_size=\"30px\" max_width=\"200px\" max_width_tablet=\"200px\" max_width_phone=\"100px\" max_width_last_edited=\"on|phone\" custom_margin=\"||||false|false\" header_3_font_size_tablet=\"25px\" header_3_font_size_phone=\"19px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"position: absolute;||top: 1200px;||left: 70%;||width: fit-content !important;\" text_text_shadow_style=\"preset2\u2033 text_text_shadow_color=\"#000000\u2033 header_3_text_shadow_style=\"preset2\u2033 header_3_text_shadow_color=\"#000000\u2033 global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_phone=\"position: absolute;||top: 450px;||right: 10%;||width: fit-content !important;\" custom_css_main_element_tablet=\"position: absolute;||top: 520px;||right: 10%;||width: fit-content !important;\"]<img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Nicht-chirurgische \u00c4sthetische Medizin<\/h3>\n<div class=\"et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper  et_pb_module\"><a class=\"et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_light sonar-button\" href=\"https:\/\/drcuno.aif-staging.com\/de\/injection-rhinoplasty\/\">Mehr erfahren<\/a><\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\u2033 use_custom_gutter=\"on\" gutter_width=\"1\u2033 specialty=\"on\" custom_padding_last_edited=\"on|phone\" padding_top_1=\"0px\" padding_top_2=\"0px\" padding_right_1=\"0px\" padding_right_2=\"0px\" padding_bottom_1=\"0px\" padding_bottom_2=\"0px\" padding_left_1=\"0px\" padding_left_2=\"0px\" padding_top_bottom_link_1=\"false\" padding_top_bottom_link_2=\"true\" padding_left_right_link_1=\"true\" padding_left_right_link_2=\"true\" padding_2_tablet=\"50px|0px|50px|0px|true|true\" padding_2_phone=\"40px||40px||true|false\" padding_2_last_edited=\"on|tablet\" module_class_2=\"gsap-diapo-up play-again revert\" module_class=\"vcenter-left-col\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" background_color=\"#f1f1f1\u2033 inner_width=\"100%\" inner_width_tablet=\"100%\" inner_width_phone=\"100%\" inner_width_last_edited=\"on|phone\" inner_max_width=\"100%\" inner_max_width_tablet=\"1280px\" inner_max_width_phone=\"1280px\" inner_max_width_last_edited=\"on|tablet\" custom_margin=\"0px||0px||false|false\" custom_padding=\"0px|0px|0px|0px|false|true\" custom_padding_tablet=\"0px|0px|0px|0px|false|true\" custom_padding_phone=\"0px|0px|0px|false|true\" custom_css_main_element=\"z-index: 0 !important;\" global_colors_info=\"{}\"][et_pb_column type=\"1_3\u2033 _builder_version=\"4.16\u2033 custom_padding=\"|||\" global_colors_info=\"{}\" custom_padding__hover=\"|||\"][et_pb_image src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/cabinet-de-chirurgie-geneve-suisse.jpg\" alt=\"cabinet de chirurgie faciale Gen\u00e8ve Suisse\" title_text=\"cabinet de chirurgie faciale Gen\u00e8ve Suisse\" disabled_on=\"on|on|off\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" animation_style=\"slide\" animation_direction=\"left\" global_colors_info=\"{}\"][\/et_pb_image][\/et_pb_column][et_pb_column type=\"2_3\u2033 specialty_columns=\"2\u2033 _builder_version=\"4.16\u2033 custom_padding=\"|||\" global_colors_info=\"{}\" custom_padding__hover=\"|||\"][et_pb_row_inner custom_padding_last_edited=\"on|tablet\" module_class=\"vcentered-col\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"|10%||10%|false|true\" custom_padding_tablet=\"|10%||10%|false|true\" custom_padding_phone=\"|10%||10%|false|true\" global_colors_info=\"{}\"][et_pb_column_inner saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" header_2_text_align=\"left\" header_2_font_size=\"80px\" max_width=\"550px\" max_width_tablet=\"500px\" max_width_phone=\"500px\" max_width_last_edited=\"off|desktop\" module_alignment=\"left\" custom_margin_tablet=\"||20px||false|false\" custom_margin_phone=\"||10px||false|false\" custom_margin_last_edited=\"on|phone\" header_2_font_size_tablet=\"55px\" header_2_font_size_phone=\"35px\" header_2_font_size_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<h2>Eine erstklassige Klinik f\u00fcr Gesichtschirurgie in Genf<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"450px\" global_colors_info=\"{}\"]<\/p>\n<p>G\u00fcnstig gelegen in <strong>Genf<\/strong>ist unsere Klinik ein f\u00fchrendes Zentrum f\u00fcr <strong>Hochwertige plastische Gesichtschirurgie<\/strong>und empf\u00e4ngt Patienten aus der Schweiz und dem Ausland.<\/p>\n<p>[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=\"1_2,1_2\u2033 custom_padding_last_edited=\"on|tablet\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" min_height=\"135.6px\" custom_padding=\"0px|10%||10%|false|true\" custom_padding_tablet=\"40px|10%||10%|false|true\" custom_padding_phone=\"20px||||false|true\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_tablet=\"display: flex;\" custom_css_main_element_phone=\"display: flex;||flex-wrap: wrap;\"][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<p>Das Hotel liegt im Herzen von Genf<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]<\/p>\n<p>Sie sind leicht zug\u00e4nglich und bieten eine diskrete und einladende Umgebung.<\/p>\n<p>[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" custom_margin_tablet=\"||15px||false|false\" custom_margin_phone=\"25px||15px||false|false\" custom_margin_last_edited=\"on|phone\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Kompromisslose Sicherheit &amp; Komfort[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Strenge medizinische Standards f\u00fcr eine sichere und reibungslose Erfahrung.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=\"1_2,1_2\u2033 custom_padding_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" min_height=\"135.6px\" custom_padding=\"0px|10%||10%|false|true\" custom_padding_tablet=\"10px|10%||10%|false|true\" custom_padding_phone=\"0px||||false|true\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_tablet=\"display: flex;\" custom_css_main_element_phone=\"display: flex;||flex-wrap: wrap;\"][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]State-Stand der Technik[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Hochmoderne Ger\u00e4te sorgen f\u00fcr Pr\u00e4zision und optimale Ergebnisse.[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" custom_margin_tablet=\"||15px||false|false\" custom_margin_phone=\"25px||15px||false|false\" custom_margin_last_edited=\"on|phone\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Erfahrenes &amp; spezialisiertes Team[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Ein engagiertes Team, das sich f\u00fcr eine hervorragende Patientenversorgung einsetzt.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=\"1_2,1_2\u2033 custom_padding_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" min_height=\"135.6px\" custom_padding=\"0px|10%||10%|false|true\" custom_padding_tablet=\"10px|10%||10%|false|true\" custom_padding_phone=\"0px||||false|true\" global_colors_info=\"{}\" custom_css_main_element_last_edited=\"on|phone\" custom_css_main_element_tablet=\"display: flex;\" custom_css_main_element_phone=\"display: flex;||flex-wrap: wrap;\"][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Ma\u00dfgeschneiderte Behandlungen f\u00fcr nat\u00fcrliche Ergebnisse[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Ma\u00dfgeschneiderte Behandlungen, die Ihre einzigartigen Eigenschaften hervorheben.[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=\"1_2\u2033 saved_specialty_column_type=\"2_3\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_font=\"|600|||||||\" text_text_color=\"#000000\u2033 text_font_size=\"24px\" text_line_height=\"1.2em\" header_2_font=\"-et_global_body_font|300|||||||\" header_2_text_color=\"#FFFFFF\" header_2_line_height=\"1.5em\" max_width=\"220px\" custom_margin=\"||15px||false|false\" custom_margin_tablet=\"||15px||false|false\" custom_margin_phone=\"25px||15px||false|false\" custom_margin_last_edited=\"on|phone\" text_font_size_tablet=\"24px\" text_font_size_phone=\"20px\" text_font_size_last_edited=\"on|desktop\" header_2_font_size_tablet=\"\" header_2_font_size_phone=\"20px\" header_2_font_size_last_edited=\"on|desktop\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Kontinuierliche Unterst\u00fctzung bei jedem Schritt[\/et_pb_text][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" max_width=\"220px\" text_orientation_tablet=\"\" text_orientation_phone=\"center\" text_orientation_last_edited=\"on|phone\" module_alignment_tablet=\"\" module_alignment_phone=\"center\" module_alignment_last_edited=\"on|phone\" global_colors_info=\"{}\"]Pers\u00f6nliche Beratung und kontinuierliche Betreuung auf Ihrem Weg.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][\/et_pb_section][et_pb_section fb_built=\"1\u2033 custom_padding_last_edited=\"on|phone\" _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_margin=\"10px||10px||true|false\" custom_padding=\"40px||40px||true|false\" custom_padding_tablet=\"20px||20px||false|false\" custom_padding_phone=\"20px||20px||false|false\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.27.4\u2033 _module_preset=\"default\" custom_padding=\"0px||||false|false\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" text_text_color=\"#000000\u2033 header_2_text_align=\"center\" header_2_text_color=\"#000000\u2033 header_2_font_size=\"64px\" header_3_font=\"|300|||||||\" header_3_text_color=\"#000000\u2033 header_3_font_size=\"50px\" header_3_line_height=\"1.1em\" text_orientation=\"center\" custom_margin_tablet=\"\" custom_margin_phone=\"||14px||false|false\" custom_margin_last_edited=\"on|phone\" custom_padding=\"20px||||false|false\" link_option_url=\"https:\/\/drcuno.aif-staging.com\/contact-us\/\" header_2_font_size_tablet=\"50px\" header_2_font_size_phone=\"35px\" header_2_font_size_last_edited=\"on|phone\" header_3_font_size_tablet=\"35px\" header_3_font_size_phone=\"28px\" header_3_font_size_last_edited=\"on|phone\" custom_css_main_element=\"width: fit-content;||margin: auto;\" border_color_top=\"#FFFFFF\" global_colors_info=\"{}\" content__hover_enabled=\"on|hover\" content__hover=\"<\/p>\n<div class=\"%22to-italic-block\" to-bold-block%22><img src=\"%22https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-hover.png%22\" class=\"%22book%22\" \/><\/p>\n<h2><span class=\"%22to-italic\" to-bold%22>Buchen Sie eine Beratung<\/span><\/h2>\n<\/div>\n<p>&#8220;]<\/p>\n<div class=\"to-italic-block to-bold-block\">\n<p><img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar.png\" class=\"book\" \/><\/p>\n<h2><span class=\"to-italic to-bold\">Buchen Sie eine Beratung<\/span><\/h2>\n<\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>","protected":false},"excerpt":{"rendered":"<p>Dr.AlexanderCunoGesichtschirurg und HNO-Arzt in Genf Raffinierte \u00c4sthetik und chirurgische Exzellenz    <!-- HTML -->\r\n    <div class=\"consultation-block\" onclick=\"window.location.href='\/contact-us\/';\">\r\n        <div class=\"line\">\r\n            <span class=\"arrow-head\"><\/span>\r\n        <\/div>\r\n        <img decoding=\"async\" src=\"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\" alt=\"Book a consultation\" class=\"consultation-icon\">\r\n        <p class=\"consultation-text\">Buchen Sie eine Beratung<\/p>\r\n    <\/div>\r\n\r\n    <!-- CSS -->\r\n    <style>\r\n        .consultation-block {\r\n            position: relative;\r\n            width: 100px;\r\n            height: 180px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            justify-content: center;\r\n            text-align: center;\r\n            overflow: hidden;\r\n            cursor: pointer;\r\n            background-color: transparent;\r\n\t\t\tmargin-right: 0;\r\n\t\t\tmargin-left: auto;\r\n        }\r\n\r\n        .line {\r\n            position: absolute;\r\n            top: 10px;\r\n            left: calc(50% - 0.5px);\r\n            width: 1px;\r\n            height: 35px;\r\n            background-color: #fff;\r\n            will-change: top;\r\n\t\t\ttransform: translateX(-50%);\r\n        }\r\n\r\n        .arrow-head {\r\n            position: absolute;\r\n            width: 8px;\r\n            height: 8px;\r\n            top: -5px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background: url('https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/06\/arrow-top-2.png') no-repeat center center;\r\n            background-size: contain;\r\n            opacity: 0;\r\n            pointer-events: none;\r\n        }\r\n\r\n        .consultation-icon {\r\n            width: 35px;\r\n            height: 35px;\r\n            transition: transform 0.15s ease;\r\n        }\r\n\r\n        .consultation-text {\r\n            font-weight: bold;\r\n            margin-top: 5px;\r\n            color: #fff;\r\n            font-size: 13px !important;\r\n            transition: opacity 0.3s ease;\r\n            line-height: 1.3em !important;\r\n        }\r\n\r\n        .consultation-block:hover .consultation-text {\r\n            opacity: 1;\r\n        }\r\n\r\n        .consultation-block:hover .consultation-icon {\r\n            transform: scale(1.1);\r\n        }\r\n    <\/style>\r\n\r\n    <!-- JS -->\r\n    <script>\r\n    document.addEventListener(\"DOMContentLoaded\", function () {\r\n        const block = document.querySelector('.consultation-block');\r\n        const line = document.querySelector('.line');\r\n        const icon = document.querySelector('.consultation-icon');\r\n        const arrowHead = document.querySelector('.arrow-head');\r\n\r\n        let lineTimeline = null;\r\n        let arrowTween = null;\r\n        let iconTween = null;\r\n\r\n        block.addEventListener('mouseenter', () => {\r\n            \/\/ Stop les animations pr\u00e9c\u00e9dentes\r\n            if (lineTimeline) lineTimeline.kill();\r\n            if (arrowTween) arrowTween.kill();\r\n            if (iconTween) iconTween.kill();\r\n\r\n            \/\/ Cr\u00e9e une nouvelle timeline pour la ligne avec rebond\r\n            lineTimeline = gsap.timeline();\r\n\r\n            lineTimeline.to(line, {\r\n                duration: 0.5,\r\n                top: '147px',\r\n                ease: 'power2.out'\r\n            }).to(line, {\r\n                duration: 0.2,\r\n                top: '144px',\r\n                ease: 'power1.out'\r\n            }, \">0\");\r\n\r\n            \/\/ Fl\u00e8che : apparition diff\u00e9r\u00e9e\r\n            arrowTween = gsap.to(arrowHead, {\r\n                delay: 0.4,\r\n                duration: 0.2,\r\n                opacity: 1,\r\n                ease: 'power1.out'\r\n            });\r\n\r\n            \/\/ Ic\u00f4ne : changement rapide\r\n            iconTween = gsap.to(icon, {\r\n                duration: 0.1,\r\n                onComplete: () => {\r\n                    icon.src = \"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white-hover.png\";\r\n                }\r\n            });\r\n        });\r\n\r\n        block.addEventListener('mouseleave', () => {\r\n            \/\/ Stop les animations pr\u00e9c\u00e9dentes\r\n            if (lineTimeline) lineTimeline.kill();\r\n            if (arrowTween) arrowTween.kill();\r\n            if (iconTween) iconTween.kill();\r\n\r\n            \/\/ Ligne retour vers le haut\r\n            lineTimeline = gsap.timeline();\r\n\r\n            lineTimeline.to(line, {\r\n                duration: 0.2,\r\n                top: '10px',\r\n                ease: 'bounce.out'\r\n            });\r\n\r\n            \/\/ Fl\u00e8che disparition imm\u00e9diate\r\n            arrowTween = gsap.to(arrowHead, {\r\n                duration: 0.15,\r\n                opacity: 0\r\n            });\r\n\r\n            \/\/ Ic\u00f4ne retour\r\n            iconTween = gsap.to(icon, {\r\n                duration: 0.1,\r\n                onComplete: () => {\r\n                    icon.src = \"https:\/\/drcuno.aif-staging.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\";\r\n                }\r\n            });\r\n        });\r\n    });\r\n<\/script>\r\n\r\n    Als zweifach zertifizierter Gesichtschirurg ist Dr. Cuno auf die prim\u00e4re und revidierte Rhinoplastik spezialisiert. Seine Philosophie? Nat\u00fcrlichkeit, Pr\u00e4zision, Kunstfertigkeit und Diskretion. Dr. Cuno und sein Expertenteam werden daf\u00fcr sorgen, dass Sie sich wohl, informiert und [...]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":398,"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":1580,"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/pages\/15\/revisions\/1580"}],"wp:attachment":[{"href":"https:\/\/drcuno.aif-staging.com\/de\/wp-json\/wp\/v2\/media?parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}