{"id":3,"date":"2022-10-15T06:48:29","date_gmt":"2022-10-15T06:48:29","guid":{"rendered":"http:\/\/box2217\/cgi\/addon_GT.cgi?s=GT::WP::Install::EIG+%28idelivec%29+-+10.0.87.10+%5BWordpress%3b+\/var\/hp\/common\/lib\/Wordpress.pm%3b+588%3b+Hosting::gap_call%5D\/?page_id=3"},"modified":"2026-03-31T12:50:14","modified_gmt":"2026-03-31T10:50:14","slug":"privacy-policy","status":"publish","type":"page","link":"https:\/\/idelive.com\/de\/privacy-policy\/","title":{"rendered":"Datenschutz-Bestimmungen"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"3\" class=\"elementor elementor-3\" data-elementor-post-type=\"page\">\n\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-6bfb13d7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6bfb13d7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7302d959\" data-id=\"7302d959\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-723fabf elementor-widget elementor-widget-heading\" data-id=\"723fabf\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Datenschutz-Bestimmungen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c47bd05 elementor-widget elementor-widget-text-editor\" data-id=\"1c47bd05\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\"><h2 class=\"wp-block-heading\">Wer wir sind<\/h2><p>Unsere Website-Adresse lautet: https:\/\/idelive.com\/.<\/p><h2 class=\"wp-block-heading\">Kommentare<\/h2><p>Wenn Besucher Kommentare auf der Website hinterlassen, erfassen wir die im Kommentarformular angezeigten Daten sowie die IP-Adresse des Besuchers und die Zeichenfolge des Browser-Benutzeragenten, um die Spam-Erkennung zu unterst\u00fctzen.<\/p><p>Eine aus Ihrer E-Mail-Adresse erstellte anonymisierte Zeichenfolge (auch als Hash bezeichnet) kann dem Gravatar-Dienst zur Verf\u00fcgung gestellt werden, um festzustellen, ob Sie sie verwenden. Die Datenschutzerkl\u00e4rung des Gravatar-Dienstes finden Sie hier: https:\/\/automattic.com\/privacy\/. Nach Freigabe Ihres Kommentars ist Ihr Profilbild im Kontext Ihres Kommentars \u00f6ffentlich sichtbar.<\/p><h2 class=\"wp-block-heading\">Medien<\/h2><p>Wenn Sie Bilder auf die Website hochladen, sollten Sie vermeiden, Bilder mit eingebetteten Standortdaten (EXIF GPS) hochzuladen. Besucher der Website k\u00f6nnen beliebige Standortdaten aus Bildern auf der Website herunterladen und extrahieren.<\/p><h2 class=\"wp-block-heading\">Kekse<\/h2><p>Wenn Sie einen Kommentar auf unserer Website hinterlassen, k\u00f6nnen Sie sich daf\u00fcr entscheiden, Ihren Namen, Ihre E-Mail-Adresse und Ihre Website in Cookies zu speichern. Diese dienen Ihrer Bequemlichkeit, damit Sie Ihre Daten nicht erneut eingeben m\u00fcssen, wenn Sie einen weiteren Kommentar hinterlassen. Diese Cookies halten ein Jahr lang.<\/p><p>Wenn Sie unsere Anmeldeseite besuchen, setzen wir ein tempor\u00e4res Cookie, um festzustellen, ob Ihr Browser Cookies akzeptiert. Dieses Cookie enth\u00e4lt keine personenbezogenen Daten und wird verworfen, wenn Sie Ihren Browser schlie\u00dfen.<\/p><p>Wenn Sie sich anmelden, werden wir auch mehrere Cookies einrichten, um Ihre Anmeldeinformationen und Ihre Bildschirmanzeigeoptionen zu speichern. Anmelde-Cookies dauern zwei Tage und Cookies f\u00fcr Bildschirmoptionen ein Jahr. Wenn Sie \u201eRemember Me\u201c ausw\u00e4hlen, bleibt Ihr Login zwei Wochen lang bestehen. Wenn Sie sich von Ihrem Konto abmelden, werden die Anmelde-Cookies entfernt.<\/p><p>Wenn Sie einen Artikel bearbeiten oder ver\u00f6ffentlichen, wird ein zus\u00e4tzlicher Cookie in Ihrem Browser gespeichert. Dieses Cookie enth\u00e4lt keine personenbezogenen Daten und zeigt lediglich die Beitrags-ID des Artikels an, den Sie gerade bearbeitet haben. Es verf\u00e4llt nach 1 Tag.<\/p><h2 class=\"wp-block-heading\">Eingebettete Inhalte von anderen Websites<\/h2><p>Artikel auf dieser Website k\u00f6nnen eingebettete Inhalte enthalten (z. B. Videos, Bilder, Artikel usw.). Eingebettete Inhalte von anderen Websites verhalten sich genau so, als ob der Besucher die andere Website besucht h\u00e4tte.<\/p><p>Diese Websites k\u00f6nnen Daten \u00fcber Sie sammeln, Cookies verwenden, zus\u00e4tzliches Tracking von Drittanbietern einbetten und Ihre Interaktion mit diesem eingebetteten Inhalt \u00fcberwachen, einschlie\u00dflich der Verfolgung Ihrer Interaktion mit dem eingebetteten Inhalt, wenn Sie ein Konto haben und auf dieser Website angemeldet sind.<\/p><h2 class=\"wp-block-heading\">Mit wem wir Ihre Daten teilen<\/h2><p>Wenn Sie ein Zur\u00fccksetzen des Passworts anfordern, wird Ihre IP-Adresse in der E-Mail zum Zur\u00fccksetzen enthalten sein.<\/p><h2 class=\"wp-block-heading\">Wie lange wir Ihre Daten aufbewahren<\/h2><p>Wenn Sie einen Kommentar hinterlassen, werden der Kommentar und seine Metadaten auf unbestimmte Zeit gespeichert. Auf diese Weise k\u00f6nnen wir Folgekommentare automatisch erkennen und genehmigen, anstatt sie in einer Moderationswarteschlange festzuhalten.<\/p><p>F\u00fcr Benutzer, die sich auf unserer Website registrieren (falls vorhanden), speichern wir auch die pers\u00f6nlichen Informationen, die sie in ihrem Benutzerprofil angeben. Alle Benutzer k\u00f6nnen ihre pers\u00f6nlichen Daten jederzeit einsehen, bearbeiten oder l\u00f6schen (au\u00dfer sie k\u00f6nnen ihren Benutzernamen nicht \u00e4ndern). Website-Administratoren k\u00f6nnen diese Informationen auch anzeigen und bearbeiten.<\/p><h2 class=\"wp-block-heading\">Welche Rechte Sie an Ihren Daten haben<\/h2><p>Wenn Sie ein Konto auf dieser Website haben oder Kommentare hinterlassen haben, k\u00f6nnen Sie anfordern, eine exportierte Datei der personenbezogenen Daten zu erhalten, die wir \u00fcber Sie gespeichert haben, einschlie\u00dflich aller Daten, die Sie uns zur Verf\u00fcgung gestellt haben. Sie k\u00f6nnen auch verlangen, dass wir alle personenbezogenen Daten l\u00f6schen, die wir \u00fcber Sie gespeichert haben. Dies umfasst keine Daten, zu deren Aufbewahrung wir aus administrativen, rechtlichen oder Sicherheitsgr\u00fcnden verpflichtet sind.<\/p><h2 class=\"wp-block-heading\">Wohin Ihre Daten gesendet werden<\/h2><p>Besucher-Kommentare k\u00f6nnten von einem automatisierten Dienst zur Spam-Erkennung untersucht werden.<\/p>\n<h2>Steueradresse<\/h2>\n<p>Romestone SL<br \/>B05443155<br \/>Carrer Mallorca 221 3\u00ba 1\u00aa. Barcelona<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f76ebfe elementor-widget elementor-widget-html\" data-id=\"f76ebfe\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <title>IDELIVE Chat<\/title>\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\r\n\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n  <style>\r\n    * {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    :root {\r\n  --accent: #7D7D7D; \/* Gris para acento *\/\r\n  --bg1: #B0B0B0; \/* Gris para fondo del t\u00edtulo *\/\r\n  --bg2: #D3D3D3; \/* Gris m\u00e1s claro *\/\r\n  --panel: rgba(189, 189, 189, 0.18); \/* Gris suave para panel *\/\r\n  --stroke: rgba(189, 189, 189, 0.28); \/* Gris para borde *\/\r\n  --shadow: 0 20px 60px rgba(0, 0, 0, 0.18);\r\n  --text: #333333; \/* Gris oscuro para el texto *\/\r\n  --bubble: rgba(200, 200, 200, 0.72); \/* Gris claro para los mensajes del bot *\/\r\n  --bubbleStroke: rgba(200, 200, 200, 0.55); \/* Gris m\u00e1s tenue para borde de burbuja *\/\r\n}\r\n\r\n    body {\r\n      margin: 0;\r\n      padding: 0;\r\n      font-family: \"Montserrat\", sans-serif;\r\n    }\r\n\r\n    \/* ===== Bot\u00f3n Flotante ===== *\/\r\n    .chat-button {\r\n      position: fixed;\r\n      bottom: 80px;\r\n      right: 25px;\r\n      background: transparent;\r\n      border-radius: 50%;\r\n      width: 60px;\r\n      height: 60px;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      cursor: pointer;\r\n      z-index: 10000;\r\n      transition: opacity 0.3s ease, transform 0.2s ease;\r\n      filter: drop-shadow(0 10px 10px rgba(0.80, 0.80, 0.80, 0.60));\r\n    }\r\n    \r\n    .message a {\r\n  display: inline-block;\r\n  margin-top: 4px;\r\n  padding: 6px 10px;\r\n  border-radius: 8px;\r\n  background: rgba(0, 0, 0, 0.08);\r\n  color: #2f5cff;\r\n  text-decoration: none;\r\n  font-size: 11px;\r\n  line-height: 1.2;\r\n  max-width: 100%;\r\n}\r\n.link-center {\r\n  display: flex;\r\n  justify-content: center;\r\n  margin: 10px 0 6px;\r\n}\r\n\r\n.message a.chat-link-btn {\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  min-width: 110px;\r\n  padding: 7px 14px;\r\n  border-radius: 10px;\r\n  background: rgba(255, 255, 255, 0.45);\r\n  color: #4a4a4a;\r\n  text-decoration: none;\r\n  font-size: 11px;\r\n  font-weight: 600;\r\n  line-height: 1.2;\r\n  text-align: center;\r\n  border: 1px solid rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n.message a.chat-link-btn:hover {\r\n  background: rgba(255, 255, 255, 0.62);\r\n}\r\n\r\n.chat-separator {\r\n  border: 0;\r\n  height: 1px;\r\n  margin: 12px 0;\r\n  background: linear-gradient(\r\n    to right,\r\n    rgba(0,0,0,0),\r\n    rgba(0,0,0,0.18),\r\n    rgba(0,0,0,0)\r\n  );\r\n}\r\n.message a:hover {\r\n  background: rgba(0, 0, 0, 0.12);\r\n}\r\n\r\n.bot-message a {\r\n  background: rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n    .chat-button:active { transform: scale(0.9); }\r\n\r\n   .chat-button {\r\n  overflow: hidden; \/* Recorta lo que se salga *\/\r\n}\r\n\r\n.chat-button img {\r\n  width: 100%;\r\n  height: 100%;\r\n  object-fit: cover; \/* Ajusta la imagen al c\u00edrculo *\/\r\n  border-radius: 50%;\r\n}\r\n\r\n    \/* ===== Chat App Container ===== *\/\r\n    .chat-app {\r\n      position: fixed;\r\n      bottom: 80px;\r\n      right: 16px;\r\n      width: 280px;\r\n      height: 400px;\r\n      border-radius: 16px;\r\n      overflow: hidden;\r\n      background: var(--panel);\r\n      border: 1px solid var(--stroke);\r\n      box-shadow: var(--shadow);\r\n      backdrop-filter: blur(18px) saturate(160%);\r\n      -webkit-backdrop-filter: blur(18px) saturate(160%);\r\n      display: flex;\r\n      flex-direction: column;\r\n      \r\n      \/* Estado Inicial (Oculto abajo) *\/\r\n      transform: translateY(120%);\r\n      opacity: 0;\r\n      pointer-events: none;\r\n      transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1), opacity 0.3s ease;\r\n      z-index: 9999;\r\n    }\r\n\r\n    .chat-app.open {\r\n      transform: translateY(0);\r\n      opacity: 1;\r\n      pointer-events: auto;\r\n    }\r\n\r\n    \/* ===== Header ===== *\/\r\n    .chat-header {\r\n  padding: 10px 14px;\r\n  background: linear-gradient(135deg, rgba(189, 189, 189, 0.85), rgba(169, 169, 169, 0.78)); \/* Fondo gris *\/\r\n  color: #fff;\r\n  border-bottom: 1px solid rgba(200, 200, 200, 0.25); \/* Gris m\u00e1s suave *\/\r\n}\r\n\r\n    .chat-header .title {\r\n      font-size: 14px;\r\n      font-weight: 700;\r\n      text-align: center;\r\n      margin: 0;\r\n    }\r\n\r\n    .chat-header .session { display: none; }\r\n\r\n    \/* ===== Body ===== *\/\r\n    .chat-body {\r\n      flex: 1;\r\n      padding: 10px;\r\n      overflow-y: auto;\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 8px;\r\n      background: linear-gradient(180deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .06));\r\n    }\r\n    .chat-body {\r\n  overflow-y: auto;\r\n\r\n  \/* Firefox *\/\r\n  scrollbar-width: none;\r\n\r\n  \/* IE y Edge antiguos *\/\r\n  -ms-overflow-style: none;\r\n}\r\n\r\n.chat-body::-webkit-scrollbar {\r\n  display: none; \/* Chrome, Safari *\/\r\n}\r\n\r\n    \/* ===== Messages ===== *\/\r\n    .message {\r\n      max-width: 88%;\r\n      padding: 8px 12px;\r\n      border-radius: 15px;\r\n      font-size: 12px;\r\n      line-height: 1.3;\r\n      word-wrap: break-word;\r\n      animation: fadeIn .22s ease;\r\n      \r\n    }\r\n    .bot-row {\r\n  display: flex;\r\n  align-items: flex-start;\r\n  gap: 8px;\r\n}\r\n\r\n.bot-avatar {\r\n  width: 28px;\r\n  height: 28px;\r\n  border-radius: 50%;\r\n  object-fit: cover;\r\n  flex-shrink: 0;\r\n  margin-top: 2px;\r\n}\r\n\r\n.bot-row .bot-message {\r\n  align-self: unset;\r\n  max-width: calc(100% - 40px);\r\n}\r\n\r\n    .message img {\r\n      max-width: 100%;\r\n      border-radius: 8px;\r\n      margin-bottom: 4px;\r\n      display: block;\r\n    }\r\n    .message {\r\n  white-space: normal;\r\n  overflow-wrap: anywhere;\r\n  word-break: break-word;\r\n}\r\n\r\n.message a {\r\n  color: #2f5cff;\r\n  text-decoration: underline;\r\n  word-break: break-word;\r\n}\r\n\r\n.message strong {\r\n  font-weight: 700;\r\n}\r\n\r\n.message ul {\r\n  margin: 6px 0 0 16px;\r\n  padding: 0;\r\n}\r\n\r\n.message li {\r\n  margin: 4px 0;\r\n}\r\n\r\n.message img {\r\n  max-width: 100%;\r\n  border-radius: 8px;\r\n  margin-bottom: 6px;\r\n  display: block;\r\n}\r\n\r\n.bot-message,\r\n.user-message {\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n.user-message {\r\n  align-self: flex-end;\r\n  color: #fff;\r\n  background: linear-gradient(135deg, #6b6b6b, #8a8a8a);\r\n  border: 1px solid rgba(255, 255, 255, 0.12);\r\n  border-bottom-right-radius: 4px;\r\n}\r\n\r\n    .bot-message {\r\n  align-self: flex-start;\r\n  color: var(--text);\r\n  background: var(--bubble); \/* Fondo gris claro para los mensajes del bot *\/\r\n  border: 1px solid var(--bubbleStroke); \/* Borde gris m\u00e1s tenue *\/\r\n  border-bottom-left-radius: 4px;\r\n}\r\n    \r\n\r\n    \/* ===== Typing indicator ===== *\/\r\n    .typing {\r\n      align-self: flex-start;\r\n      display: flex;\r\n      gap: 4px;\r\n      padding: 10px 14px;\r\n      background: var(--bubble);\r\n      border-radius: 15px;\r\n      border-bottom-left-radius: 4px;\r\n    }\r\n    .typing span {\r\n      width: 6px; height: 6px;\r\n      background: rgba(0, 0, 0, .4);\r\n      border-radius: 50%;\r\n      animation: blink 1.4s infinite both;\r\n    }\r\n    .typing span:nth-child(2) { animation-delay: .2s; }\r\n    .typing span:nth-child(3) { animation-delay: .4s; }\r\n\r\n    @keyframes blink { 0%, 100% { opacity: .2; } 20% { opacity: 1; } }\r\n\r\n    \/* ===== Input Bar ===== *\/\r\n    .chat-input {\r\n  padding: 10px;\r\n   background: rgba(169, 169, 169, 1); \/* Fondo opaco *\/\r\n  background: rgba(169, 169, 169, 1); \/* Fondo opaco *\/\r\n}\r\n\r\n    .input-shell {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      padding: 6px 10px;\r\n      border-radius: 20px;\r\n      background: rgba(255, 255, 255, 10.7);\r\n      border: 1px solid rgba(255, 255, 255, .5);\r\n    }\r\n\r\n    .chat-input input {\r\n      flex: 1;\r\n      border: none;\r\n      outline: none;\r\n      background: rgba(169, 169, 169, 0.05); \/* Fondo m\u00e1s tenue y gris oscuro *\/\r\n      font-size: 12px;\r\n      color: var(--text);\r\n    }\r\n    \r\n    \r\n    \/* Desplazar el bot\u00f3n solo en m\u00f3viles *\/\r\n@media (max-width: 767px) {\r\n  .chat-button {\r\n    right: 4px;  \/* Desplaza el bot\u00f3n un poco m\u00e1s a la derecha *\/\r\n  }\r\n}\r\n\/* Asegurarse de que el bot\u00f3n flotante est\u00e9 encima del chat *\/\r\n.chat-button {\r\n  z-index: 10001;  \/* Asegura que est\u00e9 sobre el chat *\/\r\n}\r\n\r\n    .send-btn {\r\n      width: 30px; height: 30px;\r\n      border: none; border-radius: 50%;\r\n       background: #7D7D7D; \/* Gris para el bot\u00f3n de enviar *\/\r\n      cursor: pointer;\r\n      display: flex; justify-content: center; align-items: center;\r\n    }\r\n\r\n    .send-btn svg {\r\n  width: 16px;\r\n  height: 16px;\r\n  fill: #fff;\r\n}\r\n\r\n    @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\r\n  <\/style>\r\n<\/head>\r\n\r\n<body data-rsssl=1 data-rsssl=\"1\">\r\n\r\n  <div class=\"chat-button\" id=\"chat-toggle\">\r\n  <img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\" alt=\"chat\" \/>\r\n<\/div>\r\n\r\n  <div class=\"chat-app\" id=\"chat-app\">\r\n    <div class=\"chat-header\">\r\n      <div class=\"title\"><\/div>\r\n      <div id=\"session-id\" class=\"session\"><\/div>\r\n    <\/div>\r\n\r\n    <div id=\"chat-container\" class=\"chat-body\"><\/div>\r\n\r\n    <div class=\"chat-input\">\r\n      <div class=\"input-shell\">\r\n        <input type=\"text\" id=\"message-box\" placeholder=\"Escribe tu mensaje\u2026\" autocomplete=\"off\">\r\n        <button class=\"send-btn\" id=\"send-btn\" aria-label=\"Enviar\">\r\n          <svg viewbox=\"0 0 24 24\"><path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\/><\/svg>\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    const chatToggleBtn = document.getElementById(\"chat-toggle\");\r\n    const chatApp = document.getElementById(\"chat-app\");\r\n    const chat = document.getElementById(\"chat-container\");\r\n    const input = document.getElementById(\"message-box\");\r\n    const sendBtn = document.getElementById(\"send-btn\");\r\n    const sessionId = \"session-\" + Date.now();\r\n    let typingBubble = null;\r\n\r\n    \/* --- L\u00d3GICA DE APERTURA Y CIERRE (Clic fuera) --- *\/\r\n\r\n    chatToggleBtn.addEventListener(\"click\", (e) => {\r\n      e.stopPropagation();\r\n      chatApp.classList.add(\"open\");\r\n      chatToggleBtn.style.opacity = \"0\";\r\n      \/\/ Esperamos el fade out para quitar el bot\u00f3n del flujo\r\n      setTimeout(() => { chatToggleBtn.style.display = \"none\"; }, 300);\r\n    });\r\n\r\n    document.addEventListener(\"click\", (e) => {\r\n      if (chatApp.classList.contains(\"open\") && !chatApp.contains(e.target)) {\r\n        chatApp.classList.remove(\"open\");\r\n        \/\/ Restaurar bot\u00f3n despu\u00e9s de que el chat baje\r\n        setTimeout(() => {\r\n          chatToggleBtn.style.display = \"flex\";\r\n          setTimeout(() => { chatToggleBtn.style.opacity = \"1\"; }, 10);\r\n        }, 400);\r\n      }\r\n    });\r\n\r\n    \/* --- FUNCIONES DE LIMPIEZA Y RENDERIZADO (Originales) --- *\/\r\n\r\n    function sanitizeText(str){\r\n      str = String(str ?? \"\").replace(\/<br\\s*\\\/?>\/gi, \"\\n\");\r\n      str = str.replace(\/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u009F]\/g, \"\");\r\n      str = str.replace(\/[\\uE000-\\uF8FF]\/g, \"\");\r\n      return str.replace(\/\\uFFFD\/g, \"\");\r\n    }\r\n\r\n    function escapeHtml(str){\r\n      return str.replace(\/&\/g,\"&amp;\").replace(\/<\/g,\"&lt;\").replace(\/>\/g,\"&gt;\").replace(\/\"\/g,\"&quot;\").replace(\/'\/g,\"&#039;\");\r\n    }\r\n\r\n    function renderMarkdown(text){\r\n  let safe = sanitizeText(text);\r\n\r\n  \/\/ Normaliza saltos\r\n  safe = safe\r\n    .replace(\/\\\\n\/g, \"\\n\")\r\n    .replace(\/\\\\t\/g, \"\\t\")\r\n    .replace(\/\\r\\n\/g, \"\\n\")\r\n    .replace(\/\\r\/g, \"\\n\");\r\n\r\n  \/\/ Escapa HTML\r\n  safe = escapeHtml(safe);\r\n\r\n  const linkPlaceholders = [];\r\n  const saveLink = (url, label = \"Abrir enlace\") => {\r\n    const cleanUrl = url.replace(\/&amp;\/g, \"&\");\r\n    const html = `<div class=\"link-center\"><a href=\"${cleanUrl}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"chat-link-btn\">${label}<\/a><\/div>`;\r\n    const token = `%%LINK_${linkPlaceholders.length}%%`;\r\n    linkPlaceholders.push({ token, html });\r\n    return token;\r\n  };\r\n\r\n  \/\/ Negritas\r\n  safe = safe.replace(\/\\*\\*(.*?)\\*\\*\/g, \"<strong>$1<\/strong>\");\r\n\r\n  \/\/ Convierte l\u00edneas separadoras tipo ---\r\n  safe = safe.replace(\/^\\s*---\\s*$\/gm, \"%%HR%%\");\r\n\r\n  \/\/ Elimina textos redundantes antes de enlaces de reserva\r\n  safe = safe.replace(\/Reserva aqui:\\s*\/gi, \"\");\r\n  safe = safe.replace(\/Reserva aqu\u00ed:\\s*\/gi, \"\");\r\n  safe = safe.replace(\/Enlace de reserva:\\s*\/gi, \"\");\r\n  safe = safe.replace(\/\ud83d\udd17\\s*Enlace de reserva:\\s*\/gi, \"\");\r\n\r\n  \/\/ Links markdown [texto](url)\r\n  safe = safe.replace(\r\n    \/\\[([^\\]]+)\\]\\((https?:\\\/\\\/[^\\s)]+)\\)\/g,\r\n    (match, textLabel, url) => {\r\n      let label = textLabel.trim();\r\n\r\n      if (url.includes(\"typeform\")) label = \"Reserva\";\r\n      else if (url.includes(\"youtube\")) label = \"Ver video\";\r\n      else if (url.includes(\"details-stay\")) label = \"Ver detalles\";\r\n         else if (url.includes(\"available\")) label = \"Ver disponibilidad\";\r\n else if (url.includes(\"checkout\")) label = \"Checkout\";\r\n  else if (url.includes(\"waiting\")) label = \"Lista de espera\";\r\n  else if (url.includes(\"https:\/\/idelive.com\/\")) label = \"Idelive\";\r\n    else if (url.includes(\"switch\")) label = \"Switch\";\r\n  else if (url.includes(\"switch\")) label = \"Switch\";\r\n  else if (url.includes(\"guests\")) label = \"Cita en oficina\";\r\n      return saveLink(url, label);\r\n    }\r\n  );\r\n\r\n  \/\/ Links entre <https:\/\/...>\r\n  safe = safe.replace(\r\n    \/&lt;(https?:\\\/\\\/.*?)&gt;\/g,\r\n    (match, url) => {\r\n      let label = \"Abrir enlace\";\r\n\r\n      if (url.includes(\"typeform\")) label = \"Reservar\";\r\n      else if (url.includes(\"youtube\")) label = \"Ver video\";\r\n      else if (url.includes(\"idealive\")) label = \"Ver detalles\";\r\n\r\n      return saveLink(url, label);\r\n    }\r\n  );\r\n\r\n  \/\/ URLs planas en una l\u00ednea sola\r\n  safe = safe.replace(\r\n    \/(^|[\\n\\s])((https?:\\\/\\\/[^\\s<]+))\/g,\r\n    (match, prefix, fullUrl) => {\r\n      let label = \"Abrir enlace\";\r\n\r\n      if (fullUrl.includes(\"typeform\")) label = \"Reservar\";\r\n      else if (fullUrl.includes(\"youtube\")) label = \"Ver video\";\r\n      else if (fullUrl.includes(\"idealive\")) label = \"Ver detalles\";\r\n\r\n      return `${prefix}${saveLink(fullUrl, label)}`;\r\n    }\r\n  );\r\n\r\n  \/\/ Listas con \"- \"\r\n  safe = safe.replace(\/(?:^|\\n)- (.*?)(?=\\n|$)\/g, \"<li>$1<\/li>\");\r\n  safe = safe.replace(\/(<li>.*?<\\\/li>)\/gs, \"<ul>$1<\/ul>\");\r\n  safe = safe.replace(\/<\\\/ul>\\s*<ul>\/g, \"\");\r\nsafe = safe.replace(\/\ud83d\udc49\\s*\/g, \"\");\r\n\/\/ Limpieza de placeholders y l\u00edneas no deseadas\r\nsafe = safe\r\n  .replace(\/^.*\ud83d\udcce.*$\/gim, \"\")\r\n  .replace(\/^.*\ud83d\udcf8\\s*Fotos.*$\/gim, \"\")\r\n  .replace(\/^\\s*[-\u2022]\\s*\\[[^\\]]+\\]\\(\\)\\s*$\/gim, \"\")\r\n  .replace(\/^\\s*\\[[^\\]]+\\]\\(\\)\\s*$\/gim, \"\")\r\n  .replace(\/^\\s*[\ud83d\udcce\ud83d\udcf8]\\s*$\/gim, \"\")\r\n  .replace(\/\\n{3,}\/g, \"\\n\\n\");\r\n  \/\/ Saltos de l\u00ednea\r\n  safe = safe.replace(\/\\n\/g, \"<br>\");\r\n\r\n  \/\/ Restaurar separadores\r\n  safe = safe.replace(\/%%HR%%\/g, '<hr class=\"chat-separator\">');\r\n\r\n  \/\/ Restaurar enlaces al final para que no se vuelvan a procesar\r\n  linkPlaceholders.forEach(item => {\r\n    safe = safe.replace(item.token, item.html);\r\n  });\r\n\r\n  \/\/ Limpieza opcional de <br> sobrantes alrededor de botones y hr\r\n  safe = safe\r\n    .replace(\/(<br>\\s*)+(<div class=\"link-center\">)\/g, \"$2\")\r\n    .replace(\/(<\\\/div>)(\\s*<br>)+\/g, \"$1\")\r\n    .replace(\/(<br>\\s*)+(<hr class=\"chat-separator\">)\/g, \"$2\")\r\n    .replace(\/(<hr class=\"chat-separator\">)(\\s*<br>)+\/g, \"$1\");\r\n\r\n  return safe;\r\n}\r\n\r\n    \/* --- INTERFAZ --- *\/\r\n\r\n    function showTyping(){\r\n      if(typingBubble) return;\r\n      typingBubble = document.createElement(\"div\");\r\n      typingBubble.className = \"typing\";\r\n      typingBubble.innerHTML = \"<span><\/span><span><\/span><span><\/span>\";\r\n      chat.appendChild(typingBubble);\r\n      chat.scrollTop = chat.scrollHeight;\r\n    }\r\n\r\n    function hideTyping(){\r\n      if(typingBubble){ typingBubble.remove(); typingBubble = null; }\r\n    }\r\n\r\n   function addMessage(text, type){\r\n  const rawText = String(text ?? \"\");\r\n\r\n  const imageRegex = \/(https?:\\\/\\\/(?:lh3\\.googleusercontent\\.com\\\/d\\\/[A-Za-z0-9_-]+|[^\\s]+?\\.(?:jpg|jpeg|png|gif|webp)(?:\\?[^\\s]+)?))\/gi;\r\n  const images = rawText.match(imageRegex) || [];\r\n\r\n  let cleanText = rawText.replace(imageRegex, \"\").trim();\r\n\r\n  const div = document.createElement(\"div\");\r\n  div.className = \"message \" + (type === \"user\" ? \"user-message\" : \"bot-message\");\r\n\r\n  images.forEach(url => {\r\n    const img = document.createElement(\"img\");\r\n    img.src = url;\r\n    img.alt = \"Imagen\";\r\n    img.loading = \"lazy\";\r\n    div.appendChild(img);\r\n  });\r\n\r\n  if (cleanText || (!images.length && !cleanText)) {\r\n    const textDiv = document.createElement(\"div\");\r\n    textDiv.innerHTML = renderMarkdown(cleanText || rawText);\r\n    div.appendChild(textDiv);\r\n  }\r\n\r\n  if(type === \"bot\"){\r\n    const row = document.createElement(\"div\");\r\n    row.className = \"bot-row\";\r\n\r\n    const avatar = document.createElement(\"img\");\r\n    avatar.className = \"bot-avatar\";\r\n    avatar.src = \"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\";\r\n    avatar.alt = \"Avatar bot\";\r\n\r\n    row.appendChild(avatar);\r\n    row.appendChild(div);\r\n    chat.appendChild(row);\r\n  } else {\r\n    chat.appendChild(div);\r\n  }\r\n\r\n  chat.scrollTop = chat.scrollHeight;\r\n}\r\n\r\n    \/* --- ENV\u00cdO DE MENSAJES --- *\/\r\n\r\nasync function sendMessage(){\r\n  const msg = input.value.trim();\r\n  if(!msg) return;\r\n\r\n  input.value = \"\";\r\n  addMessage(msg, \"user\");\r\n  showTyping();\r\n\r\n  try {\r\n    const response = await fetch(\"https:\/\/n8n.srv965472.hstgr.cloud\/webhook\/87cc5e12-4f11-4f4c-82d6-a80f3f9323c8\", {\r\n      method: \"POST\",\r\n      headers: { \"Content-Type\": \"application\/json\" },\r\n      body: JSON.stringify({ sessionId, message: msg })\r\n    });\r\n\r\n    if (!response.ok) {\r\n      const errorText = await response.text();\r\n      throw new Error(`HTTP ${response.status}: ${errorText}`);\r\n    }\r\n\r\n    const data = await response.json();\r\n    hideTyping();\r\n\r\n    const reply =\r\n      data?.reply ??\r\n      data?.output ??\r\n      data?.data?.reply ??\r\n      (Array.isArray(data) ? data[0]?.reply || data[0]?.output : null);\r\n\r\n    if (reply) {\r\n      addMessage(reply, \"bot\");\r\n    } else {\r\n      console.log(\"Respuesta sin reply:\", data);\r\n      addMessage(\"\u26a0\ufe0f Sin respuesta del servidor\", \"bot\");\r\n    }\r\n  } catch (err) {\r\n    hideTyping();\r\n    console.error(\"Error en fetch:\", err);\r\n    addMessage(\"\u274c Error de conexi\u00f3n\", \"bot\");\r\n  }\r\n}\r\n    sendBtn.addEventListener(\"click\", sendMessage);\r\n    input.addEventListener(\"keydown\", e => { if(e.key === \"Enter\") sendMessage(); });\r\n\r\n    \/\/ Bienvenida\r\n    addMessage(\"\ud83d\udc4b **Bienvenido a IDELIVE**\\nEstoy aqu\u00ed para ayudarte a comenzar tu aventura.\", \"bot\");\r\n  <\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Privacy Policy Who we are Our website address is: https:\/\/idelive.com\/. Comments When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor\u2019s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-3","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Privacy Policy - Idelive<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/idelive.com\/de\/privacy-policy\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Privacy Policy - Idelive\" \/>\n<meta property=\"og:description\" content=\"Privacy Policy Who we are Our website address is: https:\/\/idelive.com\/. Comments When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor\u2019s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/idelive.com\/de\/privacy-policy\/\" \/>\n<meta property=\"og:site_name\" content=\"Idelive\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-31T10:50:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/idelive.com\/privacy-policy\/\",\"url\":\"https:\/\/idelive.com\/privacy-policy\/\",\"name\":\"Privacy Policy - Idelive\",\"isPartOf\":{\"@id\":\"https:\/\/idelive.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/idelive.com\/privacy-policy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/idelive.com\/privacy-policy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\",\"datePublished\":\"2022-10-15T06:48:29+00:00\",\"dateModified\":\"2026-03-31T10:50:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/idelive.com\/privacy-policy\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/idelive.com\/privacy-policy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/idelive.com\/privacy-policy\/#primaryimage\",\"url\":\"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\",\"contentUrl\":\"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/idelive.com\/privacy-policy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/idelive.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Privacy Policy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/idelive.com\/#website\",\"url\":\"https:\/\/idelive.com\/\",\"name\":\"Idelive\",\"description\":\"Private Residences\",\"publisher\":{\"@id\":\"https:\/\/idelive.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/idelive.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/idelive.com\/#organization\",\"name\":\"Idelive\",\"url\":\"https:\/\/idelive.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/idelive.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/idelive.com\/wp-content\/uploads\/2022\/10\/cropped-Only-Square.png\",\"contentUrl\":\"https:\/\/idelive.com\/wp-content\/uploads\/2022\/10\/cropped-Only-Square.png\",\"width\":512,\"height\":512,\"caption\":\"Idelive\"},\"image\":{\"@id\":\"https:\/\/idelive.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Privacy Policy - Idelive","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/idelive.com\/de\/privacy-policy\/","og_locale":"de_DE","og_type":"article","og_title":"Privacy Policy - Idelive","og_description":"Privacy Policy Who we are Our website address is: https:\/\/idelive.com\/. Comments When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor\u2019s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may [&hellip;]","og_url":"https:\/\/idelive.com\/de\/privacy-policy\/","og_site_name":"Idelive","article_modified_time":"2026-03-31T10:50:14+00:00","og_image":[{"url":"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/idelive.com\/privacy-policy\/","url":"https:\/\/idelive.com\/privacy-policy\/","name":"Privacy Policy - Idelive","isPartOf":{"@id":"https:\/\/idelive.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/idelive.com\/privacy-policy\/#primaryimage"},"image":{"@id":"https:\/\/idelive.com\/privacy-policy\/#primaryimage"},"thumbnailUrl":"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp","datePublished":"2022-10-15T06:48:29+00:00","dateModified":"2026-03-31T10:50:14+00:00","breadcrumb":{"@id":"https:\/\/idelive.com\/privacy-policy\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/idelive.com\/privacy-policy\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/idelive.com\/privacy-policy\/#primaryimage","url":"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp","contentUrl":"https:\/\/lh3.googleusercontent.com\/d\/1iiDxNA7P9_6zTChQswArq9ZSwcTGqkbp"},{"@type":"BreadcrumbList","@id":"https:\/\/idelive.com\/privacy-policy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/idelive.com\/"},{"@type":"ListItem","position":2,"name":"Privacy Policy"}]},{"@type":"WebSite","@id":"https:\/\/idelive.com\/#website","url":"https:\/\/idelive.com\/","name":"Idelive","description":"Private Residences","publisher":{"@id":"https:\/\/idelive.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/idelive.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/idelive.com\/#organization","name":"Idelive","url":"https:\/\/idelive.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/idelive.com\/#\/schema\/logo\/image\/","url":"https:\/\/idelive.com\/wp-content\/uploads\/2022\/10\/cropped-Only-Square.png","contentUrl":"https:\/\/idelive.com\/wp-content\/uploads\/2022\/10\/cropped-Only-Square.png","width":512,"height":512,"caption":"Idelive"},"image":{"@id":"https:\/\/idelive.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/pages\/3","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/comments?post=3"}],"version-history":[{"count":16,"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/pages\/3\/revisions"}],"predecessor-version":[{"id":7668,"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/pages\/3\/revisions\/7668"}],"wp:attachment":[{"href":"https:\/\/idelive.com\/de\/wp-json\/wp\/v2\/media?parent=3"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}