Verificación de edad

Este sitio contiene contenido para adultos. ¿Tienes 18 años o más?

SexLust.ch

Monica

BIO

Detalles del perfil

Tatuajes: No

Idiomas hablados: Español

Sobre

Switzerland
Votre compte Escorts girls Masseuses érotiques BDSM Trans Salons On a testé FR_FR DE EN ES IT Ajouter une annonce Se connecter ou Créer un compte Ajouter une annonce document.body.dataset.activeTab = window.location.hash.substr(1); prevnext Monica Citas Laisser un avis -Online-8H📍 Museumstrasse 2Masseuses érotiques Monica Citas Spécialités Je me présente pour toi Hola! Soy Mónica disponible para complacerte y disfrutar de momentos agradables y apasionantes. Citas privadas Contact direct Contactez cette annonce rapidement par téléphone ou WhatsApp. M Monica Museumstrasse 2 · -Online-8H 📞 Appeler 🟢 WhatsApp ↗ Partager ⚠ Signaler Sécurité. Ne versez aucun acompte avant la rencontre. Privilégiez les annonces vérifiées et signalez tout profil douteux. Tout sur moi Les avis 0 prev next Whatsapp Call now Messagerie Donner un avis signaler une annonce prev next Galerie photos prevnext Un peu plus sur moi Je m'appelle Monica Privilégiez les annonces vérifiées. ⚠️ Ne versez aucun paiement avant la prestation : c’est une méthode couramment utilisée par les arnaqueurs. Signalez-nous sans attendre tout profil douteux. Privilégiez les annonces certifiées avec le label. Location © Mapbox © OpenStreetMap Improve this map Museumstrasse 2, 8001 Zurich, Suisse Obtenir un itinéraire Pas encore de commentaires. Ajouter un commentaire Laisser un commentaire · Annuler la réponseVotre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec * Your Rating Nom Courriel Votre message Enregistrer mon nom, mon adresse électronique et mon site web dans ce navigateur pour la prochaine fois que je ferai un commentaire. Soumettre un avis Alternative:WPA body[data-active-tab="tout-sur-moi"] .listing-tab { display: none; } body[data-active-tab="tout-sur-moi"] #listing_tab_tout-sur-moi { display: block; } body[data-active-tab="les-avis"] .listing-tab { display: none; } body[data-active-tab="les-avis"] #listing_tab_les-avis { display: block; } Cela pourrait également vous intéresser Mia coquine Promoted Genève -Online-8H fétichisme Sissi Dominatrice et caline Promoted Genève -Online-8H Douce et sévère Lollas Promoted Lausanne -Online-8H Douceur et gode Meetgirl est le site de référence en Suisse d’annonces érotiques. Le seul site de référence avec annonces certifiées, vidéos et géolocalisation. ANNONCES GRATUITES Conditions générales CGU Engagement et ressources Nos partenaires Devenir partenaire Meetgirl Contact Communiqué de presse « On Tour » On a testé pour vous News – Blog Insérer une annonce gratuitement FR_FR FR_FR EN DE IT ES // need to have the same with set from JS on both divs. Otherwise it can push stuff around in HTML var trp_ls_shortcodes = document.querySelectorAll('.trp_language_switcher_shortcode .trp-language-switcher'); if ( trp_ls_shortcodes.length > 0) { // get the last language switcher added var trp_el = trp_ls_shortcodes[trp_ls_shortcodes.length - 1]; var trp_shortcode_language_item = trp_el.querySelector( '.trp-ls-shortcode-language' ) // set width var trp_ls_shortcode_width = trp_shortcode_language_item.offsetWidth + 16; trp_shortcode_language_item.style.width = trp_ls_shortcode_width + 'px'; trp_el.querySelector( '.trp-ls-shortcode-current-language' ).style.width = trp_ls_shortcode_width + 'px'; // We're putting this on display: none after we have its width. trp_shortcode_language_item.style.display = 'none'; } Instagram LES ESCORTES A GENEVE Escort coquine à Genève Escort française à Genève Escort métisse à Genève Escort discrète à Genève Escort soumise à Genève Escort dominatrice à Genève Escort pute à Genève Escort blonde à Genève Escort prostituée à Genève Escort trans à Genève LES ESCORTES PAR QUARTIER DE GENEVE Escort Genève Escort aux Eaux-Vives Escort quartier Paquis LES MASSAGES EROTIQUES A GENEVE Massage Tantra à Genève Massage Lingam à Genève Massage Nuru à Genève Massage Prostatique à Genève Massage Sexuel à Genève Massage body-body à Genève SERVICES SEXUELS A GENEVE Facesitting à GenèveFétiches Sexuels à GenèveSexe Anal et Sodomie à GenèveGorge Profonde à GenèveEjaculation faciale à GenèveFellation à GenèveSoumission à GenèveMassages Érotiques à GenèveDouche dorée à GenèveBranlette Espagnole à GenèveAnulingus à Genève ESCORT SUISSE RENCONTRE EROTIQUE SUISSE MEETGIRL ON TOUR Meetgirl On Tour GenèveMeetgirl on Tour LausanneMeegirl save the dateMeetgirl On Tour Samedi LES ESCORTES A LAUSANNE Escort LausanneEscort coquine à LausanneEscort française à LausanneEscort métisse à LausanneEscort discrète à LausanneEscort soumise à LausanneEscort dominatrice à LausanneEscort Latex à LausanneEscort pute à LausanneEscort blonde à LausanneEscort prostituée à LausanneEscort avec gros seins à LausanneEscort fessier rebondi à LausanneEscort Trans LausanneEscort Trans dominatrice à Lausanne LES MASSAGES EROTIQUES A LAUSANNE Massage Tantra à LausanneMassage Lingam à LausanneMassage Nuru à LausanneMassage Prostatique à LausanneMassage sexuel à LausanneMassage Body-body à LausanneMassage érotique à Lausanne LES ESCORTS PAR QUARTIER DANS LE CANTON DE VAUD Escort à RenensEscort à YverdonEscort à PayerneEscort à MontreuxEscort à NyonEscort GlandEscort à Vevey SERVICES SEXUELS A LAUSANNE Facesitting à LausanneFétiches Sexuels à LausanneSexe anal et sodomie à LausanneGorge Profonde à LausanneEjaculation faciale à LausanneFellation à LausanneAnulingus à LausanneSoumission à LausanneMassage érotique à LausanneDouche dorée à LausanneFétishisme des pieds à LausanneBondage à LausanneShibari LausannePegging à LausanneSpanking à Lausanne69 à Lausanne LES ESCORTES EN VALAIS Escort ValaisEscort coquine en ValaisEscort discrète en ValaisEscort soumise en ValaisEscort dominatrice en ValaisEscort pute en ValaisEscort blonde en ValaisEscort prostituée en ValaisEscort avec gros seins en ValaisEscort Trans En Valais LES MASSAGES EROTIQUES EN VALAIS Massage sexuel en ValaisMassage sensuel en ValaisMassage érotique en valais LES ESCORTS PAR QUARTIER EN VALAIS Escort à SionEscort à SierreEscort à Martigny LES ESCORTES A FRIBOURG Escort coquine à FribourgEscort discrète à FribourgEscort soumise à FribourgEscort dominatrice à FribourgEscort pute à FribourgEscort blonde à FribourgEscort prostituée à FribourgEscort trans à Fribourg LES MASSAGES EROTIQUES A FRIBOURG Massage sexuel à FribourgMassage sensuel à FribourgMassage érotique à Fribourg LES ESCORTS PAR QUARTIER A FRIBOURG Escort FribourgEscort à BulleEscort ville de FribourgEscort Berne Panier Votre panier est vide. <div class="mylisting-dialog-wrapper"> <div class="mylisting-dialog"> <div class="mylisting-dialog--message"></div><!-- --><div class="mylisting-dialog--actions"> <div class="mylisting-dialog--dismiss mylisting-dialog--action">Rejeter</div> <div class="mylisting-dialog--loading mylisting-dialog--action hide"> <div class="paper-spinner " style="width: 24px; height: 24px;"> <div class="spinner-container active"> <div class="spinner-layer layer-1" style="border-color: #777;"> <div class="circle-clipper left"> <div class="circle" style="border-width: 2.5px;"></div> </div><div class="gap-patch"> <div class="circle" style="border-width: 2.5px;"></div> </div><div class="circle-clipper right"> <div class="circle" style="border-width: 2.5px;"></div> </div> </div> </div> </div> </div> </div> </div> </div> .c27-main-header .logo img { height: 38px; }@media screen and (max-width: 1200px) { .c27-main-header .logo img { height: 50px; } }@media screen and (max-width: 480px) { .c27-main-header .logo img { height: 40px; } }.c27-main-header:not(.header-scroll) .header-skin { background: #891c31 }.c27-main-header.header-scroll .header-skin{ background: #891c31 !important; }.c27-main-header.header-scroll .header-skin { border-bottom: 1px solid #891c31 !important; } <a aria-label="Marqueur cartographique du bloc de localisation" href="#" class="marker-icon"> <div class="marker-img" style="background-image: url({{marker-bg}});"></div> </a> <div class="cts-marker-pin"> <img alt="Épingle de repérage cartographique" src="https://meetgirl.ch/wp-content/themes/my-listing/assets/images/pin.png"> </div> <div class="cts-geoloc-marker"></div> <a aria-label="Marqueur de carte de la page d'exploration" href="#" class="marker-icon {{listing-id}}"> {{icon}} <div class="marker-img" style="background-image: url({{marker-bg}});"></div> </a> /* <![CDATA[ */ var hasJetBlogPlaylist = 0; /* ]]> */ {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/my-listing-child/*","/wp-content/themes/my-listing/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} We've detected you might be speaking a different language. Do you want to change to: DE FR_FR EN DE IT ES Change Language Close and do not switch language { "@context": "http://www.schema.org", "@type": "LocalBusiness", "@id": "https://meetgirl.ch/escorts/monica-6/", "name": "Monica", "legalName": "Monica", "description": "<p>Hola! Soy M\u00f3nica disponible para complacerte y disfrutar de momentos agradables y apasionantes.</p>\n<p>Citas privadas</p>\n", "url": "https://meetgirl.ch/escorts/monica-6/", "telephone": "+41779038467", "photo": [ "https://meetgirl.ch/wp-content/uploads/listing-uploads/cover/2026/06/IMG-20260618-WA0004.jpg" ], "image": [ "https://meetgirl.ch/wp-content/uploads/listing-uploads/cover/2026/06/IMG-20260618-WA0004.jpg" ], "photos": [ "https://meetgirl.ch/wp-content/uploads/listing-uploads/gallery/2026/06/IMG-20260618-WA0004.jpg" ], "hasMap": "https://www.google.com/maps/@47.37920,8.54065z", "address": { "address": "Museumstrasse 2, 8001 Zurich, Suisse", "lat": "47.37920", "lng": "8.54065" }, "contactPoint": { "@type": "ContactPoint", "contactType": "customer support", "telephone": "+41779038467" }, "geo": { "@type": "GeoCoordinates", "latitude": "47.37920", "longitude": "8.54065" } } <li :id="'jet-mobile-menu-item-'+itemDataObject.itemId" :class="itemClasses" > <div class="jet-mobile-menu__item-inner" tabindex="0" :aria-label="itemDataObject.name" aria-expanded="false" v-on:click="itemSubHandler" v-on:keyup.enter="itemSubHandler" > <a :class="itemLinkClasses" :href="itemDataObject.url" :rel="itemDataObject.xfn" :title="itemDataObject.attrTitle" :target="itemDataObject.target" > <div class="jet-menu-item-wrapper"> <div class="jet-menu-icon" v-if="isIconVisible" v-html="itemIconHtml" ></div> <div class="jet-menu-name"> <span class="jet-menu-label" v-if="isLabelVisible" v-html="itemDataObject.name" ></span> <small class="jet-menu-desc" v-if="isDescVisible" v-html="itemDataObject.description" ></small> </div> <div class="jet-menu-badge" v-if="isBadgeVisible" > <div class="jet-menu-badge__inner" v-html="itemDataObject.badgeContent"></div> </div> </div> </a> <span class="jet-dropdown-arrow" v-if="isSub && !templateLoadStatus" v-html="dropdownIconHtml" v-on:click="markerSubHandler" > </span> <div class="jet-mobile-menu__template-loader" v-if="templateLoadStatus" > <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="24px" height="25px" viewBox="0 0 128 128" xml:space="preserve"> <g> <linearGradient :id="'linear-gradient-'+itemDataObject.itemId"> <stop offset="0%" :stop-color="loaderColor" stop-opacity="0"/> <stop offset="100%" :stop-color="loaderColor" stop-opacity="1"/> </linearGradient> <path d="M63.85 0A63.85 63.85 0 1 1 0 63.85 63.85 63.85 0 0 1 63.85 0zm.65 19.5a44 44 0 1 1-44 44 44 44 0 0 1 44-44z" :fill="'url(#linear-gradient-'+itemDataObject.itemId+')'" fill-rule="evenodd"/> <animateTransform attributeName="transform" type="rotate" from="0 64 64" to="360 64 64" dur="1080ms" repeatCount="indefinite"></animateTransform> </g> </svg> </div> </div> <transition name="menu-container-expand-animation"> <mobile-menu-list v-if="isDropdownLayout && subDropdownVisible" :depth="depth+1" :children-object="itemDataObject.children" ></mobile-menu-list> </transition> </li> <div class="jet-mobile-menu__list" role="navigation" > <ul class="jet-mobile-menu__items"> <mobile-menu-item v-for="(item, index) in childrenObject" :key="item.id" :item-data-object="item" :depth="depth" ></mobile-menu-item> </ul> </div> <div :class="instanceClass" v-on:keyup.esc="escapeKeyHandler" > <div class="jet-mobile-menu__toggle" role="button" ref="toggle" tabindex="0" aria-label="Open/Close Menu" aria-expanded="false" v-on:click="menuToggle" v-on:keyup.enter="menuToggle" > <div class="jet-mobile-menu__template-loader" v-if="toggleLoaderVisible" > <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="24px" height="25px" viewBox="0 0 128 128" xml:space="preserve"> <g> <linearGradient :id="'linear-gradient-'+itemDataObject.itemId"> <stop offset="0%" :stop-color="loaderColor" stop-opacity="0"/> <stop offset="100%" :stop-color="loaderColor" stop-opacity="1"/> </linearGradient> <path d="M63.85 0A63.85 63.85 0 1 1 0 63.85 63.85 63.85 0 0 1 63.85 0zm.65 19.5a44 44 0 1 1-44 44 44 44 0 0 1 44-44z" :fill="'url(#linear-gradient-'+itemDataObject.itemId+')'" fill-rule="evenodd"/> <animateTransform attributeName="transform" type="rotate" from="0 64 64" to="360 64 64" dur="1080ms" repeatCount="indefinite"></animateTransform> </g> </svg> </div> <div class="jet-mobile-menu__toggle-icon" v-if="!menuOpen && !toggleLoaderVisible" v-html="toggleClosedIcon" ></div> <div class="jet-mobile-menu__toggle-icon" v-if="menuOpen && !toggleLoaderVisible" v-html="toggleOpenedIcon" ></div> <span class="jet-mobile-menu__toggle-text" v-if="toggleText" v-html="toggleText" ></span> </div> <transition name="cover-animation"> <div class="jet-mobile-menu-cover" v-if="menuContainerVisible && coverVisible" v-on:click="closeMenu" ></div> </transition> <transition :name="showAnimation"> <div class="jet-mobile-menu__container" v-if="menuContainerVisible" > <div class="jet-mobile-menu__container-inner" > <div class="jet-mobile-menu__header-template" v-if="headerTemplateVisible" > <div class="jet-mobile-menu__header-template-content" ref="header-template-content" v-html="headerContent" ></div> </div> <div class="jet-mobile-menu__controls" v-if="isBreadcrumbs || isBack || isClose" > <div class="jet-mobile-menu__breadcrumbs" v-if="isBreadcrumbs" > <div class="jet-mobile-menu__breadcrumb" v-for="(item, index) in breadcrumbsPathData" :key="index" > <div class="breadcrumb-label" v-on:click="breadcrumbHandle(index+1)" v-html="item" ></div> <div class="breadcrumb-divider" v-html="breadcrumbIcon" v-if="(breadcrumbIcon && index !== breadcrumbsPathData.length-1)" ></div> </div> </div> <div class="jet-mobile-menu__back" role="button" ref="back" tabindex="0" aria-label="Close Menu" aria-expanded="false" v-if="!isBack && isClose" v-html="closeIcon" v-on:click="menuToggle" v-on:keyup.enter="menuToggle" ></div> <div class="jet-mobile-menu__back" role="button" ref="back" tabindex="0" aria-label="Back to Prev Items" aria-expanded="false" v-if="isBack" v-html="backIcon" v-on:click="goBack" v-on:keyup.enter="goBack" ></div> </div> <div class="jet-mobile-menu__before-template" v-if="beforeTemplateVisible" > <div class="jet-mobile-menu__before-template-content" ref="before-template-content" v-html="beforeContent" ></div> </div> <div class="jet-mobile-menu__body" > <transition :name="animation"> <mobile-menu-list v-if="!templateVisible" :key="depth" :depth="depth" :children-object="itemsList" ></mobile-menu-list> <div class="jet-mobile-menu__template" ref="template-content" v-if="templateVisible" > <div class="jet-mobile-menu__template-content" v-html="itemTemplateContent" ></div> </div> </transition> </div> <div class="jet-mobile-menu__after-template" v-if="afterTemplateVisible" > <div class="jet-mobile-menu__after-template-content" ref="after-template-content" v-html="afterContent" ></div> </div> </div> </div> </transition> </div> (function($){ $(document).ready(function(){ window.cdts_process_dpk_rules( [], true ); }); })(jQuery); (function($){ $(document).ready(function(){ window.cdts_process_dpk_rules( {"job_tags":[""]}, true ); }); })(jQuery); var snp_f = []; var snp_hostname = new RegExp(location.host); var snp_http = new RegExp("^(http|https)://", "i"); var snp_cookie_prefix = ''; var snp_separate_cookies = false; var snp_ajax_url = 'https://meetgirl.ch/wp-admin/admin-ajax.php'; var snp_domain_url = 'https://meetgirl.ch'; var snp_ajax_nonce = '37688bf623'; var snp_ajax_ping_time = 1000; var snp_ignore_cookies = false; var snp_enable_analytics_events = false; var snp_is_mobile = false; var snp_enable_mobile = true; var snp_use_in_all = false; var snp_excluded_urls = []; var snp_close_on_esc_key = false; snp_excluded_urls.push(''); (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Fermer","currentText":"Aujourd\u2019hui","monthNames":["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],"monthNamesShort":["Jan","F\u00e9v","Mar","Avr","Mai","Juin","Juil","Ao\u00fbt","Sep","Oct","Nov","D\u00e9c"],"nextText":"Suivant","prevText":"Pr\u00e9c\u00e9dent","dayNames":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dayNamesShort":["dim","lun","mar","mer","jeu","ven","sam"],"dayNamesMin":["D","L","M","M","J","V","S"],"dateFormat":"d MM yy","firstDay":1,"isRTL":false});}); //# sourceURL=jquery-ui-datepicker-js-after var eio_lazy_vars = {"exactdn_domain":"","skip_autoscale":0,"threshold":0,"use_dpr":1}; //# sourceURL=eio-lazy-load-js-before wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "contact-form-7", {"translation-revision-date":"2025-02-06 12:02:14+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n > 1;","lang":"fr"},"This contact form is placed in the wrong place.":["Ce formulaire de contact est plac\u00e9 dans un mauvais endroit."],"Error:":["Erreur\u00a0:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); //# sourceURL=contact-form-7-js-translations var wpcf7 = { "api": { "root": "https:\/\/meetgirl.ch\/wp-json\/", "namespace": "contact-form-7\/v1" } }; //# sourceURL=contact-form-7-js-before wpa_field_info = {"wpa_field_name":"mtrxuy3800","wpa_field_value":971534,"wpa_add_test":"no"} //# sourceURL=wpascript-js-after var jetMenuPublicSettings = {"version":"2.4.15","ajaxUrl":"https://meetgirl.ch/wp-admin/admin-ajax.php","isMobile":"false","getElementorTemplateApiUrl":"https://meetgirl.ch/wp-json/jet-menu-api/v2/get-elementor-template-content","getBlocksTemplateApiUrl":"https://meetgirl.ch/wp-json/jet-menu-api/v2/get-blocks-template-content","menuItemsApiUrl":"https://meetgirl.ch/wp-json/jet-menu-api/v2/get-menu-items","restNonce":"96dc43b55b","devMode":"false","wpmlLanguageCode":"","menuSettings":{"jetMenuRollUp":"false","jetMenuMouseleaveDelay":"500","jetMenuMegaWidthType":"container","jetMenuMegaWidthSelector":"","jetMenuMegaOpenSubType":"hover","jetMenuMegaAjax":"false"}}; //# sourceURL=jet-menu-public-scripts-js-extra function CxCSSCollector(){"use strict";var t,e=window.CxCollectedCSS;void 0!==e&&((t=document.createElement("style")).setAttribute("title",e.title),t.setAttribute("type",e.type),t.textContent=e.css,document.head.appendChild(t))}CxCSSCollector(); //# sourceURL=jet-menu-public-scripts-js-after var jetPopupData = {"version":"2.0.18","ajax_url":"https://meetgirl.ch/wp-admin/admin-ajax.php","isElementor":"true"}; //# sourceURL=jet-popup-frontend-js-extra var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https://meetgirl.ch/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; //# sourceURL=wc-order-attribution-js-extra moment.updateLocale( 'fr_FR', {"months":["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],"monthsShort":["Jan","F\u00e9v","Mar","Avr","Mai","Juin","Juil","Ao\u00fbt","Sep","Oct","Nov","D\u00e9c"],"weekdays":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"weekdaysShort":["dim","lun","mar","mer","jeu","ven","sam"],"week":{"dow":1},"longDateFormat":{"LT":"G\\hi","LTS":null,"L":null,"LL":"j F Y","LLL":"d F Y G\\hi","LLLL":null}} ); //# sourceURL=moment-js-after window.MyListing_Moment_Locale = 'fr'; //# sourceURL=moment-locale-fr-js-after var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Partager sur Facebook","shareOnTwitter":"Partager sur Twitter","pinIt":"L\u2019\u00e9pingler","download":"T\u00e9l\u00e9charger","downloadImage":"T\u00e9l\u00e9charger une image","fullscreen":"Plein \u00e9cran","zoom":"Zoom","share":"Partager","playVideo":"Lire la vid\u00e9o","previous":"Pr\u00e9c\u00e9dent","next":"Suivant","close":"Fermer","a11yCarouselPrevSlideMessage":"Diapositive pr\u00e9c\u00e9dente","a11yCarouselNextSlideMessage":"Diapositive suivante","a11yCarouselFirstSlideMessage":"Ceci est la premi\u00e8re diapositive","a11yCarouselLastSlideMessage":"Ceci est la derni\u00e8re diapositive","a11yCarouselPaginationBulletMessage":"Aller \u00e0 la diapositive"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Portrait mobile","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Paysage","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablette en mode portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablette en mode paysage","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Portable","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"\u00c9cran large","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"3.32.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"nested-elements":true,"home_screen":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"cloud-library":true,"e_opt_in_v4_page":true,"import-export-customization":true},"urls":{"assets":"https:\/\/meetgirl.ch\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/meetgirl.ch\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/meetgirl.ch\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"61def9f313"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":22371,"title":"Monica%20-%20Meetgirl%20-%20Annonces%20%C3%A9rotiques%20-%20Escorts%2C%20massages%20et%20salons","excerpt":"","featuredImage":false}}; //# sourceURL=elementor-frontend-js-before var wc_cart_fragments_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_5ec4602bb995e26a2d5f164f485aa6f8","fragment_name":"wc_fragments_5ec4602bb995e26a2d5f164f485aa6f8","request_timeout":"5000"}; //# sourceURL=wc-cart-fragments-js-extra var jetElements = {"ajaxUrl":"https://meetgirl.ch/wp-admin/admin-ajax.php","isMobile":"false","templateApiUrl":"https://meetgirl.ch/wp-json/jet-elements-api/v1/elementor-template","devMode":"false","messages":{"invalidMail":"Please specify a valid e-mail"}}; //# sourceURL=jet-elements-js-extra var JetBlogSettings = {"ajaxurl":"https://meetgirl.ch/escorts/monica-6/?nocache=1784014097&jet_blog_ajax=1"}; //# sourceURL=jet-blog-js-extra (function() { function isMobileNow() { return window.innerWidth <= 767; } function patchIsotope() { if (!window.jQuery) return; var $ = window.jQuery; var orig = $.fn.isotope; if (!orig || $.fn.isotope.__mgSafeV4) return; $.fn.isotope = function() { if (isMobileNow()) return this; return orig.apply(this, arguments); }; $.fn.isotope.__mgSafeV4 = true; } if (window.jQuery) { patchIsotope(); } else { var waitJq = setInterval(function() { if (window.jQuery) { patchIsotope(); clearInterval(waitJq); } }, 30); } })(); document.addEventListener('DOMContentLoaded', function() { function isMobile() { return window.innerWidth <= 767; } function cleanText(s) { return (s || '') .replace(/[\u202F\u00A0]/g, ' ') .replace(/\s+/g, ' ') .trim(); } function normalize(s) { return cleanText(s) .toLowerCase() .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') .replace(/[.,]/g, '') .trim(); } function looksLikeStreet(s) { var n = normalize(s); return /\b(rue|route|avenue|av|chemin|ch|boulevard|bd|place|pl|quai|impasse|allee|cours|strasse|straße|weg|gasse|platz)\b/.test(n); } function detectCanton(text) { var n = normalize(text); var map = { 'geneve':'GE','vaud':'VD','valais':'VS','wallis':'VS','fribourg':'FR','freiburg':'FR', 'berne':'BE','bern':'BE','zurich':'ZH','zuerich':'ZH','neuchatel':'NE','jura':'JU', 'tessin':'TI','ticino':'TI','grisons':'GR','graubunden':'GR','lucerne':'LU','luzern':'LU', 'soleure':'SO','solothurn':'SO','argovie':'AG','aargau':'AG','thurgovie':'TG','thurgau':'TG', 'saint-gall':'SG','st-gallen':'SG','schaffhouse':'SH','schaffhausen':'SH','schwyz':'SZ', 'uri':'UR','glaris':'GL','glarus':'GL','zoug':'ZG','zug':'ZG','bale-ville':'BS', 'basel-stadt':'BS','bale-campagne':'BL','basel-landschaft':'BL' }; for (var key in map) { if (n.indexOf(key) !== -1) return map[key]; } var m = cleanText(text).match(/\b(AG|AI|AR|BE|BL|BS|FR|GE|GL|GR|JU|LU|NE|NW|OW|SG|SH|SO|SZ|TG|TI|UR|VD|VS|ZG|ZH)\b/i); return m ? m[1].toUpperCase() : ''; } function extractCity(address) { var raw = cleanText(address); if (!raw) return ''; var parts = raw.split(',').map(cleanText).filter(Boolean); for (var i = 0; i < parts.length; i++) { var p = parts[i]; if (looksLikeStreet(p)) continue; if (/suisse|switzerland|schweiz/i.test(p)) continue; if (/canton/i.test(p)) continue; if (/^\d{4}$/.test(p)) continue; return p; } return ''; } function getLocation(card) { try { var dl = card.getAttribute('data-locations'); if (!dl || dl === 'false') return ''; var arr = JSON.parse(dl); if (!arr[0] || !arr[0].address) return ''; var address = arr[0].address; var city = extractCity(address); var canton = detectCanton(address); if (city && canton) return city + ', ' + canton; if (city) return city; if (canton) return canton; return ''; } catch(e) { return ''; } } function getStatus(card) { var status = card.querySelector('.codicts-online-status'); if (status) { var txt = cleanText(status.textContent); return { text: txt || 'Online', online: !!status.querySelector('.cdtsols-online') || /online/i.test(txt) }; } var all = cleanText(card.textContent); if (/online/i.test(all)) return { text: 'Online', online: true }; if (/-24h/i.test(all)) return { text: '-24H', online: false }; return null; } function getSlogan(card) { var blocks = card.querySelectorAll('.listing-details-3.c27-footer-section'); var loc = getLocation(card); for (var i = blocks.length - 1; i >= 0; i--) { var txt = cleanText(blocks[i].textContent); if (!txt) continue; if (/online|-24h|offline/i.test(txt)) continue; if (txt === loc) continue; if (looksLikeStreet(txt)) continue; if (/suisse|switzerland|canton/i.test(txt)) continue; if (txt.length > 90) continue; return txt; } return ''; } function injectVerified(card) { var anchor = card.querySelector('.lf-item > a'); if (!anchor) return; var old = anchor.querySelector('.mg-verified-badge'); if (old) old.remove(); var native = card.querySelector('.verified-listing') || card.querySelector('img[src*="tick.svg"]'); if (!native) return; var img = document.createElement('img'); img.className = 'mg-verified-badge'; img.src = native.getAttribute('src') || 'https://meetgirl.ch/wp-content/themes/my-listing/assets/images/tick.svg'; img.alt = 'Profil vérifié'; img.width = 22; img.height = 22; anchor.appendChild(img); } function injectLocation(card) { var info = card.querySelector('.lf-item-info'); if (!info) return; var old = info.querySelector('.mg-location-on-image'); if (old) old.remove(); var loc = getLocation(card); if (!loc) return; var span = document.createElement('span'); span.className = 'mg-location-on-image'; span.textContent = loc; info.appendChild(span); } function rebuildBottom(card) { var blocks = card.querySelectorAll('.listing-details-3.c27-footer-section'); if (!blocks.length) return; var first = blocks[0]; var slogan = getSlogan(card); var status = getStatus(card); for (var i = 0; i < blocks.length; i++) { blocks[i].classList.remove('mg-main-details'); } first.classList.add('mg-main-details'); first.innerHTML = ''; if (slogan) { var p = document.createElement('p'); p.className = 'mg-slogan-below'; p.textContent = slogan; first.appendChild(p); } if (status) { var wrap = document.createElement('div'); wrap.className = 'mg-online-below'; var dot = document.createElement('span'); dot.className = 'mg-online-dot ' + (status.online ? 'online' : 'offline'); var label = document.createElement('span'); label.className = 'mg-online-text'; label.textContent = status.text; wrap.appendChild(dot); wrap.appendChild(label); first.appendChild(wrap); } card.classList.add('mg-processed'); } function fixGrid() { if (!isMobile()) return; var grid = document.querySelector('.results-view.grid'); if (!grid) return; grid.querySelectorAll('.grid-item').forEach(function(item, index) { item.style.setProperty('position', 'relative', 'important'); item.style.setProperty('left', 'auto', 'important'); item.style.setProperty('top', 'auto', 'important'); item.style.setProperty('width', 'calc(50% - 4px)', 'important'); item.style.setProperty('margin', '0 0 8px 0', 'important'); item.style.setProperty('padding', '0', 'important'); item.style.setProperty('clear', 'none', 'important'); item.style.setProperty('box-sizing', 'border-box', 'important'); item.style.setProperty('float', index % 2 === 0 ? 'left' : 'right', 'important'); }); grid.style.setProperty('height', 'auto', 'important'); grid.style.setProperty('overflow', 'hidden', 'important'); grid.style.setProperty('display', 'block', 'important'); grid.style.setProperty('position', 'relative', 'important'); var parent = grid.parentElement; if (parent) { parent.style.setProperty('height', 'auto', 'important'); parent.style.setProperty('overflow', 'visible', 'important'); } } function process(card) { injectVerified(card); if (isMobile()) { injectLocation(card); rebuildBottom(card); } } function runAll() { document.querySelectorAll('.lf-item-container.listing-preview').forEach(process); fixGrid(); } var timer = null; function schedule(delay) { if (timer) clearTimeout(timer); timer = setTimeout(runAll, delay || 150); } runAll(); window.addEventListener('load', function() { runAll(); setTimeout(runAll, 300); setTimeout(runAll, 800); setTimeout(runAll, 1500); }); window.addEventListener('resize', function() { schedule(150); }); if (window.jQuery) { window.jQuery(document).on('mylisting:explore:request-complete', function() { setTimeout(runAll, 150); setTimeout(runAll, 500); setTimeout(runAll, 1200); }); } var obs = new MutationObserver(function() { schedule(200); }); var grid = document.querySelector('.results-view.grid'); if (grid) { obs.observe(grid, { childList: true, subtree: true }); } }); document.addEventListener('DOMContentLoaded', function () { const PACK_IDS = { PREMIUM: 6061, GOLD: 21426, EXPRESS: 166, FREE: 6056 }; function getLang() { const htmlLang = (document.documentElement.getAttribute('lang') || 'fr').toLowerCase(); if (htmlLang.startsWith('de')) return 'de'; if (htmlLang.startsWith('en')) return 'en'; if (htmlLang.startsWith('it')) return 'it'; if (htmlLang.startsWith('es')) return 'es'; return 'fr'; } const lang = getLang(); const I18N = { fr: { detailOpen: 'Détail de l’offre', detailClose: 'Masquer le détail', badges: { premium: 'Recommandé', gold: 'Maxi visibilité', express: 'Boost 7 jours', free: 'Sans frais' }, packs: { premium: { name: 'Pack Premium', hook: 'Avant les annonces gratuites', subhook: 'Girl of the day, push quotidien et vraie visibilité pendant 30 jours', summary: '30 jours · photos illimitées · vidéos illimitées · avant les annonces gratuites', detail: [ 'Avant les annonces gratuites', 'Girl of the day', 'Push quotidien', 'Priorité renforcée dans les résultats', 'Photos illimitées', 'Vidéos illimitées' ], cta: 'Choisir Premium' }, gold: { name: 'Gold Homepage', hook: 'Girl of the day en 1ère position', subhook: 'La visibilité maximale avec les avantages du Premium + présence homepage', summary: '30 jours · homepage · photos illimitées · vidéos illimitées', detail: [ 'Les mêmes avantages que Premium', 'Avant les annonces gratuites', 'Girl of the day (1ère position)', 'Priorité maximale dans les résultats pendant 30 jours', 'Présence sur la homepage', 'Photos illimitées', 'Vidéos illimitées', 'Label « vérifié »' ], cta: 'Choisir Gold' }, express: { name: 'Boost Express', hook: 'Avant les annonces gratuites', subhook: 'Le coup de projecteur sur 7 jours pour remonter rapidement', summary: '7 jours · photos illimitées · vidéos illimitées · Girl of the day', detail: [ 'Même logique de visibilité que Premium sur une durée plus courte', '7 jours coup de projecteur', 'Avant les annonces gratuites', 'Priorité pendant 7 jours', 'Girl of the day (1ère position)', 'Photos illimitées', 'Vidéos illimitées' ], cta: 'Choisir Express' }, free: { name: 'Gratuit', hook: 'Publier sans frais', subhook: 'Pour commencer simplement avec l’essentiel', summary: '1 annonce · 3 photos max · durée 15 jours', detail: [ '1 annonce', '3 photos', 'Durée : 15 jours', '<strong>Certification obligatoire</strong> : envoyer une photo de vous avec le mot meetgirl sur un papier pour montrer que c’est bien vous', 'Cette photo ne sera pas publiée', 'Seules les annonces certifiées et avec un numéro suisse seront publiées', 'Label « vérifié » obligatoire' ], cta: 'Publier gratuitement' } } }, en: { detailOpen: 'Offer details', detailClose: 'Hide details', badges: { premium: 'Recommended', gold: 'Maximum visibility', express: '7-day boost', free: 'Free' }, packs: { premium: { name: 'Premium Package', hook: 'Ahead of free listings', subhook: 'Girl of the day, daily push and real visibility for 30 days', summary: '30 days · unlimited photos · unlimited videos · ahead of free listings', detail: [ 'Ahead of free listings', 'Girl of the day', 'Daily push', 'Stronger priority in results', 'Unlimited photos', 'Unlimited videos' ], cta: 'Choose Premium' }, gold: { name: 'Gold Homepage', hook: 'Girl of the day in 1st position', subhook: 'Maximum visibility with Premium benefits + homepage presence', summary: '30 days · homepage · unlimited photos · unlimited videos', detail: [ 'All Premium benefits included', 'Ahead of free listings', 'Girl of the day (1st position)', 'Maximum priority in results for 30 days', 'Homepage presence', 'Unlimited photos', 'Unlimited videos', '“Verified” label' ], cta: 'Choose Gold' }, express: { name: 'Boost Express', hook: 'Ahead of free listings', subhook: 'A 7-day spotlight to move up fast', summary: '7 days · unlimited photos · unlimited videos · Girl of the day', detail: [ 'Same visibility logic as Premium over a shorter period', '7-day spotlight', 'Ahead of free listings', 'Priority for 7 days', 'Girl of the day (1st position)', 'Unlimited photos', 'Unlimited videos' ], cta: 'Choose Express' }, free: { name: 'Free', hook: 'Publish at no cost', subhook: 'A simple way to start with the essentials', summary: '1 listing · max 3 photos · 15 days', detail: [ '1 listing', '3 photos', 'Duration: 15 days', '<strong>Mandatory verification</strong>: send a photo of yourself with the word meetgirl written on paper to prove it is really you', 'This photo will not be published', 'Only verified listings with a Swiss phone number will be published', '“Verified” label required' ], cta: 'Publish for free' } } }, de: { detailOpen: 'Angebotsdetails', detailClose: 'Details ausblenden', badges: { premium: 'Empfohlen', gold: 'Maximale Sichtbarkeit', express: '7 Tage Boost', free: 'Kostenlos' }, packs: { premium: { name: 'Premium-Paket', hook: 'Vor kostenlosen Anzeigen', subhook: 'Girl of the day, täglicher Push und echte Sichtbarkeit für 30 Tage', summary: '30 Tage · unbegrenzte Fotos · unbegrenzte Videos · vor kostenlosen Anzeigen', detail: [ 'Vor kostenlosen Anzeigen', 'Girl of the day', 'Täglicher Push', 'Stärkere Priorität in den Ergebnissen', 'Unbegrenzte Fotos', 'Unbegrenzte Videos' ], cta: 'Premium wählen' }, gold: { name: 'Gold Homepage', hook: 'Girl of the day auf Platz 1', subhook: 'Maximale Sichtbarkeit mit allen Premium-Vorteilen + Homepage-Präsenz', summary: '30 Tage · Homepage · unbegrenzte Fotos · unbegrenzte Videos', detail: [ 'Alle Premium-Vorteile inklusive', 'Vor kostenlosen Anzeigen', 'Girl of the day (1. Position)', 'Maximale Priorität in den Ergebnissen für 30 Tage', 'Präsenz auf der Homepage', 'Unbegrenzte Fotos', 'Unbegrenzte Videos', '„Verifiziert“-Label' ], cta: 'Gold wählen' }, express: { name: 'Boost Express', hook: 'Vor kostenlosen Anzeigen', subhook: 'Das 7-Tage-Spotlight, um schnell nach oben zu kommen', summary: '7 Tage · unbegrenzte Fotos · unbegrenzte Videos · Girl of the day', detail: [ 'Gleiche Sichtbarkeitslogik wie Premium, aber kürzer', '7 Tage Spotlight', 'Vor kostenlosen Anzeigen', 'Priorität für 7 Tage', 'Girl of the day (1. Position)', 'Unbegrenzte Fotos', 'Unbegrenzte Videos' ], cta: 'Express wählen' }, free: { name: 'Kostenlos', hook: 'Kostenlos veröffentlichen', subhook: 'Einfach starten mit dem Wesentlichen', summary: '1 Anzeige · max. 3 Fotos · 15 Tage', detail: [ '1 Anzeige', '3 Fotos', 'Dauer: 15 Tage', '<strong>Pflicht-Verifizierung</strong>: Senden Sie ein Foto von sich mit dem Wort meetgirl auf einem Blatt Papier, um zu zeigen, dass Sie es wirklich sind', 'Dieses Foto wird nicht veröffentlicht', 'Nur verifizierte Anzeigen mit einer Schweizer Nummer werden veröffentlicht', '„Verifiziert“-Label erforderlich' ], cta: 'Kostenlos veröffentlichen' } } }, it: { detailOpen: 'Dettaglio dell’offerta', detailClose: 'Nascondi dettagli', badges: { premium: 'Consigliato', gold: 'Massima visibilità', express: 'Boost 7 giorni', free: 'Gratis' }, packs: { premium: { name: 'Pacchetto Premium', hook: 'Prima degli annunci gratuiti', subhook: 'Girl of the day, push quotidiano e vera visibilità per 30 giorni', summary: '30 giorni · foto illimitate · video illimitati · prima degli annunci gratuiti', detail: [ 'Prima degli annunci gratuiti', 'Girl of the day', 'Push quotidiano', 'Priorità rafforzata nei risultati', 'Foto illimitate', 'Video illimitati' ], cta: 'Scegli Premium' }, gold: { name: 'Gold Homepage', hook: 'Girl of the day in 1ª posizione', subhook: 'Massima visibilità con i vantaggi del Premium + presenza homepage', summary: '30 giorni · homepage · foto illimitate · video illimitati', detail: [ 'Tutti i vantaggi del Premium inclusi', 'Prima degli annunci gratuiti', 'Girl of the day (1ª posizione)', 'Priorità massima nei risultati per 30 giorni', 'Presenza sulla homepage', 'Foto illimitate', 'Video illimitati', 'Etichetta «verificato»' ], cta: 'Scegli Gold' }, express: { name: 'Boost Express', hook: 'Prima degli annunci gratuiti', subhook: 'Il colpo di visibilità di 7 giorni per risalire rapidamente', summary: '7 giorni · foto illimitate · video illimitati · Girl of the day', detail: [ 'Stessa logica di visibilità del Premium ma su durata più breve', '7 giorni di spinta', 'Prima degli annunci gratuiti', 'Priorità per 7 giorni', 'Girl of the day (1ª posizione)', 'Foto illimitate', 'Video illimitati' ], cta: 'Scegli Express' }, free: { name: 'Gratis', hook: 'Pubblica senza costi', subhook: 'Per iniziare in modo semplice con l’essenziale', summary: '1 annuncio · max 3 foto · 15 giorni', detail: [ '1 annuncio', '3 foto', 'Durata: 15 giorni', '<strong>Verifica obbligatoria</strong>: inviare una tua foto con la parola meetgirl scritta su un foglio per dimostrare che sei davvero tu', 'Questa foto non sarà pubblicata', 'Saranno pubblicati solo gli annunci verificati con un numero svizzero', 'Etichetta «verificato» obbligatoria' ], cta: 'Pubblica gratis' } } }, es: { detailOpen: 'Detalle de la oferta', detailClose: 'Ocultar detalle', badges: { premium: 'Recomendado', gold: 'Máxima visibilidad', express: 'Impulso 7 días', free: 'Gratis' }, packs: { premium: { name: 'Paquete Premium', hook: 'Antes de los anuncios gratuitos', subhook: 'Girl of the day, impulso diario y visibilidad real durante 30 días', summary: '30 días · fotos ilimitadas · vídeos ilimitados · antes de los anuncios gratuitos', detail: [ 'Antes de los anuncios gratuitos', 'Girl of the day', 'Impulso diario', 'Mayor prioridad en los resultados', 'Fotos ilimitadas', 'Vídeos ilimitados' ], cta: 'Elegir Premium' }, gold: { name: 'Gold Homepage', hook: 'Girl of the day en 1ª posición', subhook: 'Máxima visibilidad con las ventajas Premium + presencia en homepage', summary: '30 días · homepage · fotos ilimitadas · vídeos ilimitados', detail: [ 'Todas las ventajas de Premium incluidas', 'Antes de los anuncios gratuitos', 'Girl of the day (1ª posición)', 'Prioridad máxima en los resultados durante 30 días', 'Presencia en la homepage', 'Fotos ilimitadas', 'Vídeos ilimitados', 'Etiqueta «verificado»' ], cta: 'Elegir Gold' }, express: { name: 'Boost Express', hook: 'Antes de los anuncios gratuitos', subhook: 'El foco de 7 días para subir rápido', summary: '7 días · fotos ilimitadas · vídeos ilimitados · Girl of the day', detail: [ 'La misma lógica de visibilidad que Premium, pero por menos tiempo', 'Impulso de 7 días', 'Antes de los anuncios gratuitos', 'Prioridad durante 7 días', 'Girl of the day (1ª posición)', 'Fotos ilimitadas', 'Vídeos ilimitados' ], cta: 'Elegir Express' }, free: { name: 'Gratis', hook: 'Publica sin coste', subhook: 'Para empezar de forma simple con lo esencial', summary: '1 anuncio · máximo 3 fotos · 15 días', detail: [ '1 anuncio', '3 fotos', 'Duración: 15 días', '<strong>Verificación obligatoria</strong>: envía una foto tuya con la palabra meetgirl escrita en un papel para demostrar que realmente eres tú', 'Esta foto no será publicada', 'Solo se publicarán anuncios verificados con un número suizo', 'Etiqueta «verificado» obligatoria' ], cta: 'Publicar gratis' } } } }; const TXT = I18N[lang] || I18N.fr; function getPackageId(card) { if (!card) return null; const direct = [ card.getAttribute('data-package-id'), card.getAttribute('data-plan-id'), card.dataset.packageId, card.dataset.planId ].filter(Boolean); for (const v of direct) { const n = parseInt(v, 10); if (!isNaN(n)) return n; } const inputs = card.querySelectorAll('input, button, a, [data-package-id], [data-plan-id]'); for (const el of inputs) { const candidates = [ el.value, el.getAttribute && el.getAttribute('data-package-id'), el.getAttribute && el.getAttribute('data-plan-id'), el.getAttribute && el.getAttribute('data-id'), el.getAttribute && el.getAttribute('href'), el.getAttribute && el.getAttribute('onclick') ].filter(Boolean); for (const c of candidates) { const m = String(c).match(/\b(21426|6061|6056|166)\b/); if (m) return parseInt(m[1], 10); } } const html = card.innerHTML || ''; const m = html.match(/\b(21426|6061|6056|166)\b/); if (m) return parseInt(m[1], 10); return null; } function getPackKey(id) { if (id === PACK_IDS.PREMIUM) return 'premium'; if (id === PACK_IDS.GOLD) return 'gold'; if (id === PACK_IDS.EXPRESS) return 'express'; if (id === PACK_IDS.FREE) return 'free'; return null; } function scorePack(id) { if (id === PACK_IDS.PREMIUM) return 400; if (id === PACK_IDS.GOLD) return 300; if (id === PACK_IDS.EXPRESS) return 200; if (id === PACK_IDS.FREE) return 100; return 0; } function createEl(tag, className, html) { const el = document.createElement(tag); if (className) el.className = className; if (typeof html === 'string') el.innerHTML = html; return el; } const cards = document.querySelectorAll('#job_package_selection .pricing-item'); cards.forEach(function(card) { const id = getPackageId(card); const key = getPackKey(id); if (!id || !key || !TXT.packs[key]) return; card.setAttribute('data-mg-package-id', String(id)); card.classList.add('mg-pack', 'mg-pack-' + key); const data = TXT.packs[key]; const title = card.querySelector('.plan-name'); const desc = card.querySelector('.plan-desc'); const actionBtn = card.querySelector('.select-plan.buttons.button-2, .select-plan, .button-2.select-plan'); if (title) { title.innerHTML = data.name; } if (actionBtn) { actionBtn.textContent = data.cta; } if (!card.querySelector('.mg-pack-badge')) { const badge = createEl('div', 'mg-pack-badge', TXT.badges[key] || ''); card.appendChild(badge); } if (!card.querySelector('.mg-pack-hook')) { const hook = createEl('div', 'mg-pack-hook', data.hook); const subhook = createEl('div', 'mg-pack-subhook', data.subhook); const priceBlock = card.querySelector('.plan-price'); if (priceBlock && priceBlock.parentNode) { priceBlock.parentNode.insertBefore(hook, priceBlock); if (priceBlock.nextSibling) { priceBlock.parentNode.insertBefore(subhook, priceBlock.nextSibling); } else { priceBlock.parentNode.appendChild(subhook); } } } if (desc) { desc.innerHTML = ''; const summary = createEl('div', 'mg-pack-summary', data.summary); desc.appendChild(summary); const toggle = createEl('button', 'mg-pack-toggle', '<span>' + TXT.detailOpen + '</span><i aria-hidden="true">›</i>'); toggle.setAttribute('type', 'button'); toggle.setAttribute('aria-expanded', 'false'); const detailWrap = createEl('div', 'mg-pack-detail-wrap', ''); const detailList = createEl('ul', 'mg-pack-detail-list', ''); data.detail.forEach(function(item) { detailList.appendChild(createEl('li', '', item)); }); detailWrap.appendChild(detailList); toggle.addEventListener('click', function(e) { e.preventDefault(); e.stopPropagation(); const isOpen = card.classList.toggle('mg-detail-open'); toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); toggle.querySelector('span').textContent = isOpen ? TXT.detailClose : TXT.detailOpen; }); desc.appendChild(toggle); desc.appendChild(detailWrap); } }); const container = document.querySelector('#job_package_selection .row.section-body'); if (container) { const items = Array.from(container.children); items.sort(function(a, b) { const aCard = a.querySelector('.pricing-item'); const bCard = b.querySelector('.pricing-item'); const aId = aCard ? parseInt(aCard.getAttribute('data-mg-package-id') || '0', 10) : 0; const bId = bCard ? parseInt(bCard.getAttribute('data-mg-package-id') || '0', 10) : 0; return scorePack(bId) - scorePack(aId); }); items.forEach(function(el) { container.appendChild(el); }); } }); .profile-cover-gallery, .gallery-grid.photoswipe-gallery { position: relative !important; } .profile-cover-gallery { overflow: hidden; } .lbr-gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 50; width: 48px; height: 48px; border: 0; border-radius: 999px; background: rgba(0,0,0,.58); color: #fff; font-size: 34px; line-height: 48px; text-align: center; cursor: pointer; box-shadow: 0 8px 26px rgba(0,0,0,.25); transition: .2s ease; } .lbr-gallery-arrow:hover { background: rgba(0,0,0,.82); transform: translateY(-50%) scale(1.05); } .lbr-gallery-prev { left: 22px; } .lbr-gallery-next { right: 22px; } .lbr-gallery-count { position: absolute; right: 24px; bottom: 24px; z-index: 55; padding: 8px 13px; border-radius: 999px; background: rgba(0,0,0,.62); color: #fff; font-size: 13px; font-weight: 700; backdrop-filter: blur(8px); } #lbr-hero-hint { position: absolute; left: 24px; bottom: 24px; z-index: 55; padding: 9px 14px; border-radius: 999px; background: rgba(255,255,255,.92); color: #111827; font-size: 13px; font-weight: 800; box-shadow: 0 10px 30px rgba(0,0,0,.18); } .gallery-grid.photoswipe-gallery { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 10px !important; } .gallery-grid.photoswipe-gallery .gallery-item { position: relative; display: block; overflow: hidden; border-radius: 12px; aspect-ratio: 16 / 9; background: #f3f4f6; } .gallery-grid.photoswipe-gallery .gallery-item img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block; transition: transform .25s ease, filter .25s ease; } .gallery-grid.photoswipe-gallery .gallery-item:hover img { transform: scale(1.04); filter: brightness(.86); } .gallery-grid.photoswipe-gallery .gallery-item i { position: absolute; inset: auto 10px 10px auto; z-index: 2; width: 34px; height: 34px; border-radius: 999px; background: rgba(0,0,0,.62); color: #fff; display: flex; align-items: center; justify-content: center; } .lbr-lightbox { position: fixed; inset: 0; z-index: 999999; background: rgba(0,0,0,.94); display: none; align-items: center; justify-content: center; } .lbr-lightbox.is-open { display: flex; } .lbr-lightbox-img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 12px; background: #000; box-shadow: 0 20px 80px rgba(0,0,0,.45); } .lbr-lightbox-close, .lbr-lightbox-prev, .lbr-lightbox-next { position: fixed; z-index: 1000000; border: 0; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; backdrop-filter: blur(10px); } .lbr-lightbox-close { top: 22px; right: 22px; width: 48px; height: 48px; font-size: 34px; line-height: 44px; } .lbr-lightbox-prev, .lbr-lightbox-next { top: 50%; transform: translateY(-50%); width: 58px; height: 58px; font-size: 44px; line-height: 54px; } .lbr-lightbox-prev { left: 28px; } .lbr-lightbox-next { right: 28px; } .lbr-lightbox-counter { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 1000000; padding: 9px 15px; border-radius: 999px; background: rgba(255,255,255,.16); color: #fff; font-size: 14px; font-weight: 800; } @media (max-width: 768px) { .gallery-grid.photoswipe-gallery { grid-template-columns: repeat(2, 1fr); gap: 8px !important; } .lbr-gallery-arrow { width: 42px; height: 42px; line-height: 42px; font-size: 28px; } .lbr-gallery-prev { left: 12px; } .lbr-gallery-next { right: 12px; } #lbr-hero-hint { left: 12px; bottom: 14px; font-size: 12px; padding: 8px 11px; } .lbr-gallery-count { right: 12px; bottom: 14px; font-size: 12px; } .lbr-lightbox-img { max-width: 96vw; max-height: 78vh; border-radius: 8px; } .lbr-lightbox-prev, .lbr-lightbox-next { width: 44px; height: 44px; font-size: 34px; line-height: 40px; } .lbr-lightbox-prev { left: 10px; } .lbr-lightbox-next { right: 10px; } .lbr-lightbox-close { top: 14px; right: 14px; } } (function () { 'use strict'; function ready(fn) { if (document.readyState !== 'loading') fn(); else document.addEventListener('DOMContentLoaded', fn); } ready(function () { var heroGallery = document.querySelector('.profile-cover-gallery .header-gallery-carousel'); var thumbGallery = document.querySelector('.gallery-grid.photoswipe-gallery'); var heroLinks = heroGallery ? Array.prototype.slice.call(heroGallery.querySelectorAll('a.photoswipe-item[href]')) : []; var thumbLinks = thumbGallery ? Array.prototype.slice.call(thumbGallery.querySelectorAll('a.photoswipe-item[href]')) : []; var allLinks = thumbLinks.length ? thumbLinks : heroLinks; if (!allLinks.length) return; if (heroGallery && heroLinks.length > 1) { var section = document.querySelector('.profile-cover-gallery'); if (section && !section.querySelector('.lbr-gallery-prev')) { section.insertAdjacentHTML('beforeend', '<button class="lbr-gallery-arrow lbr-gallery-prev" type="button" aria-label="Image précédente">‹</button>' + '<button class="lbr-gallery-arrow lbr-gallery-next" type="button" aria-label="Image suivante">›</button>' + '<div class="lbr-gallery-count"><span class="lbr-current">1</span> / <span class="lbr-total">' + heroLinks.length + '</span></div>' ); } var heroCurrent = 0; var currentEl = section ? section.querySelector('.lbr-current') : null; function updateHeroCounter(index) { heroCurrent = ((index % heroLinks.length) + heroLinks.length) % heroLinks.length; if (currentEl) currentEl.textContent = String(heroCurrent + 1); } function owlGo(direction) { if (window.jQuery && jQuery(heroGallery).data('owl.carousel')) { jQuery(heroGallery).trigger(direction === 'next' ? 'next.owl.carousel' : 'prev.owl.carousel'); } } var heroPrev = section ? section.querySelector('.lbr-gallery-prev') : null; var heroNext = section ? section.querySelector('.lbr-gallery-next') : null; if (heroPrev) { heroPrev.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); owlGo('prev'); updateHeroCounter(heroCurrent - 1); }); } if (heroNext) { heroNext.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); owlGo('next'); updateHeroCounter(heroCurrent + 1); }); } } if (!document.querySelector('.lbr-lightbox')) { document.body.insertAdjacentHTML('beforeend', '<div class="lbr-lightbox" aria-hidden="true">' + '<button class="lbr-lightbox-close" type="button" aria-label="Fermer">×</button>' + '<button class="lbr-lightbox-prev" type="button" aria-label="Image précédente">‹</button>' + '<img class="lbr-lightbox-img" src="" alt="Image annonce">' + '<button class="lbr-lightbox-next" type="button" aria-label="Image suivante">›</button>' + '<div class="lbr-lightbox-counter"></div>' + '</div>' ); } var lightbox = document.querySelector('.lbr-lightbox'); var img = lightbox.querySelector('.lbr-lightbox-img'); var counter = lightbox.querySelector('.lbr-lightbox-counter'); var activeLinks = allLinks; var current = 0; function normalize(index, total) { return ((index % total) + total) % total; } function showImage(index) { if (!activeLinks.length) return; current = normalize(index, activeLinks.length); img.src = activeLinks[current].getAttribute('href'); counter.textContent = (current + 1) + ' / ' + activeLinks.length; } function openLightbox(index, sourceLinks) { activeLinks = sourceLinks && sourceLinks.length ? sourceLinks : allLinks; showImage(index); lightbox.classList.add('is-open'); lightbox.setAttribute('aria-hidden', 'false'); document.documentElement.style.overflow = 'hidden'; } function closeLightbox() { lightbox.classList.remove('is-open'); lightbox.setAttribute('aria-hidden', 'true'); img.src = ''; document.documentElement.style.overflow = ''; } function nextImage() { showImage(current + 1); } function prevImage() { showImage(current - 1); } function bindLinks(links) { links.forEach(function (link, index) { link.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); if (e.stopImmediatePropagation) e.stopImmediatePropagation(); openLightbox(index, links); return false; }, true); }); } bindLinks(heroLinks); bindLinks(thumbLinks); lightbox.querySelector('.lbr-lightbox-close').addEventListener('click', closeLightbox); lightbox.querySelector('.lbr-lightbox-next').addEventListener('click', nextImage); lightbox.querySelector('.lbr-lightbox-prev').addEventListener('click', prevImage); lightbox.addEventListener('click', function (e) { if (e.target === lightbox) closeLightbox(); }); document.addEventListener('keydown', function (e) { if (!lightbox.classList.contains('is-open')) return; if (e.key === 'Escape') closeLightbox(); if (e.key === 'ArrowRight') nextImage(); if (e.key === 'ArrowLeft') prevImage(); }); var startX = 0; lightbox.addEventListener('touchstart', function (e) { startX = e.changedTouches[0].clientX; }, { passive: true }); lightbox.addEventListener('touchend', function (e) { var endX = e.changedTouches[0].clientX; var diff = startX - endX; if (Math.abs(diff) > 45) { diff > 0 ? nextImage() : prevImage(); } }, { passive: true }); }); })(); :root{ --mgp-red:#8f1730; --mgp-pink:#f67675; --mgp-bg:#0f0b10; --mgp-card:#171116; --mgp-card2:#21151c; --mgp-text:#ffffff; --mgp-muted:rgba(255,255,255,.72); --mgp-soft:rgba(255,255,255,.08); --mgp-line:rgba(255,255,255,.12); --mgp-green:#2fd36b; --mgp-shadow:0 24px 70px rgba(0,0,0,.35); --mgp-radius:26px; } body.single-job_listing{ background: radial-gradient(circle at 15% 0%, rgba(246,118,117,.22), transparent 34%), linear-gradient(180deg,#190d13 0%, #0f0b10 42%, #0f0b10 100%) !important; color:var(--mgp-text); overflow-x:hidden !important; } body.single-job_listing .single-job-listing *, body.single-job_listing .mgp-shell *, body.single-job_listing .mgp-mobile-sticky *{ box-sizing:border-box; } body.single-job_listing .profile-cover, body.single-job_listing .profile-cover-gallery, body.single-job_listing .featured-section-gallery{ position:relative !important; background:#0d0a0d !important; overflow:hidden !important; } body.single-job_listing .profile-cover:after, body.single-job_listing .profile-cover-gallery:after, body.single-job_listing .featured-section-gallery:after{ content:""; position:absolute; inset:0; z-index:5; pointer-events:none; background:linear-gradient( 180deg, rgba(15,11,16,.02) 0%, rgba(15,11,16,.06) 38%, rgba(15,11,16,.78) 100% ); } body.single-job_listing .header-gallery-carousel .item, body.single-job_listing .featured-section-gallery .item{ min-height:420px !important; background-size:cover !important; background-position:center !important; } body.single-job_listing .main-info-desktop, body.single-job_listing .main-info-mobile, body.single-job_listing .qla-container, body.single-job_listing .listing-main-buttons, body.single-job_listing .quick-listing-actions, body.single-job_listing .profile-header{ display:none !important; } body.single-job_listing .cts-open-chat, body.single-job_listing a.cts-open-chat, body.single-job_listing li:has(.cts-open-chat){ display:none !important; } .mgp-shell{ max-width:1320px; margin:-72px auto 34px; padding:0 16px; position:relative; z-index:50; } .mgp-top{ display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:22px; align-items:stretch; margin-bottom:22px; } .mgp-identity{ border-radius:var(--mgp-radius); background: linear-gradient(135deg, rgba(246,118,117,.16), transparent 42%), linear-gradient(180deg, rgba(33,21,28,.98), rgba(18,13,18,.98)); border:1px solid rgba(246,118,117,.22); box-shadow:var(--mgp-shadow); padding:24px; min-width:0; overflow:hidden; } .mgp-kicker{ display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:14px; } .mgp-badge{ display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:30px; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#fff; font-size:12px; font-weight:850; line-height:1; white-space:nowrap; } .mgp-badge.is-verified{ background:rgba(47,211,107,.12); border-color:rgba(47,211,107,.28); color:#d9ffe5; } .mgp-badge.is-online{ background:rgba(47,211,107,.12); border-color:rgba(47,211,107,.28); color:#d9ffe5; } .mgp-dot{ width:8px; height:8px; border-radius:50%; display:inline-block; background:var(--mgp-pink); box-shadow:0 0 0 3px rgba(246,118,117,.15); } .mgp-dot.is-online{ background:var(--mgp-green); box-shadow:0 0 0 3px rgba(47,211,107,.16); } .mgp-title{ margin:0; color:#fff; font-size:clamp(28px, 4vw, 54px); line-height:.95; letter-spacing:-.055em; font-weight:950; } .mgp-tagline{ margin:12px 0 0; color:var(--mgp-pink); font-size:clamp(17px, 2vw, 24px); line-height:1.15; font-weight:850; letter-spacing:-.02em; } .mgp-submeta{ display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:14px; color:var(--mgp-muted); font-size:14px; font-weight:750; } .mgp-specialties{ margin-top:18px; } .mgp-section-label{ display:block; margin:0 0 10px; color:rgba(255,255,255,.58); font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.08em; } .mgp-chip-grid{ display:flex; flex-wrap:wrap; gap:8px; } .mgp-chip{ display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:8px 12px; border-radius:999px; background:rgba(246,118,117,.12); border:1px solid rgba(246,118,117,.26); color:#fff; font-size:13px; font-weight:850; line-height:1; } .mgp-contact{ border-radius:var(--mgp-radius); background: linear-gradient(180deg, rgba(246,118,117,.14), transparent 40%), linear-gradient(180deg,#20151c,#130f13); border:1px solid rgba(246,118,117,.24); box-shadow:var(--mgp-shadow); padding:20px; min-width:0; position:sticky; top:92px; align-self:start; } .mgp-contact-title{ margin:0; font-size:22px; line-height:1.05; letter-spacing:-.035em; font-weight:950; color:#fff; } .mgp-contact-sub{ margin:7px 0 16px; color:var(--mgp-muted); font-size:13px; font-weight:650; line-height:1.35; } .mgp-contact-card{ display:flex; align-items:center; gap:12px; padding:12px; border-radius:18px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.10); margin-bottom:13px; } .mgp-avatar{ width:50px; height:50px; border-radius:50%; background:linear-gradient(135deg,var(--mgp-pink),var(--mgp-red)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:950; font-size:18px; flex:0 0 auto; } .mgp-avatar img{ width:100%; height:100%; display:block; object-fit:cover; border-radius:50%; } .mgp-contact-name{ display:block; color:#fff; font-size:16px; font-weight:950; line-height:1.1; } .mgp-contact-line{ display:block; margin-top:4px; color:var(--mgp-muted); font-size:12px; font-weight:750; } .mgp-actions{ display:grid; grid-template-columns:1fr; gap:10px; } .mgp-btn{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:13px 15px; border-radius:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#fff !important; text-decoration:none !important; font-size:15px; font-weight:950; line-height:1; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; } .mgp-btn:hover{ transform:translateY(-1px); background:rgba(255,255,255,.11); box-shadow:0 14px 26px rgba(0,0,0,.20); color:#fff !important; } .mgp-btn.call{ background:linear-gradient(180deg,#f98988,#f67675); border-color:rgba(246,118,117,.9); color:#fff !important; box-shadow:0 14px 26px rgba(246,118,117,.20); } .mgp-btn.wa{ background:linear-gradient(180deg,#31d978,#16b85a); border-color:rgba(47,211,107,.82); color:#fff !important; box-shadow:0 14px 26px rgba(47,211,107,.18); } .mgp-btn.is-hidden{ display:none !important; } .mgp-mini{ margin-top:13px; padding:12px 13px; border-radius:16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); color:rgba(255,255,255,.78); font-size:12px; font-weight:750; line-height:1.4; } .mgp-layout{ display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:22px; align-items:start; } .mgp-content, .mgp-side{ min-width:0; } body.single-job_listing .listing-tabs{ background:transparent !important; padding:0 !important; } body.single-job_listing .listing-tab, body.single-job_listing .profile-body{ background:transparent !important; padding-top:0 !important; } body.single-job_listing .tab-template-two-columns{ width:100% !important; max-width:none !important; padding:0 !important; } body.single-job_listing .tab-template-two-columns > .row{ margin:0 !important; display:grid !important; grid-template-columns:minmax(0,1fr) 390px !important; gap:22px !important; } body.single-job_listing .tab-template-two-columns > .row > .col-md-6{ width:auto !important; float:none !important; padding:0 !important; } body.single-job_listing .cts-main-column, body.single-job_listing .cts-side-column{ margin:0 !important; } body.single-job_listing .block-type-gallery, body.single-job_listing .block-type-text, body.single-job_listing .block-type-tags, body.single-job_listing .block-type-table, body.single-job_listing .block-type-details, body.single-job_listing .block-type-categories, body.single-job_listing .block-type-location, body.single-job_listing .block-type-general_repeater{ width:100% !important; float:none !important; padding-left:0 !important; padding-right:0 !important; margin-bottom:18px !important; } body.single-job_listing .element, body.single-job_listing .gallery-block, body.single-job_listing .content-block, body.single-job_listing .table-block, body.single-job_listing .map-block, body.single-job_listing .single-menu-item{ background:rgba(23,17,22,.96) !important; border:1px solid rgba(255,255,255,.10) !important; border-radius:24px !important; box-shadow:0 18px 46px rgba(0,0,0,.22) !important; overflow:hidden !important; color:#fff !important; } body.single-job_listing .pf-head{ background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025)) !important; border-bottom:1px solid rgba(255,255,255,.10) !important; padding:15px 18px !important; } body.single-job_listing .pf-head .title-style-1{ display:flex !important; align-items:center !important; gap:10px !important; margin:0 !important; } body.single-job_listing .pf-head .title-style-1 i{ color:var(--mgp-pink) !important; font-size:19px !important; } body.single-job_listing .pf-head h5{ color:#fff !important; font-size:15px !important; font-weight:950 !important; line-height:1.15 !important; margin:0 !important; letter-spacing:-.01em !important; } body.single-job_listing .pf-body{ padding:18px !important; color:rgba(255,255,255,.86) !important; } body.single-job_listing .wp-editor-content, body.single-job_listing .content-block, body.single-job_listing .content-block p{ color:rgba(255,255,255,.86) !important; font-size:15px !important; line-height:1.65 !important; font-weight:500 !important; } body.single-job_listing .content-block p{ margin:0 0 14px !important; } body.single-job_listing .extra-details li, body.single-job_listing .outlined-list li{ background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.10) !important; border-radius:16px !important; padding:12px 13px !important; margin-bottom:9px !important; color:#fff !important; } body.single-job_listing .item-attr{ color:rgba(255,255,255,.55) !important; font-size:11px !important; font-weight:950 !important; text-transform:uppercase !important; letter-spacing:.06em !important; margin-bottom:5px !important; } body.single-job_listing .item-property{ color:#fff !important; font-size:14px !important; font-weight:800 !important; line-height:1.32 !important; } body.single-job_listing .block-type-tags .outlined-list, body.single-job_listing .block-type-tags .details-list{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin:0 !important; padding:0 !important; } body.single-job_listing .block-type-tags .outlined-list li, body.single-job_listing .block-type-tags .details-list li{ margin:0 !important; padding:0 !important; background:transparent !important; border:none !important; } body.single-job_listing .block-type-tags .outlined-list li a, body.single-job_listing .block-type-tags .details-list li a{ display:inline-flex !important; align-items:center !important; gap:8px !important; min-height:36px !important; padding:8px 12px !important; border-radius:999px !important; background:rgba(246,118,117,.12) !important; border:1px solid rgba(246,118,117,.26) !important; color:#fff !important; font-size:13px !important; font-weight:850 !important; text-decoration:none !important; } body.single-job_listing .block-type-tags .term-icon, body.single-job_listing .block-type-tags .term-icon img{ display:none !important; } body.single-job_listing .gallerySlider, body.single-job_listing .galleryPreview, body.single-job_listing .galleryPreview .owl-stage-outer{ border-radius:18px !important; overflow:hidden !important; } body.single-job_listing .galleryPreview img{ border-radius:18px !important; object-fit:cover !important; } body.single-job_listing .gallery-thumb{ margin-top:10px !important; } body.single-job_listing .gallery-thumb .slide-thumb{ border-radius:14px !important; overflow:hidden !important; border:1px solid rgba(255,255,255,.14) !important; } body.single-job_listing .map-block .contact-map, body.single-job_listing .c27-map{ border-radius:18px !important; overflow:hidden !important; } body.single-job_listing .map-block-address, body.single-job_listing .map-block-address p, body.single-job_listing .map-block-address a{ color:rgba(255,255,255,.82) !important; font-weight:750 !important; } body.single-job_listing .similar-listings{ background:#0f0b10 !important; padding-top:20px !important; } body.single-job_listing .similar-listings .section-title h2{ color:#fff !important; } .mgp-mobile-sticky{ display:none; } .mgp-share-toast{ position:fixed; left:50%; bottom:86px; transform:translateX(-50%) translateY(20px); z-index:10050; padding:12px 15px; border-radius:999px; background:rgba(15,11,16,.96); border:1px solid rgba(246,118,117,.35); color:#fff; font-size:13px; font-weight:850; opacity:0; pointer-events:none; transition:.2s ease; box-shadow:0 16px 40px rgba(0,0,0,.30); } .mgp-share-toast.is-visible{ opacity:1; transform:translateX(-50%) translateY(0); } @media (max-width: 991px){ body.single-job_listing{ padding-bottom:76px !important; } body.single-job_listing .header-gallery-carousel .item, body.single-job_listing .featured-section-gallery .item{ min-height:390px !important; } .mgp-shell{ margin:-54px auto 22px; padding:0 12px; } .mgp-top{ display:block; margin-bottom:16px; } .mgp-identity{ padding:18px; border-radius:24px; margin-bottom:12px; } .mgp-title{ font-size:32px; line-height:.98; } .mgp-tagline{ font-size:19px; } .mgp-contact{ position:relative; top:auto; padding:14px; border-radius:22px; } .mgp-contact-title, .mgp-contact-sub, .mgp-actions .mgp-btn.share, .mgp-actions .mgp-btn.report{ display:none !important; } .mgp-contact-card{ margin:0; padding:11px; } .mgp-actions{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:10px; } .mgp-btn{ min-height:46px; border-radius:15px; font-size:13px; } body.single-job_listing .tab-template-two-columns > .row{ display:block !important; } body.single-job_listing .tab-template-two-columns > .row > .col-md-6{ width:100% !important; display:block !important; } body.single-job_listing .pf-head{ padding:13px 15px !important; } body.single-job_listing .pf-body{ padding:15px !important; } body.single-job_listing .element, body.single-job_listing .gallery-block, body.single-job_listing .content-block, body.single-job_listing .table-block, body.single-job_listing .map-block, body.single-job_listing .single-menu-item{ border-radius:20px !important; } .mgp-mobile-sticky{ position:fixed; left:0; right:0; bottom:0; z-index:10020; display:block; padding:9px 10px calc(9px + env(safe-area-inset-bottom)); background:rgba(15,11,16,.96); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top:1px solid rgba(255,255,255,.10); box-shadow:0 -12px 30px rgba(0,0,0,.32); } .mgp-mobile-sticky-inner{ display:grid; grid-template-columns:1fr 1fr; gap:9px; max-width:680px; margin:0 auto; } .mgp-mobile-sticky .mgp-btn{ min-height:50px; border-radius:16px; font-size:14px; } .mgp-mobile-sticky .mgp-btn.only-one{ grid-column:1 / -1; } } @media (max-width: 520px){ body.single-job_listing .header-gallery-carousel .item, body.single-job_listing .featured-section-gallery .item{ min-height:350px !important; } .mgp-shell{ margin-top:-42px; } .mgp-kicker{ gap:7px; } .mgp-badge{ font-size:11px; min-height:28px; padding:7px 9px; } .mgp-title{ font-size:29px; } .mgp-chip{ font-size:12px; min-height:32px; padding:8px 10px; } } (function(){ 'use strict'; if (window.__MG_PREMIUM_LISTING_V1__) return; window.__MG_PREMIUM_LISTING_V1__ = true; var config = { postId: 22371, title: "Monica", permalink: "https:\/\/meetgirl.ch\/escorts\/monica-6\/", phoneRaw: "+41779038467", whatsappRaw: "+41779038467", verified: "", tags: [], cities: [], regions: [], categories: ["Masseuses \u00e9rotiques"] }; function $(sel, root){ return (root || document).querySelector(sel); } function $all(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } function esc(str){ return String(str || '').replace(/[&<>"']/g, function(m){ return ({ '&':'&', '<':'<', '>':'>', '"':'"', "'":''' })[m]; }); } function cleanText(str){ return String(str || '').replace(/\s+/g, ' ').trim(); } function currentLang(){ var htmlLang = (document.documentElement.getAttribute('lang') || '').toLowerCase(); var path = (window.location.pathname || '').toLowerCase(); var body = document.body ? (document.body.className || '').toLowerCase() : ''; if (path.indexOf('/de/') === 0 || htmlLang.indexOf('de') === 0 || body.indexOf('translatepress-de') !== -1) return 'de'; if (path.indexOf('/en/') === 0 || htmlLang.indexOf('en') === 0 || body.indexOf('translatepress-en') !== -1) return 'en'; if (path.indexOf('/it/') === 0 || htmlLang.indexOf('it') === 0 || body.indexOf('translatepress-it') !== -1) return 'it'; if (path.indexOf('/es/') === 0 || htmlLang.indexOf('es') === 0 || body.indexOf('translatepress-es') !== -1) return 'es'; return 'fr'; } var LANG = currentLang(); var I18N = { fr: { verified: 'Annonce vérifiée', online: 'Online', recent: '-24H', specialties: 'Spécialités', location: 'Ville', categories: 'Catégorie', contact_title: 'Contact direct', contact_sub: 'Contactez cette annonce rapidement par téléphone ou WhatsApp.', call: 'Appeler', whatsapp: 'WhatsApp', share: 'Partager', report: 'Signaler', safety: 'Sécurité', safety_text: 'Ne versez aucun acompte avant la rencontre. Privilégiez les annonces vérifiées et signalez tout profil douteux.', copied: 'Lien copié.', copy_prompt: 'Copiez ce lien :', default_tagline: 'Profil disponible sur Meetgirl' }, de: { verified: 'Verifizierte Anzeige', online: 'Online', recent: '-24H', specialties: 'Spezialitäten', location: 'Ort', categories: 'Kategorie', contact_title: 'Direkter Kontakt', contact_sub: 'Kontaktieren Sie diese Anzeige schnell per Telefon oder WhatsApp.', call: 'Anrufen', whatsapp: 'WhatsApp', share: 'Teilen', report: 'Melden', safety: 'Sicherheit', safety_text: 'Zahlen Sie nichts im Voraus. Bevorzugen Sie verifizierte Anzeigen und melden Sie verdächtige Profile.', copied: 'Link kopiert.', copy_prompt: 'Kopieren Sie diesen Link:', default_tagline: 'Profil auf Meetgirl verfügbar' }, en: { verified: 'Verified listing', online: 'Online', recent: '-24H', specialties: 'Specialties', location: 'City', categories: 'Category', contact_title: 'Direct contact', contact_sub: 'Contact this listing quickly by phone or WhatsApp.', call: 'Call', whatsapp: 'WhatsApp', share: 'Share', report: 'Report', safety: 'Safety', safety_text: 'Do not send any payment before meeting. Prefer verified listings and report suspicious profiles.', copied: 'Link copied.', copy_prompt: 'Copy this link:', default_tagline: 'Profile available on Meetgirl' }, it: { verified: 'Annuncio verificato', online: 'Online', recent: '-24H', specialties: 'Specialità', location: 'Città', categories: 'Categoria', contact_title: 'Contatto diretto', contact_sub: 'Contatta rapidamente questo annuncio via telefono o WhatsApp.', call: 'Chiama', whatsapp: 'WhatsApp', share: 'Condividi', report: 'Segnala', safety: 'Sicurezza', safety_text: 'Non inviare pagamenti in anticipo. Preferisci annunci verificati e segnala i profili sospetti.', copied: 'Link copiato.', copy_prompt: 'Copia questo link:', default_tagline: 'Profilo disponibile su Meetgirl' }, es: { verified: 'Anuncio verificado', online: 'Online', recent: '-24H', specialties: 'Especialidades', location: 'Ciudad', categories: 'Categoría', contact_title: 'Contacto directo', contact_sub: 'Contacta este anuncio rápidamente por teléfono o WhatsApp.', call: 'Llamar', whatsapp: 'WhatsApp', share: 'Compartir', report: 'Reportar', safety: 'Seguridad', safety_text: 'No envíes ningún pago por adelantado. Prioriza anuncios verificados y reporta perfiles sospechosos.', copied: 'Enlace copiado.', copy_prompt: 'Copia este enlace:', default_tagline: 'Perfil disponible en Meetgirl' } }; function tr(key){ return (I18N[LANG] && I18N[LANG][key]) || I18N.fr[key] || key; } function normalizePhone(raw){ var v = String(raw || '').trim(); if (!v) return ''; v = v.replace(/[^\d+]/g, ''); if (v.indexOf('00') === 0) { v = '+' + v.slice(2); } if (v.charAt(0) !== '+') { if (v.indexOf('41') === 0) { v = '+' + v; } else if (v.charAt(0) === '0') { v = '+41' + v.slice(1); } } return v; } function findPhoneLink(){ var native = $('a[href^="tel:"]'); if (native && native.getAttribute('href')) return native.getAttribute('href'); var phone = normalizePhone(config.phoneRaw); return phone ? 'tel:' + phone : ''; } function findWhatsappLink(){ var native = $('a[href*="wa.me"], a[href*="whatsapp"]'); if (native && native.getAttribute('href')) return native.getAttribute('href'); var raw = config.whatsappRaw || config.phoneRaw; var phone = normalizePhone(raw); if (!phone) return ''; var digits = phone.replace(/[^\d]/g, ''); if (!digits) return ''; var text = encodeURIComponent('Bonjour, j’ai vu votre annonce sur Meetgirl : ' + config.permalink); return 'https://wa.me/' + digits + '?text=' + text; } function findReportButton(){ return $('a[href*="claim"], a[href*="report"], .claim-listing a, .report-listing a, a:has(.mi.warning), a:has(.mi.flag)'); } function findReviewButton(){ return $('.show-review-form'); } function getTagline(){ var el = $('.listing-tagline-field'); var txt = el ? cleanText(el.textContent) : ''; return txt || tr('default_tagline'); } function getTitle(){ var h1 = $('.profile-name h1'); if (!h1) return config.title || ''; var clone = h1.cloneNode(true); $all('.verified-badge, .tooltip-element, .edit-listing, img', clone).forEach(function(el){ el.remove(); }); var txt = cleanText(clone.textContent); return txt || config.title || ''; } function getSpecialties(){ var tags = []; $all('.block-type-tags .details-list a span, .block-type-tags .outlined-list a span').forEach(function(el){ var txt = cleanText(el.textContent); if (txt && tags.indexOf(txt) === -1) tags.push(txt); }); if (!tags.length && Array.isArray(config.tags)) { config.tags.forEach(function(t){ t = cleanText(t); if (t && tags.indexOf(t) === -1) tags.push(t); }); } return tags.slice(0, 10); } function getCategories(){ var cats = []; $all('.block-type-categories .category-name').forEach(function(el){ var txt = cleanText(el.textContent); if (txt && cats.indexOf(txt) === -1) cats.push(txt); }); if (!cats.length && Array.isArray(config.categories)) { config.categories.forEach(function(t){ t = cleanText(t); if (t && cats.indexOf(t) === -1) cats.push(t); }); } return cats.slice(0, 4); } function getLocation(){ var txt = ''; var villeBlock = $all('.block-type-details').filter(function(block){ return /ville|ort|city|città|ciudad/i.test(cleanText(block.textContent)); })[0]; if (villeBlock) { var val = $('.wp-editor-content', villeBlock); txt = val ? cleanText(val.textContent) : ''; } if (!txt && Array.isArray(config.cities) && config.cities.length) { txt = cleanText(config.cities[0]); } if (!txt && Array.isArray(config.regions) && config.regions.length) { txt = cleanText(config.regions[0]); } var mapAddr = $('.map-block-address p'); if (!txt && mapAddr) { txt = cleanText(mapAddr.textContent).split(',')[0]; } return txt; } function getStatus(){ var st = $('.codicts-online-status'); if (st) { var txt = cleanText(st.textContent); return { text: txt || tr('online'), online: !!$('.cdtsols-online', st) || /online/i.test(txt) }; } return { text: tr('recent'), online: false }; } function buildChips(items){ if (!items || !items.length) return ''; return items.map(function(item){ return '<span class="mgp-chip">' + esc(item) + '</span>'; }).join(''); } function initials(name){ name = cleanText(name); if (!name) return 'M'; return name.charAt(0).toUpperCase(); } function buildShell(){ if ($('#mgp-shell')) return; var hero = $('.profile-cover, .profile-cover-gallery, .featured-section-gallery'); var insertAfter = hero || $('#c27-single-listing'); if (!insertAfter || !insertAfter.parentNode) return; var title = getTitle(); var tagline = getTagline(); var loc = getLocation(); var status = getStatus(); var phoneHref = findPhoneLink(); var waHref = findWhatsappLink(); var specs = getSpecialties(); var cats = getCategories(); var verifiedHtml = config.verified ? '<span class="mgp-badge is-verified">✓ ' + esc(tr('verified')) + '</span>' : ''; var statusHtml = '' + '<span class="mgp-badge ' + (status.online ? 'is-online' : '') + '">' + ' <span class="mgp-dot ' + (status.online ? 'is-online' : '') + '"></span>' + ' ' + esc(status.text || tr('online')) + '</span>'; var locHtml = loc ? '<span class="mgp-badge">📍 ' + esc(loc) + '</span>' : ''; var catHtml = cats.length ? '<span class="mgp-badge">' + esc(cats.join(' · ')) + '</span>' : ''; var html = '' + '<div id="mgp-shell" class="mgp-shell">' + ' <div class="mgp-top">' + ' <section class="mgp-identity" aria-label="Meetgirl profil">' + ' <div class="mgp-kicker">' + verifiedHtml + statusHtml + locHtml + catHtml + '</div>' + ' <h1 class="mgp-title">' + esc(title) + '</h1>' + ' <p class="mgp-tagline">' + esc(tagline) + '</p>' + ' <div class="mgp-specialties">' + ' <span class="mgp-section-label">' + esc(tr('specialties')) + '</span>' + ' <div class="mgp-chip-grid">' + buildChips(specs) + '</div>' + ' </div>' + ' </section>' + ' <aside class="mgp-contact" aria-label="Contact">' + ' <h2 class="mgp-contact-title">' + esc(tr('contact_title')) + '</h2>' + ' <p class="mgp-contact-sub">' + esc(tr('contact_sub')) + '</p>' + ' <div class="mgp-contact-card">' + ' <div class="mgp-avatar">' + esc(initials(title)) + '</div>' + ' <div>' + ' <span class="mgp-contact-name">' + esc(title) + '</span>' + ' <span class="mgp-contact-line">' + esc([loc, status.text].filter(Boolean).join(' · ')) + '</span>' + ' </div>' + ' </div>' + ' <div class="mgp-actions">' + ' <a class="mgp-btn call ' + (phoneHref ? '' : 'is-hidden') + '" href="' + esc(phoneHref || '#') + '" rel="nofollow">📞 ' + esc(tr('call')) + '</a>' + ' <a class="mgp-btn wa ' + (waHref ? '' : 'is-hidden') + '" href="' + esc(waHref || '#') + '" target="_blank" rel="nofollow noopener">🟢 ' + esc(tr('whatsapp')) + '</a>' + ' <a class="mgp-btn share" href="#" id="mgp-share-btn">↗ ' + esc(tr('share')) + '</a>' + ' <a class="mgp-btn report" href="#" id="mgp-report-btn">⚠ ' + esc(tr('report')) + '</a>' + ' </div>' + ' <div class="mgp-mini"><strong>' + esc(tr('safety')) + '.</strong> ' + esc(tr('safety_text')) + '</div>' + ' </aside>' + ' </div>' + '</div>'; insertAfter.insertAdjacentHTML('afterend', html); bindShellButtons(); buildMobileSticky(phoneHref, waHref); enhanceNativeBlocks(); } function bindShellButtons(){ var shareBtn = $('#mgp-share-btn'); var reportBtn = $('#mgp-report-btn'); if (shareBtn) { shareBtn.addEventListener('click', function(e){ e.preventDefault(); shareListing(); }); } if (reportBtn) { reportBtn.addEventListener('click', function(e){ e.preventDefault(); var native = findReportButton(); if (native) { native.click(); } else { shareToast(tr('report')); } }); } } function buildMobileSticky(phoneHref, waHref){ if ($('#mgp-mobile-sticky')) return; if (!phoneHref && !waHref) return; var count = (phoneHref ? 1 : 0) + (waHref ? 1 : 0); var only = count === 1 ? ' only-one' : ''; var html = '' + '<div id="mgp-mobile-sticky" class="mgp-mobile-sticky">' + ' <div class="mgp-mobile-sticky-inner">' + (phoneHref ? '<a class="mgp-btn call' + only + '" href="' + esc(phoneHref) + '" rel="nofollow">📞 ' + esc(tr('call')) + '</a>' : '') + (waHref ? '<a class="mgp-btn wa' + only + '" href="' + esc(waHref) + '" target="_blank" rel="nofollow noopener">🟢 ' + esc(tr('whatsapp')) + '</a>' : '') + ' </div>' + '</div>'; document.body.insertAdjacentHTML('beforeend', html); } function shareToast(text){ var toast = $('#mgp-share-toast'); if (!toast) { document.body.insertAdjacentHTML('beforeend', '<div id="mgp-share-toast" class="mgp-share-toast"></div>'); toast = $('#mgp-share-toast'); } toast.textContent = text; toast.classList.add('is-visible'); setTimeout(function(){ toast.classList.remove('is-visible'); }, 1800); } function shareListing(){ var data = { title: config.title, text: config.title, url: config.permalink }; if (navigator.share) { navigator.share(data).catch(function(){}); return; } if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(config.permalink).then(function(){ shareToast(tr('copied')); }); return; } window.prompt(tr('copy_prompt'), config.permalink); } function hideNativeMessaging(){ $all('.cts-open-chat').forEach(function(el){ var li = el.closest('li'); if (li) { li.style.display = 'none'; } el.style.display = 'none'; }); $all('.quick-listing-actions a').forEach(function(a){ var txt = cleanText(a.textContent).toLowerCase(); if (txt.indexOf('messagerie') !== -1 || txt.indexOf('message') !== -1 || a.classList.contains('cts-open-chat')) { var li = a.closest('li'); if (li) li.style.display = 'none'; a.style.display = 'none'; } }); } function enhanceNativeBlocks(){ hideNativeMessaging(); var tagsBlock = $('.block-type-tags'); var descBlock = $('.block-field-job_description, .block-type-text.block-field-job_description'); var galleryBlock = $('.block-field-job_gallery, .block-type-gallery'); if (tagsBlock && descBlock && descBlock.parentNode) { descBlock.parentNode.insertBefore(tagsBlock, descBlock); } if (galleryBlock) { galleryBlock.classList.add('mgp-gallery-main'); } var safetyBlock = $all('.block-type-details').filter(function(block){ return /versez|paiement|arnaque|sécurité|verifi|vérifi|douteux|warning/i.test(cleanText(block.textContent)); })[0]; if (safetyBlock) { safetyBlock.classList.add('mgp-safety-block'); } document.body.classList.add('mgp-ready'); } function init(){ buildShell(); hideNativeMessaging(); setTimeout(function(){ buildShell(); hideNativeMessaging(); enhanceNativeBlocks(); }, 400); setTimeout(function(){ hideNativeMessaging(); enhanceNativeBlocks(); }, 1200); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } window.addEventListener('load', function(){ init(); setTimeout(init, 800); }); })(); /* ========================================================= MEETGIRL — FIX STRUCTURE FICHE PREMIUM V1.1 ========================================================= */ body.single-job_listing{ background:#981a34 !important; } body.single-job_listing .mgp-shell{ max-width:1320px !important; } body.single-job_listing .mgp-top{ align-items:start !important; } body.single-job_listing .mgp-identity{ min-height:0 !important; height:auto !important; } body.single-job_listing .mgp-specialties{ margin-bottom:0 !important; padding-bottom:0 !important; } body.single-job_listing .mgp-chip-grid{ margin-bottom:0 !important; padding-bottom:0 !important; } /* Corrige le gros bloc vide : ne jamais étirer la carte identité */ @media (min-width: 992px){ body.single-job_listing .mgp-top{ grid-template-columns:minmax(0, 1fr) 390px !important; align-items:start !important; } body.single-job_listing .mgp-identity, body.single-job_listing .mgp-contact{ align-self:start !important; } } /* ========================================================= Recentrage complet des blocs MyListing ========================================================= */ body.single-job_listing .listing-tabs, body.single-job_listing .listing-tab, body.single-job_listing .profile-body, body.single-job_listing .tab-template-two-columns{ background:transparent !important; width:100% !important; max-width:none !important; margin:0 auto !important; padding-left:0 !important; padding-right:0 !important; } body.single-job_listing .tab-template-two-columns > .row{ display:block !important; width:100% !important; max-width:1220px !important; margin:0 auto !important; padding:0 16px !important; } body.single-job_listing .tab-template-two-columns > .row > .col-md-6{ float:none !important; width:100% !important; max-width:1220px !important; margin:0 auto !important; padding:0 !important; display:block !important; } body.single-job_listing .cts-main-column, body.single-job_listing .cts-side-column, body.single-job_listing .cts-column-wrapper{ display:block !important; width:100% !important; max-width:1220px !important; margin:0 auto !important; padding:0 !important; } body.single-job_listing .cts-main-column > div, body.single-job_listing .cts-side-column > div, body.single-job_listing .block-type-gallery, body.single-job_listing .block-type-general_repeater, body.single-job_listing .block-type-location, body.single-job_listing .block-type-details, body.single-job_listing .block-type-table, body.single-job_listing .block-type-text, body.single-job_listing .block-type-tags, body.single-job_listing .block-type-categories{ float:none !important; width:100% !important; max-width:1220px !important; margin:0 auto 20px auto !important; padding-left:0 !important; padding-right:0 !important; display:block !important; clear:both !important; } /* ========================================================= Style uniforme pour TOUS les blocs, y compris galerie/ville/langue ========================================================= */ body.single-job_listing .element, body.single-job_listing .gallery-block, body.single-job_listing .content-block, body.single-job_listing .table-block, body.single-job_listing .map-block, body.single-job_listing .single-menu-item{ width:100% !important; max-width:100% !important; background:#140d13 !important; border:1px solid rgba(255,255,255,.10) !important; border-radius:24px !important; box-shadow:0 18px 46px rgba(0,0,0,.22) !important; overflow:hidden !important; color:#fff !important; } body.single-job_listing .pf-head{ background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025)) !important; border-bottom:1px solid rgba(255,255,255,.10) !important; padding:15px 18px !important; } body.single-job_listing .pf-body{ padding:18px !important; } /* Galerie : pleine largeur propre */ body.single-job_listing .block-type-gallery .element, body.single-job_listing .block-type-gallery .gallery-block{ background:#140d13 !important; } body.single-job_listing .gallerySlider, body.single-job_listing .galleryPreview, body.single-job_listing .galleryPreview .owl-stage-outer{ width:100% !important; max-width:100% !important; border-radius:20px !important; overflow:hidden !important; } body.single-job_listing .galleryPreview img{ width:100% !important; max-height:none !important; object-fit:cover !important; border-radius:20px !important; } body.single-job_listing .gallery-thumb{ margin-top:12px !important; } body.single-job_listing .gallery-thumb .slide-thumb{ border-radius:14px !important; overflow:hidden !important; border:1px solid rgba(255,255,255,.16) !important; } /* Selfie/repeater : évite la carte blanche vide en bas */ body.single-job_listing .block-type-general_repeater .food-menu-items{ display:grid !important; grid-template-columns:1fr !important; gap:18px !important; } body.single-job_listing .block-type-general_repeater .single-menu-item{ background:#140d13 !important; border-radius:24px !important; } body.single-job_listing .block-type-general_repeater .gr-content{ display:block !important; } body.single-job_listing .block-type-general_repeater .menu-thumb, body.single-job_listing .block-type-general_repeater .menu-thumb a, body.single-job_listing .block-type-general_repeater .menu-thumb img{ width:100% !important; border-radius:20px !important; overflow:hidden !important; } body.single-job_listing .block-type-general_repeater .menu-content{ margin:0 !important; padding:14px 16px !important; background:#140d13 !important; color:#fff !important; } body.single-job_listing .block-type-general_repeater .menu-item-title{ color:#fff !important; font-weight:900 !important; } /* Ville + Langue : rendu comme les autres blocs */ body.single-job_listing .block-type-details .outlined-list, body.single-job_listing .block-type-details .details-block-content{ display:grid !important; grid-template-columns:1fr !important; gap:10px !important; margin:0 !important; padding:0 !important; } body.single-job_listing .block-type-details .outlined-list li, body.single-job_listing .block-type-details .details-block-content li{ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important; background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.10) !important; border-radius:16px !important; padding:13px 14px !important; margin:0 !important; color:#fff !important; } body.single-job_listing .block-type-details .wp-editor-content{ color:#fff !important; font-size:15px !important; font-weight:850 !important; line-height:1.35 !important; } /* Tables type "Un peu plus sur moi" */ body.single-job_listing .extra-details{ display:grid !important; grid-template-columns:1fr !important; gap:10px !important; margin:0 !important; padding:0 !important; } body.single-job_listing .extra-details li{ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:14px !important; background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.10) !important; border-radius:16px !important; padding:13px 14px !important; margin:0 !important; } body.single-job_listing .item-attr{ color:rgba(255,255,255,.55) !important; font-size:11px !important; font-weight:950 !important; text-transform:uppercase !important; letter-spacing:.06em !important; margin:0 !important; } body.single-job_listing .item-property{ color:#fff !important; font-size:14px !important; font-weight:850 !important; line-height:1.32 !important; text-align:right !important; } /* Description */ body.single-job_listing .block-field-job_description .pf-body, body.single-job_listing .content-block .pf-body{ padding:22px !important; } body.single-job_listing .content-block p{ color:rgba(255,255,255,.88) !important; font-size:15px !important; line-height:1.7 !important; font-weight:600 !important; margin:0 0 14px !important; } /* ========================================================= Mobile : pas de doublon Appeler / WhatsApp ========================================================= */ @media (max-width: 991px){ body.single-job_listing .mgp-contact .mgp-actions{ display:none !important; } body.single-job_listing .mgp-contact{ margin-bottom:16px !important; } body.single-job_listing .mgp-contact-card{ margin-bottom:0 !important; } body.single-job_listing .mgp-mini{ margin-top:12px !important; } body.single-job_listing .tab-template-two-columns > .row{ padding:0 10px !important; } body.single-job_listing .cts-main-column > div, body.single-job_listing .cts-side-column > div, body.single-job_listing .block-type-gallery, body.single-job_listing .block-type-general_repeater, body.single-job_listing .block-type-location, body.single-job_listing .block-type-details, body.single-job_listing .block-type-table, body.single-job_listing .block-type-text, body.single-job_listing .block-type-tags, body.single-job_listing .block-type-categories{ margin-bottom:14px !important; } body.single-job_listing .element, body.single-job_listing .gallery-block, body.single-job_listing .content-block, body.single-job_listing .table-block, body.single-job_listing .map-block, body.single-job_listing .single-menu-item{ border-radius:20px !important; } body.single-job_listing .pf-head{ padding:13px 15px !important; } body.single-job_listing .pf-body{ padding:15px !important; } body.single-job_listing .extra-details li, body.single-job_listing .block-type-details .outlined-list li, body.single-job_listing .block-type-details .details-block-content li{ align-items:flex-start !important; flex-direction:column !important; gap:5px !important; } body.single-job_listing .item-property{ text-align:left !important; } } /* Sécurité contre le grand vide rouge généré par les colonnes */ body.single-job_listing .row:before, body.single-job_listing .row:after{ display:none !important; } (function(){ 'use strict'; function all(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } function txt(el){ return (el && el.textContent ? el.textContent : '').replace(/\s+/g, ' ').trim(); } function moveNativeBlocksToSingleColumn(){ var main = document.querySelector('.cts-main-column'); var side = document.querySelector('.cts-side-column'); if (!main || !side) return; if (document.body.classList.contains('mgp-single-column-fixed')) return; var order = [ '.block-type-gallery', '.block-type-tags', '.block-field-job_description', '.block-type-table', '.block-type-details', '.block-type-categories', '.block-type-general_repeater', '.block-type-location' ]; order.forEach(function(selector){ all(selector, document).forEach(function(block){ if (!block || block.closest('.similar-listings')) return; main.appendChild(block); }); }); document.body.classList.add('mgp-single-column-fixed'); } function removeMobileDuplicateActions(){ if (window.innerWidth > 991) return; all('.mgp-contact .mgp-actions').forEach(function(el){ el.style.display = 'none'; }); } function removeEmptyTopSpace(){ all('.mgp-identity, .mgp-top, .mgp-shell').forEach(function(el){ el.style.minHeight = '0'; el.style.height = 'auto'; }); } function fixEmptyRepeaterCards(){ all('.block-type-general_repeater .single-menu-item').forEach(function(card){ var hasImg = !!card.querySelector('img, .menu-thumb'); var content = txt(card); if (!hasImg && content.length < 3) { card.style.display = 'none'; } }); } function cleanNativeMessaging(){ all('.cts-open-chat').forEach(function(el){ var li = el.closest('li'); if (li) li.style.display = 'none'; el.style.display = 'none'; }); all('.quick-listing-actions a').forEach(function(a){ var t = txt(a).toLowerCase(); if (t.indexOf('messagerie') !== -1 || t.indexOf('message') !== -1) { var li = a.closest('li'); if (li) li.style.display = 'none'; a.style.display = 'none'; } }); } function runFixes(){ moveNativeBlocksToSingleColumn(); removeMobileDuplicateActions(); removeEmptyTopSpace(); fixEmptyRepeaterCards(); cleanNativeMessaging(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', runFixes); } else { runFixes(); } window.addEventListener('load', function(){ runFixes(); setTimeout(runFixes, 400); setTimeout(runFixes, 1200); }); window.addEventListener('resize', function(){ setTimeout(runFixes, 150); }); })(); /* ========================================================= MEETGIRL — FIX DESKTOP STRUCTURE V1.2 ========================================================= */ @media (min-width: 992px){ body.single-job_listing .mgp-top{ display:grid !important; grid-template-columns:minmax(0, 1fr) 390px !important; gap:22px !important; align-items:start !important; margin-bottom:22px !important; } body.single-job_listing .mgp-left-stack{ display:flex !important; flex-direction:column !important; gap:18px !important; min-width:0 !important; } body.single-job_listing .mgp-left-stack .mgp-identity{ margin:0 !important; } body.single-job_listing .mgp-left-stack .block-field-job_description, body.single-job_listing .mgp-left-stack .block-type-text.block-field-job_description{ margin:0 !important; width:100% !important; max-width:100% !important; } body.single-job_listing .mgp-left-stack .block-field-job_description .element, body.single-job_listing .mgp-left-stack .block-field-job_description .content-block{ border-radius:26px !important; background:#140d13 !important; border:1px solid rgba(255,255,255,.10) !important; box-shadow:0 18px 46px rgba(0,0,0,.22) !important; } body.single-job_listing .mgp-contact{ align-self:start !important; } /* Alignement propre des lignes desktop */ body.single-job_listing .extra-details li{ display:grid !important; grid-template-columns: 38% 1fr !important; align-items:center !important; gap:18px !important; } body.single-job_listing .item-attr{ text-align:left !important; white-space:normal !important; } body.single-job_listing .item-property{ text-align:left !important; justify-self:start !important; width:100% !important; } body.single-job_listing .block-type-details .outlined-list li, body.single-job_listing .block-type-details .details-block-content li{ display:grid !important; grid-template-columns: 38% 1fr !important; align-items:center !important; gap:18px !important; } body.single-job_listing .block-type-details .wp-editor-content{ text-align:left !important; justify-self:start !important; } } /* Si WhatsApp absent, on force la disparition propre */ body.single-job_listing.mgp-no-whatsapp .mgp-btn.wa, body.single-job_listing.mgp-no-whatsapp .mgp-mobile-sticky .mgp-btn.wa, body.single-job_listing.mgp-no-whatsapp a[href*="wa.me"], body.single-job_listing.mgp-no-whatsapp a[href*="whatsapp"]{ display:none !important; } body.single-job_listing.mgp-no-whatsapp .mgp-mobile-sticky-inner{ grid-template-columns:1fr !important; } body.single-job_listing.mgp-no-whatsapp .mgp-mobile-sticky .mgp-btn.call{ grid-column:1 / -1 !important; } (function(){ 'use strict'; var HAS_WHATSAPP = true; function one(sel, root){ return (root || document).querySelector(sel); } function all(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } function fixWhatsapp(){ if (HAS_WHATSAPP) return; document.body.classList.add('mgp-no-whatsapp'); all('.mgp-btn.wa, .mgp-mobile-sticky .mgp-btn.wa').forEach(function(el){ el.remove(); }); all('a[href*="wa.me"], a[href*="whatsapp"]').forEach(function(a){ var inPremium = a.closest('.mgp-contact') || a.closest('.mgp-mobile-sticky') || a.closest('.quick-listing-actions'); if (inPremium) { var li = a.closest('li'); if (li) { li.style.display = 'none'; } a.style.display = 'none'; } }); var stickyInner = one('.mgp-mobile-sticky-inner'); if (stickyInner && stickyInner.children.length === 1) { stickyInner.children[0].classList.add('only-one'); } } function moveDescriptionUnderIdentityDesktop(){ if (window.innerWidth < 992) return; var top = one('.mgp-top'); var identity = one('.mgp-identity'); var contact = one('.mgp-contact'); var desc = one('.block-field-job_description, .block-type-text.block-field-job_description'); if (!top || !identity || !contact || !desc) return; if (one('.mgp-left-stack')) return; var stack = document.createElement('div'); stack.className = 'mgp-left-stack'; top.insertBefore(stack, identity); stack.appendChild(identity); stack.appendChild(desc); if (contact.parentNode !== top) { top.appendChild(contact); } } function fixTablesAlignment(){ all('.extra-details li').forEach(function(li){ li.style.display = 'grid'; li.style.gridTemplateColumns = window.innerWidth >= 992 ? '38% 1fr' : '1fr'; li.style.alignItems = 'center'; }); } function run(){ fixWhatsapp(); moveDescriptionUnderIdentityDesktop(); fixTablesAlignment(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } window.addEventListener('load', function(){ run(); setTimeout(run, 400); setTimeout(run, 1200); }); window.addEventListener('resize', function(){ setTimeout(run, 180); }); })(); @media (min-width: 992px){ body.single-job_listing .mgp-shell{ max-width:1460px !important; padding-left:18px !important; padding-right:18px !important; } body.single-job_listing .mgp-top{ grid-template-columns:minmax(0, 1fr) 360px !important; gap:24px !important; max-width:1460px !important; margin-left:auto !important; margin-right:auto !important; } body.single-job_listing .mgp-left-stack{ width:100% !important; max-width:none !important; } body.single-job_listing .mgp-identity{ width:100% !important; max-width:none !important; min-height:0 !important; padding:28px 30px 30px !important; } body.single-job_listing .mgp-title{ font-size:clamp(42px, 4.2vw, 68px) !important; line-height:.92 !important; letter-spacing:-.065em !important; max-width:980px !important; } body.single-job_listing .mgp-tagline{ font-size:clamp(21px, 2vw, 30px) !important; max-width:900px !important; } body.single-job_listing .mgp-chip-grid{ max-width:980px !important; } body.single-job_listing .mgp-contact{ width:360px !important; max-width:360px !important; padding:18px !important; } body.single-job_listing .mgp-contact-title{ font-size:21px !important; } body.single-job_listing .mgp-contact-card{ padding:11px !important; } body.single-job_listing .mgp-btn{ min-height:49px !important; } body.single-job_listing .tab-template-two-columns > .row{ max-width:1320px !important; } body.single-job_listing .cts-main-column, body.single-job_listing .cts-side-column, body.single-job_listing .cts-column-wrapper, body.single-job_listing .cts-main-column > div, body.single-job_listing .cts-side-column > div, body.single-job_listing .block-type-gallery, body.single-job_listing .block-type-general_repeater, body.single-job_listing .block-type-location, body.single-job_listing .block-type-details, body.single-job_listing .block-type-table, body.single-job_listing .block-type-text, body.single-job_listing .block-type-tags, body.single-job_listing .block-type-categories{ max-width:1320px !important; } } @media (min-width: 1400px){ body.single-job_listing .mgp-shell{ max-width:1540px !important; } body.single-job_listing .mgp-top{ grid-template-columns:minmax(0, 1fr) 370px !important; max-width:1540px !important; } body.single-job_listing .mgp-contact{ width:370px !important; max-width:370px !important; } body.single-job_listing .mgp-title{ max-width:1080px !important; } body.single-job_listing .mgp-tagline, body.single-job_listing .mgp-chip-grid{ max-width:1040px !important; } } @media (max-width: 991px) { body.single-job_listing .mgp-contact .mgp-actions { display: none !important; } body.single-job_listing .mgp-mobile-bottom-actions { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; max-width: 680px !important; margin: 18px auto 92px !important; padding: 0 10px !important; } body.single-job_listing .mgp-mobile-bottom-actions .mgp-btn { display: flex !important; align-items: center !important; justify-content: center !important; min-height: 46px !important; border-radius: 16px !important; background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.14) !important; color: #ffffff !important; font-size: 13px !important; font-weight: 900 !important; text-decoration: none !important; } } @media (min-width: 992px) { body.single-job_listing .mgp-mobile-bottom-actions { display: none !important; } } (function(){ 'use strict'; function one(sel, root){ return (root || document).querySelector(sel); } function buildBottomActions(){ if (window.innerWidth > 991) return; if (one('.mgp-mobile-bottom-actions')) return; var share = one('#mgp-share-btn'); var report = one('#mgp-report-btn'); if (!share && !report) return; var wrap = document.createElement('div'); wrap.className = 'mgp-mobile-bottom-actions'; if (share) { var shareClone = share.cloneNode(true); shareClone.removeAttribute('id'); shareClone.addEventListener('click', function(e){ e.preventDefault(); share.click(); }); wrap.appendChild(shareClone); } if (report) { var reportClone = report.cloneNode(true); reportClone.removeAttribute('id'); reportClone.addEventListener('click', function(e){ e.preventDefault(); report.click(); }); wrap.appendChild(reportClone); } var target = one('.listing-tabs') || one('#c27-single-listing') || document.body; target.parentNode.insertBefore(wrap, target.nextSibling); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', buildBottomActions); } else { buildBottomActions(); } window.addEventListener('load', function(){ buildBottomActions(); setTimeout(buildBottomActions, 500); }); })(); @media (max-width: 991px) { body.single-job_listing .mg-slider-hint-v4 { position: fixed !important; left: 50% !important; top: 96px !important; transform: translateX(-50%) translateY(-8px) !important; z-index: 999999 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; padding: 9px 14px !important; border-radius: 999px !important; background: rgba(15, 11, 16, .82) !important; border: 1px solid rgba(255,255,255,.24) !important; color: #ffffff !important; font-size: 12px !important; font-weight: 850 !important; line-height: 1 !important; white-space: nowrap !important; box-shadow: 0 12px 30px rgba(0,0,0,.35) !important; backdrop-filter: blur(10px) !important; -webkit-backdrop-filter: blur(10px) !important; pointer-events: none !important; opacity: 0 !important; transition: opacity .35s ease, transform .35s ease !important; } body.single-job_listing .mg-slider-hint-v4.is-visible { opacity: 1 !important; transform: translateX(-50%) translateY(0) !important; } body.single-job_listing .mg-slider-hint-v4-icon { color: #f67675 !important; font-size: 15px !important; line-height: 1 !important; animation: mgSliderHintV4Move 1.1s ease-in-out infinite !important; } @keyframes mgSliderHintV4Move { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(5px); } } } @media (min-width: 992px) { body.single-job_listing .mg-slider-hint-v4 { display: none !important; } } (function() { 'use strict'; var hintText = "Glisser pour voir les photos"; function isMobile() { return window.innerWidth <= 991; } function hasGallery() { return document.querySelector('.header-gallery-carousel') || document.querySelector('.profile-cover-gallery') || document.querySelector('.featured-section-gallery') || document.querySelector('.profile-cover'); } function removeOldHints() { document.querySelectorAll( '.mg-hero-slider-hint, .mg-hero-slider-hint-v2, .mg-hero-slider-hint-v3, .mg-slider-hint-v4' ).forEach(function(el) { el.remove(); }); } function initHint() { if (!isMobile()) return; if (!hasGallery()) return; removeOldHints(); var hint = document.createElement('div'); hint.className = 'mg-slider-hint-v4'; hint.innerHTML = '<span class="mg-slider-hint-v4-icon">↔</span>' + '<span>' + hintText + '</span>'; document.body.appendChild(hint); setTimeout(function() { hint.classList.add('is-visible'); }, 600); setTimeout(function() { hint.classList.remove('is-visible'); }, 5200); setTimeout(function() { if (hint && hint.parentNode) { hint.parentNode.removeChild(hint); } }, 6200); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initHint); } else { initHint(); } window.addEventListener('load', function() { setTimeout(initHint, 500); }); })(); /* Masquer le bloc spécialités natif : déjà affiché dans le bloc premium */ body.single-job_listing .block-type-tags { display: none !important; } /* Anti débordement global */ body.single-job_listing, body.single-job_listing html, body.single-job_listing #c27-single-listing, body.single-job_listing .single-job-listing { overflow-x: hidden !important; max-width: 100vw !important; } @media (max-width: 991px) { body.single-job_listing { width: 100% !important; max-width: 100vw !important; overflow-x: hidden !important; touch-action: pan-y !important; } body.single-job_listing .mgp-shell, body.single-job_listing .listing-tabs, body.single-job_listing .tab-template-two-columns, body.single-job_listing .tab-template-two-columns > .row, body.single-job_listing .cts-main-column, body.single-job_listing .cts-side-column, body.single-job_listing .cts-column-wrapper { width: 100% !important; max-width: 100vw !important; overflow-x: hidden !important; } /* Stabilise les galeries MyListing */ body.single-job_listing .gallerySlider, body.single-job_listing .galleryPreview, body.single-job_listing .galleryPreview .owl-stage-outer, body.single-job_listing .gallery-thumb, body.single-job_listing .gallery-thumb .owl-stage-outer, body.single-job_listing .header-gallery-carousel, body.single-job_listing .header-gallery-carousel .owl-stage-outer { overflow: hidden !important; max-width: 100% !important; transform: none !important; will-change: auto !important; } body.single-job_listing .galleryPreview .owl-stage, body.single-job_listing .gallery-thumb .owl-stage, body.single-job_listing .header-gallery-carousel .owl-stage { will-change: auto !important; } body.single-job_listing .galleryPreview .owl-item, body.single-job_listing .gallery-thumb .owl-item, body.single-job_listing .header-gallery-carousel .owl-item { overflow: hidden !important; backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; } body.single-job_listing img, body.single-job_listing .lf-background, body.single-job_listing .item, body.single-job_listing .photoswipe-item { max-width: 100% !important; backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; } /* Similar listings : éviter les déplacements Isotope pendant scroll */ body.single-job_listing .similar-listings .section-body.grid { position: relative !important; height: auto !important; overflow: hidden !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin: 0 !important; } body.single-job_listing .similar-listings .grid-item { position: relative !important; left: auto !important; top: auto !important; float: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; transform: none !important; } body.single-job_listing .similar-listings .lf-item-container { width: 100% !important; max-width: 100% !important; overflow: hidden !important; transform: none !important; } body.single-job_listing .similar-listings .lf-item { overflow: hidden !important; transform: none !important; } body.single-job_listing .similar-listings .lf-item > a { overflow: hidden !important; } } (function(){ 'use strict'; function isMobile(){ return window.innerWidth <= 991; } function all(sel, root){ return Array.prototype.slice.call((root || document).querySelectorAll(sel)); } function hideSpecialtiesBlock(){ all('.block-type-tags').forEach(function(block){ block.style.display = 'none'; }); } function fixSimilarListingsMobile(){ if (!isMobile()) return; var grid = document.querySelector('.similar-listings .section-body.grid'); if (!grid) return; grid.style.setProperty('position', 'relative', 'important'); grid.style.setProperty('height', 'auto', 'important'); grid.style.setProperty('overflow', 'hidden', 'important'); grid.style.setProperty('display', 'grid', 'important'); grid.style.setProperty('grid-template-columns', 'repeat(2, minmax(0, 1fr))', 'important'); grid.style.setProperty('gap', '8px', 'important'); all('.similar-listings .grid-item').forEach(function(item){ item.style.setProperty('position', 'relative', 'important'); item.style.setProperty('left', 'auto', 'important'); item.style.setProperty('top', 'auto', 'important'); item.style.setProperty('float', 'none', 'important'); item.style.setProperty('width', '100%', 'important'); item.style.setProperty('padding', '0', 'important'); item.style.setProperty('margin', '0', 'important'); item.style.setProperty('transform', 'none', 'important'); }); } function fixOverflow(){ document.documentElement.style.setProperty('overflow-x', 'hidden', 'important'); document.body.style.setProperty('overflow-x', 'hidden', 'important'); all('.mgp-shell, .listing-tabs, .tab-template-two-columns, .cts-main-column, .cts-side-column').forEach(function(el){ el.style.setProperty('max-width', '100%', 'important'); el.style.setProperty('overflow-x', 'hidden', 'important'); }); } function run(){ hideSpecialtiesBlock(); fixOverflow(); fixSimilarListingsMobile(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', run); } else { run(); } window.addEventListener('load', function(){ run(); setTimeout(run, 400); setTimeout(run, 1200); }); window.addEventListener('scroll', function(){ if (!isMobile()) return; window.requestAnimationFrame(fixSimilarListingsMobile); }, { passive: true }); window.addEventListener('resize', function(){ setTimeout(run, 150); }); })(); @media (max-width: 991px) { html, body { overflow-x: hidden !important; max-width: 100vw !important; } .lf-item-container.listing-preview, .lf-item-container.listing-preview .lf-item, .lf-item-container.listing-preview .lf-item > a { overflow: hidden !important; max-width: 100% !important; backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; transform: none !important; transition: none !important; will-change: auto !important; isolation: isolate !important; contain: paint !important; } .lf-item-container.listing-preview .lf-item > a { position: relative !important; clip-path: inset(0 round 14px) !important; } .lf-item-container.listing-preview .lf-background { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: 100% !important; background-size: cover !important; background-position: center center !important; background-repeat: no-repeat !important; background-attachment: scroll !important; transform: none !important; transition: none !important; will-change: auto !important; backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; } .lf-item-container.listing-preview .overlay { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; transform: none !important; transition: none !important; will-change: auto !important; pointer-events: none !important; } .results-view.grid, .section-body.grid, .similar-listings .section-body.grid { overflow: hidden !important; max-width: 100% !important; } .grid-item { max-width: 100% !important; backface-visibility: hidden !important; -webkit-backface-visibility: hidden !important; transform: none !important; transition: none !important; will-change: auto !important; } body.mg-mobile-is-scrolling .lf-item-container.listing-preview, body.mg-mobile-is-scrolling .lf-item-container.listing-preview .lf-item, body.mg-mobile-is-scrolling .lf-item-container.listing-preview .lf-background, body.mg-mobile-is-scrolling .lf-item-container.listing-preview .overlay, body.mg-mobile-is-scrolling .grid-item { transform: none !important; transition: none !important; will-change: auto !important; } } (function(){ 'use strict'; var timer = null; function isMobile(){ return window.innerWidth <= 991; } function stabilizeCards(){ if (!isMobile()) return; document.querySelectorAll('.lf-item-container.listing-preview .lf-background').forEach(function(bg){ bg.style.setProperty('transform', 'none', 'important'); bg.style.setProperty('transition', 'none', 'important'); bg.style.setProperty('will-change', 'auto', 'important'); bg.style.setProperty('background-attachment', 'scroll', 'important'); }); document.querySelectorAll('.lf-item-container.listing-preview, .lf-item-container.listing-preview .lf-item, .lf-item-container.listing-preview .lf-item > a').forEach(function(el){ el.style.setProperty('overflow', 'hidden', 'important'); el.style.setProperty('transform', 'none', 'important'); el.style.setProperty('transition', 'none', 'important'); el.style.setProperty('will-change', 'auto', 'important'); }); } function onScroll(){ if (!isMobile()) return; document.body.classList.add('mg-mobile-is-scrolling'); if (timer) { clearTimeout(timer); } timer = setTimeout(function(){ document.body.classList.remove('mg-mobile-is-scrolling'); stabilizeCards(); }, 180); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', stabilizeCards); } else { stabilizeCards(); } window.addEventListener('load', function(){ stabilizeCards(); setTimeout(stabilizeCards, 500); setTimeout(stabilizeCards, 1500); }); window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', function(){ setTimeout(stabilizeCards, 200); }); })(); window.lazyLoadOptions = [{ elements_selector: "img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) { if (element.classList.contains("lazyloaded") ) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } }},{ elements_selector: ".rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, }]; window.addEventListener('LazyLoad::Initialized', function (e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName == "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName == "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if(is_image){ image_count += 1; } if(is_iframe){ iframe_count += 1; } } } ); if(image_count > 0 || iframe_count > 0 || rocketlazy_count > 0){ lazyLoadInstance.update(); } } ); var b = document.getElementsByTagName("body")[0]; var config = { childList: true, subtree: true }; observer.observe(b, config); } }, false);function lazyLoadThumb(e,alt){var t='<img loading="lazy" src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360">',a='<button class="play" aria-label="play Youtube video"></button>';t=t.replace('alt=""','alt="'+alt+'"');return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.parentNode.dataset.query.length?'':'&'+this.parentNode.dataset.query;e.setAttribute("src",t.replace("ID",this.parentNode.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow", "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.parentNode.replaceChild(e,this.parentNode)}document.addEventListener("DOMContentLoaded",function(){var e,t,p,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query", a[t].dataset.query),e.setAttribute("data-src", a[t].dataset.src),e.innerHTML=lazyLoadThumb(a[t].dataset.id,a[t].dataset.alt),a[t].appendChild(e),p=e.querySelector('.play'),p.onclick=lazyLoadYoutubeIframe}); ׋› 📞 Appeler🟢 WhatsApp Age vérification + de 18 ansVous certifiez avoir atteint l'âge de majorité légale de votre pays de résidence. En cliquant sur "Entrer" vous acceptez les [CGU] et vous confirmez avoir plus de 18 ans.Entrer var snp_bld_open4614=function(){_snp_bld_open(4614);}; var snp_bld_close4614=function(){_snp_bld_close(4614);}; .snp-pop-4614 .snp-bld-step-cont-1 {}.snp-pop-4614 .snp-bld-step-1 {width: 500px;height: 600px;background-position: center center;background-repeat: repeat;}.snp-pop-4614 .bld-step-1-el-0 { border: 1px solid transparent;width: 501px;height: 599px;top: -0.9375px;left: -1px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-0 .bld-el,.snp-pop-4614 .bld-step-1-el-0 .bld-el p,.snp-pop-4614 .bld-step-1-el-0 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-0 .bld-el:active,.snp-pop-4614 .bld-step-1-el-0 .bld-el:hover{outline: 0;border-width: 0px;background-color: #7f012b !important;background-position: center center;background-repeat: repeat;}.snp-pop-4614 .bld-step-1-el-1 { border: 1px solid transparent;width: 316px;height: 35px;top: 170.0625px;left: 116px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-1 .bld-el,.snp-pop-4614 .bld-step-1-el-1 .bld-el p,.snp-pop-4614 .bld-step-1-el-1 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-1 .bld-el:active,.snp-pop-4614 .bld-step-1-el-1 .bld-el:hover{outline: 0;font-family: 'Roboto';border-width: 0px;background-position: center center;background-repeat: repeat;}.snp-pop-4614 .bld-step-1-el-2 { border: 1px solid transparent;width: 387px;height: 78px;top: 210.0625px;left: 54px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-2 .bld-el,.snp-pop-4614 .bld-step-1-el-2 .bld-el p,.snp-pop-4614 .bld-step-1-el-2 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-2 .bld-el:active,.snp-pop-4614 .bld-step-1-el-2 .bld-el:hover{outline: 0;font-family: 'Open Sans';border-width: 0px;background-position: center center;background-repeat: repeat;}.snp-pop-4614 .bld-step-1-el-3 { border: 1px solid transparent;width: 200px;height: 50px;top: 295px;left: 143px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-3 .bld-el,.snp-pop-4614 .bld-step-1-el-3 .bld-el p,.snp-pop-4614 .bld-step-1-el-3 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-3 .bld-el:active,.snp-pop-4614 .bld-step-1-el-3 .bld-el:hover{outline: 0;color: #ffffff;font-family: 'Roboto';font-size: 17px;font-weight: bold;border-style: none;border-width: 8px;border-radius: 8px;background-color: #f67675 !important;background-position: center center;background-repeat: repeat;padding-left: 10px;}.snp-pop-4614 .bld-step-1-el-4 { border: 1px solid transparent;width: 112.078px;height: 117px;top: 37px;left: 196px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-4 .bld-el,.snp-pop-4614 .bld-step-1-el-4 .bld-el p,.snp-pop-4614 .bld-step-1-el-4 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-4 .bld-el:active,.snp-pop-4614 .bld-step-1-el-4 .bld-el:hover{outline: 0;}.snp-pop-4614 .bld-step-1-el-5 { border: 1px solid transparent;width: 99px;height: 72px;top: 381px;left: 52px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-5 .bld-el,.snp-pop-4614 .bld-step-1-el-5 .bld-el p,.snp-pop-4614 .bld-step-1-el-5 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-5 .bld-el:active,.snp-pop-4614 .bld-step-1-el-5 .bld-el:hover{outline: 0;}.snp-pop-4614 .bld-step-1-el-6 { border: 1px solid transparent;width: 99px;height: 72px;top: 380px;left: 190px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-6 .bld-el,.snp-pop-4614 .bld-step-1-el-6 .bld-el p,.snp-pop-4614 .bld-step-1-el-6 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-6 .bld-el:active,.snp-pop-4614 .bld-step-1-el-6 .bld-el:hover{outline: 0;}.snp-pop-4614 .bld-step-1-el-7 { border: 1px solid transparent;width: 99px;height: 72px;top: 379px;left: 336px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-7 .bld-el,.snp-pop-4614 .bld-step-1-el-7 .bld-el p,.snp-pop-4614 .bld-step-1-el-7 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-7 .bld-el:active,.snp-pop-4614 .bld-step-1-el-7 .bld-el:hover{outline: 0;}.snp-pop-4614 .bld-step-1-el-8 { border: 1px solid transparent;width: 99px;height: 72px;top: 480px;left: 190px;z-index: 100;}.snp-pop-4614 .bld-step-1-el-8 .bld-el,.snp-pop-4614 .bld-step-1-el-8 .bld-el p,.snp-pop-4614 .bld-step-1-el-8 .bld-el:focus,.snp-pop-4614 .bld-step-1-el-8 .bld-el:active,.snp-pop-4614 .bld-step-1-el-8 .bld-el:hover{outline: 0;}#snp-pop-4614-overlay {opacity: 0.8;background-color: #5A5757;} snp_f['snppopup-welcome-open']=snp_bld_open4614; snp_f['snppopup-welcome-close']=snp_bld_close4614;
Monica

Métodos de contacto

+41779038467
WhatsApp Sms Telegram
Volver a la galería

Disponibilidad

Switzerland

{}

Ubicación

Switzerland

Switzerland

Llamar WhatsApp