{"id":15,"date":"2025-05-06T12:47:26","date_gmt":"2025-05-06T12:47:26","guid":{"rendered":"https:\/\/www.drcuno.com\/?page_id=15"},"modified":"2025-11-19T11:35:02","modified_gmt":"2025-11-19T11:35:02","slug":"home","status":"publish","type":"page","link":"https:\/\/www.drcuno.com\/fr\/","title":{"rendered":"Accueil"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; custom_margin=&#8221;-80px||||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221; custom_css_main_element=&#8221;height: 100px;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||0px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; module_id=&#8221;home-hero&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; background_enable_image=&#8221;off&#8221; background_size=&#8221;contain&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;100px||||false|false&#8221; custom_padding_tablet=&#8221;80px||||false|false&#8221; custom_padding_phone=&#8221;50px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;height: calc(100vh &#8211; 100px) !important;||&#8221;][et_pb_row column_structure=&#8221;2_3,1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;gsap-diapo-up play-again revert&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;32px&#8221; text_letter_spacing=&#8221;0.2em&#8221; text_line_height=&#8221;1em&#8221; text_font_size_tablet=&#8221;27px&#8221; text_font_size_phone=&#8221;22px&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Dr.<br \/>Alexander<br \/>Cuno<\/p>\n<p>[\/et_pb_text][et_pb_text module_class=&#8221;gsap-diapo-up play-again revert&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;20px&#8221; text_letter_spacing=&#8221;1px&#8221; header_font=&#8221;|300|||||||&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_font_size=&#8221;70px&#8221; max_width=&#8221;480px&#8221; max_width_tablet=&#8221;480px&#8221; max_width_phone=&#8221;480px&#8221; max_width_last_edited=&#8221;on|desktop&#8221; custom_margin=&#8221;150px||150px||true|false&#8221; custom_margin_tablet=&#8221;100px||100px||true|false&#8221; custom_margin_phone=&#8221;80px||80px||true|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; header_font_size_tablet=&#8221;55px&#8221; header_font_size_phone=&#8221;35px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Facial plastic<br \/>\n<strong>&amp; ENT surgeon<\/strong><br \/>\n<em>in Geneva<\/em><\/h1>\n<p>Refined aesthetics and surgical excellence[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_orientation=&#8221;right&#8221; custom_margin=&#8221;250px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;]<\/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:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\" alt=\"Book a consultation\" class=\"consultation-icon\">\r\n        <p class=\"consultation-text\">Book a consultation<\/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:\/\/www.drcuno.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:\/\/www.drcuno.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:\/\/www.drcuno.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=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;lined-title&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_2_text_align=&#8221;center&#8221; header_2_font_size=&#8221;80px&#8221; header_2_line_height=&#8221;1.3em&#8221; max_width=&#8221;650px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;on|tablet&#8221; module_alignment=&#8221;center&#8221; header_2_font_size_tablet=&#8221;55px&#8221; header_2_font_size_phone=&#8221;35px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2><span class=\"gsap-diapo-up play-again\">Facial surgery is a<\/span><br \/><span class=\"gsap-diapo-up play-again\">matter of trust.<\/span><br \/><span class=\"gsap-diapo-up play-again\">Here\u2019s why you\u2019re in<\/span><br \/><span class=\"gsap-diapo-up play-again\">good hands.<\/span><\/h2>\n<p>[\/et_pb_text][et_pb_text module_class=&#8221;gsap-diapo-up play-again revert&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|&#8211;et_global_body_font_weight|||||||&#8221; text_line_height=&#8221;1.6em&#8221; text_orientation=&#8221;center&#8221; max_width=&#8221;500px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;on|tablet&#8221; module_alignment=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>As a double board-certified facial surgeon, Dr. Cuno specializes in primary and revision rhinoplasty. His philosophy ? Natural, precision, artistry, and discretion.<\/p>\n<p>Dr. Cuno and his expert team will make sure you feel comfortable, informed, and safe throughout your entire journey.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding_tablet=&#8221;&#8221; custom_padding_phone=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row custom_padding_last_edited=&#8221;on|phone&#8221; module_class=&#8221;offer-clinic&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; custom_padding=&#8221;50px|70px|50px|70px|true|true&#8221; custom_padding_tablet=&#8221;50px|70px|50px|70px|true|true&#8221; custom_padding_phone=&#8221;50px|30px|50px|30px|true|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; max_width=&#8221;500px&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>At Dr. Cuno\u2019s clinic in Geneva, we combine expertise, precision, and the latest technology to deliver expert facial plastic surgery results that are natural and tailored to your unique needs.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;330px&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Our <strong>state-of-the-art clinic in the heart of Geneva<\/strong> offers:<\/h2>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-1%22>Cutting-edge technology<\/span><\/h3>\n<p>&#8221; content_phone=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-1%22>Cutting-edge<br \/>technology<\/span><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|desktop&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font=&#8221;|300|||||||&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;50px&#8221; header_3_line_height=&#8221;1.1em&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||14px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||||false|false&#8221; header_3_font_size_tablet=&#8221;35px&#8221; header_3_font_size_phone=&#8221;28px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; border_width_top=&#8221;1px&#8221; border_color_top=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;off|phone&#8221; custom_css_main_element_phone=&#8221;max-width: 250px !important;&#8221;]<\/p>\n<h3><span class=\"to-italic image-change-1\">Cutting-edge technology<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-2%22>World-class facilities<\/span><\/h3>\n<p>&#8221; content_phone=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-2%22>World-class<br \/>\nfacilities<\/span><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font=&#8221;|300|||||||&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;50px&#8221; header_3_line_height=&#8221;1.1em&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||14px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||||false|false&#8221; header_3_font_size_tablet=&#8221;35px&#8221; header_3_font_size_phone=&#8221;28px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; border_width_top=&#8221;1px&#8221; border_color_top=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3><span class=\"to-italic image-change-2\">World-class facilities<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-3%22>A commitment to comfort &#038; safety<\/span><\/h3>\n<p>&#8221; content_phone=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-3%22>A commitment<br \/>\nto comfort<br \/>\n&#038; safety<\/span><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font=&#8221;|300|||||||&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;50px&#8221; header_3_line_height=&#8221;1.1em&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||14px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||||false|false&#8221; header_3_font_size_tablet=&#8221;35px&#8221; header_3_font_size_phone=&#8221;28px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; border_width_top=&#8221;1px&#8221; border_color_top=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3><span class=\"to-italic image-change-3\">A commitment to comfort &amp; safety<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-4%22>Personalized carey<\/span><\/h3>\n<p>&#8221; content_phone=&#8221;<\/p>\n<h3><span class=%22to-italic image-change-4%22>Personalized<br \/>\ncarey<\/span><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font=&#8221;|300|||||||&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;50px&#8221; header_3_line_height=&#8221;1.1em&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||20px||true|false&#8221; custom_padding_tablet=&#8221;20px||20px||true|false&#8221; custom_padding_phone=&#8221;||14px||false|false&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; header_3_font_size_tablet=&#8221;35px&#8221; header_3_font_size_phone=&#8221;28px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; border_width_top=&#8221;1px&#8221; border_color_top=&#8221;#FFFFFF&#8221; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3><span class=\"to-italic image-change-4\">Personalized carey<\/span><\/h3>\n<p>[\/et_pb_text][et_pb_text disabled_on=&#8221;off|off|on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; module_alignment=&#8221;left&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;15px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Whether you are considering <strong>aesthetic facial surgery<\/strong> for the first time or seeking a <strong>revision procedure<\/strong>, every treatment is carefully tailored to your individual needs to ensure the <strong>most balanced, and natural results.<\/strong><\/p>\n<p>[\/et_pb_text][et_pb_text disabled_on=&#8221;off|off|on&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>With <strong>double-board certification<\/strong> in <strong>facial plastic<\/strong> and reconstructive surgery and <strong>ENT\/head and neck surgery<\/strong>, Dr. Cuno combines technical excellence with an artistic eye in a discreet, luxurious setting equipped with the latest advancements in medical technology.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; custom_padding=&#8221;30px|70px|50px|70px|false|true&#8221; custom_padding_tablet=&#8221;0px||||false|true&#8221; custom_padding_phone=&#8221;30px|30px|30px|30px|true|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Whether you are considering <strong>aesthetic facial surgery<\/strong> for the first time or seeking a <strong>revision procedure<\/strong>, every treatment is carefully tailored to your individual needs to ensure the <strong>most balanced, and natural results.<\/strong><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>With <strong>double-board certification<\/strong> in <strong>facial plastic<\/strong> and reconstructive surgery and <strong>ENT\/head and neck surgery<\/strong>, Dr. Cuno combines technical excellence with an artistic eye in a discreet, luxurious setting equipped with the latest advancements in medical technology.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|tablet&#8221; admin_label=&#8221;Section&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px||false|false&#8221; custom_padding_tablet=&#8221;||0px||false|false&#8221; custom_padding_phone=&#8221;0px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|5%||5%|false|true&#8221; custom_padding_tablet=&#8221;|0%||0%|false|true&#8221; custom_padding_phone=&#8221;|0%||0%|false|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_2_text_align=&#8221;left&#8221; header_2_font_size=&#8221;80px&#8221; max_width=&#8221;380px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;off|desktop&#8221; module_alignment=&#8221;left&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||-15px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; header_2_font_size_tablet=&#8221;55px&#8221; header_2_font_size_phone=&#8221;35px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>What our patients say<\/h2>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;280px&#8221; custom_margin=&#8221;||15px||false|false&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Authentic experiences, real transformations<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|&#8211;et_global_body_font_weight|||||||&#8221; text_line_height=&#8221;1.6em&#8221; max_width=&#8221;600px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;on|tablet&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Trust is built through real stories. Our patients share their journeys\u2014from their initial concerns to the care they received and the confidence they gained. Their words reflect the precision, expertise, and dedication that define our approach.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row custom_padding_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|5%||5%|false|true&#8221; custom_padding_tablet=&#8221;|0%||0%|false|true&#8221; custom_padding_phone=&#8221;|0%||0%|false|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; admin_label=&#8221;Column&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_slider arrows_custom_color=&#8221;#000000&#8243; dot_nav_custom_color=&#8221;#000000&#8243; admin_label=&#8221;Slider&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_padding=&#8221;0px||70px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_slide _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;&#8211;et_global_heading_font||on||||||&#8221; body_text_color=&#8221;#000000&#8243; body_font_size=&#8221;36px&#8221; body_letter_spacing=&#8221;1px&#8221; body_line_height=&#8221;1.5em&#8221; body_font_size_tablet=&#8221;30px&#8221; body_font_size_phone=&#8221;22px&#8221; body_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221; sticky_transition=&#8221;on&#8221;]\u201cI still look like myself, just years younger and more refreshed. The entire process was fantastic. Dr. Cuno and his entire team made me feel comfortable and at ease throughout the process.\u201d<br \/>\n<span class=\"name-review\">Sophie<\/span>[\/et_pb_slide][et_pb_slide _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;&#8211;et_global_heading_font||on||||||&#8221; body_text_color=&#8221;#000000&#8243; body_font_size=&#8221;36px&#8221; body_letter_spacing=&#8221;1px&#8221; body_line_height=&#8221;1.5em&#8221; body_font_size_tablet=&#8221;30px&#8221; body_font_size_phone=&#8221;22px&#8221; body_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221; sticky_transition=&#8221;on&#8221;]\u201cI still look like myself, just years younger and more refreshed. The entire process was fantastic. Dr. Cuno and his entire team made me feel comfortable and at ease throughout the process.\u201d<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=&#8221;1&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;1&#8243; specialty=&#8221;on&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; padding_top_2=&#8221;0px&#8221; padding_right_1=&#8221;0px&#8221; padding_right_2=&#8221;0px&#8221; padding_bottom_2=&#8221;0px&#8221; padding_left_1=&#8221;0px&#8221; padding_left_2=&#8221;0px&#8221; padding_top_bottom_link_1=&#8221;false&#8221; padding_top_bottom_link_2=&#8221;true&#8221; padding_left_right_link_1=&#8221;true&#8221; padding_left_right_link_2=&#8221;true&#8221; admin_label=&#8221;Section&#8221; module_id=&#8221;teambloc&#8221; module_class=&#8221;vcenter-left-col gsap-diapo-up play-again revert&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; inner_width=&#8221;100%&#8221; inner_width_tablet=&#8221;100%&#8221; inner_width_phone=&#8221;100%&#8221; inner_width_last_edited=&#8221;on|phone&#8221; inner_max_width=&#8221;100%&#8221; inner_max_width_tablet=&#8221;1280px&#8221; inner_max_width_phone=&#8221;1280px&#8221; inner_max_width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;||||false|false&#8221; custom_margin_tablet=&#8221;||0px||false|false&#8221; custom_margin_phone=&#8221;||0px||false|false&#8221; custom_margin_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;|0px|0px|0px|false|true&#8221; custom_padding_tablet=&#8221;|0px|0px|0px|false|true&#8221; custom_padding_phone=&#8221;0px|0px|0px|0px|false|true&#8221; custom_css_main_element=&#8221;z-index: 4;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; specialty_columns=&#8221;2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_row_inner custom_padding_last_edited=&#8221;on|desktop&#8221; admin_label=&#8221;Row&#8221; module_class=&#8221;vcentered-col&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#f1f1f1&#8243; custom_padding=&#8221;140px|20%|140px|20%|true|true&#8221; custom_padding_tablet=&#8221;70px|10%|70px|10%|true|true&#8221; custom_padding_phone=&#8221;70px|10%|70px|10%|true|true&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;off|desktop&#8221; custom_css_main_element_tablet=&#8221;height: fit-content !important;&#8221;][et_pb_column_inner saved_specialty_column_type=&#8221;1_2&#8243; admin_label=&#8221;Column&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_heading_font||||||||&#8221; text_font_size=&#8221;24px&#8221; header_2_font_size=&#8221;38px&#8221; header_2_line_height=&#8221;1.3em&#8221; custom_margin=&#8221;||3px||false|false&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|phone&#8221; header_2_font_size_tablet=&#8221;38px&#8221; header_2_font_size_phone=&#8221;32px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Meet Dr. Alexander Cuno:<\/p>\n<h2 style=\"margin-top: 10px;\">Shaping confidence with surgical precision<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|300|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_letter_spacing=&#8221;1px&#8221; text_font_size_tablet=&#8221;20px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|tablet&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Safety, comfort &amp; natural results<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/www.drcuno.com\/alexander-cuno\/&#8221; button_text=&#8221;Know more&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_size=&#8221;14px&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_color=&#8221;#000000&#8243; button_border_width=&#8221;1px&#8221; button_border_color=&#8221;#000000&#8243; button_border_radius=&#8221;25px&#8221; button_letter_spacing=&#8221;1px&#8221; button_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; button_use_icon=&#8221;off&#8221; custom_margin_tablet=&#8221;20px||20px||true|false&#8221; custom_margin_phone=&#8221;20px||20px||true|false&#8221; custom_margin_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;6px|20px|6px|20px|true|true&#8221; global_colors_info=&#8221;{}&#8221; button_text_color__hover=&#8221;#000000&#8243; button_text_color__hover_enabled=&#8221;on|desktop&#8221; button_bg_color__hover=&#8221;RGBA(255,255,255,0)&#8221; button_bg_color__hover_enabled=&#8221;on|desktop&#8221; button_border_color__hover=&#8221;#FFFFFF&#8221; button_border_color__hover_enabled=&#8221;off|desktop&#8221; button_bg_enable_color__hover=&#8221;on&#8221;][\/et_pb_button][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]Dr. Cuno\u2019s extensive international experience in facial plastic and in ENT surgery ensures the highest standards in both function and form. \u2028<\/p>\n<p>He has completed specialized training in nose and in aesthetic surgery of the face, including a prestigious fellowship in facial plastic and reconstructive surgery in Australia.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner disabled_on=&#8221;off|off|on&#8221; admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/08\/dr-cuno-home-04.jpg&#8221; background_position=&#8221;top_center&#8221; height_last_edited=&#8221;off|phone&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;height: 700px&#8221; custom_css_main_element_phone=&#8221;height: 450px&#8221;][et_pb_column_inner saved_specialty_column_type=&#8221;1_2&#8243; admin_label=&#8221;Column&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;min-height: 550px !important;&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;min-height: 400px !important;&#8221; custom_css_main_element_tablet=&#8221;min-height: 550px !important;&#8221;][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; admin_label=&#8221;Column&#8221; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image src=&#8221;https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/08\/dr-cuno-home-04.jpg&#8221; alt=&#8221;clinic-surgery-in-switzerland-geneva&#8221; title_text=&#8221;dr-cuno-home-04&#8243; disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; width_tablet=&#8221;&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|phone&#8221; animation_direction=&#8221;right&#8221; custom_css_main_element=&#8221;z-index: 999999999999 !important;&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;z-index: 999999999999 !important;&#8221; custom_css_main_element_phone=&#8221;z-index: 999999999999 !important;&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;off|off|off&#8221; module_id=&#8221;head3d&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#0b0c10&#8243; custom_padding=&#8221;||||false|false&#8221; custom_css_main_element=&#8221;z-index: 5 !important;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row custom_padding_last_edited=&#8221;on|desktop&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||||false|false&#8221; custom_margin_tablet=&#8221;||0px||false|false&#8221; custom_margin_last_edited=&#8221;off|desktop&#8221; custom_padding=&#8221;|5%|0px|5%|false|true&#8221; custom_padding_tablet=&#8221;|0%||0%|false|true&#8221; custom_padding_phone=&#8221;|0%||0%|false|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_css_main_element=&#8221;margin-bottom: -180px !important;&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|tablet&#8221; custom_css_main_element_tablet=&#8221;margin-bottom: 0px !important;&#8221; custom_css_main_element_phone=&#8221;margin-bottom: 0px !important;&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_2_text_align=&#8221;left&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_font_size=&#8221;80px&#8221; max_width=&#8221;380px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;off|desktop&#8221; module_alignment=&#8221;left&#8221; custom_margin=&#8221;||10px||false|false&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||-15px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; header_2_font_size_tablet=&#8221;55px&#8221; header_2_font_size_phone=&#8221;35px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Treatments<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|500|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_line_height=&#8221;1.6em&#8221; max_width=&#8221;400px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;on|tablet&#8221; module_alignment=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Every face is unique, and so is every treatment. Whether enhancing natural features, correcting previous work, or addressing functional concerns, our approach is meticulous, personalized, and focused on achieving the best outcome for you.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;GLB&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; width=&#8221;100%&#8221; max_width=&#8221;1920px&#8221; custom_padding=&#8221;0px||0px||true|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;||||false|false&#8221; custom_css_main_element=&#8221;margin-top: -350px !important;||margin-bottom: -350px !important;&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;off|desktop&#8221;]<\/p>\n    <div id=\"gltf-container-6a094ef85ac80\" style=\"width: 100%; height: 2200px; min-height: 2200px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-6a094ef85ac80 {\r\n            width: 100% !important;\r\n            height: 2200px !important;\r\n            min-height: 2200px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-6a094ef85ac80 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-6a094ef85ac80');\r\n\r\n            if (!container) {\r\n                return;\r\n            }\r\n\t\t\tconst messZoneTop = 550;\r\nconst messZoneBottom = 400;\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:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/08\/cara_cuello.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) * 2.3;\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=&#8221;on|off|on&#8221; admin_label=&#8221;Text&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n    <div id=\"gltf-container-6a094ef85acd5\" style=\"width: 100%; height: 850px; min-height: 850px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-6a094ef85acd5 {\r\n            width: 100% !important;\r\n            height: 850px !important;\r\n            min-height: 850px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-6a094ef85acd5 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-6a094ef85acd5');\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:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/08\/cara_cuello.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=&#8221;off|on|on&#8221; admin_label=&#8221;Text&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n    <div id=\"gltf-container-6a094ef85ad09\" style=\"width: 100%; height: 500px; min-height: 500px; position: relative;\"><\/div>\r\n    <style>\r\n        #gltf-container-6a094ef85ad09 {\r\n            width: 100% !important;\r\n            height: 500px !important;\r\n            min-height: 500px !important;\r\n            position: relative !important;\r\n        }\r\n        #gltf-container-6a094ef85ad09 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-6a094ef85ad09');\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:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/08\/cara_cuello.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 content_tablet=&#8221;<img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3>Facial Plastic Surgery<\/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=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Learn more<\/a><\/div>\n<p>&#8221; content_phone=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3><a href=%22https:\/\/www.drcuno.com\/face-plastic-surgery\/%22>Facial Plastic Surgery <span style=%22position: relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; disabled_on=&#8221;off|off|off&#8221; module_class=&#8221;threedmessage-1 threedmcontainer&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_3_text_align=&#8221;left&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;30px&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;100px&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;||||false|false&#8221; header_3_font_size_tablet=&#8221;25px&#8221; header_3_font_size_phone=&#8221;19px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;position: absolute;||top: 220px;||left: 70%;||width: fit-content !important;&#8221; text_text_shadow_style=&#8221;preset2&#8243; text_text_shadow_color=&#8221;#000000&#8243; header_3_text_shadow_style=&#8221;preset2&#8243; header_3_text_shadow_color=&#8221;#000000&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;position: absolute;||top: 90px;||right: 10%;||width: fit-content !important;&#8221; custom_css_main_element_tablet=&#8221;position: absolute;||top: 110px;||right: 10%;||width: fit-content !important;&#8221;]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Facial Plastic Surgery<\/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:\/\/www.drcuno.com\/face-plastic-surgery\/\">Learn more<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<p><img class=%22tilting-sonar%22 src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 \/><\/p>\n<h3>Ear Procedures<\/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=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Learn more<\/a><\/div>\n<p>&#8221; content_phone=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3><a href=%22https:\/\/www.drcuno.com\/face-plastic-surgery\/%22>Ear Procedures <span style=%22position: relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; disabled_on=&#8221;off|off|off&#8221; module_class=&#8221;threedmessage-2 threedmcontainer&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_3_text_align=&#8221;left&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;30px&#8221; text_orientation=&#8221;right&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;100px&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;||||false|false&#8221; header_3_font_size_tablet=&#8221;25px&#8221; header_3_font_size_phone=&#8221;19px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;position: absolute;||top: 720px;||left: 20%;||width: fit-content !important;&#8221; text_text_shadow_style=&#8221;preset2&#8243; text_text_shadow_color=&#8221;#000000&#8243; header_3_text_shadow_style=&#8221;preset2&#8243; header_3_text_shadow_color=&#8221;#000000&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;position: absolute;||top: 220px;||left: 10%;||width: fit-content !important;&#8221; custom_css_main_element_tablet=&#8221;position: absolute;||top: 350px;||left: 10%;||width: fit-content !important;&#8221;]<img decoding=\"async\" class=\"tilting-sonar\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" \/><\/p>\n<h3>Ear Procedures<\/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:\/\/www.drcuno.com\/face-plastic-surgery\/\">Learn more<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3>Rhinoplasty &#038; Nose Procedures<\/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=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Learn more<\/a><\/div>\n<p>&#8221; content_phone=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3><a href=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Rhinoplasty &#038; Nose Procedures <span style=%22position: relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; disabled_on=&#8221;off|off|off&#8221; module_class=&#8221;threedmessage-2 threedmcontainer zoneleft20&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_3_text_align=&#8221;left&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;30px&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;100px&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;||||false|false&#8221; header_3_font_size_tablet=&#8221;25px&#8221; header_3_font_size_phone=&#8221;19px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;position: absolute;||top: 650px;||left: 70%;||width: fit-content !important;&#8221; text_text_shadow_style=&#8221;preset2&#8243; text_text_shadow_color=&#8221;#000000&#8243; header_3_text_shadow_style=&#8221;preset2&#8243; header_3_text_shadow_color=&#8221;#000000&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;position: absolute;||top: 250px;||right: 10%;||width: fit-content !important;&#8221; custom_css_main_element_tablet=&#8221;position: absolute;||top: 330px;||right: 10%;||width: fit-content !important;&#8221;]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Rhinoplasty &amp; Nose Procedures<\/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:\/\/www.drcuno.com\/primary-rhinolasty\/\">Learn more<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3>Neck Plastic Surgery<\/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=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Learn more<\/a><\/div>\n<p>&#8221; content_phone=&#8221;<img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3><a href=%22https:\/\/www.drcuno.com\/face-plastic-surgery\/%22>Neck Plastic Surgery <span style=%22position: relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|desktop&#8221; disabled_on=&#8221;off|off|off&#8221; module_class=&#8221;threedmessage-3 threedmcontainer&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_3_text_align=&#8221;right&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;30px&#8221; text_orientation=&#8221;right&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;100px&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;||||false|false&#8221; header_3_font_size_tablet=&#8221;25px&#8221; header_3_font_size_phone=&#8221;19px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;position: absolute;||top: 1050px;||left: 20%;||width: fit-content !important;&#8221; text_text_shadow_style=&#8221;preset2&#8243; text_text_shadow_color=&#8221;#000000&#8243; header_3_text_shadow_style=&#8221;preset2&#8243; header_3_text_shadow_color=&#8221;#000000&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|tablet&#8221; custom_css_main_element_phone=&#8221;position: absolute;||top: 330px;||left: 10%;||width: fit-content !important;&#8221; custom_css_main_element_tablet=&#8221;position: absolute;||top: 570px;||left: 10%;||width: fit-content !important;&#8221;]<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Neck Plastic Surgery<\/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:\/\/www.drcuno.com\/face-plastic-surgery\/\">Learn more<\/a><\/div>\n<p>[\/et_pb_text][et_pb_text content_tablet=&#8221;<\/p>\n<p><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3>Non-Surgical Aesthetic Medicine<\/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=%22https:\/\/www.drcuno.com\/primary-rhinolasty\/%22>Learn more<\/a><\/div>\n<p>&#8221; content_phone=&#8221;<img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png%22 class=%22tilting-sonar%22 \/><\/p>\n<h3><a href=%22https:\/\/www.drcuno.com\/injection-rhinoplasty\/%22>Non-Surgical Aesthetic Medicine <span style=%22position: relative; top: 2px;%22>\u2192<\/span><\/a><\/h3>\n<p>&#8221; content_last_edited=&#8221;on|phone&#8221; disabled_on=&#8221;off|off|off&#8221; module_class=&#8221;threedmessage-3 threedmcontainer&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; header_3_text_align=&#8221;left&#8221; header_3_text_color=&#8221;#FFFFFF&#8221; header_3_font_size=&#8221;30px&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;100px&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_margin=&#8221;||||false|false&#8221; header_3_font_size_tablet=&#8221;25px&#8221; header_3_font_size_phone=&#8221;19px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;position: absolute;||top: 1000px;||left: 70%;||width: fit-content !important;&#8221; text_text_shadow_style=&#8221;preset2&#8243; text_text_shadow_color=&#8221;#000000&#8243; header_3_text_shadow_style=&#8221;preset2&#8243; header_3_text_shadow_color=&#8221;#000000&#8243; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_phone=&#8221;position: absolute;||top: 380px;||right: 10%;||width: fit-content !important;&#8221; custom_css_main_element_tablet=&#8221;position: absolute;||top: 520px;||right: 10%;||width: fit-content !important;&#8221;]<img decoding=\"async\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/06\/sonar-icon.png\" class=\"tilting-sonar\" \/><\/p>\n<h3>Non-Surgical Aesthetic Medicine<\/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:\/\/www.drcuno.com\/injection-rhinoplasty\/\">Learn more<\/a><\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;1&#8243; specialty=&#8221;on&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; padding_top_1=&#8221;0px&#8221; padding_top_2=&#8221;0px&#8221; padding_right_1=&#8221;0px&#8221; padding_right_2=&#8221;0px&#8221; padding_bottom_1=&#8221;0px&#8221; padding_bottom_2=&#8221;0px&#8221; padding_left_1=&#8221;0px&#8221; padding_left_2=&#8221;0px&#8221; padding_top_bottom_link_1=&#8221;false&#8221; padding_top_bottom_link_2=&#8221;true&#8221; padding_left_right_link_1=&#8221;true&#8221; padding_left_right_link_2=&#8221;true&#8221; padding_2_tablet=&#8221;50px|0px|50px|0px|true|true&#8221; padding_2_phone=&#8221;40px||40px||true|false&#8221; padding_2_last_edited=&#8221;on|tablet&#8221; module_class_2=&#8221;gsap-diapo-up play-again revert&#8221; module_class=&#8221;vcenter-left-col&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#f1f1f1&#8243; inner_width=&#8221;100%&#8221; inner_width_tablet=&#8221;100%&#8221; inner_width_phone=&#8221;100%&#8221; inner_width_last_edited=&#8221;on|phone&#8221; inner_max_width=&#8221;100%&#8221; inner_max_width_tablet=&#8221;1280px&#8221; inner_max_width_phone=&#8221;1280px&#8221; inner_max_width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|true&#8221; custom_padding_tablet=&#8221;0px|0px|0px|0px|false|true&#8221; custom_padding_phone=&#8221;0px|0px||0px|false|true&#8221; custom_css_main_element=&#8221;z-index: 0 !important;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image src=&#8221;https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/05\/cabinet-de-chirurgie-geneve-suisse.jpg&#8221; alt=&#8221;cabinet de chirurgie faciale Gen\u00e8ve Suisse&#8221; title_text=&#8221;cabinet de chirurgie faciale Gen\u00e8ve Suisse&#8221; disabled_on=&#8221;on|on|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; animation_style=&#8221;slide&#8221; animation_direction=&#8221;left&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; specialty_columns=&#8221;2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_row_inner custom_padding_last_edited=&#8221;on|tablet&#8221; module_class=&#8221;vcentered-col&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|10%||10%|false|true&#8221; custom_padding_tablet=&#8221;|10%||10%|false|true&#8221; custom_padding_phone=&#8221;|10%||10%|false|true&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column_inner saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_2_text_align=&#8221;left&#8221; header_2_font_size=&#8221;80px&#8221; max_width=&#8221;550px&#8221; max_width_tablet=&#8221;500px&#8221; max_width_phone=&#8221;500px&#8221; max_width_last_edited=&#8221;off|desktop&#8221; module_alignment=&#8221;left&#8221; custom_margin_tablet=&#8221;||20px||false|false&#8221; custom_margin_phone=&#8221;||10px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; header_2_font_size_tablet=&#8221;55px&#8221; header_2_font_size_phone=&#8221;35px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>A Premium Facial Surgery Clinic in Geneva<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;450px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Conveniently located in <strong>Geneva<\/strong>, our clinic is a leading center for <strong>high-end facial plastic surgery<\/strong>, welcoming patients from Switzerland and beyond.<\/p>\n<p>[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|tablet&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; min_height=&#8221;135.6px&#8221; custom_padding=&#8221;0px|10%||10%|false|true&#8221; custom_padding_tablet=&#8221;40px|10%||10%|false|true&#8221; custom_padding_phone=&#8221;20px||||false|true&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;display: flex;&#8221; custom_css_main_element_phone=&#8221;display: flex;||flex-wrap: wrap;&#8221;][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Located in the heart of Geneva<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Easily accessible, offering a discreet and welcoming environment.<\/p>\n<p>[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_margin_tablet=&#8221;||15px||false|false&#8221; custom_margin_phone=&#8221;25px||15px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Uncompromising safety &#038; comfort[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Strict medical standards for a secure and smooth experience.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; min_height=&#8221;135.6px&#8221; custom_padding=&#8221;0px|10%||10%|false|true&#8221; custom_padding_tablet=&#8221;10px|10%||10%|false|true&#8221; custom_padding_phone=&#8221;0px||||false|true&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;display: flex;&#8221; custom_css_main_element_phone=&#8221;display: flex;||flex-wrap: wrap;&#8221;][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]State-of-the-art technology[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Cutting-edge equipment ensures precision and optimal results.[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_margin_tablet=&#8221;||15px||false|false&#8221; custom_margin_phone=&#8221;25px||15px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Experienced &#038; specialized team[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]A dedicated team committed to excellence in patient care.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner column_structure=&#8221;1_2,1_2&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; min_height=&#8221;135.6px&#8221; custom_padding=&#8221;0px|10%||10%|false|true&#8221; custom_padding_tablet=&#8221;10px|10%||10%|false|true&#8221; custom_padding_phone=&#8221;0px||||false|true&#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;display: flex;&#8221; custom_css_main_element_phone=&#8221;display: flex;||flex-wrap: wrap;&#8221;][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Tailored treatments for natural results[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Personalized procedures designed to enhance your unique features.[\/et_pb_text][\/et_pb_column_inner][et_pb_column_inner type=&#8221;1_2&#8243; saved_specialty_column_type=&#8221;2_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#000000&#8243; text_font_size=&#8221;24px&#8221; text_line_height=&#8221;1.2em&#8221; header_2_font=&#8221;&#8211;et_global_body_font|300|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; header_2_line_height=&#8221;1.5em&#8221; max_width=&#8221;220px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_margin_tablet=&#8221;||15px||false|false&#8221; custom_margin_phone=&#8221;25px||15px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; text_font_size_tablet=&#8221;24px&#8221; text_font_size_phone=&#8221;20px&#8221; text_font_size_last_edited=&#8221;on|desktop&#8221; header_2_font_size_tablet=&#8221;&#8221; header_2_font_size_phone=&#8221;20px&#8221; header_2_font_size_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Continuous support at every step[\/et_pb_text][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;220px&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; module_alignment_tablet=&#8221;&#8221; module_alignment_phone=&#8221;center&#8221; module_alignment_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]Personalized guidance and continuous care throughout your journey.[\/et_pb_text][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;10px||10px||true|false&#8221; custom_padding=&#8221;40px||40px||true|false&#8221; custom_padding_tablet=&#8221;20px||20px||false|false&#8221; custom_padding_phone=&#8221;20px||20px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#000000&#8243; header_2_text_align=&#8221;center&#8221; header_2_text_color=&#8221;#000000&#8243; header_2_font_size=&#8221;64px&#8221; header_3_font=&#8221;|300|||||||&#8221; header_3_text_color=&#8221;#000000&#8243; header_3_font_size=&#8221;50px&#8221; header_3_line_height=&#8221;1.1em&#8221; text_orientation=&#8221;center&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;||14px||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;20px||||false|false&#8221; link_option_url=&#8221;https:\/\/www.drcuno.com\/contact-us\/&#8221; header_2_font_size_tablet=&#8221;50px&#8221; header_2_font_size_phone=&#8221;35px&#8221; header_2_font_size_last_edited=&#8221;on|phone&#8221; header_3_font_size_tablet=&#8221;35px&#8221; header_3_font_size_phone=&#8221;28px&#8221; header_3_font_size_last_edited=&#8221;on|phone&#8221; custom_css_main_element=&#8221;width: fit-content;||margin: auto;&#8221; border_color_top=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221; content__hover_enabled=&#8221;on|hover&#8221; content__hover=&#8221;<\/p>\n<div class=%22to-italic-block to-bold-block%22><img src=%22https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/05\/book-calendar-hover.png%22 class=%22book%22 \/><\/p>\n<h2><span class=%22to-italic to-bold%22>Book a consultation<\/span><\/h2>\n<\/div>\n<p>&#8220;]<\/p>\n<div class=\"to-italic-block to-bold-block\">\n<p><img decoding=\"async\" src=\"https:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/05\/book-calendar.png\" class=\"book\" \/><\/p>\n<h2><span class=\"to-italic to-bold\">Book a consultation<\/span><\/h2>\n<\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dr.AlexanderCunoFacial plastic &amp; ENT surgeon in Geneva Refined aesthetics and surgical excellence    <!-- 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:\/\/www.drcuno.com\/wp-content\/uploads\/2025\/05\/book-calendar-white.png\" alt=\"Book a consultation\" class=\"consultation-icon\">\r\n        <p class=\"consultation-text\">Book a consultation<\/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:\/\/www.drcuno.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:\/\/www.drcuno.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:\/\/www.drcuno.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    Facial surgery is amatter of trust.Here\u2019s why you\u2019re ingood hands.As a double board-certified facial surgeon, Dr. Cuno specializes in primary and revision rhinoplasty. His philosophy ? Natural, precision, artistry, and discretion. Dr. Cuno and his expert team will make sure you feel comfortable, informed, [&hellip;]<\/p>\n","protected":false},"author":5,"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:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":430,"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":1762,"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/pages\/15\/revisions\/1762"}],"wp:attachment":[{"href":"https:\/\/www.drcuno.com\/fr\/wp-json\/wp\/v2\/media?parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}