/* Cyprus Gate: static stand-in for the Voiceflow launcher. * * Roughly 600 bytes, and it replaces 1.9 MB for every visitor who never * opens the chat. Clicking it loads the real widget, which then removes this. * * Colours match the site: navy #001438, Geist body font. */ #cg-chat-launcher { position: fixed; right: 20px; bottom: 20px; z-index: 9998; display: flex; align-items: center; gap: .5rem; padding: 12px 20px; border-radius: 999px; background: #001438; color: #fff; font: 15px/1 Geist, system-ui, -apple-system, sans-serif; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .2); transition: background .15s ease, transform .15s ease; user-select: none; white-space: nowrap; /* the pill must never break onto two lines */ } #cg-chat-launcher:hover, #cg-chat-launcher:focus-visible { background: #0a2050; transform: translateY(-1px); outline: none; } #cg-chat-launcher:focus-visible { box-shadow: 0 0 0 3px rgba(184, 129, 15, .55); } /* While the bundle downloads on first click. */ #cg-chat-launcher[data-loading] { opacity: .6; pointer-events: none; } .cg-chat-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; flex: none; } /* Keep clear of the cookie banner and of narrow screens. */ @media (max-width: 600px) { #cg-chat-launcher { right: 12px; bottom: 12px; padding: 10px 16px; font-size: 14px; } } @media (prefers-reduced-motion: reduce) { #cg-chat-launcher { transition: none; } } jQuery(function ($) { const FORM_SELECTOR = 'form#wppb-register-user'; function ensureMsgBox($form) { let $box = $form.find('.pb-ajax-msg'); if (!$box.length) { $box = $('
'); $form.prepend($box); } return $box; } // ? Stop popup from closing on button click / submit $(document).on('click', FORM_SELECTOR + ' button, ' + FORM_SELECTOR + ' input[type="submit"]', function (e) { e.stopPropagation(); e.stopImmediatePropagation(); }); // ? Stop any "close on submit" handlers (Elementor / modal libs) $(document).on('submit', FORM_SELECTOR, function (e) { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); const $form = $(this); const $msg = ensureMsgBox($form); if (typeof PB_REG_AJAX === 'undefined' || !PB_REG_AJAX.ajaxurl) { $msg.text('PB_REG_AJAX is missing. The PHP snippet is not loaded on this page.'); return; } $msg.css('border-color', '#ddd').text('Processing...'); let payload = $form.serializeArray(); payload.push({ name: 'action', value: 'pb_register_ajax' }); payload.push({ name: '_ajax_nonce', value: PB_REG_AJAX.nonce }); $.ajax({ url: PB_REG_AJAX.ajaxurl, method: 'POST', data: $.param(payload), dataType: 'json', timeout: 20000, success: function (res) { if (res && res.success) { $msg.css('border-color', '#cfc').text(res.data?.message || 'Please check your email to confirm registration.'); // ? keep popup open; do NOT reload/redirect here } else { $msg.css('border-color', '#fcc').text(res.data?.message || 'Registration failed.'); } }, error: function (xhr, status) { let info = 'AJAX error: ' + status; if (xhr && xhr.responseText) info += ' | ' + xhr.responseText.substring(0, 200); $msg.css('border-color', '#fcc').text(info); } }); return false; }); }); /** * Force PB_REG_AJAX to exist everywhere * Fixes: "PB_REG_AJAX is missing" */ window.PB_REG_AJAX = window.PB_REG_AJAX || { ajaxurl: "/wp-admin/admin-ajax.php", nonce: "bypass-nonce" // not used server-side };

מעבר ותושבות

רכישת נכס ומסלול תושבות חייבים ללכת יחד. אנחנו מתאמים את בחירת הנכס לדרישות התוכנית, מכינים צ׳ק־ליסט מסמכים, ומחברים אתכם לעורכי דין להגירה שמגישים בפועל.

מה זה השירות

זה שירות תיאום וייעוץ תהליכי - לא ייעוץ משפטי ולא הגשת בקשות תושבות בעצמנו. המטרה: שלא תקנו נכס שלא עומד בסף, ושתיק המסמכים יהיה מוכן לפני שמגישים. אזרחי ישראל הם אזרחי מדינה שלישית; הדרישות האדמיניסטרטיביות דורשות תכנון מראש.

למי זה מתאים

  • משפחות שמתכננות מעבר מלא או חלקי לקפריסין
  • גמלאים ובעלי הכנסה מחו"ל שמחפשים בסיס יציב באיחוד האירופי
  • עצמאים ועובדים מרחוק שצריכים מסגרת שהייה מעבר לתיירות
  • משקיעים שרוצים אופציית תושבות עתידית על נכס מתאים

