{"id":2174,"date":"2025-08-16T08:46:25","date_gmt":"2025-08-16T06:46:25","guid":{"rendered":"https:\/\/vlip.me\/?page_id=2174"},"modified":"2026-10-13T14:11:14","modified_gmt":"2026-10-13T12:11:14","slug":"hotel-marketing-gaestebindung-mit-vlip","status":"publish","type":"page","link":"https:\/\/vlip.me\/en\/hotel-marketing-guest-loyalty\/","title":{"rendered":"Hotel marketing &#038; guest loyalty with Vlip"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2174\" class=\"elementor elementor-2174\" data-elementor-settings=\"{&quot;scroll_snap&quot;:&quot;yes&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-08ef0ad e-con-full e-flex e-con e-parent\" data-id=\"08ef0ad\" data-element_type=\"container\" data-e-type=\"container\" id=\"background-layer\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d1dcff elementor-widget elementor-widget-html\" data-id=\"5d1dcff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"bg-image\"><\/div>\n  <div class=\"bg-color\"><\/div>\n  <div id=\"nav-dots\"><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<section class=\"elementor-element elementor-element-0ad3901 e-flex e-con-boxed e-con e-parent\" data-id=\"0ad3901\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-1\" data-rotate=\"true\" data-speed=\"3\" data-orbit=\"45deg 65deg 150%\" data-bgcolor=\"#F3E8D8\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e4c79b e-con-full e-flex e-con e-child\" data-id=\"4e4c79b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6bc06c4 elementor-widget elementor-widget-heading\" data-id=\"6bc06c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">How hotels enrich the guest experience with Vlip.<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f807604 elementor-widget elementor-widget-text-editor\" data-id=\"f807604\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Vlip helps hotels not just to inform their guests but to delight them \u2013 without any app. With a single tap, guests get access to digital services, personal recommendations or special offers.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-74df5f4 e-con-full e-flex e-con e-child\" data-id=\"74df5f4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615658e elementor-widget elementor-widget-button\" data-id=\"615658e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/vlip.me\/en\/contact\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Enquire now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-870d8d9 elementor-widget elementor-widget-button\" data-id=\"870d8d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#section-2\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Learn more<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fc3f341 e-con-full e-flex e-con e-child\" data-id=\"fc3f341\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e75e6fa elementor-widget elementor-widget-html\" data-id=\"e75e6fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script type=\"module\" src=\"https:\/\/unpkg.com\/@google\/model-viewer\/dist\/model-viewer.min.js\"><\/script>\n\n<style>\nmodel-viewer {\n  width: 300px;\n  height: 300px;\n  overflow: hidden;     \n  outline: none;\n  display: block;\n  position: fixed;\n  top:53vh;\n  transform: translateY(-50%);\n  z-index: 3;\n  pointer-events: none;\n  user-select: none;\n}\n\nmodel-viewer::part(progress-bar) {\n  display: none;\n}\nmodel-viewer::part(default-progress-bar) {\n  display: none;\n}\n\n@media (max-width: 768px) {\n  model-viewer#vlipCube {\n  width: 250px;\n  height: 250px;\n    top: 50px;\n    bottom: auto;    \/* Abstand zum unteren Rand *\/\n    left: 50%;\n    transform: translateX(-50%); \/* nur horizontal zentrieren *\/\n    margin-left:0px;\n    margin-top: 0;\n  }\n}\n\n#vlipCube {\n  transition: opacity 0.6s ease;\n}\n#vlipCube.hidden {\n  opacity: 0;\n  pointer-events: none;\n}\n\n\n#background-layer {\n  position: fixed !important;\n  top: 0; left: 0; right: 0; bottom: 0;\n  z-index: -1; \/* immer hinter Content *\/\n  overflow: hidden;\n}\n\n\/* Bild-Layer *\/\n#background-layer .bg-image {\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  opacity: 0; \/* initial unsichtbar *\/\n  transition: opacity 1s ease;\n  z-index: 2;\n}\n#background-layer .bg-image.active {\n  opacity: 1;\n  animation: kenburns 20s ease-in-out infinite alternate;\n}\n\n\/* Farb-Layer *\/\n#background-layer .bg-color {\n  position: absolute;\n  top: 0; left: 0; right: 0; bottom: 0;\n  z-index: 1;\n  transition: background-color 0.8s ease;\n}\n\n@keyframes kenburns {\n  from { transform: scale(1) translate(0,0); }\n  to   { transform: scale(1.15) translate(-20px,-20px); }\n}\n#nav-dots {\n  position: fixed;\n  right: 10px;\n  top: 50%;\n  transform: translateY(-50%);\n  display: flex;\n  flex-direction: column;\n  align-items: center; \/* zentriert Punkte *\/\n  gap: 10px;\n  z-index: 10;\n  transition: transform 0.3s ease; \/* f\u00fcr Shift-Animation *\/\n}\n#nav-dots .dot {\n  border-radius: 50%;\n  background: #888;\n  transition: all 0.3s ease;\n}\n#nav-dots .dot.active {\n  background: #fff;\n}\n\/* Scroll-In Effekt *\/\n\/*\nbody:not(.elementor-editor-active) .scroll-in {\n  opacity: 0;\n  transition: all 0.6s ease;\n  transition-delay: 0.3s;\n}\n\n.scroll-in.from-bottom {\n  transform: translateY(40px);\n}\n.scroll-in.from-bottom.active {\n  opacity: 1;\n  transform: translateY(0);\n}\n\n.scroll-in.from-top {\n  transform: translateY(-40px);\n}\n.scroll-in.from-top.active {\n  opacity: 1;\n  transform: translateY(0);\n}\n*\/\n<\/style>\n\n<model-viewer id=\"vlipCube\"\n  src=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-cube.glb\"\n  disable-zoom\n  disable-pan\n  interaction-policy=\"none\"\n  environment-image=\"neutral\"\n  shadow-intensity=\"1\">\n<\/model-viewer>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da73688 elementor-widget elementor-widget-html\" data-id=\"da73688\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const cube = document.getElementById(\"vlipCube\");\n\n  \/\/ Background-Layer\n  const bgLayer = document.getElementById(\"background-layer\");\n  const bgImage = bgLayer.querySelector(\".bg-image\"); \/\/ liegt \u00dcBER der Farbe\n  const bgColor = bgLayer.querySelector(\".bg-color\"); \/\/ liegt UNTER dem Bild\n\n  \/\/ Sections\n  const sections = Array.from(document.querySelectorAll(\"[id^='section-']\"));\n  let activeSectionId = null;\n\n  \/\/ Rotation\n  let rotationTimer = null;\n  let angle = 0;\n\n  \/\/ Model Swap\n  let modelSwapTimer = null;\n  let modelSwapIndex = 0;\n\n  \/\/ Nav Dots\n  const navDots = document.createElement(\"div\");\n  navDots.id = \"nav-dots\";\n  document.body.appendChild(navDots);\n\n  \/\/ ---------- Utils ----------\n  function getSectionNumber(id) {\n    const m = id ? id.match(\/section-(\\d+)\/) : null;\n    return m ? parseInt(m[1], 10) : 0;\n  }\n\n  function measureVisibleRatio(el) {\n    const vh = window.innerHeight || document.documentElement.clientHeight;\n    const r = el.getBoundingClientRect();\n    const visible = Math.max(0, Math.min(vh, r.bottom) - Math.max(0, r.top));\n    return visible \/ vh;\n  }\n\n  \/\/ ---------- Cube Rotation ----------\n  function startRotation(startOrbit, speed = 3) {\n    stopRotation();\n    angle = 0;\n    if (startOrbit) cube.cameraOrbit = startOrbit;\n    rotationTimer = setInterval(() => {\n      angle += speed;\n      const orbit = cube.cameraOrbit.split(\" \");\n      cube.cameraOrbit = `${angle}deg ${orbit[1]} ${orbit[2]}`;\n    }, 50);\n  }\n\n  function stopRotation() {\n    if (rotationTimer) {\n      clearInterval(rotationTimer);\n      rotationTimer = null;\n    }\n  }\n\n  \/\/ ---------- Cube Visibility (data-model-visible) ----------\n  function toggleCubeVisibility(section) {\n    const visibleAttr = section.dataset.modelVisible;\n    const isVisible = visibleAttr === undefined || visibleAttr === \"\" || visibleAttr === \"true\";\n    if (isVisible) cube.classList.remove(\"hidden\");\n    else cube.classList.add(\"hidden\");\n  }\n\n  \/\/ ---------- Background ----------\n  function setBackground(section) {\n    const color = section.dataset.bgcolor || \"rgba(0,0,0,1)\";\n    const image = section.dataset.bgimage || \"\";\n    const opacity = isNaN(parseFloat(section.dataset.bgopacity)) ? 1 : parseFloat(section.dataset.bgopacity);\n\n    \/\/ Farbe immer unten setzen\n    bgColor.style.backgroundColor = color;\n\n    if (image) {\n      \/\/ Bild oben dr\u00fcber einblenden\n      bgImage.style.backgroundImage = `url(\"${image}\")`;\n      bgImage.style.opacity = opacity;\n      bgImage.classList.add(\"active\");\n    } else {\n      \/\/ Bild sauber entfernen\/ausblenden\n      bgImage.style.opacity = 0;\n      bgImage.style.backgroundImage = \"none\";\n      bgImage.classList.remove(\"active\");\n\n      \/\/ iOS Repaint-Nudge (hilft, wenn Farbe \u201eh\u00e4ngt\u201c)\n      \/\/ void bgColor.offsetHeight; \/\/ optionaler Reflow\n    }\n  }\n\n  \/\/ ---------- Scroll-In ----------\n  function setScrollIn(section, direction) {\n    section.querySelectorAll(\".scroll-in\").forEach(el => {\n      el.classList.remove(\"active\", \"from-top\", \"from-bottom\");\n      el.classList.add(direction === \"down\" ? \"from-bottom\" : \"from-top\");\n      setTimeout(() => el.classList.add(\"active\"), 300);\n    });\n  }\n\n  \/\/ ---------- Preload BG Images ----------\n  (function preloadImages() {\n    const urls = new Set();\n    sections.forEach(sec => { if (sec.dataset.bgimage) urls.add(sec.dataset.bgimage); });\n    urls.forEach(url => { const img = new Image(); img.src = url; });\n  })();\n\n  \/\/ ---------- Nav Dots ----------\n  function initDots() {\n    navDots.innerHTML = \"\";\n    sections.forEach(() => {\n      const dot = document.createElement(\"div\");\n      dot.classList.add(\"dot\");\n      navDots.appendChild(dot);\n    });\n  }\n\n  function updateDots(activeIndex, direction = \"down\") {\n    const dots = navDots.querySelectorAll(\".dot\");\n    dots.forEach((dot, i) => {\n      const dist = Math.abs(i - activeIndex);\n      let size = 0;\n      if (dist === 0) size = 14;\n      else if (dist === 1) size = 10;\n      else if (dist === 2) size = 6;\n      else size = 0;\n\n      dot.style.width = size ? size + \"px\" : \"0px\";\n      dot.style.height = size ? size + \"px\" : \"0px\";\n      dot.style.opacity = size ? 1 : 0;\n      dot.classList.toggle(\"active\", i === activeIndex);\n    });\n\n    if (direction === \"down\") navDots.style.transform = \"translateY(calc(-50% - 15px))\";\n    else navDots.style.transform = \"translateY(calc(-50% + 15px))\";\n    setTimeout(() => { navDots.style.transform = \"translateY(-50%)\"; }, 300);\n  }\n\n  \/\/ ---------- Cube & Models ----------\n  function handleCube(section, orbit, shouldRotate, speed) {\n    const modelAttr = section.dataset.model || \"\";\n    const mode = section.dataset.modelmode || \"\";\n    const duration = parseInt(section.dataset.modelduration) || 5000;\n\n    if (mode === \"swap\" && modelAttr) {\n      let models = [];\n      try { models = JSON.parse(modelAttr); } catch { models = modelAttr.split(\",\").map(s => s.trim()); }\n\n      if (models.length > 0) {\n        if (modelSwapTimer) clearInterval(modelSwapTimer);\n        modelSwapIndex = 0;\n\n        const switchModel = () => {\n          const newSrc = models[modelSwapIndex];\n          cube.src = newSrc;\n          if (!shouldRotate) {\n            cube.addEventListener(\"load\", () => { stopRotation(); cube.cameraOrbit = orbit; }, { once: true });\n          }\n          modelSwapIndex = (modelSwapIndex + 1) % models.length;\n        };\n\n        switchModel();\n        modelSwapTimer = setInterval(switchModel, duration);\n        if (shouldRotate) startRotation(orbit, speed);\n      }\n    } else {\n      \/\/ Single model \/ keep current\n      if (modelAttr) {\n        const currentSrc = cube.src.split(\"?\")[0];\n        const newSrc = modelAttr.split(\"?\")[0];\n        if (currentSrc !== newSrc) {\n          cube.src = newSrc;\n          cube.addEventListener(\"load\", () => {\n            if (shouldRotate) startRotation(orbit, speed);\n            else { stopRotation(); cube.cameraOrbit = orbit; }\n          }, { once: true });\n        } else {\n          if (shouldRotate) startRotation(orbit, speed);\n          else { stopRotation(); cube.cameraOrbit = orbit; }\n        }\n      } else {\n        if (shouldRotate) startRotation(orbit, speed);\n        else { stopRotation(); cube.cameraOrbit = orbit; }\n      }\n\n      if (modelSwapTimer) { clearInterval(modelSwapTimer); modelSwapTimer = null; }\n    }\n  }\n\n  \/\/ ---------- Aktivierung EINER Section ----------\n  function activateSection(section, direction) {\n    if (!section || section.id === activeSectionId) return;\n    activeSectionId = section.id;\n\n    \/\/ Cube visibility sofort\n    toggleCubeVisibility(section);\n\n    \/\/ Cube Attribute\n    const orbit = section.dataset.orbit || \"0deg 0deg 150%\";\n    const shouldRotate = section.dataset.rotate === \"true\";\n    const speed = parseFloat(section.dataset.speed) || 3;\n\n    \/\/ Cube + BG + ScrollIn + Dots\n    handleCube(section, orbit, shouldRotate, speed);\n    setBackground(section);\n    setScrollIn(section, direction);\n\n    const idx = getSectionNumber(section.id) - 1; \/\/ 0-basiert\n    updateDots(idx, direction);\n  }\n\n  \/\/ ---------- IntersectionObserver + Scroll-Fallback ----------\n  \/\/ Observer meldet Kandidaten; wir k\u00fcren per gr\u00f6\u00dfter Sichtbarkeit\n  const io = new IntersectionObserver((entries) => {\n    entries.forEach(() => scheduleActiveCheck());\n  }, {\n    root: null,\n    rootMargin: \"-10% 0px -10% 0px\",\n    threshold: [0.25, 0.5, 0.75]\n  });\n\n  sections.forEach(sec => io.observe(sec));\n\n  let rafId = null;\n  function scheduleActiveCheck() {\n    if (rafId) return;\n    rafId = requestAnimationFrame(() => {\n      rafId = null;\n      checkActiveByViewport();\n    });\n  }\n\n  function checkActiveByViewport() {\n    \/\/ finde Section mit gr\u00f6\u00dfter sichtbarer H\u00f6he\n    let best = null;\n    let bestRatio = 0;\n    for (const sec of sections) {\n      const ratio = measureVisibleRatio(sec);\n      if (ratio > bestRatio) { bestRatio = ratio; best = sec; }\n    }\n    if (!best) return;\n\n    \/\/ Richtung anhand der Nummer bestimmen\n    const newNum = getSectionNumber(best.id);\n    const oldNum = getSectionNumber(activeSectionId);\n    const direction = !activeSectionId ? \"down\" : (newNum > oldNum ? \"down\" : \"up\");\n\n    activateSection(best, direction);\n  }\n\n  \/\/ auch bei Scroll\/Resize\/OrientationChange pr\u00fcfen (Fallback f\u00fcr Mobile)\n  window.addEventListener(\"scroll\", scheduleActiveCheck, { passive: true });\n  window.addEventListener(\"resize\", scheduleActiveCheck);\n  window.addEventListener(\"orientationchange\", scheduleActiveCheck);\n  document.addEventListener(\"visibilitychange\", () => {\n    if (document.visibilityState === \"visible\") scheduleActiveCheck();\n  });\n\n  \/\/ ---------- Init ----------\n  function getInitialActiveSection() {\n    \/\/ nutze direkt die gr\u00f6\u00dfte Sichtbarkeit\n    let best = null, bestRatio = 0;\n    for (const sec of sections) {\n      const r = measureVisibleRatio(sec);\n      if (r > bestRatio) { bestRatio = r; best = sec; }\n    }\n    return best || sections[0];\n  }\n\n  \/\/ Dots initial\n  initDots();\n\n  const initialSection = getInitialActiveSection();\n  if (initialSection) {\n    \/\/ initial down einblenden\n    activateSection(initialSection, \"down\");\n  }\n\n  \/\/ Sicherheit: direkt nach Init nochmal checken (iOS Safari Layout pass)\n  setTimeout(scheduleActiveCheck, 0);\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-2486ae9 e-flex e-con-boxed e-con e-parent\" data-id=\"2486ae9\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-2\" data-rotate=\"true\" data-speed=\"3\" data-orbit=\"45deg 65deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-mountains-summer-sun-vlip.webp\" data-bgopacity=\"0.4\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8007fcb e-con-full scroll-in e-flex e-con e-child\" data-id=\"8007fcb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d0d836 elementor-widget elementor-widget-heading\" data-id=\"0d0d836\" data-element_type=\"widget\" data-e-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\">Taking special moments home.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f816895 elementor-widget elementor-widget-text-editor\" data-id=\"f816895\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A <strong>hotel stay is more than just a night&#8217;s sleep<\/strong> \u2013 it&#8217;s made of special moments that guests want to take home. <strong>With the Vlip cube, these memories stay alive and inseparably connected to your brand<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-16ec7b3 e-con-full c e-flex e-con e-child\" data-id=\"16ec7b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-74f120b e-flex e-con-boxed e-con e-parent\" data-id=\"74f120b\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-3\" data-rotate=\"false\" data-orbit=\"0deg 0deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-family-in-modern-hotel-lobby.webp\" data-bgopacity=\"0.4\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6d8eb4c e-con-full scroll-in e-flex e-con e-child\" data-id=\"6d8eb4c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-921bf2c elementor-widget elementor-widget-heading\" data-id=\"921bf2c\" data-element_type=\"widget\" data-e-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\">Your brand becomes part of the memories.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ca7080 elementor-widget elementor-widget-text-editor\" data-id=\"7ca7080\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>On the logo side, guests store their holiday photos \u2013 <strong>memories that come back every time they pick up the cube at home<\/strong>. Given as a gift, it even carries your brand further. Your hotel isn&#8217;t just remembered \u2013 it becomes part of the stories your guests tell.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-90ba785 e-con-full c e-flex e-con e-child\" data-id=\"90ba785\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-1d71339 e-flex e-con-boxed e-con e-parent\" data-id=\"1d71339\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-4\" data-rotate=\"false\" data-orbit=\"360deg 90deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-woman-views-hotel-website-on-smartphone-vlip.webp\" data-bgopacity=\"0.4\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-906a63f e-con-full scroll-in e-flex e-con e-child\" data-id=\"906a63f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5db029 elementor-widget elementor-widget-heading\" data-id=\"a5db029\" data-element_type=\"widget\" data-e-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\">Onto the Wi-Fi with one tap.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a0b365 elementor-widget elementor-widget-text-editor\" data-id=\"0a0b365\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>With one NFC side, guests connect <strong>directly to the hotel Wi-Fi \u2013 no password required<\/strong>. Just tap, get online and get going. Convenient, fast and a genuine service extra that guests remember.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f95be0 e-con-full c e-flex e-con e-child\" data-id=\"1f95be0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-f96374e e-flex e-con-boxed e-con e-parent\" data-id=\"f96374e\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-5\" data-rotate=\"false\" data-orbit=\"270deg 90deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-receptionist-smiling-friendly-on-phone-vlip.webp\" data-bgopacity=\"0.4\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-522a9f1 e-con-full scroll-in e-flex e-con e-child\" data-id=\"522a9f1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2daea67 elementor-widget elementor-widget-heading\" data-id=\"2daea67\" data-element_type=\"widget\" data-e-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\">One Vlip to reception.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69d3fdf elementor-widget elementor-widget-text-editor\" data-id=\"69d3fdf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Simply scan the cube and the <strong>reception&#8217;s phone number or service page<\/strong> appears \u2013 ready to dial, no searching. Guests always have a direct line to service at hand.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7c495b5 e-con-full c e-flex e-con e-child\" data-id=\"7c495b5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-b6fe193 e-flex e-con-boxed e-con e-parent\" data-id=\"b6fe193\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-6\" data-rotate=\"false\" data-orbit=\"90deg 90deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-kidsclub-nanny-kids-playing-vlip.webp\" data-bgopacity=\"0.4\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f04409f e-con-full scroll-in e-flex e-con e-child\" data-id=\"f04409f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9d37bd2 elementor-widget elementor-widget-heading\" data-id=\"9d37bd2\" data-element_type=\"widget\" data-e-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\">Service at a tap.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae10c81 elementor-widget elementor-widget-text-editor\" data-id=\"ae10c81\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Whether <strong>childcare<\/strong>, <strong>wellness<\/strong> or <strong>personal offers<\/strong> \u2013 guests book services directly on the cube. Plus all the key information such as meal times or check-out options at a glance. Service becomes simple, fast and always within reach.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9d98321 e-con-full c e-flex e-con e-child\" data-id=\"9d98321\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-2cf38a9 e-flex e-con-boxed e-con e-parent\" data-id=\"2cf38a9\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-7\" data-rotate=\"false\" data-orbit=\"180deg 90deg 150%\" data-bgcolor=\"rgba(0,0,0,1)\" data-bgimage=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/08\/summit-resort-mockup-father-and-child-in-nature-vlip.webp\" data-bgopacity=\"0.4\" data-model-visible=\"true\" data-model=\"https:\/\/vlip.me\/wp-content\/uploads\/2025\/09\/hotel-summit-resort.glb\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c561e81 e-con-full scroll-in e-flex e-con e-child\" data-id=\"c561e81\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-51983eb elementor-widget elementor-widget-heading\" data-id=\"51983eb\" data-element_type=\"widget\" data-e-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\">Experience more with just one Vlip.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df2771c elementor-widget elementor-widget-text-editor\" data-id=\"df2771c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>On this side, guests discover excursions, activities and insider tips around their stay. Just tap and be inspired \u2013 every holiday day becomes an experience.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f039c94 e-con-full c e-flex e-con e-child\" data-id=\"f039c94\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<section class=\"elementor-element elementor-element-b5ecc0d e-flex e-con-boxed e-con e-parent\" data-id=\"b5ecc0d\" data-element_type=\"container\" data-e-type=\"container\" id=\"section-8\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" data-bgcolor=\"#F8F2E9\" data-model-visible=\"false\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e4bceab e-con-full scroll-in e-flex e-con e-child\" data-id=\"e4bceab\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b7da2ae elementor-widget elementor-widget-heading\" data-id=\"b7da2ae\" data-element_type=\"widget\" data-e-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\">Interested?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8798ed elementor-widget elementor-widget-heading\" data-id=\"a8798ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Let's develop your Vlip concept together<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e3398b1 e-con-full e-flex e-con e-child\" data-id=\"e3398b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a70c52e e-con-full e-flex e-con e-child\" data-id=\"a70c52e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe2604 elementor-widget elementor-widget-text-editor\" data-id=\"4fe2604\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Region, company or institution \u2013 we&#8217;ll show you how Vlip can work for you.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5186304 elementor-widget elementor-widget-button\" data-id=\"5186304\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/vlip.me\/en\/contact\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Send a no-obligation enquiry<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>So bereichern Hotels das G\u00e4steerlebnis mit Vlip. Vlip hilft Hotels dabei, ihre G\u00e4ste nicht nur zu informieren, sondern zu begeistern \u2013 und das ganz ohne App. Mit einem einzigen Tap erhalten G\u00e4ste Zugang zu digitalen Services, pers\u00f6nlichen Empfehlungen oder Aktionen. Jetzt anfragen Mehr erfahren Besondere Momente mit nach Hause nehmen. Ein Hotelaufenthalt ist mehr als [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2174","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/pages\/2174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/comments?post=2174"}],"version-history":[{"count":45,"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/pages\/2174\/revisions"}],"predecessor-version":[{"id":3600,"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/pages\/2174\/revisions\/3600"}],"wp:attachment":[{"href":"https:\/\/vlip.me\/en\/wp-json\/wp\/v2\/media?parent=2174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}