{"id":153362,"date":"2024-05-03T12:00:00","date_gmt":"2024-05-03T10:00:00","guid":{"rendered":"https:\/\/blog.tui.info\/die-schoensten-5-sterne-hotels-am-meer\/"},"modified":"2025-07-28T14:36:47","modified_gmt":"2025-07-28T12:36:47","slug":"die-schoensten-5-sterne-hotels-am-meer","status":"publish","type":"post","link":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/","title":{"rendered":"Luxus pur: Die sch\u00f6nsten 5 Sterne Hotels am Meer"},"content":{"rendered":"<p class=\"firstTextGrey\">Entspannt, elegant &amp; exklusiv \u2013 Strandurlaub der extra Klasse! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer, in den beliebtesten Urlaubsdestinationen f\u00fcr einen glamour\u00f6sen Luxusurlaub.<\/p>\n\n\n<p>Luxus f\u00fcr die Sinne! Ihr wollt den perfekten Urlaub, der euch in Begeisterung versetzt und einfach unvergesslich bleibt? Ihr w\u00fcnscht euch am liebsten alles in einem: einen traumhaften Strand, Sonne rund um die Uhr, einen exzellenten Service, exquisites und hochwertiges Essen, designvolle Zimmer und einzigartige Wellness- und Spa Momente! Dann freut euch auf unsere sch\u00f6nsten <strong>5-Sterne-Hotels am Meer.<\/strong> Diese Hotels sind wirklich erstklassig und bieten weit mehr als einen \u201egew\u00f6hnlichen\u201c Badeurlaub! Doch \u00fcberzeugt euch am besten selbst von unseren Top 10<a href=\"https:\/\/www.tui.com\/luxushotels\/\" target=\"_blank\" rel=\"noreferrer noopener\"> Luxushotels<\/a> am Strand. <span style=\"color: #f9d65a;\">\u2605\u2605\u2605\u2605\u2605<\/span><\/p>\n\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\">Grupotel Parc Natural Spa &#8211; MALLORCA<\/h2>\n\n\n\n<p>Das 5-Sterne-Luxushotel Mallorca <a href=\"https:\/\/www.tui.com\/hotels\/grupotel-parc-natural-und-spa-13639\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Grupotel Parc Natural Spa<\/a> ist ein Traumhotel auf den Balaeren in der Bucht von Alcudia: Es liegt direkt am langen wei\u00dfen Sandstrand <strong>Playa de Muro<\/strong> mit kristallklaren t\u00fcrkisfarbenen Wasser und verf\u00fcgt \u00fcber Zimmer ab 25 Quadratmetern. Besonderes hervorzuheben ist der gro\u00dfz\u00fcgige <strong>Wellness\/Spa Bereich<\/strong>, der neben den herk\u00f6mmlichen Massagen zum Beispiel eine wohltuende Hydrojetmassage anbietet. Highlight im Wellnessbereich ist das Laconium und die Thermoliegen. Na, schon am Entspannen?<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"13639\"\r\n            hotel-name=\"Grupotel Parc Natural 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=\"13639\"\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=\"13639\"\r\n                  data-hotel-name=\"Grupotel Parc Natural 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=\"13639\"\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<h2 class=\"wp-block-heading\">Atlantica Caldera Palace &#8211; GRIECHENLAND<\/h2>\n\n\n\n<p>Das <a href=\"https:\/\/www.tui.com\/hotels\/atlantica-caldera-palace-136410\/hotelinformation\/\" target=\"_blank\" rel=\"noopener\">Atlantica Caldera Palace<\/a> auf Kreta bei Chersonissos ist f\u00fcr Gourmetfreunde mit hohen Anspr\u00fcchen genau das Richtige: Denn hier gibt es gleich <strong>7 Spezialit\u00e4tenrestaurants<\/strong>, die eure Geschmackssinne auf h\u00f6chstem Niveau verw\u00f6hnen. Wer w\u00fcrde nicht gerne romantisch in einem stilvollen Ambiente zu Abend essen und dabei den traumhaften Blick aufs Meer genie\u00dfen? \u00dcbrigens f\u00fcr die ganz Verliebten unter euch bietet das Resort auf Kreta einen exklusiven Adults-only-Bereich.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"136410\"\r\n            hotel-name=\"Atlantica Caldera Palace\"\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=\"136410\"\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=\"136410\"\r\n                  data-hotel-name=\"Atlantica Caldera Palace\"><\/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=\"136410\"\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<h2 class=\"wp-block-heading\">TUI BLUE Sensatori Akra Sorgun \u2013 T\u00dcRKEI<\/h2>\n\n\n\n<p>Das <a href=\"https:\/\/www.tui.com\/hotels\/tui-blue-sensatori-akra-sorgun-391436\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">TUI BLUE Sensatori Akra Sorgun<\/a> befindet sich direkt am Sandstrand von Side-Sorgun an der T\u00fcrkischen Riviera. Wer von euch Luxus liebt, ein stylisches Ambiente bevorzugt und Sport begeistert ist, ist hier genau richtig! Sowohl der private hoteleigene Sandstrand mit&nbsp;<strong>Balinesischen Betten<\/strong>&nbsp;als auch das breitgef\u00e4cherte Sportangebot wie Bogenschie\u00dfen, Parasailing, Tennis, Katamaran, Kanu, Windsurfen, Aerobic, Personal Training, Pilates und Yoga werden euch begeistern. Eure Kinder werden eine tolle Zeit im TUI Kids Club und im Splash Park haben.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"391436\"\r\n            hotel-name=\"TUI BLUE Sensatori Akra Sorgun \"\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=\"391436\"\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=\"391436\"\r\n                  data-hotel-name=\"TUI BLUE Sensatori Akra Sorgun \"><\/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=\"391436\"\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<h2 class=\"wp-block-heading\">Seaside Palm Beach \u2013 GRAN CANARIA<\/h2>\n\n\n\n<p>Stilvoll in die Vergangenheit reisen? Das luxuri\u00f6se Design-Hotel <a href=\"https:\/\/www.tui.com\/hotels\/seaside-palm-beach-2694\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Seaside Palm Beach<\/a> in Maspalomas auf Gran Canaria entf\u00fchrt euch mit seinem<strong> extravaganten Retro-Stil<\/strong> in die 70er Jahre. Nur 70 Meter trennen euch hier vom 6 Kilometer langen goldgelben Sandstrand inmitten der wundersch\u00f6nen D\u00fcnenlandschaft. Was w\u00e4re Luxusurlaub ohne Golf? In diesem kanarischen Strandhotel gibt es verschiedene zubuchbare Golfpakete, die zum Teil individuell kombinierbar sind.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"2694\"\r\n            hotel-name=\"Seaside Palm Beach \"\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=\"2694\"\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=\"2694\"\r\n                  data-hotel-name=\"Seaside Palm Beach \"><\/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=\"2694\"\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<h2 class=\"wp-block-heading\">Hotel Excelsior Dubrovnik \u2013 KROATIEN<\/h2>\n\n\n\n<p>Noch weiter in die Vergangenheit bis in das Jahr 1913 f\u00fchrt euch die Geschichte des Luxushotels <a class=\"hotelinfo-link\" href=\"https:\/\/www.tui.com\/hotels\/hotel-excelsior-dubrovnik-12349\/hotelinformation\/\">Excelsior Dubrovnik<\/a> in S\u00fcddalmatien. Seitdem genie\u00dfen Stars &amp; royale W\u00fcrdentr\u00e4ger die einzigartige Lage dieses Strandhotels: Oberhalb des Meeres erfreut man sich hier am herrlichen Ausblick aufs Wasser und bewundert gleichzeitig die faszinierende Altstadt Dubrovnik.<\/p>\n\n\n\n<p>Noch mehr ins Staunen versetzt euch der bestimmt <strong>850 m\u00b2 elegante Wellness\/Spa Bereich,<\/strong> der pure Erholung garantiert. Wie w\u00e4re es zum Beispiel mit einer Paarbehandlung? Ihr wollt lieber gemeinsam aktiv sein? Dann empfehle ich euch Segeln. Falls ihr lieber unter Wasser sein wollt, dann geht\u2019s ab zum Tauchen oder Schnorcheln. Den Tag k\u00f6nnt ihr anschlie\u00dfend abends in der Pianobar bei einem Glas Wein oder bei einem Cocktail auf der eleganten Terrasse ausklingen lassen. Das klingt doch verlockend, oder?<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"12349\"\r\n            hotel-name=\"Hotel Excelsior Dubrovnik\"\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=\"12349\"\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=\"12349\"\r\n                  data-hotel-name=\"Hotel Excelsior Dubrovnik\"><\/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=\"12349\"\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<h2 class=\"wp-block-heading\">Hotel Sporting \u2013 ITALIEN<\/h2>\n\n\n\n<p>Noch mehr Luxus erwartet euch im <a href=\"https:\/\/www.tui.com\/hotels\/hotel-sporting-42447\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Hotel Sporting<\/a> in der malerischen Bucht von<strong> Porto Rotondo<\/strong> auf der wundersch\u00f6nen Insel Sardinien. Der <b>private Sandstrand<\/b>, die modernen Zimmer und ein <b>Meerwasserpool mit Panoramablick<\/b> runden einen perfekten Urlaub ab. In der traditionellen Villa mit 47 Zimmern, erlebt ihr ein besonderes <strong>Gourmet Vergn\u00fcgen<\/strong> \u2013 der Chefkoch verw\u00f6hnt euch mit einer exquisiten mediterranen K\u00fcche. Spaziert ihr entlang des angrenzenden Jachthafens, erreicht ihr in wenigen Gehminuten das Zentrum von Porto Rotondo mit seinen Piazzettas und Boutiquen.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"42447\"\r\n            hotel-name=\"Hotel Sporting\"\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=\"42447\"\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=\"42447\"\r\n                  data-hotel-name=\"Hotel Sporting\"><\/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=\"42447\"\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<h2 class=\"wp-block-heading\">Bela Vista Hotel Spa \u2013 PORTUGAL<\/h2>\n\n\n\n<p>Das luxuri\u00f6se <a href=\"https:\/\/www.tui.com\/hotels\/bela-vista-hotel-spa-8696\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bela Vista Hotel Spa<\/a> liegt direkt an der Praia de Rocha an der Algarve. Hier verbindet sich moderner Komfort mit traditioneller Gastfreundschaft verbunden. Die K\u00fcche serviert landestypische Speisen auf innovative Art mit regionalen Produkten. Freuen k\u00f6nnt ihr euch auf das <strong>Gourmetrestaurant \u201eVista Restaurant\u201c, das mit 1-Michelin Stern<\/strong> ausgezeichnet ist. Ein fantastischer Ausblick auf den Atlantik, hervorragendes <strong>Design<\/strong> und ein eigener <strong>Adults Only<\/strong> Bereich sind nur einige von vielen Vorz\u00fcgen des Bela Vista Hotel Spas.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"8696\"\r\n            hotel-name=\"Bella Vista Hotel 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=\"8696\"\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=\"8696\"\r\n                  data-hotel-name=\"Bella Vista Hotel 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=\"8696\"\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<h2 class=\"wp-block-heading\">Premier Le Reve &amp; Spa \u2013 \u00c4GYPTEN<\/h2>\n\n\n\n<p>Das internationale <strong>Luxushotel <a href=\"https:\/\/www.tui.com\/hotels\/premier-le-reve-and-spa-102210\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Premier Le Reve &amp; Spa<\/a><\/strong> liegt an einem 400 Meter langen <strong>privaten Strandabschnitt<\/strong> von Sahl Hasheesh im Roten Meer gegen\u00fcber von Sharm El Sheikh. Das moderne Hotel ist ab 16 Jahren buchbar und bietet ein gepflegtes Ambiente mit einem <strong>herrlichen Wellnessbereich<\/strong> und einer gro\u00dfz\u00fcgigen Poollandschaft. F\u00fcr verliebte Paare, die eine romantische Auszeit brauchen, genau das Richtige also.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"102210\"\r\n            hotel-name=\"Premier Le Reve 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=\"102210\"\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=\"102210\"\r\n                  data-hotel-name=\"Premier Le Reve 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=\"102210\"\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<h2 class=\"wp-block-heading\">Stella Island Luxury Resort and Spa \u2013 GRIECHENLAND<\/h2>\n\n\n\n<p>Das <a href=\"https:\/\/www.tui.com\/hotels\/stella-island-luxury-resort-and-spa-576794\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Stella Island Luxury Resort and Spa<\/a> im <strong>Boho-Stil <\/strong>ist ein wahres architektonisches Highlight! Mit seiner traumhaft weitl\u00e4ufigen Poolanlage, seiner Poolbar AUF dem Wasser, dem modernen und schicken Wellnessbereich und den einzigartigen <strong>Over Water Bungalows<\/strong> mit Jacuzzi und direktem Zugang zum Wasser landet ihr hier im 5-Sterne-Paradies. Das hippe Hotel auf Kreta ist <strong>exklusiv f\u00fcr Adults only<\/strong> und liegt wenige Meter vom sanft abfallenden Sandstrand entfernt.<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"576794\"\r\n            hotel-name=\"Stella Island Luxury 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=\"576794\"\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=\"576794\"\r\n                  data-hotel-name=\"Stella Island Luxury 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=\"576794\"\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<h2 class=\"wp-block-heading\">Radisson Blu Resort Swinoujscie \u2013 SWINEM\u00dcNDE<\/h2>\n\n\n\n<p>Das <a href=\"https:\/\/www.tui.com\/hotels\/radisson-blu-resort-swinoujscie-561572\/hotelinformation\/\">5-Sterne Radisson Blu Resort Swinoujscie <\/a>liegt direkt am feinsandigen Strand an einem der sch\u00f6nsten K\u00fcstenorte Polens, in Swinem\u00fcnde! Nur 12,5 Kilometer vom Flughafen Heringsdorf und knapp drei Stunden Autofahrt von unserer Hauptstadt entfernt. Genie\u00dft exklusive Annehmlichkeiten vom <strong>Infinity-Pool auf der Dachterrasse<\/strong>, einem hervorragendem Spa-Bereich bis hin zu einem erstklassigem Service. Ein perfekter Strandurlaub quasi vor der T\u00fcr im angesagten 5-Sterne-Hotel an der Ostsee!<\/p>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"561572\"\r\n            hotel-name=\"Radisson Blu Resort Swinoujscie\"\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=\"561572\"\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=\"561572\"\r\n                  data-hotel-name=\"Radisson Blu Resort Swinoujscie\"><\/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=\"561572\"\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 also unsere <strong>Top 10 sch\u00f6nsten 5-Sterne-Hotels am Meer.<\/strong> Diese Hotelauswahl ist euch zu wenig? Dann schaut doch mal bei unseren <a href=\"https:\/\/www.tui.com\/luxushotels\/\">Luxushotels<\/a> oder der Hotelmarke <a href=\"https:\/\/www.tui.com\/tui-blue\/\" target=\"_blank\" rel=\"noreferrer noopener\">TUI BLUE<\/a> vorbei.<\/p>\n\n\n\n<p>\u25ba Weitere <a href=\"https:\/\/www.tui.com\/top-hotels\/\">TOP Hotels<\/a><\/p>\n\n\n\n<p><strong>Glamour-Liebhaber aufgepasst! Diese Luxushotels sind besonders gefragt bei unseren Lesern:<\/strong><\/p>\n\n\n\n<p>Luxushotels <strong>Deutschland <\/strong>&#8211; Entspannung auf h\u00f6chstem Niveau \u25ba <a href=\"https:\/\/www.tui.com\/blog\/luxushotels-deutschland-entspannung-auf-hoechstem-niveau\">Zum Artikel<\/a><\/p>\n\n\n\n<p>Luxusresort mit Style-Faktor in <strong>Griechenland:<\/strong> Grecotel Amirandes \u25ba <a href=\"https:\/\/www.tui.com\/blog\/luxusresort-mit-style-faktor-grecotel-amirandes-ein-highlight-moderner-lebensart\">Zum Artikel<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entspannt, elegant &#038; exklusiv \u2013 Strandurlaub der extra Klasse! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer, in den beliebtesten Urlaubsdestinationen f\u00fcr einen glamour\u00f6sen Luxusurlaub.<\/p>\n","protected":false},"author":116,"featured_media":433334,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4052,4072,4056],"tags":[1891,1892,602,596,1121,1215,1134,1903],"class_list":["post-153362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archiv-reisearten","category-archiv-reiseplanung","category-archiv-urlaub-am-meer","tag-5-sterne-hotel","tag-hotel-am-meer","tag-hoteltipps","tag-luxus","tag-luxushotel","tag-luxusurlaub","tag-meerblick","tag-stars"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog<\/title>\n<meta name=\"description\" content=\"Luxus Strandurlaub - entspannt, elegant &amp; exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.\" \/>\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\/die-schoensten-5-sterne-hotels-am-meer\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog\" \/>\n<meta property=\"og:description\" content=\"Luxus Strandurlaub - entspannt, elegant &amp; exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/\" \/>\n<meta property=\"og:site_name\" content=\"TUI.com Reiseblog \u2600\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-03T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-28T12:36:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.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=\"Julia W\u00fcbbelmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julia W\u00fcbbelmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/\"},\"author\":{\"name\":\"Julia W\u00fcbbelmann\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/person\\\/4755e7914e8aefb9ac11dab2e3a0203c\"},\"headline\":\"Luxus pur: Die sch\u00f6nsten 5 Sterne Hotels am Meer\",\"datePublished\":\"2024-05-03T10:00:00+00:00\",\"dateModified\":\"2025-07-28T12:36:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/\"},\"wordCount\":1032,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg\",\"keywords\":[\"5 Sterne Hotel\",\"Hotel am Meer\",\"Hoteltipps\",\"Luxus\",\"Luxushotel\",\"Luxusurlaub\",\"Meerblick\",\"Stars\"],\"articleSection\":[\"Reisearten\",\"Reiseplanung\",\"Urlaub am Meer\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/\",\"name\":\"Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg\",\"datePublished\":\"2024-05-03T10:00:00+00:00\",\"dateModified\":\"2025-07-28T12:36:47+00:00\",\"description\":\"Luxus Strandurlaub - entspannt, elegant & exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/die-schoensten-5-sterne-hotels-am-meer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Luxus pur: Die sch\u00f6nsten 5 Sterne Hotels am Meer\"}]},{\"@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\\\/4755e7914e8aefb9ac11dab2e3a0203c\",\"name\":\"Julia W\u00fcbbelmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julia_tuerkei_profilbild-96x96.jpg\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julia_tuerkei_profilbild-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julia_tuerkei_profilbild-96x96.jpg\",\"caption\":\"Julia W\u00fcbbelmann\"},\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/author\\\/tui-bloggerin-julia\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog","description":"Luxus Strandurlaub - entspannt, elegant & exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.","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\/die-schoensten-5-sterne-hotels-am-meer\/","og_locale":"de_DE","og_type":"article","og_title":"Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog","og_description":"Luxus Strandurlaub - entspannt, elegant & exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.","og_url":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/","og_site_name":"TUI.com Reiseblog \u2600","article_published_time":"2024-05-03T10:00:00+00:00","article_modified_time":"2025-07-28T12:36:47+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg","type":"image\/jpeg"}],"author":"Julia W\u00fcbbelmann","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Julia W\u00fcbbelmann","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#article","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/"},"author":{"name":"Julia W\u00fcbbelmann","@id":"https:\/\/www.tui.com\/blog\/#\/schema\/person\/4755e7914e8aefb9ac11dab2e3a0203c"},"headline":"Luxus pur: Die sch\u00f6nsten 5 Sterne Hotels am Meer","datePublished":"2024-05-03T10:00:00+00:00","dateModified":"2025-07-28T12:36:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/"},"wordCount":1032,"commentCount":3,"publisher":{"@id":"https:\/\/www.tui.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg","keywords":["5 Sterne Hotel","Hotel am Meer","Hoteltipps","Luxus","Luxushotel","Luxusurlaub","Meerblick","Stars"],"articleSection":["Reisearten","Reiseplanung","Urlaub am Meer"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/","url":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/","name":"Die sch\u00f6nsten 5 Sterne Hotels am Meer - TUI.com Blog","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#primaryimage"},"image":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg","datePublished":"2024-05-03T10:00:00+00:00","dateModified":"2025-07-28T12:36:47+00:00","description":"Luxus Strandurlaub - entspannt, elegant & exklusiv! Wir pr\u00e4sentieren euch die sch\u00f6nsten 5-Sterne-Hotels am Meer.","breadcrumb":{"@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#primaryimage","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2021\/11\/AdobeStock_629066755-Damian-Sobczyk-ki.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.tui.com\/blog\/die-schoensten-5-sterne-hotels-am-meer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.tui.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Luxus pur: Die sch\u00f6nsten 5 Sterne Hotels am Meer"}]},{"@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\/4755e7914e8aefb9ac11dab2e3a0203c","name":"Julia W\u00fcbbelmann","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2026\/02\/julia_tuerkei_profilbild-96x96.jpg","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2026\/02\/julia_tuerkei_profilbild-96x96.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2026\/02\/julia_tuerkei_profilbild-96x96.jpg","caption":"Julia W\u00fcbbelmann"},"url":"https:\/\/www.tui.com\/blog\/author\/tui-bloggerin-julia\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/153362","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\/116"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/comments?post=153362"}],"version-history":[{"count":37,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/153362\/revisions"}],"predecessor-version":[{"id":464884,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/153362\/revisions\/464884"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media\/433334"}],"wp:attachment":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media?parent=153362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/categories?post=153362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/tags?post=153362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}