איך זה עובד

  • הערכת התאמה ראשונית לדרישות תוכנית התושבות
  • יישור קו בין חיפוש הנכס לסף ההשקעה ולסוג הנכס הנדרש
  • צ׳ק־ליסט מסמכים, תרגומים ואפוסטיל - עם לוחות זמנים
  • מסירה לעורך דין להגירה מורשה והמשך מעקב תיאום

מה אתם מקבלים

נכס שלא שובר את המסלול

שורטליסט שמסונן גם לפי קריטריוני תושבות, לא רק לפי טעם אישי.

פחות עיכובים אדמיניסטרטיביים

מסמכים בפורמט הנכון, בזמן הנכון - לפני שהבקשה נתקעת.

עצמאות לאורך כל הדרך

Cyprus Gate מייצג רק את הקונה. אין לנו מלאי של נכסים או פרויקטים של יזמים שאנחנו חייבים למכור, אין עמלת מוכר ואין עמלות הפניה מבעלי מקצוע.

אתם משלמים לנו בלבד, לפי היקף העבודה שסוכם מראש ובכתב. בלי עמלות נסתרות ובלי אינטרסים מאחורי הקלעים, העלות הכוללת עבורכם נמוכה משמעותית.

אנחנו לא צריכים למכור לכם נכס. אנחנו צריכים למצוא לכם את הנכס הנכון.

Cyprus Gate - ייעוץ נדלן עצמאי לקונים בקפריסין, נוף חוף ים
Loading...
/* Cyprus Gate: load the Voiceflow widget on demand, not on every page view. * * Replaces the body of the existing "Simple Custom CSS and JS" snippet that * contains the Voiceflow widget-next bundle URL. * * Before: 713 KB transferred and 1.9 MB decoded on every page, for every * visitor, whether or not anyone opens the chat. * After: nothing is fetched from Voiceflow until someone clicks. * * The three existing entry points are preserved: * - the floating launcher (#cg-chat-launcher, see 2- and 3- in this folder) * - the #talktoagent button * - empty buttons and placeholder links, which send the page title */ (function () { var VF_PROJECT = '69cabed422b2cc69776855ae'; var loading = null; // Fetches and initialises the widget once. Returns a promise that settles // when chat.open() is actually callable. function loadVoiceflow() { if (loading) return loading; loading = new Promise(function (resolve, reject) { var v = document.createElement('script'); v.type = 'text/javascript'; v.async = true; v.onload = function () { window.voiceflow.chat.load({ verify: { projectID: VF_PROJECT }, url: 'https://general-runtime.voiceflow.com', voice: { url: 'https://runtime-api.voiceflow.com' }, launch: { event: { type: 'launch', payload: { user_name: (window.currentUser && window.currentUser.name) ? window.currentUser.name : '', user_email: (window.currentUser && window.currentUser.email) ? window.currentUser.email : '' } } } }); // chat.load() settles asynchronously, so poll until open() exists // rather than assuming it is ready the instant the script runs. var tries = 0; (function ready() { if (window.voiceflow && window.voiceflow.chat && typeof window.voiceflow.chat.open === 'function') { return resolve(); } if (++tries > 100) { return reject(new Error('Voiceflow did not initialise')); } setTimeout(ready, 100); })(); }; v.onerror = function () { loading = null; // allow a retry on the next click reject(new Error('Voiceflow bundle failed to load')); }; v.src = 'https://cdn.voiceflow.com/widget-next/bundle.mjs'; document.head.appendChild(v); }); return loading; } // Opens the chat, loading the bundle first if this is the first click. // `message` is sent into the conversation once it is open. function openChat(message) { var launcher = document.getElementById('cg-chat-launcher'); if (launcher) launcher.setAttribute('data-loading', 'true'); loadVoiceflow().then(function () { if (launcher) launcher.remove(); window.voiceflow.chat.open(); if (message) { setTimeout(function () { window.voiceflow.chat.interact({ type: 'text', payload: message }); }, 1500); } }).catch(function () { // Leave the launcher in place so the visitor can try again. if (launcher) launcher.removeAttribute('data-loading'); }); } window.cgOpenChat = openChat; document.addEventListener('click', function (e) { if (e.target.closest('#cg-chat-launcher') || e.target.closest('#talktoagent')) { e.preventDefault(); e.stopPropagation(); return openChat(); } // Same selector as the old third snippet: empty buttons and placeholder // links open the chat and seed it with the page title. var el = e.target.closest( 'button:not([type="submit"]):not([id]):not([class*="cky"]), ' + 'a[href="#"], a:not([href]), a[href=""]' ); if (el && !el.closest('form')) { e.preventDefault(); openChat(document.title); } }, true); })();