{"id":141324,"date":"2025-06-11T12:00:00","date_gmt":"2025-06-11T10:00:00","guid":{"rendered":"https:\/\/blog.tui.info\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/"},"modified":"2025-06-11T12:00:04","modified_gmt":"2025-06-11T10:00:04","slug":"aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool","status":"publish","type":"post","link":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/","title":{"rendered":"Aufwachen &#038; abk\u00fchlen: TOP Hotels mit Privatpool"},"content":{"rendered":"<p class=\"firstTextGrey\">Einen Pool ganz f\u00fcr sich allein zu haben, muss nicht zwangsweise hei\u00dfen, dass ihr ein Planschbecken in den Garten stellt oder ein ganzes Ferienhaus mit Pool mietet. Es gibt wundersch\u00f6ne Hotels, in denen euer Hotelzimmer mit eigenem Pool ausgestattet ist. F\u00fcr euch habe ich die sch\u00f6nsten <strong>Hotels mit Privatpool<\/strong> herausgesucht.<\/p>\n\n<div class=\"table-of-contents\">\r\n    <div class=\"toc-head\">\r\n        <span class=\"toc-headline\">Inhalt<\/span>\r\n        <button class=\"toggle-toc\"\r\n            aria-expanded=\"false\"\r\n            aria-controls=\"toc-list\"\r\n            aria-label=\"Inhaltsverzeichnis ein- oder ausklappen\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"17.503\" height=\"10.303\" viewBox=\"0 0 17.503 10.303\">\r\n                <path id=\"Icon_ionic-ios-arrow-back\" data-name=\"Icon ionic-ios-arrow-back\" d=\"M14.356,14.943l6.819-6.618a1.22,1.22,0,0,0,0-1.766,1.321,1.321,0,0,0-1.824,0l-7.726,7.5a1.223,1.223,0,0,0-.038,1.725l7.758,7.55a1.323,1.323,0,0,0,1.824,0,1.22,1.22,0,0,0,0-1.766Z\" transform=\"translate(23.697 -11.251) rotate(90)\" fill=\"#1B115C\"><\/path>\r\n            <\/svg>\r\n        <\/button>\r\n    <\/div>\r\n    <ul id=\"toc-list\" class=\"toc-list\"><\/ul>\r\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Unsere sch\u00f6nsten Hotels mit Privatpool<\/h2>\n\n\n\n<p>Ich selbst bin ja eher der Meer-Typ. Aber morgens nach dem Aufstehen vom Zimmer direkt in den Pool zu h\u00fcpfen ist wunderbar. Also halte ich Ausschau nach einem <a href=\"https:\/\/www.tui.com\/hotel-mit-privatpool\/\">Hotel mit Privatpool.<\/a> Immer mehr Hotels \u2013 und l\u00e4ngst nicht nur auf den <a href=\"https:\/\/www.tui.com\/pauschalreisen\/malediven\/\" target=\"_blank\" rel=\"noreferrer noopener\">Malediven<\/a> und in der <a href=\"https:\/\/www.tui.com\/pauschalreisen\/karibik\/\" target=\"_blank\" rel=\"noreferrer noopener\">Karibik<\/a> \u2013 bieten Hotelzimmer mit eigenem Pool an. Das klingt einfach traumhaft, oder?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5-Sterne Luxus auf Kreta: <a href=\"https:\/\/www.tui.com\/hotels\/white-palace-grecotel-luxury-resort-985\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Grecotel LUX.ME White Palace<\/a><\/strong><\/h3>\n\n\n\n<p>Das <strong>Grecotel LUX.ME White Palace <\/strong>auf<a href=\"https:\/\/www.tui.com\/pauschalreisen\/griechenland\/kreta\/\" target=\"_blank\" rel=\"noreferrer noopener\"> Kreta<\/a> ist ein Luxushotel, wie es im Buche steht. Wie w\u00e4re es, wenn ihr morgens von der Sonne wach gekitzelt werdet, eure Terrassent\u00fcr \u00f6ffnet und in den Pool springt? Das ist m\u00f6glich in der Villa Luxe Yali sea front private pool direct beach access und der Villa White Seafront Heated Prive Pool Direct Beach Access. Beide Zimmertypen liegen au\u00dferdem in erster Strandreihe und bieten einen tollen Meerblick und ein exklusives Design.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"985\"\r\n            hotel-name=\"Grecotel LUXME White \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"985\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"985\"\r\n                  data-hotel-name=\"Grecotel LUXME White \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"985\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Style und Komfort auf Chalkidiki: <a href=\"https:\/\/www.tui.com\/hotels\/tui-blue-lagoon-princess-412173\/hotelinformation\" target=\"_blank\" rel=\"noreferrer noopener\">TUI BLUE Blue Lagoon Princess<\/a><\/strong><\/h3>\n\n\n\n<p>Das <strong>TUI BLUE Blue Lagoon Princess<\/strong> auf <a href=\"https:\/\/www.tui.com\/pauschalreisen\/griechenland\/chalkidiki\/\">Chalkidiki<\/a> kommt ganz stylish daher. Hier erwartet euch Luxus und Komfort. Aktivit\u00e4ten und kulinarische Highlights machen Gro\u00df und Klein wunschlos gl\u00fccklich. Wenn ihr Zweisamkeit genie\u00dfen m\u00f6chtet, dann bucht z.B. die Deluxe Suite mit privatem Pool. Vom Hotelzimmer, mit eigenem Pool, gibt es einen tollen Ausblick und eine Terrasse mit Sonnenliegen und Sonnenschirm. Hier seid ihr ganz ungest\u00f6rt. <\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"412173\"\r\n            hotel-name=\"TUI BLUE Lagoon Princess \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"412173\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"412173\"\r\n                  data-hotel-name=\"TUI BLUE Lagoon Princess \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"412173\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Das beste Hotel auf Lanzarote: <a href=\"https:\/\/www.tui.com\/hotels\/paradisus-salinas-lanzarote-3003\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Paradisus Salinas Lanzarote<\/a><\/strong><\/h3>\n\n\n\n<p>Das<strong>&nbsp;Paradisus Salinas Lanzarote<\/strong><a href=\"https:\/\/www.tui.com\/hotels\/paradisus-salinas-lanzarote-3003\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">&nbsp;<\/a>gilt als eines der besten Hotels der Insel <a href=\"https:\/\/www.tui.com\/pauschalreisen\/spanien\/lanzarote\/\">Lanzarote<\/a> und bietet nicht nur einen beeindruckenden Meerwasser-Pool, sondern auch ger\u00e4umige Villen mit Privatpool und Privatgarten. Beim Anblick der Fotos bin ich mehr als entz\u00fcckt \u00fcber die Detailliebe. Hier w\u00fcrde ich sofort Urlaub machen!<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"3003\"\r\n            hotel-name=\"Paradisus by Meli\u00e1 Salinas Lanzarote \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"3003\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"3003\"\r\n                  data-hotel-name=\"Paradisus by Meli\u00e1 Salinas Lanzarote \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"3003\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Honeymoon-Traum auf den Malediven: <a href=\"https:\/\/www.tui.com\/hotels\/robinson-club-maldives-134999\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">ROBINSON MALDIVES<\/a><\/strong><\/h3>\n\n\n\n<p>Die <a href=\"https:\/\/www.tui.com\/pauschalreisen\/malediven\/\" target=\"_blank\" rel=\"noreferrer noopener\">Malediven<\/a> \u2013 hier im Inselparadies gibt es viele wundersch\u00f6ne Resorts, die \u00fcber tolle Hotelzimmer mit eigenem Pool verf\u00fcgen. Besonders beeindruckt hat mich der <strong>ROBINSON MALDIVES<\/strong> <strong>f\u00fcr Erwachsene ab 18 Jahren<\/strong>: hier k\u00f6nnt ihr wei\u00dfen Traumstrand und unvergessliche Sonnenunterg\u00e4nge vom Wasserbungalow mit Privatpool genie\u00dfen. Die nicht einsehbare Terrasse mit Pool misst circa 45 Quadratmeter. Ein Daybed, eine Au\u00dfendusche und direkter Zugang zum Meer komplementieren dieses exklusive Zimmer.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"134999\"\r\n            hotel-name=\"ROBINSON MALDIVES \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"134999\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"134999\"\r\n                  data-hotel-name=\"ROBINSON MALDIVES \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"134999\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Familienhotel mit Privatpool auf Mallorca: <a href=\"https:\/\/www.tui.com\/hotels\/tui-kids-club-playa-garden-19154\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">TUI KIDS CLUB Playa Garden<\/a><\/strong><\/h3>\n\n\n\n<p>Familienzeit ist die sch\u00f6nste Zeit: Der <strong>TUI KIDS CLUB Playa Garden <\/strong>auf <a href=\"https:\/\/www.tui.com\/pauschalreisen\/spanien\/mallorca\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mallorca <\/a>liegt direkt am kilometerlangen, sch\u00f6nsten Sandstrand der Insel. Es gibt TUI geschulte, deutschsprachige Kinderbetreuung f\u00fcr die Kleinen, einen Wellnessbereich f\u00fcr die Gro\u00dfen und leckeres Essen f\u00fcr alle. Es ist eines der wenigen Unterk\u00fcnfte auf Mallorca, die Hotels mit eigenem Pool bieten. Das Superior Premium Appartement hat nicht nur einen eigenen Pool, sondern auch einen kleinen Garten.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"19154\"\r\n            hotel-name=\"TUI KIDS CLUB Playa Garden \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"19154\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"19154\"\r\n                  data-hotel-name=\"TUI KIDS CLUB Playa Garden \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"19154\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Modernste Architektur auf Rhodos: <a href=\"https:\/\/www.tui.com\/hotels\/atlantica-imperial-resort-28703\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Atlantica Imperial Resort<\/a><\/strong><\/h3>\n\n\n\n<p>Weitl\u00e4ufigkeit, Komfort, moderne Architektur \u2013 das alles in bester Lage. Das <strong>Atlantica Imperial Resort <\/strong>ist der ideale R\u00fcckzugsort f\u00fcr Paare. Das Adults only Hotel liegt auf <a href=\"https:\/\/www.tui.com\/pauschalreisen\/griechenland\/rhodos\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rhodos<\/a> und ist direkt am Strand. Hier bleiben keine W\u00fcnsche offen. Es gibt Premium Suiten mit Privatpool und Roomservice.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"28703\"\r\n            hotel-name=\"Atlantica Imperial Resort \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"28703\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"28703\"\r\n                  data-hotel-name=\"Atlantica Imperial Resort \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"28703\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Mauritius von seiner sch\u00f6nsten Seite:  <a href=\"https:\/\/www.tui.com\/hotels\/shanti-maurice-resort-and-spa-80492\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Shanti Maurice Resort &amp; Spa<\/a><\/strong><\/h3>\n\n\n\n<p>Panoramablick auf das Meer und Entspannung pur in den Villen mit eigenem Pool gibt es im<strong> Shanti Maurice Resort &amp; Spa. <\/strong>Das Boutique Lifestyle Resort erstreckt sich auf 15 Hektar und befindet sich direkt an einer ruhigen Badebucht. Die G\u00e4ste lieben das sch\u00f6ne Spa und die hervorragende Gastronomie.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"80492\"\r\n            hotel-name=\"Shanti Maurice Resort &#038; Spa \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"80492\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"80492\"\r\n                  data-hotel-name=\"Shanti Maurice Resort &#038; Spa \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"80492\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Ruhe- und Wellnessoase auf Santorin: <a href=\"https:\/\/www.tui.com\/hotels\/tui-blue-meltemi-1017568\/hotelinformation\/\">TUI BLUE Meltemi<\/a><\/strong><\/h3>\n\n\n\n<p>Das Adults only Hotel <strong>TUI BLUE Meltemi <\/strong>\u00fcberzeugt mit einer tollen Lage am sch\u00f6nem, kilometerlangem Vulkansandstrand mit eigenem Hotelabschnitt. Perfekt relaxen k\u00f6nnt ihr auf den bequemen Sonnenliegen am Pool. Genie\u00dft die leckere, kreative K\u00fcche des Hotels und den erstklassigen Service. Viel Privatsph\u00e4re garantieren euch die modernen Doppel Deluxe Hotelzimmer mit eigenem Pool und Terrasse.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"1017568\"\r\n            hotel-name=\"TUI BLUE Meltemi \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"1017568\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"1017568\"\r\n                  data-hotel-name=\"TUI BLUE Meltemi \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"1017568\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Exotische Auszeit auf Bali im Infinity Pool: <a href=\"https:\/\/www.tui.com\/hotels\/maya-ubud-resort-and-spa-26039\/hotelinformation\/\">Maya Ubud Resort &amp; Spa<\/a><\/strong><\/h3>\n\n\n\n<p>Umgeben von viel gr\u00fcner Natur ist das <strong>Maya Ubud Resort &amp; Spa<\/strong> auf <a href=\"https:\/\/www.tui.com\/pauschalreisen\/indonesien\/bali\/\">Bali<\/a> der perfekte R\u00fcckzugsort f\u00fcr Paare und Familien. Das Resort f\u00fcgt sich perfekt in die Landschaft ein. Das Design des Hotels ist modern, mit balinesischen Elementen. Hier werdet ihr euch garantiert wohlf\u00fchlen! Gleich zwei Infinty Pools mit Daybeds und Liegen schenken euch Abk\u00fchlung und spektakul\u00e4re Ausblicke in die Natur. Absolute Entspannung erfahrt ihr bei einer balinesischen Massage \u2013 einfach herrlich! Die Heavenly Pool Villa mit eigenem Pool h\u00e4lt, was ihr Name verspricht \u2013 einfach paradiesisch!<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"26039\"\r\n            hotel-name=\"Maya Ubud Resort &#038; Spa \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"26039\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"26039\"\r\n                  data-hotel-name=\"Maya Ubud Resort &#038; Spa \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"26039\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Ausgefallenes Design &amp; Panoramablick auf Mykonos: <a href=\"https:\/\/www.tui.com\/hotels\/grecotel-mykonos-blu-1062\/hotelinformation\/\">Grecotel Mykonos Blu<\/a><\/strong><\/h3>\n\n\n\n<p>Ein Traum in blau-wei\u00df. Das beliebte <strong>Grecotel Mykonos Blu<\/strong> liegt oberhalb des exklusiven Kultstrands Psarou mit eigenem Hotelabschnitt. Genie\u00dft bei einem k\u00fchlen Drink den herrlichen Panoramablick \u00fcber die Bucht und das azurblaue Meer. Was kann das noch toppen? Die exklusiven Hotelzimmer in erster Strandreihe mit Meerblick und eigenem Pool. Ob Villa oder Suite entscheidet ihr. Mehr Luxus geht nicht!<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"1062\"\r\n            hotel-name=\"Mykonos Blu \u2013 A Grecotel Resort to Live \"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"1062\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"1062\"\r\n                  data-hotel-name=\"Mykonos Blu \u2013 A Grecotel Resort to Live \"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"1062\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>TUI TIPP: Hotel mit Infinity Pool in Deutschland:<a href=\"https:\/\/www.tui.com\/hotels\/sackmann-genusshotel-20845\/hotelinformation\/\"> Sackmann Genusshotel <\/a><\/strong><\/h3>\n\n\n\n<p>Das 4-Sterne <strong>Sackmann Genusshotel <\/strong>liegt in Baiserbronn im Schwarzwald und ist ein Verw\u00f6hnhotel auf ganzer Linie: Entspannung und Erholung stehen hier ganz oben auf der Urlaubsliste. Nicht nur der traumhafte 1.200 qm gro\u00dfe Wellness- und Spa-Bereich beeindrucken sondern der <strong>Sky-Infinitiy-Pool &#8222;Murgtal&#8220;<\/strong> auf der Dachterrasse ist das Herzst\u00fcck des Sackmann Genusshotels. Damit nicht getan bietet der<strong> Swim-Up-Room Burgfels <\/strong>ein exklusives Badevergn\u00fcgen f\u00fcr alle die Privatsph\u00e4re und Romantik suchen.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"20845\"\r\n            hotel-name=\"Sackmann Genusshotel\"\r\n                            duration=\"5\"                    locale=\"de-DE\"\r\n            data-mode=\"light\"\r\n            data-theme=\"tui-light\"\r\n            data-legacy-font=\"\"\r\n            version=\"2.2.3\">\r\n\r\n        <style>\r\n            body.modal-scroll-fix {\r\n                overflow: hidden;\r\n                height: 100vh;\r\n            }\r\n            body.modal-scroll-fix .image-gallery__slot-a {\r\n                z-index: 10 !important;\r\n            }\r\n            tui-map-consent::part(map-consent) {\r\n                border-radius: var(--border-radius-lafs-elements);\r\n            }\r\n            tui-hotel-map {\r\n                height: 100%;\r\n            }\r\n        <\/style>\r\n\r\n                    <tui-map-consent\r\n                    data-theme=\"tui-light\"\r\n                    data-legacy-font\r\n                    locale=\"de-DE\"\r\n                    version=\"current\"\r\n                    cookie-url=\"https:\/\/www.tui.com\/cookie-hinweis\"\r\n                    privacy-url=\"https:\/\/www.tui.com\/datenschutz\">\r\n            <\/tui-map-consent>\r\n\r\n            <tui-hotel-map\r\n                    id=\"love-at-first-sight-poi\"\r\n                    hotel-id=\"20845\"\r\n                    tenant=\"TUICOM\"\r\n                    locale=\"de-DE\"\r\n                    api-key=\"AIzaSyBwXTpsKTvJ6JFXOEJRrU9qNaup3HNAFpU\"\r\n                    market=\"de\"\r\n                    mode=\"STATIC\"\r\n                    static-map-sizes='[\r\n                    {\"media\":\"(min-width: 960px)\",\"width\":297,\"height\":220},\r\n                    {\"media\":\"(min-width: 580px)\",\"width\":400,\"height\":200},\r\n                    {\"media\":\"(min-width: 0px)\",\"width\":400,\"height\":300}\r\n                ]'\r\n                    style=\"display: none;\">\r\n            <\/tui-hotel-map>\r\n            <\/span>\r\n            <style>\r\n                .best-offer-list {\r\n                    position: relative;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    background: var(--color-theme-base-400, #c6eafb);\r\n                    padding: var(--space-3, 12px) 0;\r\n                    justify-content: flex-start;\r\n                    font-family: var(--font-family-base);\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list {\r\n                        padding: var(--space-3, 12px);\r\n                    }\r\n                }\r\n                .best-offer-list__heading {\r\n                    font-weight: bold;\r\n                    font-size: 18px;\r\n                    text-align: center;\r\n                    margin-bottom: var(--space-2, 8px);\r\n                    display: none;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__heading {\r\n                        display: block;\r\n                    }\r\n                }\r\n                .best-offer-list__parameters {\r\n                    text-align: center;\r\n                }\r\n                .best-offer-list__parameters:empty {\r\n                    height: 18px;\r\n                    border-radius: 9px;\r\n                    background: #fff aa;\r\n                    width: 70%;\r\n                    margin: auto;\r\n                    display: block;\r\n                }\r\n                .best-offer-list__element--header {\r\n                    order: 2;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--header {\r\n                        order: 1;\r\n                    }\r\n                }\r\n                .best-offer-list__element--offers {\r\n                    order: 1;\r\n                    display: flex;\r\n                    flex-direction: row;\r\n                    justify-content: center;\r\n                    gap: 20px;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--offers {\r\n                        flex-grow: 1;\r\n                        flex-direction: column;\r\n                        order: 2;\r\n                    }\r\n                }\r\n                .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: flex;\r\n                    flex-direction: column;\r\n                    justify-content: space-between;\r\n                    position: relative;\r\n                }\r\n                .best-offer-list__element--inner:first-child::after {\r\n                    background: white;\r\n                    content: ' ';\r\n                    position: absolute;\r\n                    height: 100%;\r\n                    width: 1px;\r\n                    right: -8px;\r\n                    top: 0;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--inner:first-child::after {\r\n                        right: unset;\r\n                        top: unset;\r\n                        bottom: -10px;\r\n                        left: 0%;\r\n                        width: 100%;\r\n                        height: 1px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--fallback {\r\n                    display: grid;\r\n                    height: 100%;\r\n                    place-content: center;\r\n                    text-align: center;\r\n                    place-items: center;\r\n                    gap: var(--space-4, 16px);\r\n                }\r\n                .best-offer-list__element--fallback p {\r\n                    margin: 0;\r\n                }\r\n                .best-offer-list__element--headline {\r\n                    font-size: 24px;\r\n                    font-weight: 700;\r\n                }\r\n                .best-offer-list__element--button {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    padding: 14px 42px;\r\n                    border-radius: 5rem;\r\n                    font-size: 16px;\r\n                    font-family: Ambit, sans-serif;\r\n                    font-weight: 500;\r\n                }\r\n                @media (min-width: 580px) {\r\n                    .best-offer-list__element--button {\r\n                        padding: 8px 32px;\r\n                        margin-top: 40px;\r\n                    }\r\n                }\r\n                .best-offer-list__element--button:hover, .best-offer-list__element--button:visited, .best-offer-list__element--button:active, .best-offer-list__element--button:focus {\r\n                    background: #1b115c;\r\n                    color: white;\r\n                    text-decoration: none;\r\n                }\r\n                .best-offer-list__element--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-list--block {\r\n                    display: block;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--offers {\r\n                    display: block;\r\n                    height: 100%;\r\n                    padding: 0;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner {\r\n                    padding: 0;\r\n                    display: block;\r\n                    height: 100%;\r\n                }\r\n                .best-offer-list--block .best-offer-list__element--inner:first-child::after {\r\n                    all: unset;\r\n                }\r\n                .best-offer-list--hidden {\r\n                    display: none;\r\n                }\r\n                .best-offer-loading {\r\n                    width: 100%;\r\n                    height: 100%;\r\n                    display: grid;\r\n                    place-items: center;\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    background-color: var(--color-theme-base-400, #c6eafb);\r\n                    z-index: 1;\r\n                    color: var(--color-theme-variant, #1b115c);\r\n                    font-weight: bold;\r\n                    font-size: var(--font-size-medium, 18px);\r\n                }\r\n                .best-offer-loading img {\r\n                    animation: rotate infinite ease-in-out 5s;\r\n                }\r\n                @keyframes rotate {\r\n                    0% {\r\n                        transform: rotate(0);\r\n                    }\r\n                    50% {\r\n                        transform: rotate(180deg);\r\n                    }\r\n                    100% {\r\n                        transform: rotate(360deg);\r\n                    }\r\n                }\r\n            <\/style>\r\n\r\n            <script>\r\n                \/\/ Track instances and offers\r\n                let initializedInstancesCount = 0;\r\n                let renderedInstancesCount = 0;\r\n                let hasValidOffer = false;\r\n\r\n                \/\/ Find all image galleries\r\n                const imageGalleries = document.querySelectorAll('tui-image-gallery');\r\n\r\n                \/\/ Function to update UI for a specific image gallery\r\n                const updateUI = (imageGallery) => {\r\n                    const giataId = imageGallery.getAttribute('giata-id');\r\n\r\n                    \/\/ Hide loading spinner\r\n                    const loadingElement = imageGallery.querySelector('.best-offer-loading');\r\n                    if (loadingElement) {\r\n                        loadingElement.style.display = 'none';\r\n                    }\r\n\r\n                    \/\/ Show\/hide offers and fallback based on hasValidOffer\r\n                    const offersElement = imageGallery.querySelector('.best-offer-list__element--offers');\r\n                    const fallbackElement = imageGallery.querySelector('.best-offer-list__element--fallback');\r\n\r\n                    const showOffers = hasValidOffer && offersElement;\r\n                    const showFallback = !hasValidOffer && fallbackElement;\r\n\r\n                    if (showOffers) {\r\n                        offersElement.style.display = 'flex';\r\n                        fallbackElement.style.display = 'none';\r\n                    } else if (showFallback) {\r\n                        offersElement.style.display = 'none';\r\n                        fallbackElement.style.display = 'grid';\r\n                    }\r\n                };\r\n\r\n                \/\/ Listen for instance initialized events\r\n                document.addEventListener('tui-hotel-best-offer.instance-initialized', (event) => {\r\n                    initializedInstancesCount++;\r\n                });\r\n\r\n                \/\/ Listen for instance rendered events\r\n                document.addEventListener('tui-hotel-best-offer.instance-rendered', (event) => {\r\n                    renderedInstancesCount++;\r\n\r\n                    \/\/ Check if we have a valid offer\r\n                    if (event.detail && event.detail.hotelOffer && event.detail.hotelOffer.priceAmountPerPerson) {\r\n                        hasValidOffer = true;\r\n                    }\r\n\r\n                    \/\/ Update UI for all image galleries when all instances are rendered\r\n                    if (renderedInstancesCount === initializedInstancesCount) {\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n\r\n                    \/\/ Set the CTA for the offer on Render\r\n                    const { hotelOffer, searchParameters, hotelName } = event.detail;\r\n\r\n                    if (!hotelOffer || !searchParameters) {\r\n                        console.warn('No offer details available in event');\r\n                        return;\r\n                    }\r\n\r\n                    const getDomainFromTenant = (tenant) => {\r\n                        const tenantDomainMap = {\r\n                            'TUICOM': 'www.tui.com',\r\n                            'TUIAT': 'www.tui.at',\r\n                            'TUICH': 'www.tui.ch',\r\n                        };\r\n\r\n                        return tenantDomainMap[tenant] || 'www.tui.com';\r\n                    };\r\n\r\n                    const generateScopedUrl = (params) => {\r\n                        const baseUrl = encodeURI(`https:\/\/${getDomainFromTenant(params.tenant)}\/suchen\/angebote\/${hotelName}\/${params.hotel.giata}\/`); \/\/ Base URL for offer details\r\n                        const queryParams = new URLSearchParams({\r\n                            startDate: params.startDate,\r\n                            endDate: params.endDate,\r\n                            duration: params.durations,\r\n                            searchScope: params.scope,\r\n                        });\r\n                        return `${baseUrl}?${queryParams.toString()}`;\r\n                    };\r\n\r\n                    const url = generateScopedUrl(searchParameters);\r\n                    event.detail.setCallToActionUrl(url)\r\n                });\r\n\r\n                \/\/ Fallback timeout - if no events are received within 10 seconds\r\n                setTimeout(() => {\r\n                    if (renderedInstancesCount === 0) {\r\n                        hasValidOffer = false;\r\n                        imageGalleries.forEach(updateUI);\r\n                    }\r\n                }, 10000);\r\n            <\/script>\r\n\r\n            <span slot=\"slot-b\" class=\"best-offer-list\">\r\n            <span class=\"best-offer-attributes\"\r\n                                             data-duration=\"5\"                              data-giata-id=\"20845\"\r\n                  data-hotel-name=\"Sackmann Genusshotel\"><\/span>\r\n            <span class=\"best-offer-list__element best-offer-list__element--offers\">\r\n            <tui-hotel-best-offer\r\n                    slot=\"slot-b\"\r\n                    scope=\"HOTEL,PACKAGE\"\r\n                    tenant=\"TUICOM\"\r\n                    variant=\"micro\"\r\n                    brand=\"tui\"\r\n                    theme=\"tui-light\"\r\n                    locale=\"de-DE\"\r\n                    price-type=\"per_person\"\r\n                                                 durations=\"5\"                    giata-id=\"20845\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<p>Das waren meine Top Empfehlungen f\u00fcr euren Urlaub in <strong>Hotels mit Privatpool.<\/strong> Habt ihr schon mal Urlaub in Hotelzimmern mit eigenem Pool gemacht und habt weitere Tipps? Lasst es mich in den Kommentaren wissen.<\/p>\n\n\n\n<p>\u25ba Alle Hotels mit <a href=\"https:\/\/www.tui.com\/hotel-mit-privatpool\/\" target=\"_blank\" rel=\"noreferrer noopener\">Privatpool<\/a><br>\u25ba Weltweite <a href=\"https:\/\/www.tui.com\/luxushotels\/\">TOP Luxushotels<\/a><br>\u25ba Weitere <a href=\"https:\/\/www.tui.com\/top-hotels\/\">TOP Hotels<\/a><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einen Pool ganz f\u00fcr sich allein zu haben, muss nicht zwangsweise hei\u00dfen, dass ihr ein Planschbecken in den Garten stellt oder ein ganzes Ferienhaus mit Pool mietet. Es gibt wundersch\u00f6ne Hotels, in denen euer Hotelzimmer mit eigenem Pool ausgestattet ist. F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht.<\/p>\n","protected":false},"author":122,"featured_media":469514,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4072,4070],"tags":[935,602,1215,2010],"class_list":["post-141324","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archiv-reiseplanung","category-archiv-reisetipps","tag-aussergewoehnliche-hotels","tag-hoteltipps","tag-luxusurlaub","tag-pool"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Aufwachen &amp; abk\u00fchlen: TOP Hotels mit Privatpool<\/title>\n<meta name=\"description\" content=\"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aufwachen &amp; abk\u00fchlen: TOP Hotels mit Privatpool\" \/>\n<meta property=\"og:description\" content=\"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/\" \/>\n<meta property=\"og:site_name\" content=\"TUI.com Reiseblog \u2600\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-11T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T10:00:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TUI Bloggerin Janine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"TUI Bloggerin Janine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/\"},\"author\":{\"name\":\"TUI Bloggerin Janine\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/person\\\/095fbe15390e8b9532cd054232189d28\"},\"headline\":\"Aufwachen &#038; abk\u00fchlen: TOP Hotels mit Privatpool\",\"datePublished\":\"2025-06-11T10:00:00+00:00\",\"dateModified\":\"2025-06-11T10:00:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/\"},\"wordCount\":1005,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/top-hotels-mit-privatpool.jpg\",\"keywords\":[\"au\u00dfergew\u00f6hnliche Hotels\",\"Hoteltipps\",\"Luxusurlaub\",\"Pool\"],\"articleSection\":[\"Reiseplanung\",\"Reisetipps\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/\",\"name\":\"Aufwachen & abk\u00fchlen: TOP Hotels mit Privatpool\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/top-hotels-mit-privatpool.jpg\",\"datePublished\":\"2025-06-11T10:00:00+00:00\",\"dateModified\":\"2025-06-11T10:00:04+00:00\",\"description\":\"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/top-hotels-mit-privatpool.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/top-hotels-mit-privatpool.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"Top Hotels mit Privatpool\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aufwachen &#038; abk\u00fchlen: TOP Hotels mit Privatpool\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/\",\"name\":\"TUI.com Reiseblog \u2600\",\"description\":\"Abenteuer oder lieber an den Strand? \u2600 Der TUI Reiseblog bietet tolle Infos rund um deine n\u00e4chste Reise \u2708 Komm vorbei und lass dich inspirieren \u221a\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#organization\",\"name\":\"TUI.com Reiseblog \u2600\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/cropped-tui-logo-3.png\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/cropped-tui-logo-3.png\",\"width\":164,\"height\":72,\"caption\":\"TUI.com Reiseblog \u2600\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/person\\\/095fbe15390e8b9532cd054232189d28\",\"name\":\"TUI Bloggerin Janine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/Janine_2-320x180.jpg\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/Janine_2-320x180.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/05\\\/Janine_2-320x180.jpg\",\"caption\":\"TUI Bloggerin Janine\"},\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/author\\\/janine\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Aufwachen & abk\u00fchlen: TOP Hotels mit Privatpool","description":"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!","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:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/","og_locale":"de_DE","og_type":"article","og_title":"Aufwachen & abk\u00fchlen: TOP Hotels mit Privatpool","og_description":"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!","og_url":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/","og_site_name":"TUI.com Reiseblog \u2600","article_published_time":"2025-06-11T10:00:00+00:00","article_modified_time":"2025-06-11T10:00:04+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg","type":"image\/jpeg"}],"author":"TUI Bloggerin Janine","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"TUI Bloggerin Janine","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#article","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/"},"author":{"name":"TUI Bloggerin Janine","@id":"https:\/\/www.tui.com\/blog\/#\/schema\/person\/095fbe15390e8b9532cd054232189d28"},"headline":"Aufwachen &#038; abk\u00fchlen: TOP Hotels mit Privatpool","datePublished":"2025-06-11T10:00:00+00:00","dateModified":"2025-06-11T10:00:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/"},"wordCount":1005,"commentCount":6,"publisher":{"@id":"https:\/\/www.tui.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg","keywords":["au\u00dfergew\u00f6hnliche Hotels","Hoteltipps","Luxusurlaub","Pool"],"articleSection":["Reiseplanung","Reisetipps"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/","url":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/","name":"Aufwachen & abk\u00fchlen: TOP Hotels mit Privatpool","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#primaryimage"},"image":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg","datePublished":"2025-06-11T10:00:00+00:00","dateModified":"2025-06-11T10:00:04+00:00","description":"Vom Zimmer direkt in den Pool! F\u00fcr euch habe ich die sch\u00f6nsten Hotels mit Privatpool herausgesucht. Freut euch auf Luxus pur!","breadcrumb":{"@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#primaryimage","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2025\/05\/top-hotels-mit-privatpool.jpg","width":1920,"height":1080,"caption":"Top Hotels mit Privatpool"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tui.com\/blog\/aufwachen-abkuehlen-top-hotels-mit-fast-eigenem-pool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.tui.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Aufwachen &#038; abk\u00fchlen: TOP Hotels mit Privatpool"}]},{"@type":"WebSite","@id":"https:\/\/www.tui.com\/blog\/#website","url":"https:\/\/www.tui.com\/blog\/","name":"TUI.com Reiseblog \u2600","description":"Abenteuer oder lieber an den Strand? \u2600 Der TUI Reiseblog bietet tolle Infos rund um deine n\u00e4chste Reise \u2708 Komm vorbei und lass dich inspirieren \u221a","publisher":{"@id":"https:\/\/www.tui.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tui.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.tui.com\/blog\/#organization","name":"TUI.com Reiseblog \u2600","url":"https:\/\/www.tui.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/04\/cropped-tui-logo-3.png","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/04\/cropped-tui-logo-3.png","width":164,"height":72,"caption":"TUI.com Reiseblog \u2600"},"image":{"@id":"https:\/\/www.tui.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.tui.com\/blog\/#\/schema\/person\/095fbe15390e8b9532cd054232189d28","name":"TUI Bloggerin Janine","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2018\/05\/Janine_2-320x180.jpg","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2018\/05\/Janine_2-320x180.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2018\/05\/Janine_2-320x180.jpg","caption":"TUI Bloggerin Janine"},"url":"https:\/\/www.tui.com\/blog\/author\/janine\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/141324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/users\/122"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/comments?post=141324"}],"version-history":[{"count":54,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/141324\/revisions"}],"predecessor-version":[{"id":469540,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/141324\/revisions\/469540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media\/469514"}],"wp:attachment":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media?parent=141324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/categories?post=141324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/tags?post=141324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}