{"id":414240,"date":"2023-11-16T15:32:07","date_gmt":"2023-11-16T14:32:07","guid":{"rendered":"https:\/\/www.tui.com\/blog\/?p=414240"},"modified":"2025-03-26T16:59:54","modified_gmt":"2025-03-26T15:59:54","slug":"neu-bei-tui-appartementurlaub-mit-time-to-smile","status":"publish","type":"post","link":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/","title":{"rendered":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE"},"content":{"rendered":"<p class=\"firstTextGrey\">Gestaltet euren Urlaub oder eure Workation ganz individuell und wohnt in stylishen Appartements mit hochwertiger Ausstattung und Wohnkomfort. Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina. TUI Appartementurlaub zum Wohlf\u00fchlen!<\/p>\n\n<div class=\"table-of-contents\">\r\n    <div class=\"toc-head\">\r\n        <span class=\"toc-headline\">Inhalt<\/span>\r\n        <button class=\"toggle-toc\"\r\n            aria-expanded=\"false\"\r\n            aria-controls=\"toc-list\"\r\n            aria-label=\"Inhaltsverzeichnis ein- oder ausklappen\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"17.503\" height=\"10.303\" viewBox=\"0 0 17.503 10.303\">\r\n                <path id=\"Icon_ionic-ios-arrow-back\" data-name=\"Icon ionic-ios-arrow-back\" d=\"M14.356,14.943l6.819-6.618a1.22,1.22,0,0,0,0-1.766,1.321,1.321,0,0,0-1.824,0l-7.726,7.5a1.223,1.223,0,0,0-.038,1.725l7.758,7.55a1.323,1.323,0,0,0,1.824,0,1.22,1.22,0,0,0,0-1.766Z\" transform=\"translate(23.697 -11.251) rotate(90)\" fill=\"#1B115C\"><\/path>\r\n            <\/svg>\r\n        <\/button>\r\n    <\/div>\r\n    <ul id=\"toc-list\" class=\"toc-list\"><\/ul>\r\n<\/div>\n\n\n<p>Urlaub mit <a href=\"https:\/\/www.tui.com\/time-to-smile\/\" target=\"_blank\" rel=\"noreferrer noopener\">TUI TIME TO SMILE<\/a> f\u00fchlt sich an wie Urlaub im eigenen zuhause, nur mit neuen Entdeckungen, Erlebnissen und coolem Ambiente. Ihr gestaltet eure Urlaubszeit ganz individuell nach eigenem Gusto, gem\u00fctlich ausschlafen, fr\u00fchst\u00fccken im Schlafanzug &#8230; so k\u00f6nnt ihr eure wertvolle Urlaubszeit ganz entspannt genie\u00dfen. Und wenn euch im Home-Office mal die Decke auf den Kopf f\u00e4llt, dann nichts wie raus: Die <a href=\"https:\/\/www.tui.com\/time-to-smile\/\" target=\"_blank\" rel=\"noreferrer noopener\">TUI TIME TO SMILE<\/a> Anlagen sind exklusiv bei TUI buchbar und bieten euch eine tolle M\u00f6glichkeit, um Urlaub und Job zu kombinieren.<\/p>\n\n\n\n<p>\u2714 individuelle Appartementanlage in bevorzugter Lage<br>\u2714 hoher Wohnkomfort mit vollausgestatteter K\u00fcche<br>\u2714 kostenloses WLAN<\/p>\n\n\n<div class=\"tui-infobox__big \">\r\n    <div class=\"inner\">\r\n        <h2>Interview mit TUI Kollegin Sabina Wittmann<\/h2>\r\n    <p><strong>Sabina, wie kam es zu diesem neuen Konzept?<br \/>\n<\/strong>Bei unseren niederl\u00e4ndischen TUI Kollegen gibt es TUI TIME TO SMILE schon seit mehreren Jahren. Die Anlagen sind bei den Kunden dort sehr beliebt. Und da wir Deutschen und Holl\u00e4nder uns ja nicht ganz un\u00e4hnlich sind (au\u00dfer beim Fu\u00dfball \ud83d\ude09), dachten wir, dass es eine gute Idee sein k\u00f6nnte, die Hotelmarke auch im deutschsprachigen Markt zu etablieren.<\/p>\n<p><strong>Was ist das Besondere an TUI TIME TO SMILE?<br \/>\n<\/strong><a href=\"https:\/\/www.tui.com\/time-to-smile\/\" target=\"_blank\" rel=\"noopener\">TUI TIME TO SMILE<\/a> steht f\u00fcr hochwertige Appartement-Anlagen von \u00fcberschaubarer Gr\u00f6\u00dfe (bestehend aus circa 20 bis 80 Wohneinheiten) und in bevorzugter Lage. Sch\u00f6n gelegen, nicht weit weg von einem attraktiven Ort mit Caf\u00e9s, Restaurants und Gesch\u00e4ften. Bei Anlagen f\u00fcr Badeurlaub nicht weit vom Strand und mit Pool, bei Anlagen in den Bergen in einem attraktiven Wintersport- und\/oder Wandergebiet. Die Appartements sind gro\u00dfz\u00fcgig und modern eingerichtet. Es gibt eine voll ausgestattete K\u00fcche, da es sich in der Regel um Selbstverpfleger-Unterk\u00fcnfte handelt, sowie komfortable Betten und ein modernes Badezimmer, meist mit begehbarer Regendusche. Alle Wohnungen haben eine Terrasse oder einen Balkon. Viele Anlagen bieten weitere Service-Leistungen wie beispielsweise Fr\u00fchst\u00fccksservice oder auch eine Snack- und\/oder eine Weinbar.<strong><br \/>\n<\/strong><\/p>\n<p><strong>Noch eine TUI Marke mehr &#8211; Warum?<br \/>\n<\/strong>Mit TUI TIME TO SMILE rundet TUI sein Produkt-Portfolio sinnvoll ab, somit gibt es fortan auch eine bew\u00e4hrte Hotelmarke f\u00fcr Appartement-Urlaub. Diese Urlaubsform wird heutzutage immer beliebter: Insbesondere Familien und Paare, die gerne einen individuellen Urlaub machen m\u00f6chten und Wert legen auf ihr eigenes Wohlf\u00fchl-Zuhause im Urlaub. Die TUI TIME TO SMILE Anlagen sind ein exklusives TUI Produkt und damit bei keinem anderen Veranstalter zu finden.<\/p>\n<p><strong>Was ist in Zukunft f\u00fcr TUI TIME TO SMILE geplant?<\/strong><br \/>\nNach dem Start mit unseren drei Anlagen in Deutschland, \u00d6sterreich und Cura\u00e7ao arbeiten wir schon daran, weitere Objekte f\u00fcr TUI TIME TO SMILE unter Vertrag zu nehmen. Nach und nach soll es TUI TIME TO SMILE auch am Mittelmeer geben, zum Beispiel in Italien und Spanien. Au\u00dferdem sind weitere Anlagen in beliebten Autoreisen-Zielgebieten wie Deutschland und \u00d6sterreich geplant.<\/p>\n<p><strong>Kennst du eine der Anlagen bereits pers\u00f6nlich?<\/strong><br \/>\nIch kenne die Hohwachter Bucht aus vergangenen Zeiten meiner \u2013 bisher sehr kurzen \u2013 Golfkarriere, wo ich als Fernmitglied den dortigen Golfplatz besucht hatte. Wundersch\u00f6n \u00fcbrigens, die Gegend hat mir gut gefallen, weil sie naturnah und unber\u00fchrt ist. Idealerweise m\u00f6chte ich in der Ole School Workation machen. Arbeit und Urlaub l\u00e4sst sich bei TUI TIME TO SMILE perfekt verbinden, denn es gibt stabiles WLAN in allen Bereichen kostenfrei.<\/p>\n<p>Wir sind gespannt, was noch kommt. Vielen Dank f\u00fcr das informative Interview, liebe Sabina<\/p>\n<\/div>\r\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Unsere TUI TIME TO SMILE Appartements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Deutschland, Ostseek\u00fcste: TUI TIME TO SMILE De Ole School<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>F\u00fcr Familien<\/li>\n\n\n\n<li>3 veschiedene Saunen<\/li>\n\n\n\n<li>30 Appartements <\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-de-ole-school-1318877\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE De Ole School<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"1318877\"\r\n            hotel-name=\"tui-time-to-smile-de-ole-school\"\r\n                            duration=\"7\"                    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=\"1318877\"\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=\"7\"                              data-giata-id=\"1318877\"\r\n                  data-hotel-name=\"tui-time-to-smile-de-ole-school\"><\/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=\"7\"                    giata-id=\"1318877\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00d6sterreich, Salzburger Land: TUI TIME TO SMILE Aparthotel Golden Lodges<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>direkt an der Skipiste<\/li>\n\n\n\n<li>luxuri\u00f6ses Aparthotel<\/li>\n\n\n\n<li>26 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-aparthotel-golden-lodges-1374640\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Aparthotel Golden Lodges<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"1374640\"\r\n            hotel-name=\"tui-time-to-smile-aparthotel-golden-lodges\"\r\n                            duration=\"7\"                    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=\"1374640\"\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=\"7\"                              data-giata-id=\"1374640\"\r\n                  data-hotel-name=\"tui-time-to-smile-aparthotel-golden-lodges\"><\/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=\"7\"                    giata-id=\"1374640\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Italien, Sizilien: TUI TIME TO SMILE Villa Giardini<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ideale Lage an der Promenade<\/li>\n\n\n\n<li>viele Sehensw\u00fcrdigkeiten in der N\u00e4he<\/li>\n\n\n\n<li>52 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-villa-giardini-413597\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Villa Giardini<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"413597\"\r\n            hotel-name=\"tui-time-to-smile-villa-giardini\"\r\n                            duration=\"7\"                    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=\"413597\"\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=\"7\"                              data-giata-id=\"413597\"\r\n                  data-hotel-name=\"tui-time-to-smile-villa-giardini\"><\/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=\"7\"                    giata-id=\"413597\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Karibik, Cura\u00e7ao: TUI TIME TO SMILE Chocogo Dive &amp; Beach Resort Curacao<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>karibischer Flair<\/li>\n\n\n\n<li>Tauchen<\/li>\n\n\n\n<li>129 Appartements, 60 Bungalows<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-chocogo-dive-and-beach-resort-curacao-10356\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Chogogo Dive<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"10356\"\r\n            hotel-name=\"tui-time-to-smile-chocogo-dive-and-beach-resort-curacao\"\r\n                            duration=\"7\"                    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=\"10356\"\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=\"7\"                              data-giata-id=\"10356\"\r\n                  data-hotel-name=\"tui-time-to-smile-chocogo-dive-and-beach-resort-curacao\"><\/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=\"7\"                    giata-id=\"10356\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Teneriffa, Los Cristianos: TUI TIME TO SMILE Ohasis Boutique Suites<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Im beliebten Urlaubsort Los Cristianos<\/li>\n\n\n\n<li>Restaurants und Bars in der N\u00e4he<\/li>\n\n\n\n<li>89 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-ohasis-boutique-suites-3642\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Ohasis Boutique Suites<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"3642\"\r\n            hotel-name=\"tui-time-to-smile-ohasis-boutique-suites\"\r\n                            duration=\"7\"                    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=\"3642\"\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=\"7\"                              data-giata-id=\"3642\"\r\n                  data-hotel-name=\"tui-time-to-smile-ohasis-boutique-suites\"><\/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=\"7\"                    giata-id=\"3642\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gran Canaria, Campo Internacional: TUI TIME TO SMILE Bungalows Tara<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gro\u00dfz\u00fcgiger Poolbereich und einladende Terrasse<\/li>\n\n\n\n<li>Zentrale Lage, ideal f\u00fcr Erkundungen<\/li>\n\n\n\n<li>35 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-bungalows-tara-2665\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Bungalows Tara<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"2665\"\r\n            hotel-name=\"tui-time-to-smile-bungalows-tara\"\r\n                            duration=\"7\"                    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=\"2665\"\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=\"7\"                              data-giata-id=\"2665\"\r\n                  data-hotel-name=\"tui-time-to-smile-bungalows-tara\"><\/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=\"7\"                    giata-id=\"2665\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lanzarote, Puerto del Carmen: TUI TIME TO SMILE Guinate Club<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Au\u00dfenpool mit Schwalldusche und Sonnenterrasse<\/li>\n\n\n\n<li>Strand und Stadtzentrum in wenigen Gehminuten erreichbar<\/li>\n\n\n\n<li>41 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-guinate-club-13665\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Guinate Club<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"13665\"\r\n            hotel-name=\"tui-time-to-smile-guinate-club\"\r\n                            duration=\"7\"                    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=\"13665\"\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=\"7\"                              data-giata-id=\"13665\"\r\n                  data-hotel-name=\"tui-time-to-smile-guinate-club\"><\/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=\"7\"                    giata-id=\"13665\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Griechische Inseln, Kos: TUI TIME TO SMILE Saline<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Neu bei TUI: Komplettrenovierung in 2025<\/li>\n\n\n\n<li>Im malerischen Ferienort Tigaki nah zum Sandstrand&nbsp;<\/li>\n\n\n\n<li>Poolbereich mit Kinderpool &#8211; f\u00fcr Paare &amp; Familien<\/li>\n\n\n\n<li>52 Studios &amp; Apartments&nbsp;&nbsp;<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-saline-32387\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Saline<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"32387\"\r\n            hotel-name=\"tui-time-to-smile-saline\"\r\n                            duration=\"7\"                    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=\"32387\"\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=\"7\"                              data-giata-id=\"32387\"\r\n                  data-hotel-name=\"tui-time-to-smile-saline\"><\/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=\"7\"                    giata-id=\"32387\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Portugal, Algarve: TUI TIME TO SMILE Balaia Senses<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Traumhafte Lage mit atemberaubender Sicht<\/li>\n\n\n\n<li>Direkt neben Golfplatz gelegen<\/li>\n\n\n\n<li>17 Appartements<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-balaia-senses-683047\/hotelinformation\/\" target=\"_blank\" rel=\"noreferrer noopener\">mehr Infos zum TUI TIME TO SMILE Balaia Senses<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"683047\"\r\n            hotel-name=\"tui-time-to-smile-balaia-senses\"\r\n                            duration=\"7\"                    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=\"683047\"\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=\"7\"                              data-giata-id=\"683047\"\r\n                  data-hotel-name=\"tui-time-to-smile-balaia-senses\"><\/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=\"7\"                    giata-id=\"683047\"\r\n                    show-error-ctas=\"false\"\r\n                    show-tooltip=\"false\"\r\n                    show-sun-spinner\r\n            >\r\n            <\/tui-hotel-best-offer>\r\n            <\/span>\r\n\r\n            <span class=\"best-offer-list__element best-offer-list__element--fallback best-offer-list__element--hidden\">\r\n                <img decoding=\"async\" src=\"https:\/\/static.tui.com\/assets\/v2\/icons\/tui-light\/location-track.svg\" width=\"40\" height=\"40\" alt=\"Icon Best Offer Fallback\" \/>\r\n                <span class=\"best-offer-list__element--headline\">Wir konnten leider kein passendes Angebot finden.<\/span>\r\n                <\/span>\r\n            <\/span>\r\n            <\/tui-image-gallery>\r\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zypern, Paphos: TUI TIME TO SMILE Aliathon Aegean<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mit Innen- &amp; Au\u00dfenpool sowie herrlicher Sonnenterrasse<\/li>\n\n\n\n<li>Zahlreiche Sport- &amp; Wellness Angebote<\/li>\n\n\n\n<li>Fr\u00fchst\u00fcck oder Halbpension zubuchbar<\/li>\n\n\n\n<li><a href=\"https:\/\/www.tui.com\/hotels\/tui-time-to-smile-aliathon-aegean-1026445\/hotelinformation\/\">mehr Infos zum TUI TIME TO SMILE Aliathon Aegean<\/a> gibt es auf tui.com<\/li>\n<\/ul>\n\n\n\r\n    <tui-image-gallery\r\n            variant=\"love-at-first-sight\"\r\n            type=\"info\"\r\n            giata-id=\"1026445\"\r\n            hotel-name=\"tui-time-to-smile-aliathon-aegean\"\r\n                            duration=\"7\"                    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=\"1026445\"\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=\"7\"                              data-giata-id=\"1026445\"\r\n                  data-hotel-name=\"tui-time-to-smile-aliathon-aegean\"><\/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=\"7\"                    giata-id=\"1026445\"\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>Weitere Appartementanlagen sind noch in Planung! \ud83d\ude42<\/p>\n\n\n        <div class=\"button-wrapper\">\r\n            <a class=\"tui-button-default\" href=\"https:\/\/www.tui.com\/time-to-smile\/\"\r\n               target=\"_blank\">\r\n                Hier findest Du alle TUI TIME TO SMILE Angebote            <\/a>\r\n        <\/div>\r\n    \n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestaltet euren Urlaub oder eure Workation ganz individuell und wohnt in stylishen Appartements mit hochwertiger Ausstattung und Wohnkomfort. Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina. TUI Appartementurlaub zum Wohlf\u00fchlen! Urlaub mit TUI TIME TO SMILE f\u00fchlt sich an wie Urlaub im eigenen zuhause,<\/p>\n","protected":false},"author":86,"featured_media":415902,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4066,4052,4072],"tags":[3648,852,602,4090,3818],"class_list":["post-414240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archiv-andere-reisearten","category-archiv-reisearten","category-archiv-reiseplanung","tag-aktuell","tag-autoreisen","tag-hoteltipps","tag-langzeiturlaub-und-workation","tag-time-to-smile"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600<\/title>\n<meta name=\"description\" content=\"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.\" \/>\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\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600\" \/>\n<meta property=\"og:description\" content=\"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/\" \/>\n<meta property=\"og:site_name\" content=\"TUI.com Reiseblog \u2600\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-16T14:32:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-26T15:59:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TUI Reiseexperten\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"TUI Reiseexperten\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/\"},\"author\":{\"name\":\"TUI Reiseexperten\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#\\\/schema\\\/person\\\/e0405bcbd5102f3edd229113f1c50a06\"},\"headline\":\"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE\",\"datePublished\":\"2023-11-16T14:32:07+00:00\",\"dateModified\":\"2025-03-26T15:59:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/\"},\"wordCount\":530,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/DLM0917_On_Holiday_29695.jpg\",\"keywords\":[\"Aktuell\",\"Autoreisen\",\"Hoteltipps\",\"Langzeiturlaub und Workation\",\"TIME TO SMILE\"],\"articleSection\":[\"Andere Reisearten\",\"Reisearten\",\"Reiseplanung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/\",\"name\":\"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/DLM0917_On_Holiday_29695.jpg\",\"datePublished\":\"2023-11-16T14:32:07+00:00\",\"dateModified\":\"2025-03-26T15:59:54+00:00\",\"description\":\"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/DLM0917_On_Holiday_29695.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/DLM0917_On_Holiday_29695.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/neu-bei-tui-appartementurlaub-mit-time-to-smile\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE\"}]},{\"@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\\\/e0405bcbd5102f3edd229113f1c50a06\",\"name\":\"TUI Reiseexperten\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/TUIMitarbeiter-178x176.jpg\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/TUIMitarbeiter-178x176.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/TUIMitarbeiter-178x176.jpg\",\"caption\":\"TUI Reiseexperten\"},\"description\":\"TEST\",\"url\":\"https:\\\/\\\/www.tui.com\\\/blog\\\/author\\\/tui-mitarbeiter\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600","description":"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.","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\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/","og_locale":"de_DE","og_type":"article","og_title":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600","og_description":"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.","og_url":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/","og_site_name":"TUI.com Reiseblog \u2600","article_published_time":"2023-11-16T14:32:07+00:00","article_modified_time":"2025-03-26T15:59:54+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg","type":"image\/jpeg"}],"author":"TUI Reiseexperten","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"TUI Reiseexperten","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#article","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/"},"author":{"name":"TUI Reiseexperten","@id":"https:\/\/www.tui.com\/blog\/#\/schema\/person\/e0405bcbd5102f3edd229113f1c50a06"},"headline":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE","datePublished":"2023-11-16T14:32:07+00:00","dateModified":"2025-03-26T15:59:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/"},"wordCount":530,"commentCount":0,"publisher":{"@id":"https:\/\/www.tui.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg","keywords":["Aktuell","Autoreisen","Hoteltipps","Langzeiturlaub und Workation","TIME TO SMILE"],"articleSection":["Andere Reisearten","Reisearten","Reiseplanung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/","url":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/","name":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE - TUI.com Reiseblog \u2600","isPartOf":{"@id":"https:\/\/www.tui.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#primaryimage"},"image":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg","datePublished":"2023-11-16T14:32:07+00:00","dateModified":"2025-03-26T15:59:54+00:00","description":"Appartementurlaub mit TUI zum Wohlf\u00fchlen! Wir stellen euch das neue Konzept vor, inklusive eines Interviews mit TUI Kollegin Sabina.","breadcrumb":{"@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#primaryimage","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2023\/11\/DLM0917_On_Holiday_29695.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.tui.com\/blog\/neu-bei-tui-appartementurlaub-mit-time-to-smile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.tui.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Neu bei TUI: Appartementurlaub mit TUI TIME TO SMILE"}]},{"@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\/e0405bcbd5102f3edd229113f1c50a06","name":"TUI Reiseexperten","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2016\/10\/TUIMitarbeiter-178x176.jpg","url":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2016\/10\/TUIMitarbeiter-178x176.jpg","contentUrl":"https:\/\/www.tui.com\/blog\/wp-content\/uploads\/2016\/10\/TUIMitarbeiter-178x176.jpg","caption":"TUI Reiseexperten"},"description":"TEST","url":"https:\/\/www.tui.com\/blog\/author\/tui-mitarbeiter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/414240","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\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/comments?post=414240"}],"version-history":[{"count":71,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/414240\/revisions"}],"predecessor-version":[{"id":464302,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/posts\/414240\/revisions\/464302"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media\/415902"}],"wp:attachment":[{"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/media?parent=414240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/categories?post=414240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tui.com\/blog\/wp-json\/wp\/v2\/tags?post=414240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}