PageSourceSearch

https://housity.net/germany/

html housity.net collected 2026-10-10 00:58:42 UTC 129,619 bytes, 3,801 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US" >
3
4<head>
5    <!-- Meta -->
6    <meta charset="utf-8">
7    <meta name="robots" content="index, follow">
8
9    <meta name="viewport" content="width=device-width, initial-scale=1.0">
10    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
11
12    <title>Germany - Travel Guide 2026</title>
13    <meta name="author" content="Housity">
14    <meta name="description" content="Germany is a central European country known for its rich history, cultural heritage, and economic strength. It is famous for its contributions to philosophy, music, and science, as well as its scenic landscapes from the Alps to the Rhine.">
15    <meta name="keywords" content="Germany, Travel Guide">
16    <meta name="theme-color" content="">
17    
18    <!-- Rel -->
19    <link rel="icon" href="https://images.housity.net/logo.png" type="image/png">
20    
21    <link rel="preconnect" href="https://fonts.googleapis.com">
22    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
23    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&family=Fraunces:wght@400;500;600;700;800;900&display=swap">
24    
24<script defer src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
24
25
26    <link rel="preload" href="https://images.housity.net/locations/germany.jpg" as="image" media="(min-width: 768px)" fetchpriority="high">
27
28    <link rel="canonical" href="https://housity.net/germany/" />
29
30    <!-- Languages -->
31            <link rel="alternate" hreflang="en" href="https://housity.net/germany/" />
32            <link rel="alternate" hreflang="es" href="https://housity.es/germany/" />
33            <link rel="alternate" hreflang="fr" href="https://housity.fr/germany/" />
34            <link rel="alternate" hreflang="de" href="https://de.housity.net/germany/" />
35            <link rel="alternate" hreflang="it" href="https://housity.it/germany/" />
36            <link rel="alternate" hreflang="nl" href="https://housity.nl/germany/" />
37            <link rel="alternate" hreflang="pt" href="https://pt.housity.net/germany/" />
38            <link rel="alternate" hreflang="ru" href="https://ru.housity.net/germany/" />
39            <link rel="alternate" hreflang="zh" href="https://zh.housity.net/germany/" />
40            <link rel="alternate" hreflang="ja" href="https://ja.housity.net/germany/" />
41    
42    <!-- GetYourGuide Analytics -->
43    
43<script async defer src="https://widget.getyourguide.com/dist/pa.umd.production.min.js" data-gyg-partner-id="KACJMIV"></script>
43
44
45
46    <!-- Google tag (gtag.js) -->
47        
47<script defer type="text/javascript" src="https://www.termsfeed.com/public/cookie-consent/4.2.0/cookie-consent.js" charset="UTF-8"></script>
47
48    
48<script type="text/javascript" charset="UTF-8">
49        document.addEventListener('DOMContentLoaded', function() {
50            cookieconsent.run({
51                "notice_banner_type": "simple",
52                "consent_type": "express",
53                "palette": "light",
54                "language": "en",
55                "page_load_consent_levels": ["strictly-necessary"],
56                "notice_banner_reject_button_hide": false,
57                "preferences_center_close_button_hide": false,
58                "page_refresh_confirmation_buttons": false,
59                "website_name": "housity.net",
60                "website_privacy_policy_url": "https://housity.net/cookies/"
61            });
62        });
63    </script>
vendor: 150 bytes, lines 63-64
63
64    <script type="text/plain" data-cookie-consent="tracking" data-cookiecategory="analytics" async src="https://www.googletagmanager.com/gtag/js?id=
64G-61JHJCJ32J
vendor: 17 bytes, lines 64-65
64"></script>
65    
65<script type="text/plain" data-cookie-consent="tracking" data-cookiecategory="analytics">
66        
vendor: 181 bytes, lines 66-72
66window.dataLayer = window.dataLayer || [];
67
68        function gtag() {
69            dataLayer.push(arguments);
70        }
71        gtag("js", new Date());
72        gtag("config", "
72G-61JHJCJ32J
vendor: 9 bytes, lines 72-73
72");
73    
73</script>
73
74    <noscript>Free cookie consent management tool by <a href="https://www.termsfeed.com/">TermsFeed</a></noscript>
75
76
77    <style>
78        /* Botón de aceptar */
79        .cc-nb-okagree {
80            background-color: rgb(83, 146, 249) !important; /* verde */
81        }
82
83        /* Botón de rechazar */
84        .cc-nb-reject {
85            background-color: #141726 !important; /* rojo */
86        }
87</style>
88
89     
90
91    
91<script type="application/ld+json">
92        {
93            "@context": "https://schema.org",
94            "@type": "ItemList",
95            "itemListElement": [
96                 {
97                        "@type": "ListItem",
98                        "position": 1,
99                        "name": "Destinations",
100                        "url": "https://housity.net/germany/#destinations",
101                        "image": "https://images.housity.net/locations/germany.jpg",
102                        "description": "Top Destinations in Germany"
103                    }
104                    ,
105                                     {
106                        "@type": "ListItem",
107                        "position": 2,
108                        "name": "Tours & Activities",
109                        "url": "https://housity.net/germany/#tours",
110                        "image": "https://images.housity.net/categories/guided-tours.jpg",
111                        "description": "Explore the best activities and guided tours that highlight the city's unique attractions"
112                    }
113                    ,
114                                     {
115                        "@type": "ListItem",
116                        "position": 3,
117                        "name": "FAQ",
118                        "url": "https://housity.net/germany/#faq",
119                        "image": "https://images.housity.net/logo.png",
120                        "description": "Frequently Asked Questions about Germany"
121                    }
122                                                ]
123        }
124    </script>
124
125    
125<script type="application/ld+json">
126        {
127            "@context": "https://schema.org",
128            "@type": "ItemList",
129            "name": "Germany",
130            "itemListElement": [
131                {"@type":"ListItem","position":1,"item":{"@type":"Place","name":"Stuttgart","description":"Stuttgart is the capital of the German state of Baden-Württemberg, known for its automotive industry with companies like Mercedes-Benz and Porsche.","address":{"@type":"PostalAddress","addressLocality":"Stuttgart","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"48.7758459","longitude":"9.1829321"},"url":"https:\/\/housity.net\/stuttgart","image":"https:\/\/images.housity.net\/locations\/stuttgart.jpg"}},
132                        {"@type":"ListItem","position":2,"item":{"@type":"Place","name":"Leipzig","description":"Leipzig is a vibrant city in eastern Germany, known for its rich musical heritage, including associations with Bach and Mendelssohn, as well as its historic trade fairs and lively cultural scene.","address":{"@type":"PostalAddress","addressLocality":"Leipzig","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.3396955","longitude":"12.3730747"},"url":"https:\/\/housity.net\/leipzig","image":"https:\/\/images.housity.net\/locations\/leipzig.jpg"}},
133                        {"@type":"ListItem","position":3,"item":{"@type":"Place","name":"Düsseldorf","description":"A major city on the Rhine River in western Germany, known for its fashion industry, art scene, and the bustling Altstadt (Old Town) with its many bars and restaurants.","address":{"@type":"PostalAddress","addressLocality":"Düsseldorf","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.2230411","longitude":"6.7824545"},"url":"https:\/\/housity.net\/dsseldorf","image":"https:\/\/images.housity.net\/locations\/dsseldorf.jpg"}},
134                        {"@type":"ListItem","position":4,"item":{"@type":"Place","name":"Dortmund","description":"Dortmund is a major city in the Ruhr region of Germany, known for its industrial heritage, vibrant cultural scene, and the iconic Signal Iduna Park football stadium.","address":{"@type":"PostalAddress","addressLocality":"Dortmund","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.5135872","longitude":"7.4652981"},"url":"https:\/\/housity.net\/dortmund","image":"https:\/\/images.housity.net\/locations\/dortmund.jpg"}},
135                        {"@type":"ListItem","position":5,"item":{"@type":"Place","name":"Essen","description":"A major city in the Ruhr region, known for its industrial heritage, the Zollverein Coal Mine UNESCO site, and vibrant cultural scene.","address":{"@type":"PostalAddress","addressLocality":"Essen","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.4556432","longitude":"7.0115552"},"url":"https:\/\/housity.net\/essen","image":"https:\/\/images.housity.net\/locations\/essen.jpg"}},
136                        {"@type":"ListItem","position":6,"item":{"@type":"Place","name":"Bremen","de
136scription":"Bremen is a major city in northern Germany, known for its historic market square, the Bremen Town Musicians statue, and its UNESCO-listed Town Hall and Roland statue.","address":{"@type":"PostalAddress","addressLocality":"Bremen","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"53.0792962","longitude":"8.8016937"},"url":"https:\/\/housity.net\/bremen","image":"https:\/\/images.housity.net\/locations\/bremen.jpg"}},
137                        {"@type":"ListItem","position":7,"item":{"@type":"Place","name":"Dresden","description":"Dresden, the capital of Saxony, is known for its stunning Baroque architecture and its rich cultural history, including landmarks like the Zwinger Palace and the Frauenkirche.","address":{"@type":"PostalAddress","addressLocality":"Dresden","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.05","longitude":"13.74"},"url":"https:\/\/housity.net\/dresden","image":"https:\/\/images.housity.net\/locations\/dresden.jpg"}},
138                        {"@type":"ListItem","position":8,"item":{"@type":"Place","name":"Hanover","description":"Hanover is the capital and largest city of the German state of Lower Saxony. Known for its major trade fairs, historic gardens, and the Herrenhausen Palace, it blends modernity with tradition.","address":{"@type":"PostalAddress","addressLocality":"Hanover","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"52.3758916","longitude":"9.7320104"},"url":"https:\/\/housity.net\/hannover","image":"https:\/\/images.housity.net\/locations\/hannover.jpg"}},
139                        {"@type":"ListItem","position":9,"item":{"@type":"Place","name":"Bochum","description":"Bochum is a city in the Ruhr region of North Rhine-Westphalia, Germany, known for its industrial heritage, the Ruhr University Bochum, and cultural venues like the Jahrhunderthalle.","address":{"@type":"PostalAddress","addressLocality":"Bochum","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.4818445","longitude":"7.2162363"},"url":"https:\/\/housity.net\/bochum","image":"https:\/\/images.housity.net\/locations\/bochum.jpg"}},
140                        {"@type":"ListItem","position":10,"item":{"@type":"Place","name":"Berlin","description":"Berlin is the capital and largest city of Germany, known for its rich history, vibrant art scene, and iconic landmarks like the Brandenburg Gate and Berlin Wall.","address":{"@type":"PostalAddress","addressLocality":"Berlin","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"52.5200066","longitude":"13.404954"},"url":"https:\/\/housity.net\/berlin","image":"https:\/\/images.housity.net\/locations\/berlin.jpg"}},
141                        {"@type":"ListItem","position":11,"item":{"@type":"Place","name":"Wuppertal","description":"Wuppertal is a city in North Rhine-Westphalia, Germany, famous for its unique suspended monorail (Schwebebahn), which glides above the Wupper River. Known for its hilly landscape, historic textile industry, and the birthplace of the band BAP, it offers a mix of urban culture and green spaces.","address":{"@type":"PostalAddress","addressLocality":"Wuppertal","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"51.2562128","longitude":"7.1507636"},"url":"https:\/\/housity.net\/wuppertal","image":"https:\/\/images.housity.net\/locations\/wuppertal.jpg"}},
142                        {"@type":"ListItem","position":12,"item":{"@type":"Place","name":"Bonn","description":"Bonn, a city on the banks of the Rhine in western Germany, was the capital of West Germany from 1949 to 1990. It is known for its historic Beethoven House, museums, and scenic riverside setting.","address":{"@type":"PostalAddress","addressLocality":"Bonn","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"50.73743","longitude":"7.0982068"},"url":"https:\/\/housity.net\/bonn","image":"https:\/\/images.housity.net\/locations\/bonn.jpg"}},
143                        {"@type":"ListItem","position":13,"item":{"@type":"Place","name":"Bielefeld","description":"Bielefeld is a city in North Rhine-Westphalia, Germany, known for its historical Sparrenburg Castle and vibrant cultural scene.","address":{"@type":"PostalAddress","addressLocality":"Bielefeld","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"52.0302285","longitude":"8.5324708"},"url":"https:\/\/housity.net\/bielefeld","image":"https:\/\/images.housity.net\/locations\/bielefeld.jpg"}},
144                        {"@type":"ListItem","position":14,"item":{"@type":"Place","name":"Mannheim","description":"Mannheim is a city in southwestern Germany, known for its unique grid-like street layout and as a major industrial and cultural hub, situated at the confluence of the Rhine and Neckar rivers.","address":{"@type":"PostalAddress","addressLocality":"Mannheim","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"49.4874592","longitude":"8.4660395"},"url":"https:\/\/housity.net\/mannheim","image":"https:\/\/images.housity.net\/locations\/mannheim.jpg"}},
145                        {"@type":"ListItem","position":15,"item":{"@type":"Place","name":"Karlsruhe","description":"A city in southwestern Germany known for its fan-shaped layout, the Karlsruhe Institute of Technology, and the Karlsruhe Palace, blending science, culture, and green spaces.","address":{"@type":"PostalAddress","addressLocality":"Karlsruhe","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"-14.44222","longitude":"-67.52833"},"url":"https:\/\/housity.net\/karlsruhe","image":"https:\/\/images.housity.net\/locations\/karlsruhe.jpg"}},
146                        {"@type":"ListItem","position":16,"item":{"@type":"Place","name":"Augsburg","description":"Augsburg is a historic city in the Swabia region of Bavaria, Germany. Founded by the Romans in 15 BC, it is one of the oldest cities in the country and known for its Renaissance architecture, the Augsburg textile industry, and the Fuggerei, the world&#039;s oldest social housing complex.","address":{"@type":"PostalAddress","addressLocality":"Augsburg","addressCountry":"Germany"},"geo":{"@type":"GeoCoordinates","latitude":"48.36889","longitude":"10.89778"},"url":"https:\/\/housity.net\/augsburg","image":"https:\/\/images.housity.net\/locations\/augsburg.jpg"}}            ]
147        }
148    </script>
148
149
150    <!-- OG -->
151    <meta property="og:locale" content="en-US">
152    <meta property="og:title" content=" Travel Guide | Housity">
153    <meta property="og:description" content="Germany is a central European country known for its rich history, cultural heritage, and economic strength. It is famous for its contributions to philosophy, music, and science, as well as its scenic landscapes from the Alps to the Rhine.">
154    <meta property="og:image" content="https://images.housity.net/locations/germany-thumb.jpg">
155    <meta property="og:url" content="https://housity.net/germany/">
156    <meta property="og:type" content="location">
157    <meta property="og:site_name" content="Housity">
158            <meta property="og:locale:alternate" content="en">
159            <meta property="og:locale:alternate" content="es">
160            <meta property="og:locale:alternate" content="fr">
161            <meta property="og:locale:alternate" content="de">
162            <meta property="og:locale:alternate" content="it">
163            <meta property="og:locale:alternate" content="nl">
164            <meta property="og:locale:alternate" content="pt">
165            <meta property="og:locale:alternate" content="ru">
166            <meta property="og:locale:alternate" content="zh">
167            <meta property="og:locale:alternate" content="ja">
168    
169    
169<script>
170        document.addEventListener("DOMContentLoaded", function() {
171
172            document.getElementById("shareButton").addEventListener("click", function() {
173                if (navigator.share) {
174                    navigator.share({
175                            title: "Germany - Travel Guide 2026",
176                            text: "Germany is a central European country known for its rich history, cultural heritage, and economic strength. It is famous for its contributions to philosophy, music, and science, as well as its scenic landscapes from the Alps to the Rhine.",
177                            url: "https://housity.net/germany/"
178                        })
179                        .then(() => console.log('Shared!'))
180                        .catch((error) => console.error('Error sharing:', error));
181                }
182            });
183        });
184    </script>
184
185
186    
186<script>
187    function ImgError(source, plch, n = "") {
188        console.log("Img error: " + n + "(" + plch + ")");
189        if (plch == "") plch = "photo-default.jpg";
190        source.src = "https://images.housity.net/" + plch;
191        source.onerror = null;
192        if (n !== "") {
193            if (ci.includes(n)) {
194                return false;
195            }
196            ci.push(n);
197            Cim(n);
198        }
199        return true;
200    }
201
202    function goTo(id) {
203        var el = document.getElementById(id);
204        if (el) {
205            var elementPosition = el.getBoundingClientRect().top;
206            var offsetPosition = elementPosition + window.pageYOffset - 140;
207            window.scrollTo({
208                top: offsetPosition,
209                behavior: 'smooth'
210            });
211        }
212    }
213
214    var ci = [];
215
216    function Cim(n) {
217        fetch('https://utils.housity.net/cim.php?n=' + n)
218            .then(response => {
219                console.log(response);
220            })
221            .catch(error => {
222                console.error('Error Cim:', error);
223            });
224    }
225
226    function toggleOptions() {
227        const optionsList = document.getElementById("options-list");
228        optionsList.style.display = optionsList.style.display == "none" ? "block" : "none";
229    }
230
231
232    function sliderNav(e, id, dir) {
233        e.preventDefault(); 
234        e.stopPropagation();
235
236        const slider = document.querySelector(`.img-slider[data-slider="${id}"]`);
237        const imgs = slider.querySelectorAll('.slide-img');
238        const dots = slider.querySelectorAll('.dot');
239        let current = [...imgs].findIndex(img => img.classList.contains('active'));
240
241        imgs[current].classList.remove('active');
242        dots[current].classList.remove('active');
243
244        current = (current + dir + imgs.length) % imgs.length;
245
246        if (imgs[current].dataset.src) {
247            imgs[current].src = imgs[current].dataset.src;
248            delete imgs[current].dataset.src;
249        }
250
251        imgs[current].classList.add('active');
252        dots[current].classList.add('active');
253    }
254
255    function startClock(hours, minutes) {
256        function updateClock() {
257            minutes++;
258            if (minutes > 59) {
259                minutes = 0;
260                hours++;
261                if (hours > 23) hours = 0;
262            }
263
264            document.getElementById("hour").textContent = String(hours).padStart(2, '0');
265            document.getElementById("minute").textContent = String(minutes).padStart(2, '0');
266
267        }
268
269        setInterval(updateClock, 60000);
270    }
271
272
273    function Share(el) {
274        const title = el.dataset.title || document.title;
275        const text = el.dataset.text || "";
276        const url = el.dataset.url || window.location.href;
277
278        if (navigator.share) {
279            navigator.share({
280                    title,
281                    text,
282                    url
283                })
284                .then(() => console.log('Shared!'))
285                .catch((error) => console.error('Error sharing:', error));
286        } else {
287            // Fallback opcional para navegadores sin soporte de Web Share API
288            navigator.clipboard.writeText(url)
289                .then(() => alert('Link copied to clipboard'))
290                .catch(() => console.error('Unable to copy link'));
291        }
292    }
293
294
295
296    function OnLocationChartSelected(c) {
297        var els = document.getElementsByClassName("nearby-holder");
298        for (var i = 0; i < els.length; i++) {
299            els[i].style.display = "none";
300        }
301        document.querySelectorAll('.location-option').forEach(function(option) {
302            option.classList.remove('selected');
303        });
304        document.getElementById(c + "-holder").style.display = "flex";
305        document.getElementById(c + "-button").classList.add("selected");
306    }
307
308</script>
308     
308<script>
309
310        var loaded_tours = {}
311        function selectTourCategory(element, lang, categoryId, city, country) {
312            // Remove 'selected' class from all options
313            const options = document.querySelectorAll('.tour-option');
314            options.forEach(option => option.classList.remove('selected'));
315
316            // Add 'selected' class to the clicked option
317            element.classList.add('selected');
318
319
320            if (loaded_tours[categoryId + "-" + city + "-" + country]) {
321                document.getElementById("tour_results").innerHTML = loaded_tours[categoryId + "-" + city + "-" + country];
322                return;
323            }
324
325            // Call the function to filter or load tours
326            filterToursByCategory(lang, categoryId, city, country);
327        }
328
329        function filterToursByCategory(lang, categoryId, city, country) {
330            const loading = document.getElementById("tours_loading");
331            const holder = document.getElementById("tour_results");
332
333            holder.style.display = "none";
334            loading.style.display = "block";
335
336            var requestOptions = {
337                method: "POST",
338                headers: {
339                    "Content-Type": "application/json"
340                },
341                body: JSON.stringify({
342                    lang: lang,
343                    category: categoryId,
344                    city: city,
345                    country: country
346                })
347            };
348            fetch('https://utils.housity.net/fetch_tours', requestOptions)
349                .then(response => {
350                    return response.text();
351                })
352                .then(responseText => {
353
354                    holder.innerHTML = responseText;
355                    loading.style.display = "none";
356                    holder.style.display = "block";
357
358                    loaded_tours[categoryId + "-" + city + "-" + country] = responseText;
359                })
360                .catch(error => {
361                    holder.innerHTML = error;
362                    loading.style.display = "none";
363                    holder.style.display = "block";
364                });
365        }
366
367        var loaded_hotels = {}
368        function selectHotelCategory(element, lang, categoryId, city, country) {
369            // Remove 'selected' class from all options
370            const options = document.querySelectorAll('.hotel-option');
371            options.forEach(option => option.classList.remove('selected'));
372
373            // Add 'selected' class to the clicked option
374            element.classList.add('selected');
375
376            if (loaded_hotels[categoryId + "-" + city + "-" + country]) {
377                document.getElementById("hotel_results").innerHTML = loaded_hotels[categoryId + "-" + city + "-" + country];
378                setCompareButtons(); 
379                return;
380            }
381
382
383            // Call the function to filter or load tours
384            filterHotelsByCategory(lang, categoryId, city, country);
385        }
386
387        function filterHotelsByCategory(lang, categoryId, city, country) {
388            const loading = document.getElementById("hotels_loading");
389            const holder = document.getElementById("hotel_results");
390
391            holder.style.display = "none";
392            loading.style.display = "block";
393
394            var requestOptions = {
395                method: "POST",
396                headers: {
397                    "Content-Type": "application/json"
398                },
399                body: JSON.stringify({
400                    lang: lang,
401                    category: categoryId,
402                    city: city,
403                    country: country
404                })
405            };
406            fetch('https://utils.housity.net/fetch_hotels', requestOptions)
407                .then(response => {
408                    return response.text();
409                })
410                .then(responseText => {
411
412                    holder.innerHTML = responseText;
413                    loading.style.display = "none";
414                    holder.style.display = "block";
415
416                    loaded_hotels[categoryId + "-" + city + "-" + country] = responseText;
417
418                    
419                })
420                .catch(error => {
421                    holder.innerHTML = error;
422                    loading.style.display = "none";
423                    holder.style.display = "block";
424                });
425        }
426
427        
428    </script>
428    
428<script>
429    var hotels_to_compare = [];
430
431    function addToCompareSelection(el) {
432        // Bug: length > 2 deja pasar hasta 3 elementos ANTES de bloquear (permite el 4to).
433        // Si el máximo es 3, hay que bloquear cuando ya hay 3.
434        
435
436        var hotel_id = el.dataset.id;
437
438        if (hotels_to_compare.includes(hotel_id)) {
439            // Bug: los arrays no tienen .remove(), hay que usar filter()
440            hotels_to_compare = hotels_to_compare.filter(function(id) {
441                return id !== hotel_id;
442            });
443            el.classList.remove("selected");
444        } else {
445            if (hotels_to_compare.length >= 3) {
446                return;
447            }
448
449            hotels_to_compare.push(hotel_id);
450            // Bug: classList no tiene .push(), es .add()
451            el.classList.add("selected");
452        }
453
454        // Actualizar contador (el span existe en el HTML pero nunca se actualiza)
455        var counter = document.querySelector(".compare-bar-count");
456        if (counter) {
457            counter.textContent = hotels_to_compare.length + "/3 Hotels";
458        }
459
460        //Reset button
461        // Bug: setAttribute guarda todo como string, "interactable"="false" sigue siendo truthy en HTML.
462        // Mejor usar la propiedad .disabled si es un <button>.
463
464        document.getElementById("compare-button-wrap").style.display = hotels_to_compare.length < 1? "none" : "flex";
465        document.getElementById("compare-button").disabled = hotels_to_compare.length < 2;
466    }
467
468    function compareHotels() {
469        if (hotels_to_compare.length < 1) {
470            return;
471        }
472
473        var html = `
474            <div id='compare-popup' class='compare-popup' onclick="if(event.target === this) this.remove();">
475                <div class='compare-content'>
476                    <img class='loading-indicator' src='https://images.housity.net/loading.gif'style='height:50px; object-fit:contain; position: sticky;'/>
477                </div>
478            </div>`;
479            document.body.insertAdjacentHTML("beforeend", html);
480
481        // Bug: fetch() sin argumentos no funciona, necesita al menos una URL
482        fetch("https://utils.housity.net/compare_hotels.php", {
483            method: "POST",
484            headers: { "Content-Type": "application/json" },
485            body: JSON.stringify({ lang: 'en', hotels: hotels_to_compare })
486        })
487        .then(function(response) {
488            return response.text();
489        })
490        .then(function(responseText) {
491            //Add popup with info
492            document.getElementById("compare-popup").innerHTML = responseText;
493        })
494        .catch(function(error) {
495            alert(error);
496        });
497    }
498
499    function closeCompareTab() {
500        document.getElementById("compare-button-wrap").style.display = "none";
501    }
502
503    function setCompareButtons() {
504        var buts = document.querySelectorAll(".compare-button");
505        buts.forEach(function(but) {
506            var id = but.dataset.id;
507            if (hotels_to_compare.includes(id)) {
508                // Bug: classList no tiene .push(), es .add()
509                but.classList.add("selected");
510            }
511        });
512    }
513
514
515    document.addEventListener("DOMContentLoaded", function() {
516        // Bug: "translations" no está definido en ningún lado de este script.
517        // Debe venir de PHP, ej: var translations = { compare: "Compare" };
518        var html = `
519        <div id="compare-button-wrap" class="compare-button-wrap flex-row" style='display:none;'>
520            <span class="compare-bar-count"></span>
521            <button id="compare-button" class="button" onclick="compareHotels();">Compare</button>
522            <button onclick="closeCompareTab();">X</button>
523        </div>`;
524        document.body.insertAdjacentHTML("beforeend", html);
525
526        setCompareButtons();
527
528        document.getElementById("compare-button-wrap").style.display = hotels_to_compare.length < 1? "none" : "flex";
529        document.getElementById("compare-button").disabled = hotels_to_compare.length < 2;
530    });
531</script>
531
532
533<style>
534    /* COMPARE */
535    .compare-button-wrap {
536        background: var(--color-black);
537        color: var(--color-white);
538        position: fixed;
539        z-index: 900;
540        bottom: 20px;
541        width: max-content;
542        justify-self: center;
543        padding: var(--padding-lg);
544        border-radius: var(--radius-full);
545        
546    }
547
548    .compare-popup{
549        position: fixed;
550        top: 0px;
551        left: 0px;
552        background: #11182773;
553        width: 100%;
554        height: 100%;
555        z-index: 999;
556        padding: 1rem;
557        display: flex;
558        justify-content: center;
559        align-items: center;
560    }
561    .compare-content {
562        justify-self: center;
563        align-self: center;
564        background: var(--color-white);
565        border: var(--border-thin);
566        padding: var(--padding-lg);
567        border-radius: var(--radius-md);
568
569        overflow: auto;
570    }
571    .compare-table{
572        text-align: center;
573        border-collapse: separate;
574        border-spacing: 20px;
575
576    }
577    .compare-table th{
578        max-width: 170px;
579    }
580</style>    <style>
581        :root {
582
583
584  /* ===== COLORES DE MARCA ===== */
585
586  /* Color primario */
587  --color-primary: #2CA6A4;
588  --color-primary-light: #E8F8F8;
589  --color-primary-dark: #1D8A88 ;
590
591   --color-accent: #00c896;
592
593   --color-tour: #F0702A;
594   --color-tour-hover: #C2410C;
595   --color-hotel: #0288d1;
596
597 /* Color secundario ?????????????*/ 
598  --color-red: #E11D48;
599  --color-amber: #D97706;
600  --color-green:#16A34A;
601
602  /* Neutros / escala de grises */
603  --color-black: #111827; 
604  --color-gray-900: #1F2937;
605  --color-gray-700: #6B7280;
606  --color-gray-500: #9CA3AF;
607  --color-gray-300: #E5E7EB;
608  --color-gray-100: #F0F2F5;
609  --color-white: #ffffff;
610
611
612  /* Texto y fondo */
613  --color-text-primary: var(--color-gray-900);
614  --color-text-secondary: var(--color-gray-500);
615
616  --color-bg: var(--color-gray-100);
617  --color-bg-alt: var(--color-gray-500);
618  
619
620  /* ===== TIPOGRAFÍA ===== */
621  --font-primary: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
622  --font-secondary: 'Poppins', sans-serif;
623  --font-mono: 'Fira Code', monospace;
624
625  --fw-sm: ;
626  --fw-md: ;
627  --fw-lg: ;
628
629
630  /* Espaciado */
631  --radius-sm:   8px;
632  --radius-md:   12px;
633  --radius-lg:   16px;
634  --radius-xl:   20px;
635  --radius-full: 999px;
636
637
638  /* Sombras */
639  --shadow-sm:  0 1px 3px rgba(0,0,0,.08);
640  --shadow-md:  0 4px 16px rgba(0,0,0,.10);
641  --shadow-lg:  0 8px 32px rgba(185, 147, 147, 0.14);
642
643  /* ===== TRANSICIONES ===== */
644  --transition-fast: 150ms ease;
645  --transition-normal: 250ms ease;
646  --transition-slow: 400ms ease;
647
648
649  /* ===== CONTENEDOR / LAYOUT ===== */
650  --container-max-width: 1200px;
651  --header-height: 72px;
652
653  --padding-xs: .15rem .6rem;
654  --padding-sm: .45rem .8rem;
655  --padding-md: .65rem .9rem; 
656  --padding-lg: .85rem 1rem; 
657
658
659  --border-thin: 1.5px solid var(--color-gray-300);
660  --border-mid: 2px solid var(--color-gray-700);
661  --border-thick: 3px solid var(--color-black);
662}
663
664
665*,
666*::before,
667*::after {
668    box-sizing: border-box;
669}
670
671body {
672    font-family: var(--font-primary);
673    color: var(--color-black);
674    background: var(--color-bg);
675    -webkit-font-smoothing: antialiased;
676
677    display: block;
678    margin: 0px;
679    padding: 0px;
680
681    font-display: swap;
682}
683
684
685.body-content {
686    max-width: 1300px;
687    min-width: 900px;
688    width: 60%;
689    margin: auto;
690    padding-top: 100px;
691}
692
693
694
695a {
696    color: inherit;
697    text-decoration: none;
698}
699
700img {
701    display: block;
702    max-width: 100%;
703}
704
705button {
706    font-family: var(--f-body);
707    cursor: pointer;
708}
709
710/* ROWS AND COLUMNS */
711.flex-row {
712    display: flex;
713    flex-direction: row;
714    gap: 10px;
715    align-items: center;
716    flex-wrap: wrap;
717}
718
719.flex-row-spaced {
720    display: flex;
721    flex-direction: row;
722    gap: 10px;
723    justify-content: space-between;
724    align-items: center;
725    /*flex-wrap: wrap;*/
726}
727
728.row-wrap {
729    display: flex;
730    flex-wrap: wrap;
731    justify-content: space-between;
732    align-items: center;
733    gap: 10px;
734}
735
736.grid-slide {
737    justify-content: space-between;
738    width: 100%;
739    display: grid;
740    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
741    gap: 20px;
742}
743
744.desktop-row {
745    display: flex;
746    flex-direction: row;
747    gap: 10px;
748}
749
750.center-row {
751    width: 100%;
752
753    display: flex;
754    text-align: center;
755    align-items: center;
756    justify-content: center;
757}
758
759
760/*LANG SELECT*/
761.lang-btn {
762    display: inline-flex;
763    align-items: center;
764    gap: .5rem;
765    background: rgba(255, 255, 255, .88);
766    border: var(--border-thin);
767    border-radius: var(--radius-full);
768    padding: .3rem .85rem .3rem .35rem;
769    backdrop-filter: blur(8px);
770    color: var(--color-black);
771    font-family: inherit;
772    font-weight: 700;
773    font-size: .86rem;
774    line-height: 1;
775    cursor: pointer;
776    transition: background .15s, border-color .15s;
777}
778
779.lang-btn:hover {
780    background: var(--color-white);
781    border-color: var(--color-primary);
782}
783
784.lang-chev {
785    opacity: .55;
786}
787
788.lang-flag {
789    width: 24px;
790    height: 24px;
791    border-radius: 50%;
792    object-fit: cover;
793    flex-shrink: 0;
794    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12);
795    background: var(--color-gray-300);
796}
797
798/* ===== PANEL ===== */
799.lang-modal {
800    position: fixed;
801    inset: 0;
802    z-index: 2000;
803    display: grid;
804    place-items: center;
805    padding: 20px;
806    background: rgba(10, 20, 30, .55);
807    backdrop-filter: blur(3px);
808    animation: lang-fade .16s ease;
809}
810
811.lang-modal[hidden] {
812    display: none;
813}
814
815@keyframes lang-fade {
816    from {
817        opacity: 0
818    }
819
820    to {
821        opacity: 1
822    }
823}
824
825@keyframes lang-rise {
826    from {
827        opacity: 0;
828        transform: translateY(10px)
829    }
830
831    to {
832        opacity: 1;
833        transform: none
834    }
835}
836
837@media (prefers-reduced-motion: reduce) {
838
839    .lang-modal,
840    .lang-box {
841        animation: none
842    }
843}
844
845.lang-box {
846    background: var(--color-white);
847    border-radius: var(--radius-xl);
848    width: min(760px, 100%);
849    max-height: min(660px, 88vh);
850    display: flex;
851    flex-direction: column;
852    box-shadow: 0 30px 70px rgba(0, 0, 0, .3);
853    animation: lang-rise .18s ease;
854    overflow: hidden;
855}
856
857.lang-head {
858    display: flex;
859    justify-content: space-between;
860    align-items: flex-start;
861    gap: 1rem;
862    padding: 1.4rem 1.6rem 1.1rem;
863    border-bottom: 1px solid var(--color-gray-300);
864}
865
866.lang-head h2 {
867    margin: 0;
868    font-size: 1.15rem;
869    font-weight: 800;
870    letter-spacing: -.01em;
871}
872
873.lang-head p {
874    margin: .15rem 0 0;
875    font-size: .84rem;
876    line-height: 1.4;
877    color: var(--color-gray-700);
878}
879
880.lang-close {
881    border: 0;
882    background: var(--color-gray-100);
883    color: var(--color-gray-700);
884    width: 34px;
885    height: 34px;
886    border-radius: 50%;
887    font-size: 1.3rem;
888    line-height: 1;
889    cursor: pointer;
890    flex-shrink: 0;
891}
892
893.lang-close:hover {
894    background: var(--color-gray-300);
895    color: var(--color-black);
896}
897
898.lang-grid {
899    display: grid;
900    grid-template-columns: repeat(3, 1fr);
901    gap: .4rem;
902    padding: 1.1rem 1.6rem 1.5rem;
903    overflow: auto;
904}
905
906.lang-opt {
907    display: flex;
908    align-items: center;
909    gap: .7rem;
910    text-decoration: none;
911    border: 1.5px solid transparent;
912    border-radius: var(--radius-md);
913    padding: .6rem .7rem;
914    color: var(--color-black);
915    position: relative;
916    transition: background .12s, border-color .12s;
917}
918
919.lang-opt:hover {
920    background: var(--color-gray-100);
921}
922
923.lang-opt-txt b {
924    display: block;
925    font-size: .9rem;
926    font-weight: 700;
927    line-height: 1.2;
928}
929
930.lang-opt-txt small {
931    display: block;
932    font-size: .72rem;
933    font-weight: 500;
934    color: var(--color-gray-700);
935}
936
937.lang-check {
938    position: absolute;
939    right: .6rem;
940    color: var(--color-primary-dark);
941    opacity: 0;
942}
943
944.lang-opt.selected {
945    border-color: var(--color-primary);
946    background: var(--color-primary-light);
947}
948
949.lang-opt.selected .lang-opt-txt b {
950    color: var(--color-primary-dark);
951}
952
953.lang-opt.selected .lang-check {
954    opacity: 1;
955}
956
957.lang-opt:focus-visible,
958.lang-btn:focus-visible {
959    outline: 2px solid var(--color-primary-dark);
960    outline-offset: 2px;
961}
962
963/* SHARE BUTTON */
964.shareButton {
965    flex-shrink: 0;
966    width: 44px;
967    height: 44px;
968    display: flex;
969    align-items: center;
970    justify-content: center;
971    border: var(--border-thin);
972    border-radius: var(--radius-full);
973    background: var(--color-white);
974    cursor: pointer;
975}
976
977.shareButton img {
978    width: 22px;
979    height: 22px;
980}
981
982.shareButton:hover {
983    border-color: var(--color-primary);
984}
985
986
987/* TITLES */
988h1 {
989    font-size: clamp(1.6rem, 4vw, 2.5rem);
990    font-weight: 900;
991    color: var(--color-black);
992    letter-spacing: -0.02em;
993    margin-bottom: 0px;
994}
995
996h2 {
997    font-size: clamp(1.6rem, 4vw, 2.0rem);
998    /*font-size: 1.5rem 24px;*/
999    font-weight: 900;
1000    color: var(--color-black);
1001    letter-spacing: -0.02em;
1002}
1003
1004h3 {
1005    font-size: 1.25rem;
1006    font-weight: 900;
1007    color: var(--color-black);
1008}
1009
1010h4 {
1011    font-size: 0.7rem;
1012    font-weight: 900;
1013    color: var(--color-primary-dark);
1014    text-transform: uppercase;
1015    letter-spacing: 0.06em;
1016
1017
1018}
1019
1020p {
1021    font-size: 0.9rem;
1022    font-weight: 400;
1023    line-height: 1.75;
1024}
1025
1026
1027/* INPUTS */
1028input,
1029textarea,
1030select {
1031    font-family: inherit;
1032    padding: 12px 16px;
1033    border: var(--border-thin);
1034    border-radius: var(--radius-sm);
1035    background-color: var(--color-gray-100);
1036    font-size: 16px;
1037    color: var(--color-black);
1038    transition: border-color 0.3s, box-shadow 0.3s;
1039    border: none;
1040    border: var(--border-thin);
1041}
1042
1043input,
1044textarea {
1045    cursor: text;
1046    flex: 1;
1047}
1048
1049select {
1050    cursor: pointer;
1051}
1052
1053input:focus,
1054textarea:focus,
1055select:focus {
1056    border-color: none;
1057    box-shadow: none;
1058    outline: none;
1059}
1060
1061/* Placeholder styles */
1062input::placeholder,
1063textarea::placeholder {
1064    color: var(--color-gray-500);
1065    font-style: italic;
1066}
1067
1068input[type="checkbox"] {
1069    -webkit-appearance: none;
1070    -moz-appearance: none;
1071    appearance: none;
1072    width: 20px;
1073    height: 20px;
1074    border: var(--border-mid);
1075    border-radius: 0;
1076    cursor: pointer;
1077    position: relative;
1078    flex: none;
1079    padding: 3px;
1080}
1081
1082input[type="checkbox"]:checked {
1083    background-color: var(--color-primary-dark);
1084    border-color: var(--color-primary-dark);
1085}
1086
1087input[type="checkbox"]:checked::before {
1088    content: '✓';
1089    position: absolute;
1090    top: 0;
1091    left: 5px;
1092    top: -2px;
1093    font-size: 1.1rem;
1094    color: var(--color-white);
1095}
1096
1097form {
1098    line-height: 2;
1099}
1100
1101/* Textarea specific */
1102textarea {
1103    resize: none;
1104    height: 120px;
1105}
1106
1107/* Select specific */
1108select {
1109    appearance: none;
1110    min-width: 70px;
1111    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><polygon points="0,0 20,0 10,10" fill="%23333"/></svg>');
1112    background-repeat: no-repeat;
1113    background-position: right 16px center;
1114    background-size: 12px;
1115}
1116
1117label {
1118    color: var(--color-gray-500);
1119    font-weight: 500;
1120
1121}
1122
1123
1124
1125.custom-select-container {
1126    position: relative;
1127    width: 200px;
1128}
1129
1130.custom-select {
1131    display: none;
1132    /* Ocultamos el verdadero select */
1133}
1134
1135.selected-option {
1136    display: flex;
1137    align-items: center;
1138
1139    padding: 8px;
1140    cursor: pointer;
1141}
1142
1143.selected-option img {
1144    width: 20px;
1145    height: 20px;
1146    margin-right: 8px;
1147}
1148
1149.options-list {
1150    display: none;
1151    position: absolute;
1152    border: 1px solid #ccc;
1153    width: 100%;
1154    background: white;
1155    z-index: 100;
1156}
1157
1158.option-item {
1159    display: flex;
1160    align-items: center;
1161    padding: 8px;
1162    cursor: pointer;
1163}
1164
1165.option-item img {
1166    width: 20px;
1167    height: 20px;
1168    margin-right: 8px;
1169}
1170
1171.option-item:hover {
1172    background-color: #f0f0f0;
1173}
1174
1175
1176.location_icon {
1177    width: 30px;
1178    height: 30px;
1179}
1180
1181.container {
1182    background-color: var(--color-white);
1183    padding: var(--padding-lg);
1184    border-radius: var(--radius-md);
1185    /*width: 100%;*/
1186    box-shadow: var(--shadow-sm);
1187    border: var(--border-thin);
1188}
1189
1190
1191.tooltips {
1192    position: relative;
1193    display: flex;
1194    gap: 20px;
1195    padding: var(--padding-sm);
1196    border-radius: var(--radius-md);
1197    width: max-content;
1198    background-color: var(--color-white);
1199    align-items: center;
1200    flex-wrap: wrap;
1201    max-width: -webkit-fill-available;
1202}
1203
1204.tooltip {
1205    margin: 0px;
1206    display: flex;
1207    gap: 5px;
1208    align-items: center;
1209    font-weight: 500;
1210    font-size: 1rem;
1211    letter-spacing: -.5px;
1212    cursor: help;
1213    position: relative;
1214}
1215
1216.tooltip::after {
1217    content: attr(data-description);
1218    position: absolute;
1219    bottom: 100%;
1220    padding: 8px;
1221    background-color: var(--color-white);
1222    color: var(--color-gray-900);
1223    border-radius: var(--radius-md);
1224    visibility: hidden;
1225    opacity: 0;
1226    transition: opacity 0.3s;
1227    line-height: normal;
1228}
1229
1230.tooltip:hover::after {
1231    visibility: visible;
1232    opacity: 1;
1233}
1234
1235.internal-link {
1236    text-decoration: none;
1237    color: var(--color-primary-dark);
1238    font-weight: bold;
1239}
1240
1241.internal-link:hover {
1242    text-decoration: underline;
1243}
1244
1245
1246/* HEADER */
1247header {
1248    background-color: transparent;
1249    padding: 20px;
1250    position: fixed;
1251    width: -webkit-fill-available;
1252    z-index: 1001;
1253    transition: var(--transition-fast);
1254    top: 0px;
1255}
1256
1257.header-elements {
1258    display: flex;
1259    justify-content: space-between;
1260    align-items: center;
1261    max-width: 1300px;
1262    margin: auto;
1263    width: 60%;
1264}
1265
1266header.scrolled {
1267    background-color: var(--color-white);
1268    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
1269}
1270
1271.header-logo {
1272    max-width: 100px;
1273    max-height: 80px;
1274    object-fit: contain;
1275}
1276
1277
1278/* FOOTER */
1279footer {
1280    width: 100%;
1281    background: linear-gradient(180deg, var(--color-black) 0%, var(--color-gray-900) 100%);
1282    color: var(--color-white);
1283    padding: 70px 0 30px;
1284
1285}
1286
1287
1288.footer-icon {
1289    width: 20px;
1290    height: 20px;
1291}
1292
1293
1294.footer-row {
1295    display: grid;
1296    grid-template-columns: 1.5fr 1fr 1fr 1fr;
1297    gap: 60px;
1298    padding-bottom: 50px;
1299    width: 90%;
1300    max-width: 1400px;
1301    margin: auto;
1302}
1303
1304.footer-links {
1305    display: flex;
1306    flex-direction: column;
1307    gap: 14px;
1308}
1309
1310.footer-links a {
1311    color: rgba(255, 255, 255, 0.72);
1312    text-decoration: none;
1313    transition: 0.25s;
1314    font-size: 15px;
1315    padding: 0;
1316    min-height: auto;
1317}
1318
1319
1320.footer-links a:hover {
1321    color: white;
1322    transform: translateX(4px);
1323}
1324
1325.footer-title {
1326    font-size: 19px;
1327}
1328
1329.footer-links li {
1330    margin-top: 10px;
1331}
1332
1333.social-links {
1334    display: flex;
1335    gap: 14px;
1336    margin-top: 28px;
1337    flex-direction: row;
1338}
1339
1340
1341.social-links a {
1342    width: 44px;
1343    height: 44px;
1344    border-radius: 14px;
1345    background: rgba(255, 255, 255, 0.08);
1346    display: flex;
1347    align-items: center;
1348    justify-content: center;
1349    color: white !important;
1350    text-decoration: none;
1351    font-size: 18px;
1352    transition: 0.3s;
1353}
1354
1355.social-links a:hover {
1356    background: white;
1357    color: #08111f !important;
1358    transform: translateY(-3px);
1359}
1360
1361
1362.disclaimer {
1363    border-top: 1px solid rgba(255, 255, 255, 0.08);
1364    padding-top: 25px;
1365    display: flex;
1366    justify-content: space-between;
1367    align-items: center;
1368    gap: 30px;
1369    flex-wrap: wrap;
1370    width: 90%;
1371    max-width: 1400px;
1372    margin: auto;
1373}
1374
1375.disclaimer-footer {
1376    color: rgba(255, 255, 255, 0.55);
1377    font-size: 13px;
1378    line-height: 1.7;
1379}
1380
1381
1382
1383
1384/* LOCATION TOPPER */
1385.location-topper {
1386    position: relative;
1387    background-size: cover;
1388    background-position: center;
1389    color: white;
1390}
1391
1392.location-topper h1 {
1393    color: white;
1394    font-size: 65px;
1395    position: relative;
1396}
1397
1398.location-topper h1 span {
1399    color: white;
1400    font-size: 35px;
1401    position: absolute;
1402    font-size: 20px;
1403    letter-spacing: normal;
1404    top: -10px;
1405}
1406
1407.location-intro {
1408    margin-top: -19px;
1409    color: white;
1410    font-size: 17px;
1411    line-height: 20px;
1412    letter-spacing: 0;
1413    width: 60%;
1414    font-weight: 600;
1415    position: relative;
1416    z-index: 100;
1417}
1418
1419/* WEATHER */
1420.weather {
1421    background-color: var(--color-gray-300);
1422    border-radius: var(--radius-md);
1423    color: var(--color-black);
1424    padding: var(--padding-sm);
1425    height: max-content;
1426    font-size: 1rem;
1427    position: relative;
1428    display: flex;
1429    flex-wrap: wrap;
1430
1431}
1432
1433.weather-icon {
1434    width: 40px;
1435    height: 40px;
1436}
1437
1438.clock-container {
1439    display: flex;
1440    flex-direction: row;
1441    gap: 15px;
1442    font-size: 20px;
1443    align-items: center;
1444}
1445
1446#hour,
1447#minute,
1448#second {
1449    background-color: var(--color-white);
1450    padding: 5px;
1451    border-radius: 5px;
1452}
1453
1454.weather-info {
1455    display: flex;
1456    gap: 15px;
1457    align-items: center;
1458}
1459
1460/* BREADCRUMB */
1461.breadcrumb {
1462    display: flex;
1463    flex-direction: row;
1464    align-items: center;
1465    gap: 10px;
1466    font-size: 13px;
1467}
1468
1469.breadcrumb p {
1470    margin: 0px;
1471}
1472
1473
1474.loading-indicator {
1475    display: none;
1476    justify-self: center;
1477    height: 150px;
1478}
1479
1480
1481
1482/**/
1483.list-slide {
1484    width: 100%;
1485    display: flex;
1486    gap: 1.1rem;
1487    overflow-x: auto;
1488    overflow-y: hidden;
1489    padding-bottom: 12px;
1490    /* deja espacio para que el scrollbar no pise el contenido */
1491
1492    /* Firefox */
1493    scrollbar-width: thin;
1494    scrollbar-color: var(--color-gray-500) var(--color-gray-100);
1495}
1496
1497/* Chrome, Safari, Edge */
1498.list-slide::-webkit-scrollbar {
1499    height: 10px;
1500    cursor: grab;
1501}
1502
1503.list-slide::-webkit-scrollbar-track {
1504    background: var(--color-gray-100);
1505    border-radius: var(--radius-md)
1506}
1507
1508.list-slide::-webkit-scrollbar-thumb {
1509    background: var(--color-gray-500);
1510    border-radius: var(--radius-md);
1511}
1512
1513.list-slide::-webkit-scrollbar-thumb:hover {
1514    background: var(--color-black);
1515}
1516
1517/* CLAVE: los hijos deben tener ancho fijo y no encogerse */
1518.list-slide>* {
1519    flex-shrink: 0;
1520    width: 200px;
1521    /* o el ancho que quieras para cada item */
1522}
1523
1524
1525.buttontour {
1526    background: var(--color-tour);
1527    color: var(--color-white);
1528    border-radius: var(--radius-xl);
1529    padding: .6rem .8rem;
1530    font-size: .88rem;
1531    font-weight: 700;
1532    display: flex;
1533    align-items: center;
1534    justify-content: center;
1535    gap: 7px;
1536    border: none;
1537}
1538.buttontour svg{
1539    width: 20px;
1540    fill: white;
1541}
1542
1543
1544.buttontour:hover {
1545    background: var(--color-tour-hover);
1546}
1547
1548.buttonbook {
1549    background: var(--color-primary);
1550    color: var(--color-white);
1551    border-radius: var(--radius-md);
1552    padding: .7rem 1.4rem;
1553    font-size: .88rem;
1554    font-weight: 700;
1555    border: none;
1556    transition: background .15s;
1557    gap: .4rem;
1558    display: flex;
1559
1560    width: max-content;
1561    align-items: center;
1562    justify-content: center;
1563    text-align: center;
1564
1565    width: 100%;
1566}
1567
1568
1569
1570.buttonbook:hover {
1571    background: var(--color-primary-dark);
1572}
1573
1574.buttonbook svg {
1575    fill: var(--color-primary);
1576}
1577
1578.buttonbook:hover svg {
1579    fill: var(--color-white);
1580}
1581
1582.button {
1583
1584    color: var(--color-primary);
1585    border-radius: var(--radius-xl);
1586    border: solid 2px var(--color-primary);
1587    padding: .7rem 1.4rem;
1588    font-size: .88rem;
1589    font-weight: 700;
1590    display: flex;
1591    align-items: center;
1592    justify-content: center;
1593    gap: 7px;
1594
1595}
1596
1597.button:hover {
1598    background: var(--color-primary);
1599    color: var(--color-white);
1600    border: solid 2px var(--color-primary-dark);
1601}
1602
1603.button svg {
1604    fill: var(--color-primary);
1605}
1606
1607.button:hover svg {
1608    fill: var(--color-white);
1609}
1610
1611
1612.char-select {
1613    text-decoration: none;
1614    color: var(--color-gray-700);
1615    border-bottom: solid 1px var(--color-gray-700);
1616
1617    padding: 10px;
1618    width: -webkit-fill-available;
1619    cursor: pointer;
1620    display: flex;
1621    align-items: center;
1622    justify-content: center;
1623}
1624
1625.char-select:hover {
1626    color: var(--color-primary);
1627    border-bottom: solid 1px var(--color-primary-dark);
1628}
1629
1630
1631.provider-label {
1632    color: var(--color-primary);
1633    font-weight: 700;
1634    cursor: pointer;
1635    font-size: 1.1rem;
1636}
1637
1638.star::before {
1639    content: "★";
1640}
1641
1642
1643/* SUMMARY */
1644
1645.summary {
1646    display: flex;
1647    justify-content: space-between;
1648    margin-top: 20px;
1649    text-align: center;
1650    overflow-x: auto;
1651    flex-wrap: nowrap;
1652    scrollbar-width: none;
1653    gap: .5rem;
1654    margin: 1rem 0 .5rem;
1655}
1656
1657.summary::-webkit-scrollbar {
1658    display: none;
1659}
1660
1661.summary .char-select {
1662    width: auto;
1663    flex: 1 0 auto;
1664    white-space: nowrap;
1665    padding: .6rem 1rem;
1666}
1667
1668/* PRICE */
1669.price {
1670    color: var(--color-primary-dark);
1671    font-weight: bold;
1672    font-size: 2rem;
1673    margin: 0px;
1674
1675}
1676
1677.price p {
1678    margin: 0px;
1679    padding: 0px;
1680}
1681
1682.price-from {
1683
1684    font-weight: 700;
1685    font-size: 1rem;
1686}
1687
1688.price-txt {
1689    color: var(--color-black);
1690    font-weight: 500;
1691
1692}
1693
1694
1695.country-list {
1696    font-size: .9rem;
1697    display: grid;
1698    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
1699    gap: 5px 25px;
1700    margin: 0 auto;
1701}
1702
1703.country-list a {
1704    white-space: nowrap;
1705    overflow: hidden;
1706    text-overflow: ellipsis;
1707    color: var(--color-black);
1708    display: flex;
1709    justify-content: space-between;
1710}
1711
1712.country-list-count {
1713    flex-shrink: 0;
1714    border-radius: 999px;
1715    background: var(--color-primary);
1716    color: var(--color-white);
1717    font-size: .68rem;
1718    font-weight: 800;
1719    padding: .15rem .5rem;
1720}
1721
1722.country-list a:hover {
1723    background: var(--color-gray-300);
1724    color: var(--color-primary-dark);
1725
1726}
1727
1728.s-item {
1729    display: flex;
1730    flex-direction: column;
1731    gap: 5px;
1732}
1733
1734.offer {
1735    background: var(--color-white);
1736    padding: var(--padding-sm);
1737    border: var(--border-thin);
1738    border-radius: var(--radius-md);
1739    display: flex;
1740    flex-direction: row;
1741    gap: 10px;
1742    align-items: center;
1743}
1744
1745.offer-logo {
1746    height: 50px;
1747}
1748
1749
1750.row {
1751    display: flex;
1752    gap: 10px;
1753    margin-top: 15px;
1754    align-items: center;
1755}
1756
1757
1758.grid-list {
1759    display: flex;
1760    flex-wrap: wrap;
1761    gap: 15px;
1762    justify-content: space-between;
1763    color: var(--color-gray-700);
1764}
1765
1766.grid-list a {
1767    color: var(--color-gray-700);
1768    text-decoration: none;
1769}
1770
1771.location-option.selected {
1772    background-color: var(--main-color) !important;
1773}
1774
1775.distance {
1776    margin: 0px;
1777    padding: 5px;
1778    background: var(--secondary-color);
1779    width: max-content;
1780    color: white;
1781    font-weight: 500;
1782}
1783
1784/*Forms*/
1785.form-item {
1786    display: flex;
1787    align-items: flex-start;
1788    gap: .75rem;
1789    margin-bottom: 1.25rem;
1790}
1791
1792.form-icon {
1793    width: 2.4rem;
1794    height: 2.4rem;
1795    border-radius: .6rem;
1796    background: var(--color-primary);
1797    display: flex;
1798    align-items: center;
1799    justify-content: center;
1800    flex-shrink: 0;
1801    color: var(--color-white);
1802}
1803
1804.form-label {
1805    font-size: .7rem;
1806    font-weight: 800;
1807    text-transform: uppercase;
1808    letter-spacing: .06em;
1809    color: var(--color-gray-500);
1810    margin: 0 0 .2rem;
1811}
1812
1813.form-value {
1814    font-size: .9rem;
1815    font-weight: 700;
1816    color: var(--color-black);
1817    margin: 0;
1818}
1819
1820@media only screen and (max-width: 1000px) {
1821
1822    .body-content {
1823        width: 95%;
1824        min-width: 100px;
1825        margin: auto;
1826    }
1827
1828    .desktop-row {
1829        flex-direction: column;
1830        gap: 7px;
1831    }
1832
1833    .header-logo {
1834        width: 90px;
1835        height: 40px;
1836        margin: 0px;
1837        padding: 0px;
1838    }
1839
1840    .header-elements {
1841        width: 95%;
1842        margin: 0px;
1843    }
1844
1845    .footer-row {
1846        grid-template-columns: 1fr 1fr;
1847        gap: 40px;
1848    }
1849
1850    .disclaimer {
1851        flex-direction: column;
1852        align-items: flex-start;
1853    }
1854
1855    .breadcrumb {
1856        flex-wrap: wrap;
1857        gap: 6px;
1858        font-size: 10px;
1859    }
1860
1861    .loading-indicator {
1862        height: 100px;
1863    }
1864
1865    .custom-select-container {
1866        width: 120px;
1867    }
1868
1869    .desktop-only {
1870        display: none;
1871    }
1872
1873    .location_icon {
1874        width: 20px;
1875    }
1876
1877
1878    .row {
1879        width: min-content;
1880        width: 100%;
1881        flex-direction: column;
1882    }
1883
1884    .location-intro {
1885        width: auto !important;
1886        font-size: 14px !important;
1887        line-height: 16px !important;
1888    }
1889
1890
1891    .tour-price {
1892        font-size: 12px;
1893    }
1894
1895    .lang-grid {
1896        grid-template-columns: 1fr 1fr;
1897    }
1898
1899    .lang-head,
1900    .lang-grid {
1901        padding-inline: 1.1rem;
1902    }
1903}
1904
1905@media only screen and (max-width: 700px) {
1906
1907
1908    footer {
1909        padding: 50px 0 25px;
1910    }
1911
1912    .footer-row {
1913        grid-template-columns: 1fr;
1914    }
1915
1916    .desktop-only {
1917        display: none;
1918    }
1919
1920    .location-topper h1 {
1921        font-size: 30px !important;
1922        align-self: start;
1923        margin: 10px 0px;
1924        word-break: break-word;
1925    }
1926
1927    .location-topper h1 span {
1928        font-size: 20px !important;
1929        top: -23px !important;
1930    }
1931
1932    .location-intro {
1933        width: auto !important;
1934        font-size: 12px !important;
1935        line-height: 14px !important;
1936    }
1937
1938    .weather {
1939        display: flex;
1940        flex-wrap: wrap;
1941        align-items: center;
1942        gap: 4px;
1943
1944    }
1945
1946    .loading-indicator {
1947        height: 80px;
1948    }
1949
1950    .country-list {
1951        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
1952    }
1953
1954    .summary {
1955        flex-wrap: wrap;
1956        margin: 0px;
1957        font-size: 13px;
1958    }
1959
1960
1961    .lang-btn-name {
1962        display: none;
1963    }
1964
1965    .lang-btn {
1966        padding: .3rem .6rem .3rem .3rem;
1967    }
1968
1969    .lang-grid {
1970        grid-template-columns: 1fr;
1971    }
1972}/* IMAGE SLIDES */
1973.img-slider {
1974    position: relative;
1975    overflow: hidden;
1976    width: 100%;
1977    aspect-ratio: 4/3;
1978    background: linear-gradient(90deg, #e8e8e8 25%, #d0d0d0 50%, #e8e8e8 75%);
1979    background-size: 200% 100%;
1980    animation: skeleton 1.4s ease infinite;
1981
1982
1983    border-top-left-radius: inherit;
1984    border-top-right-radius: inherit;
1985}
1986
1987.horizonal-slider {
1988    height: 100%;
1989    aspect-ratio: auto !important;
1990}
1991
1992
1993@keyframes skeleton {
1994    0% {
1995        background-position: 200% 0;
1996    }
1997
1998    100% {
1999        background-position: -200% 0;
2000    }
2001}
2002
2003.img-slider.loaded {
2004    animation: none;
2005    background: none;
2006}
2007
2008.img-slider .slide-img {
2009    position: absolute;
2010    inset: 0;
2011    width: 100%;
2012    height: 100%;
2013    object-fit: cover;
2014    opacity: 0;
2015    transition: opacity 0.4s ease, transform 0.4s ease;
2016    transform: scale(1);
2017
2018}
2019
2020
2021.img-slider:hover .slide-img.active {
2022    transform: scale(1.04);
2023}
2024
2025.img-slider .slide-img.active {
2026    opacity: 1;
2027}
2028
2029.img-slider:hover .slider-prev,
2030.img-slider:hover .slider-next {
2031    opacity: 1;
2032}
2033
2034.slider-prev,
2035.slider-next {
2036    position: absolute;
2037    top: 50%;
2038    transform: translateY(-50%);
2039    background: var(--color-black);
2040    color: var(--color-white);
2041    border: none;
2042    padding: 6px 10px;
2043    cursor: pointer;
2044    font-size: 1.4rem;
2045    z-index: 10;
2046    border-radius: 4px;
2047    line-height: 1;
2048    opacity: 0;
2049    transition: opacity 0.25s ease;
2050}
2051
2052.slider-prev {
2053    left: 6px;
2054}
2055
2056.slider-next {
2057    right: 6px;
2058}
2059
2060.slider-dots {
2061    position: absolute;
2062    bottom: 6px;
2063    left: 50%;
2064    transform: translateX(-50%);
2065    display: flex;
2066    gap: 5px;
2067    z-index: 10;
2068}
2069
2070
2071
2072.dot {
2073    width: 6px;
2074    height: 6px;
2075    border-radius: 50%;
2076    background: var(--color-gray-500);
2077}
2078
2079.dot.active {
2080    background: var(--color-white);
2081}
2082
2083
2084.img-slider-options {
2085    position: absolute;
2086    right: 5px;
2087    top: 5px;
2088}
2089
2090.img-slider-option {
2091    background: var(--color-white);
2092    color: var(--color-gray-700);
2093    border-radius: var(--radius-full);
2094    aspect-ratio: 1;
2095    border: var(--border-thin);
2096    right: 10px;
2097    top: 10px;
2098    display: flex;
2099
2100    width: 30px;
2101    height: 30px;
2102}
2103
2104.img-slider-option svg {
2105    fill: var(--color-gray-700);
2106}
2107
2108.img-slider-option.selected svg {
2109    fill: var(--color-white);
2110}
2111
2112.img-slider-option.selected {
2113    background: var(--color-primary);
2114    color: var(--color-white);
2115}
2116
2117/* LOCATION SLIDE*/
2118.location-slide {
2119    height: 200px;
2120    aspect-ratio: 1;
2121    display: flex;
2122    flex-direction: column;
2123    justify-content: space-between;
2124    color: var(--color-white);
2125    border-radius: var(--radius-lg);
2126    font-size: .92rem;
2127    font-weight: bold;
2128    background-color: var(--color-gray-500);
2129    background-position: center;
2130    background-size: cover;
2131}
2132
2133.location-slide p {
2134    padding: 10px;
2135    margin: 0px;
2136    border-radius: inherit;
2137}
2138
2139.location-slide:hover {
2140    box-shadow: 0 1px 3px 2px rgba(0, 0, 0, .2);
2141    transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out;
2142    scale: 1.02;
2143}
2144
2145.location-slide-name {
2146    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%);
2147    font-weight: 600;
2148}
2149
2150.location-slide-distance {
2151    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%);
2152    text-align: end;
2153    font-size: 15px;
2154}
2155
2156
2157/* HOTEL SLIDE */
2158.hotel-slide {
2159    position: relative;
2160    background: var(--color-bg);
2161    color: var(--color-black);
2162    border: var(--border-thin);
2163    border-radius: var(--radius-lg);
2164    width: 16.5rem;
2165    cursor: pointer;
2166
2167    display: flex;
2168    flex-direction: column;
2169}
2170
2171.hotel-slide-info {
2172    padding: 0px 10px 10px 10px;
2173    text-align: start;
2174    display: flex;
2175    flex-direction: column;
2176    justify-content: space-between;
2177    background: var(--color-bg);
2178    border-bottom-left-radius: inherit;
2179    border-bottom-right-radius: inherit;
2180}
2181
2182.hotel-slide-info h3 {
2183    margin: 0px;
2184    font-size: .92rem;
2185    font-weight: 800;
2186    line-height: 1.3;
2187}
2188
2189.hotels-slide::-webkit-scrollbar {
2190    display: none;
2191}
2192
2193.hotel-slide:hover {
2194    scale: 1.02;
2195    box-shadow: var(--shadow-sm);
2196    transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out;
2197
2198}
2199
2200.hotel-slide-horizontal:hover {
2201    scale: 1.02;
2202    box-shadow: var(--shadow-sm);
2203    transition: box-shadow .2s ease-in-out, -webkit-box-shadow .2s ease-in-out;
2204
2205}
2206
2207.slide-category {
2208    font-weight: bold;
2209    color: var(--color-gray-700);
2210    font-size: 14px;
2211}
2212
2213.slide-category p {
2214    margin: 8px 0px;
2215    text-transform: uppercase;
2216}
2217
2218.slide-address {
2219    color: var(--color-black);
2220    font-size: 14px;
2221    margin-top: 8px;
2222    margin-bottom: 8px;
2223    display: flex;
2224    flex-direction: row;
2225    gap: 3px;
2226}
2227
2228.slide-address span {
2229    color: var(--color-primary-dark);
2230    font-weight: bolder;
2231}
2232
2233p.slide-location {
2234    gap: 10px;
2235    display: flex;
2236    flex-wrap: wrap;
2237}
2238
2239.slide-distance {
2240    background: var(--color-primary);
2241    padding: var(--padding-xs);
2242    border-radius: var(--radius-sm);
2243    color: var(--color-white);
2244}
2245
2246
2247
2248
2249/* Card tour/hotel: prezzo e bottone sempre allineati in basso */
2250
2251.list-slide .hotel-slide-info,
2252.list-slide .hotel-slide-info>div {
2253    display: flex;
2254    flex-direction: column;
2255    flex: 1;
2256}
2257
2258.list-slide .hotel-slide-info .flex-row-spaced {
2259    margin-top: auto;
2260    flex-wrap: nowrap;
2261}
2262
2263.list-slide .hotel-slide-info h3 {
2264    min-height: 2.6em;
2265}
2266
2267.list-slide .hotel-slide-info .price {
2268    scale: 1 !important;
2269    font-size: 1.4rem;
2270    line-height: 1.1;
2271}
2272
2273.list-slide .hotel-slide-info .price-from,
2274.list-slide .hotel-slide-info .price-txt {
2275    font-size: .75rem;
2276    white-space: nowrap;
2277}
2278
2279.list-slide .hotel-slide-info .button {
2280    padding: .55rem .9rem;
2281    font-size: .8rem;
2282    flex-shrink: 0;
2283}
2284
2285
2286
2287
2288/* PROPERTY SLIDE HORIZONTAL */
2289
2290.property_horizontal {
2291    position: relative;
2292    display: grid;
2293    gap: 10px;
2294    border: var(--border-thin);
2295    border-radius: var(--radius-md);
2296    grid-template-columns: 272px 2fr 1fr;
2297    box-shadow: var(--shadow-sm);
2298    min-height: 280px;
2299}
2300
2301.property_horizontal_gallery {
2302    width: 100%;
2303    height: 100%;
2304    position: relative;
2305    min-height: 250px;
2306}
2307
2308.property_horizontal_info {
2309    padding: var(--padding-sm);
2310}
2311
2312.property_horizontal_gallery_image {
2313    border-radius: 5px;
2314    width: 100%;
2315    height: 100%;
2316    object-fit: cover;
2317}
2318
2319.property_horizontal_options {
2320    padding: 10px;
2321    display: flex;
2322    flex-direction: column;
2323    gap: 15px;
2324    justify-content: end;
2325}
2326
2327.selected svg {
2328    fill: var(--color-primary-dark);
2329}
2330
2331/* SCORE */
2332.puntuation {
2333    display: flex;
2334    flex-direction: row;
2335    align-items: center;
2336    align-items: center;
2337    gap: 10px;
2338    background-color: var(--color-black);
2339    color: var(--color-white);
2340    border-radius: var(--radius-sm);
2341    width: max-content;
2342    position: absolute;
2343    top: 10px;
2344    left: 10px;
2345    z-index: 90;
2346}
2347
2348.puntuation_num {
2349    margin: 0px !important;
2350    display: flex;
2351    justify-content: center;
2352    align-items: center;
2353    padding: var(--padding-xs);
2354    font-weight: bold;
2355    border-top-left-radius: inherit;
2356    border-bottom-left-radius: inherit;
2357    color: var(--color-white);
2358    width: max-content;
2359}
2360
2361.puntuation_text {
2362    color: var(--color-white);
2363    background: var(--color-black);
2364    font-weight: 700;
2365    margin: 0px !important;
2366    display: flex;
2367    align-items: center;
2368    padding-right: 7px;
2369    font-size: .8rem;
2370    border-top-right-radius: var(--radius-sm);
2371    border-bottom-right-radius: var(--radius-sm);
2372}
2373
2374.puntuation-good {
2375    background-color: var(--color-green);
2376}
2377
2378.puntuation-mid {
2379    background-color: var(--color-amber);
2380}
2381
2382.puntuation-bad {
2383    background-color: var(--color-red);
2384}
2385
2386
2387/* TRAVEL GUIDE */
2388.travel-guide {
2389    display: flex;
2390    gap: 30px;
2391}
2392
2393.travel-guide:hover {
2394    transition: transform 0.3s ease;
2395    transform: scale(1.01);
2396}
2397
2398.travel-guide-img {
2399    width: 20%;
2400    object-fit: cover;
2401    rotate: -10deg;
2402    border: solid 10px var(--button-color);
2403    transition: transform 0.3s ease;
2404    cursor: grabbing;
2405}
2406
2407.travel-guide-img:hover {
2408    transform: scale(1.2) rotate(10deg);
2409}
2410
2411.travel-guide-text {
2412    color: var(--subtitle-color);
2413    font-weight: 500;
2414}
2415
2416.travel-guide-country {
2417    color: var(--color-primary-dark);
2418}
2419
2420.travel-title {
2421    font-weight: bold;
2422    font-size: 25px;
2423    margin: 0px;
2424    color: var(--color-black);
2425}
2426
2427/* FAQ */
2428#faq {
2429
2430    margin: auto;
2431    border-radius: var(-radius-md);
2432}
2433
2434#faq h2 {
2435    font-size: 28px;
2436    line-height: 1.3;
2437    margin-bottom: 28px;
2438    font-weight: 800;
2439    color: var(--color-black);
2440
2441}
2442
2443.faq-grid {
2444    display: grid;
2445    grid-template-columns: repeat(2, 1fr);
2446    gap: 18px;
2447}
2448
2449.faq-item {
2450    border: 1px solid var(--color-gray-700);
2451    border-radius: 14px;
2452    background: var(--color-white);
2453    overflow: hidden;
2454    transition: all 0.25s ease;
2455}
2456
2457.faq-item:hover {
2458    border-color: var(--secondary-color);
2459    box-shadow: var(--shadow-md);
2460    transform: translateY(-1px);
2461}
2462
2463.faq-question {
2464    position: relative;
2465    margin: 0;
2466    padding: 20px 55px 20px 20px;
2467    font-size: 16px;
2468    line-height: 1.5;
2469    font-weight: 700;
2470    color: #111827;
2471    cursor: pointer;
2472    background: none;
2473    border: none;
2474}
2475
2476.faq-question::after {
2477    content: "+";
2478    position: absolute;
2479    right: 18px;
2480    top: 50%;
2481    transform: translateY(-50%);
2482    width: 30px;
2483    height: 30px;
2484    border-radius: 50%;
2485    background: var(--color-primary);
2486    color: var(--color-white);
2487    display: flex;
2488    align-items: center;
2489    justify-content: center;
2490    font-size: 18px;
2491    font-weight: 700;
2492    transition: .3s;
2493}
2494
2495.faq-answer {
2496    display: none;
2497    margin: 0;
2498    padding: 0 20px 20px 20px;
2499    font-size: 15px;
2500    line-height: 1.7;
2501    color: var(-color-gray-700);
2502    border: none;
2503    background: none;
2504}
2505
2506.faq-item.active .faq-answer {
2507    display: block;
2508}
2509
2510.faq-item.active .faq-question::after {
2511    content: "-";
2512}
2513
2514
2515/* FACILITIES */
2516.facilities {
2517    line-height: 0.2;
2518    gap: .35rem;
2519    display: flex;
2520    flex-direction: row;
2521    flex-wrap: wrap;
2522    max-width: 800px;
2523}
2524
2525.facility {
2526    display: flex;
2527    gap: 10px;
2528    flex-direction: row;
2529    align-items: center;
2530    background-color: var(--color-white);
2531    padding: var(--padding-sm);
2532    border-radius: var(--radius-lg);
2533    box-shadow: var(--shadow-sm);
2534    font-size: .78rem;
2535    border: var(--border-thin);
2536}
2537
2538.facility_text {
2539    color: var(--color-gray-900);
2540    font-weight: 600;
2541    margin: 0px;
2542}
2543
2544.facility_icon {
2545    width: 20px;
2546    height: 20px;
2547}
2548
2549
2550/* MULTI SLIDES */
2551
2552.multi-slide-options {
2553    line-height: 0.2;
2554    gap: 4px;
2555    display: flex;
2556    flex-direction: row;
2557    flex-wrap: wrap;
2558    position: relative;
2559    margin-bottom: 10px;
2560    max-width: 800px;
2561}
2562
2563.multi-slide-option {
2564    padding: var(--padding-sm);
2565    border-radius: var(--radius-xl);
2566    cursor: pointer;
2567    transition: all 0.3s ease;
2568    display: flex;
2569    align-items: center;
2570    gap: 7px;
2571    font-weight: 500;
2572    font-size: .78rem;
2573    box-shadow: var(--shadow-sm);
2574    padding-top: 20px;
2575    padding-bottom: 20px;
2576    color: var(--color-black);
2577    background-color: var(--color-white);
2578    border: var(--border-thin);
2579}
2580
2581
2582.multi-slide-option:hover {
2583    background-color: var(--color-white);
2584}
2585
2586
2587.multi-slide-option.selected {
2588    background-color: var(--color-primary-light);
2589    border: solid 1px var(--color-primary-dark);
2590    color: var(--color-primary-dark);
2591    font-weight: 600;
2592
2593}
2594
2595
2596/* HORIZONTAL SLIDE */
2597.hotel-slide-horizontal {
2598    position: relative;
2599    display: flex;
2600    flex-direction: row;
2601
2602    color: var(--color-black);
2603    border: var(--border-thin);
2604    border-radius: var(--radius-sm);
2605}
2606
2607.hotel-slide-horizontal .slide-stars {
2608    top: auto !important;
2609    bottom: 7px !important;
2610}
2611
2612
2613.hotel-slide-info-horizontal {
2614    padding: 10px;
2615    text-align: start;
2616    display: flex;
2617    flex-direction: column;
2618    justify-content: space-between;
2619}
2620
2621.hotel-slide-info-horizontal h3 {
2622    margin: 0px;
2623    line-height: 24px;
2624    font-size: 16px;
2625}
2626
2627
2628/* HOTEL ROOMS */
2629.hotel_room_image {
2630    width: 100%;
2631    border-top-left-radius: inherit;
2632    border-top-right-radius: inherit;
2633    object-fit: cover;
2634    max-height: 150px;
2635}
2636
2637.room_beds {
2638    display: flex;
2639    flex-direction: column;
2640    gap: 5px;
2641}
2642
2643.room_size {
2644    background-color: var(--color-primary);
2645    color: var(--color-white);
2646    padding: var(--padding-sm);
2647    border-radius: var(--radius-lg);
2648    width: max-content;
2649    font-weight: 500;
2650    display: flex;
2651    align-items: center;
2652    text-align: center;
2653}
2654
2655.opinion {
2656    display: flex;
2657    gap: 10px;
2658    align-items: center;
2659    font-size: 1rem;
2660    font-style: italic;
2661}
2662
2663.opinion p {
2664    margin: 0px;
2665}
2666
2667.general_opinions {
2668    display: flex;
2669    flex-direction: row;
2670    flex-wrap: wrap;
2671    gap: 10px;
2672}
2673
2674
2675/* TRAVEL TIPS*/
2676
2677.tip-call {
2678    display: flex;
2679    gap: 10px;
2680    align-items: center;
2681    font-size: 1.2rem;
2682    font-weight: 500;
2683    color: var(--color-gray-700);
2684}
2685
2686.travel-tip {
2687    background-color: white;
2688    padding: 10px;
2689    margin: 10px 0px;
2690    position: relative;
2691}
2692
2693.travel-tip-name {
2694    display: flex;
2695    align-items: center;
2696    gap: 15px;
2697}
2698
2699.travel-tip-name span {
2700
2701    padding: 20px;
2702    border-radius: 50px;
2703    width: 15px;
2704    height: 15px;
2705    font-weight: bold;
2706    font-size: 25px;
2707    display: flex;
2708    justify-content: center;
2709    align-items: center;
2710    color: white;
2711}
2712
2713.travel-tip-name p {
2714    font-weight: bold;
2715}
2716
2717.travel-tip-content {
2718    font-style: italic;
2719    display: flex;
2720    gap: 10px;
2721    align-items: center;
2722}
2723
2724.travel-tip-lang {
2725    display: flex;
2726    align-items: center;
2727    gap: 10px;
2728    font-weight: 300;
2729    color: #424242;
2730}
2731
2732
2733
2734/* Category cards */
2735.cat-cards {
2736    max-width: none;
2737    line-height: normal;
2738    gap: .6rem;
2739    flex-wrap: nowrap;
2740    overflow-x: auto;
2741    padding: .25rem .25rem .7rem;
2742    margin-bottom: .75rem;
2743    scrollbar-width: thin;
2744    scrollbar-color: var(--color-gray-500) var(--color-gray-100);
2745}
2746
2747.cat-cards::-webkit-scrollbar {
2748    height: 8px;
2749}
2750
2751.cat-cards::-webkit-scrollbar-thumb {
2752    background: var(--color-gray-500);
2753    border-radius: var(--radius-md);
2754}
2755
2756.cat-card {
2757    flex: 0 0 auto;
2758    padding: .5rem .9rem .5rem .5rem;
2759    gap: .7rem;
2760    border-radius: var(--radius-md);
2761    box-shadow: none;
2762    align-items: center;
2763}
2764
2765.cat-card:hover {
2766    border-color: var(--color-primary);
2767}
2768
2769.cat-card-img {
2770    width: 52px;
2771    height: 52px;
2772    border-radius: var(--radius-sm);
2773    object-fit: cover;
2774    flex-shrink: 0;
2775    background: var(--color-gray-300);
2776}
2777
2778.cat-card-txt {
2779    display: flex;
2780    flex-direction: column;
2781    gap: .15rem;
2782    line-height: 1.2;
2783}
2784
2785.cat-card-name {
2786    font-weight: 700;
2787    font-size: .92rem;
2788    color: var(--color-black);
2789    white-space: nowrap;
2790}
2791
2792.cat-card-count {
2793    font-size: .75rem;
2794    font-weight: 500;
2795    color: var(--color-gray-700);
2796}
2797
2798.cat-card-guide {
2799    font-size: .75rem;
2800    font-weight: 700;
2801    color: var(--color-primary-dark);
2802}
2803
2804.cat-card-guide:hover {
2805    text-decoration: underline;
2806}
2807
2808.cat-card.selected {
2809    background: var(--color-primary-light);
2810}
2811
2812.cat-card.selected .cat-card-name {
2813    color: var(--color-primary-dark);
2814}
2815
2816
2817
2818
2819@media only screen and (max-width: 1000px) {
2820    .location-slide {
2821        height: 150px;
2822    }
2823
2824    .travel-guide {
2825        flex-direction: column;
2826    }
2827
2828    .travel-guide img {
2829        align-self: center;
2830        width: 80%;
2831        rotate: -5deg;
2832    }
2833
2834    .travel-guide-img:hover {
2835        transform: scale(1.1) rotate(7deg);
2836    }
2837
2838    .faq-grid {
2839
2840        grid-template-columns: 1fr;
2841
2842    }
2843
2844    .facility_icon {
2845        width: 15px;
2846        height: 15px;
2847    }
2848
2849    .travel-tip-name span {
2850        padding: 15px;
2851        border-radius: 50px;
2852        width: 10px;
2853        height: 10px;
2854        font-size: 15px;
2855    }
2856}
2857
2858@media only screen and (max-width: 700px) {
2859    .puntuation {
2860        gap: 4px;
2861        top: 5px;
2862        left: 4px;
2863    }
2864
2865    .puntuation_num {
2866        padding: var(--padding-sm);
2867    }
2868
2869    .property_horizontal {
2870        grid-template-columns: none;
2871        min-height: auto;
2872    }
2873
2874
2875    .cat-card-img {
2876        width: 42px;
2877        height: 42px;
2878    }
2879
2880    .cat-card-name {
2881        font-size: .85rem;
2882    }
2883}    </style>
2884
2885    
2885<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Are there many museums in Frankfurt?","acceptedAnswer":{"@type":"Answer","text":"Frankfurt boasts an impressive array of museums, including the Kunsthistorisches Museum, which houses one of Europe's largest collections of paintings, and the Alte Pinakothek, featuring Renaissance art masterpieces."}}]}</script>
2885</head>
2886
2887<body>
2888    <header>
2889    <div class="header-elements">
2890        <a href='/'> <img class='header-logo' src='https://images.housity.net/logo-large.png' alt='Housity.net'> </a>
2891
2892        
2893        <button type="button" class="lang-btn" id="lang-btn" aria-haspopup="dialog" aria-expanded="false">
2894            <img class="lang-flag" src="https://images.housity.net/icons/en.svg" alt="" />
2895            <span class="lang-btn-name">English</span>
2896            <svg class="lang-chev" viewBox="0 0 24 24" width="11" height="11" aria-hidden="true">
2897                <path d="M5 9l7 7 7-7" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" />
2898            </svg>
2899        </button>
2900    </div>
2901</header>
2902
2903<!-- SELECTOR DE IDIOMA -->
2904<div class="lang-modal" id="lang-modal" role="dialog" aria-modal="true" aria-labelledby="lang-modal-title" hidden>
2905    <div class="lang-box">
2906        <div class="lang-head">
2907            <div>
2908                <h2 id="lang-modal-title">Choose your language</h2>
2909                <p>The site will open on the domain of the language you choose.</p>
2910            </div>
2911            <button type="button" class="lang-close" id="lang-close" aria-label="Close">&times;</button>
2912        </div>
2913
2914        <div class="lang-grid">
2915                            <a class="lang-opt selected" href="https://housity.net/germany" hreflang="en-US" aria-current="true">
2916                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/en.svg" alt="" />
2917                    <span class="lang-opt-txt">
2918                        <b>English</b>
2919                        <small>housity.net</small>
2920                    </span>
2921                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2922                        <path d="M4 12.5 9.5 18 20 7" />
2923                    </svg>
2924                </a>
2925                            <a class="lang-opt" href="https://housity.es/germany" hreflang="es-ES" >
2926                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/es.svg" alt="" />
2927                    <span class="lang-opt-txt">
2928                        <b>Español</b>
2929                        <small>housity.es</small>
2930                    </span>
2931                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2932                        <path d="M4 12.5 9.5 18 20 7" />
2933                    </svg>
2934                </a>
2935                            <a class="lang-opt" href="https://housity.fr/germany" hreflang="fr-FR" >
2936                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/fr.svg" alt="" />
2937                    <span class="lang-opt-txt">
2938                        <b>Français</b>
2939                        <small>housity.fr</small>
2940                    </span>
2941                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2942                        <path d="M4 12.5 9.5 18 20 7" />
2943                    </svg>
2944                </a>
2945                            <a class="lang-opt" href="https://de.housity.net/germany" hreflang="de-DE" >
2946                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/de.svg" alt="" />
2947                    <span class="lang-opt-txt">
2948                        <b>Deutsch</b>
2949                        <small>de.housity.net</small>
2950                    </span>
2951                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2952                        <path d="M4 12.5 9.5 18 20 7" />
2953                    </svg>
2954                </a>
2955                            <a class="lang-opt" href="https://housity.it/germany" hreflang="it-IT" >
2956                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/it.svg" alt="" />
2957                    <span class="lang-opt-txt">
2958                        <b>Italiano</b>
2959                        <small>housity.it</small>
2960                    </span>
2961                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2962                        <path d="M4 12.5 9.5 18 20 7" />
2963                    </svg>
2964                </a>
2965                            <a class="lang-opt" href="https://housity.nl/germany" hreflang="nl-NL" >
2966                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/nl.svg" alt="" />
2967                    <span class="lang-opt-txt">
2968                        <b>Nederlands</b>
2969                        <small>housity.nl</small>
2970                    </span>
2971                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2972                        <path d="M4 12.5 9.5 18 20 7" />
2973                    </svg>
2974                </a>
2975                            <a class="lang-opt" href="https://pt.housity.net/germany" hreflang="pt-PT" >
2976                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/pt.svg" alt="" />
2977                    <span class="lang-opt-txt">
2978                        <b>Português</b>
2979                        <small>pt.housity.net</small>
2980                    </span>
2981                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2982                        <path d="M4 12.5 9.5 18 20 7" />
2983                    </svg>
2984                </a>
2985                            <a class="lang-opt" href="https://ru.housity.net/germany" hreflang="ru-RU" >
2986                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/ru.svg" alt="" />
2987                    <span class="lang-opt-txt">
2988                        <b>Русский</b>
2989                        <small>ru.housity.net</small>
2990                    </span>
2991                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
2992                        <path d="M4 12.5 9.5 18 20 7" />
2993                    </svg>
2994                </a>
2995                            <a class="lang-opt" href="https://zh.housity.net/germany" hreflang="zh-CN" >
2996                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/zh.svg" alt="" />
2997                    <span class="lang-opt-txt">
2998                        <b>中文</b>
2999                        <small>zh.housity.net</small>
3000                    </span>
3001                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
3002                        <path d="M4 12.5 9.5 18 20 7" />
3003                    </svg>
3004                </a>
3005                            <a class="lang-opt" href="https://ja.housity.net/germany" hreflang="ja-JP" >
3006                    <img class="lang-flag" loading="lazy" src="https://images.housity.net/icons/ja.svg" alt="" />
3007                    <span class="lang-opt-txt">
3008                        <b>日本語</b>
3009                        <small>ja.housity.net</small>
3010                    </span>
3011                    <svg class="lang-check" viewBox="0 0 24 24" width="17" height="17" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
3012                        <path d="M4 12.5 9.5 18 20 7" />
3013                    </svg>
3014                </a>
3015                    </div>
3016    </div>
3017</div>
3018
3019<script type="text/javascript">
3020    document.addEventListener("scroll", () => {
3021        const header = document.querySelector("header");
3022
3023        if (window.scrollY > 0) {
3024            header.classList.add("scrolled");
3025        } else {
3026            header.classList.remove("scrolled");
3027        }
3028    });
3029
3030    document.addEventListener('DOMContentLoaded', function() {
3031        const questions = document.querySelectorAll('.faq-question');
3032        questions.forEach(question => {
3033            question.addEventListener('click', function() {
3034                this.classList.toggle('active');
3035            });
3036        });
3037
3038        const color = getComputedStyle(document.documentElement)
3039            .getPropertyValue('--color-primary').trim();
3040
3041        //document.querySelector('meta[name="theme-color"]')
3042        //.setAttribute('content', color);
3043    });
3044
3045    //SELECTOR DE IDIOMA
3046    (function() {
3047        const modal = document.getElementById('lang-modal');
3048        const btn = document.getElementById('lang-btn');
3049        if (!modal || !btn) return;
3050
3051        function openLang() {
3052            modal.hidden = false;
3053            btn.setAttribute('aria-expanded', 'true');
3054            document.body.style.overflow = 'hidden';
3055            const first = modal.querySelector('.lang-opt.selected') || modal.querySelector('.lang-opt');
3056            if (first) first.focus();
3057        }
3058
3059        function closeLang() {
3060            modal.hidden = true;
3061            btn.setAttribute('aria-expanded', 'false');
3062            document.body.style.overflow = '';
3063            btn.focus();
3064        }
3065
3066        btn.addEventListener('click', openLang);
3067        document.getElementById('lang-close').addEventListener('click', closeLang);
3068        modal.addEventListener('click', function(e) {
3069            if (e.target === modal) closeLang();
3070        });
3071        document.addEventListener('keydown', function(e) {
3072            if (e.key === 'Escape' && !modal.hidden) closeLang();
3073        });
3074    })();
3075</script>
3075
3076    <div class="location-topper" style="background-image: linear-gradient(rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.0)), url(https://images.housity.net/locations/germany.jpg);">
3077        <div style="position:absolute; width: 100%; height: 100%; background-color: #0000004d; left: 0; top: 0;"></div>
3078        <div class="body-content">
3079            <h1> <span>Travel Guide  </span>Germany</h1>
3080            <br>
3081            <p class="location-intro"> Germany is a central European country known for its rich history, cultural heritage, and economic strength. It is famous for its contributions to philosophy, music, and science, as well as its scenic landscapes from the Alps to the Rhine.</p>
3082            <br>
3083        </div>
3084    </div>
3085
3086
3087    <div class="body-content" style="padding: 0px !important;">
3088        <br>
3089        <div class="flex-row-spaced">
3090            <div class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
3091        <span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
3092
3093                <span itemprop="name">Germany</span>                <meta itemprop="position" content="1" />
3094                
3095                    <meta itemprop="item" content="https://housity.net(germany" />            </span>
3096                    </div>            <div id="shareButton" class="shareButton"><img alt="Share Destination" src="https://images.housity.net/icons/share.svg" ; /></div>
3097        </div>
3098
3099        <div class="summary">
3100            <div onclick="goTo('destinations')" class="char-select">Destinations</div><div onclick="goTo('tours')" class="char-select">Tours & Activities</div><div onclick="goTo('faq')" class="char-select">FAQ</div>        </div>
3101
3102
3103                    <h2>Top Destinations in Germany</h2>
3104            <div id="destinations" style="position:relative;"> 
3105                <div id="city_results" class="list-slide">
3106                    <a class="location-slide" rel="follow" href="https://housity.net/stuttgart/"  style="background-image: url(https://images.housity.net/locations/stuttgart-thumb.jpg); background-size: cover;">
3107    <p class="location-slide-name">Stuttgart</p>
3108    </a><a class="location-slide" rel="follow" href="https://housity.net/leipzig/"  style="background-image: url(https://images.housity.net/locations/leipzig-thumb.jpg); background-size: cover;">
3109    <p class="location-slide-name">Leipzig</p>
3110    </a><a class="location-slide" rel="follow" href="https://housity.net/dsseldorf/"  style="background-image: url(https://images.housity.net/locations/dsseldorf-thumb.jpg); background-size: cover;">
3111    <p class="location-slide-name">Düsseldorf</p>
3112    </a><a class="location-slide" rel="follow" href="https://housity.net/dortmund/"  style="background-image: url(https://images.housity.net/locations/dortmund-thumb.jpg); background-size: cover;">
3113    <p class="location-slide-name">Dortmund</p>
3114    </a><a class="location-slide" rel="follow" href="https://housity.net/essen/"  style="background-image: url(https://images.housity.net/locations/essen-thumb.jpg); background-size: cover;">
3115    <p class="location-slide-name">Essen</p>
3116    </a><a class="location-slide" rel="follow" href="https://housity.net/bremen/"  style="background-image: url(https://images.housity.net/locations/bremen-thumb.jpg); background-size: cover;">
3117    <p class="location-slide-name">Bremen</p>
3118    </a><a class="location-slide" rel="follow" href="https://housity.net/dresden/"  style="background-image: url(https://images.housity.net/locations/dresden-thumb.jpg); background-size: cover;">
3119    <p class="location-slide-name">Dresden</p>
3120    </a><a class="location-slide" rel="follow" href="https://housity.net/hannover/"  style="background-image: url(https://images.housity.net/locations/hannover-thumb.jpg); background-size: cover;">
3121    <p class="location-slide-name">Hanover</p>
3122    </a><a class="location-slide" rel="follow" href="https://housity.net/bochum/"  style="background-image: url(https://images.housity.net/locations/bochum-thumb.jpg); background-size: cover;">
3123    <p class="location-slide-name">Bochum</p>
3124    </a><a class="location-slide" rel="follow" href="https://housity.net/berlin/"  style="background-image: url(https://images.housity.net/locations/berlin-thumb.jpg); background-size: cover;">
3125    <p class="location-slide-name">Berlin</p>
3126    </a><a class="location-slide" rel="follow" href="https://housity.net/wuppertal/"  style="background-image: url(https://images.housity.net/locations/wuppertal-thumb.jpg); background-size: cover;">
3127    <p class="location-slide-name">Wuppertal</p>
3128    </a><a class="location-slide" rel="follow" href="https://housity.net/bonn/"  style="background-image: url(https://images.housity.net/locations/bonn-thumb.jpg); background-size: cover;">
3129    <p class="location-slide-name">Bonn</p>
3130    </a><a class="location-slide" rel="follow" href="https://housity.net/bielefeld/"  style="background-image: url(https://images.housity.net/locations/bielefeld-thumb.jpg); background-size: cover;">
3131    <p class="location-slide-name">Bielefeld</p>
3132    </a><a class="location-slide" rel="follow" href="https://housity.net/mannheim/"  style="background-image: url(https://images.housity.net/locations/mannheim-thumb.jpg); background-size: cover;">
3133    <p class="location-slide-name">Mannheim</p>
3134    </a><a class="location-slide" rel="follow" href="https://housity.net/karlsruhe/"  style="background-image: url(https://images.housity.net/locations/karlsruhe-thumb.jpg); background-size: cover;">
3135    <p class="location-slide-name">Karlsruhe</p>
3136    </a><a class="location-slide" rel="follow" href="https://housity.net/augsburg/"  style="background-image: url(https://images.housity.net/locations/augsburg-thumb.jpg); background-size: cover;">
3137    <p class="location-slide-name">Augsburg</p>
3138    </a>                </div>
3139            </div>
3140            
3141
3142
3143            <div class="vertical-separator"></div>
3144            <div id="tours">
3145                <h2>Things to Do in Germany: Top Activities, Tours and Experiences</h2>
3146                <p>Explore the best activities and guided tours that highlight the city's unique attractions. From thrilling adventures to cultural experiences, Germany offers something for every traveler. Whether you're a history enthusiast, an outdoor activity lover, or seeking breathtaking views, enjoy unforgettable moments</p>
3147                                    <div class="multi-slide">
3148                        <div class="multi-slide-options">
3149                                                            <div class="multi-slide-option tour-option selected" onclick="selectTourCategory(this, 'en', 'adventure', 'all', 'germany')">
3150                                    Adventures                                </div>
3151                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'bundle', 'all', 'germany')">
3152                                    Bundles                                </div>
3153                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'city card', 'all', 'germany')">
3154                                    City Cards                                </div>
3155                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'day trip', 'all', 'germany')">
3156                                    Day Trips                                </div>
3157                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'entry ticket', 'all', 'germany')">
3158                                    Entry Tickets                                </div>
3159                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'guided tour', 'all', 'germany')">
3160                                    Guided Tours                                </div>
3161                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'hop-on hop-off tour', 'all', 'germany')">
3162                                    Hop-on Hop-off Tours                                </div>
3163                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'multi-day trip', 'all', 'germany')">
3164                                    Multi-day Trips                                </div>
3165                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'other experience', 'all', 'germany')">
3166                                    Other Experiences                                </div>
3167                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'private tour', 'all', 'germany')">
3168                                    Private Tours                                </div>
3169                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'water activity', 'all', 'germany')">
3170                                    Water Activities                                </div>
3171                                                            <div class="multi-slide-option tour-option" onclick="selectTourCategory(this, 'en', 'workshop or class', 'all', 'germany')">
3172                                    Workshops or Classes                                </div>
3173                                                    </div>
3174                        <div id="tour_results">
3175                            <div class="list-slide">
3176                                                                        <a href="/tours/sylt-guided-mudflat-hike-on-the-island/" class="hotel-slide">
3177    <div class="puntuation">
3178    <p class="puntuation_num puntuation-good">10</p>
3179    <p class="puntuation_text">Excelent</p>
3180</div>    <!-- SLIDER DE IMÁGENES -->
3181    
3182    <div class="img-slider" data-slider="sylt-guided-mudflat-hike-on-the-island">
3183                    
3184            <img 
3185                alt="Sylt, Guided Mudflat Hike on the Island - Housity" 
3186                onerror="ImgError(this, 'photo-hotel.jpg')"
3187                class="slide-img active"
3188                                    src="https://cdn.getyourguide.com/img/tour/361a56cbbcee74aa78cef3d2b3958dae9e5d9d68310e5c6e8fedf44636fc7bbf.jpg/100.jpg"
3189                            />
3190
3191                    
3192            <img 
3193                alt="Sylt, Guided Mudflat Hike on the Island - Housity" 
3194                onerror="ImgError(this, 'photo-hotel.jpg')"
3195                class="slide-img"
3196                                    data-src="https://cdn.getyourguide.com/img/tour/f58a20d39ba87bfb58e831a6ca3e60786c3e0ccd5f3f560b6bb81776880c6856.jpg/100.jpg"
3197                            />
3198
3199                    
3200            <img 
3201                alt="Sylt, Guided Mudflat Hike on the Island - Housity" 
3202                onerror="ImgError(this, 'photo-hotel.jpg')"
3203                class="slide-img"
3204                                    data-src="https://cdn.getyourguide.com/img/tour/301963390bc3ece665e26d100810d0f8e95232a6866aa55a301c3093217ffe77.jpg/100.jpg"
3205                            />
3206
3207                    
3208            <img 
3209                alt="Sylt, Guided Mudflat Hike on the Island - Housity" 
3210                onerror="ImgError(this, 'photo-hotel.jpg')"
3211                class="slide-img"
3212                                    data-src="https://cdn.getyourguide.com/img/tour/232adf536893948a16209f6328a986de95b7c2f2726bb3918eea5feebe87c49e.jpg/100.jpg"
3213                            />
3214
3215                    
3216            <img 
3217                alt="Sylt, Guided Mudflat Hike on the Island - Housity" 
3218                onerror="ImgError(this, 'photo-hotel.jpg')"
3219                class="slide-img"
3220                                    data-src="https://cdn.getyourguide.com/img/tour/8b9f5046fe17964cbfcd4c8f508dfb57cb16dae8c18dda88ec2ef94f9ae00ed9.jpg/145.jpg"
3221                            />
3222
3223        
3224                    <button class="slider-prev" onclick="sliderNav(event, 'sylt-guided-mudflat-hike-on-the-island', -1)">&#8249;</button>
3225            <button class="slider-next" onclick="sliderNav(event, 'sylt-guided-mudflat-hike-on-the-island', 1)">&#8250;</button>
3226            <div class="slider-dots">
3227                                    <span class="dot active"></span>
3228                                    <span class="dot"></span>
3229                                    <span class="dot"></span>
3230                                    <span class="dot"></span>
3231                                    <span class="dot"></span>
3232                            </div>
3233            </div>
3234    
3235
3236    <div class="hotel-slide-info">
3237        <div>
3238            
3239            <div class="slide-category">
3240                <p>ADVENTURE</p>
3241            </div>
3242            <h3>Sylt, Guided Mudflat Hike on the Island</h3>
3243      
3244            <p class="slide-address">
3245                <img alt="Tour Location" style="width: 15px;" src="https://images.housity.net/icons/location_home.svg" />
3246                Cuxhaven, Germany                            </p>
3247                    
3248            <div class="flex-row-spaced">
3249                    <div class="price" style="scale: 0.8;">
3250                            <p class="price-from">From </p>
3251                            <span>15€ </span>
3252                            <p class="price-txt">Per Person</p>
3253                        </div>  
3254                <button onclick="event.stopPropagation(); event.preventDefault(); window.open('/book_tour/sylt-guided-mudflat-hike-on-the-island/', '_blank', 'noopener,noreferrer')" class="buttontour"><svg viewBox="0 0 24 24"><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 0 0-4zm7-1v2h2V6zm0 4v2h2v-2zm0 4v2h2v-2z"/></svg> Book</button>
3255            </div>
3256        
3257        </div>
3258
3259    </div>
3260</a>                                                                        <a href="/tours/frankfurt-airport-fraport-visitor-center/" class="hotel-slide">
3261    <div class="puntuation">
3262    <p class="puntuation_num puntuation-good">8</p>
3263    <p class="puntuation_text">Very good</p>
3264</div>    <!-- SLIDER DE IMÁGENES -->
3265    
3266    <div class="img-slider" data-slider="frankfurt-airport-fraport-visitor-center">
3267                    
3268            <img 
3269                alt="Frankfurt Airport, Fraport Visitor Center Entry Ticket - Housity" 
3270                onerror="ImgError(this, 'photo-hotel.jpg')"
3271                class="slide-img active"
3272                                    src="https://cdn.getyourguide.com/img/tour/6266928744084.jpeg/100.jpg"
3273                            />
3274
3275                    
3276            <img 
3277                alt="Frankfurt Airport, Fraport Visitor Center Entry Ticket - Housity" 
3278                onerror="ImgError(this, 'photo-hotel.jpg')"
3279                class="slide-img"
3280                                    data-src="https://cdn.getyourguide.com/img/tour/62669289193bb.jpeg/100.jpg"
3281                            />
3282
3283                    
3284            <img 
3285                alt="Frankfurt Airport, Fraport Visitor Center Entry Ticket - Housity" 
3286                onerror="ImgError(this, 'photo-hotel.jpg')"
3287                class="slide-img"
3288                                    data-src="https://cdn.getyourguide.com/img/tour/6266928a1cad5.jpeg/100.jpg"
3289                            />
3290
3291                    
3292            <img 
3293                alt="Frankfurt Airport, Fraport Visitor Center Entry Ticket - Housity" 
3294                onerror="ImgError(this, 'photo-hotel.jpg')"
3295                class="slide-img"
3296                                    data-src="https://cdn.getyourguide.com/img/tour/6266928b61838.jpeg/100.jpg"
3297                            />
3298
3299                    
3300            <img 
3301                alt="Frankfurt Airport, Fraport Visitor Center Entry Ticket - Housity" 
3302                onerror="ImgError(this, 'photo-hotel.jpg')"
3303                class="slide-img"
3304                                    data-src="https://cdn.getyourguide.com/img/tour/6266928b976e3.jpeg/145.jpg"
3305                            />
3306
3307        
3308                    <button class="slider-prev" onclick="sliderNav(event, 'frankfurt-airport-fraport-visitor-center', -1)">&#8249;</button>
3309            <button class="slider-next" onclick="sliderNav(event, 'frankfurt-airport-fraport-visitor-center', 1)">&#8250;</button>
3310            <div class="slider-dots">
3311                                    <span class="dot active"></span>
3312                                    <span class="dot"></span>
3313                                    <span class="dot"></span>
3314                                    <span class="dot"></span>
3315                                    <span class="dot"></span>
3316                            </div>
3317            </div>
3318    
3319
3320    <div class="hotel-slide-info">
3321        <div>
3322            
3323            <div class="slide-category">
3324                <p>ADVENTURE</p>
3325            </div>
3326            <h3>Frankfurt Airport, Fraport Visitor Center Entry Ticket</h3>
3327      
3328            <p class="slide-address">
3329                <img alt="Tour Location" style="width: 15px;" src="https://images.housity.net/icons/location_home.svg" />
3330                Frankfurt Airport, Germany                            </p>
3331                    
3332            <div class="flex-row-spaced">
3333                    <div class="price" style="scale: 0.8;">
3334                            <p class="price-from">From </p>
3335                            <span>12€ </span>
3336                            <p class="price-txt">Per Person</p>
3337                        </div>  
3338                <button onclick="event.stopPropagation(); event.preventDefault(); window.open('/book_tour/frankfurt-airport-fraport-visitor-center/', '_blank', 'noopener,noreferrer')" class="buttontour"><svg viewBox="0 0 24 24"><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 0 0-4zm7-1v2h2V6zm0 4v2h2v-2zm0 4v2h2v-2z"/></svg> Book</button>
3339            </div>
3340        
3341        </div>
3342
3343    </div>
3344</a>                                                                        <a href="/tours/nettetal-krickenbecker-lakes-forest-castle-segway-tour/" class="hotel-slide">
3345        <!-- SLIDER DE IMÁGENES -->
3346    
3347    <div class="img-slider" data-slider="nettetal-krickenbecker-lakes-forest-castle-segway-tour">
3348                    
3349            <img 
3350                alt="Nettetal, Krickenbecker Lakes, Forest &amp; Castle Segway Tour - Housity" 
3351                onerror="ImgError(this, 'photo-hotel.jpg')"
3352                class="slide-img active"
3353                                    src="https://cdn.getyourguide.com/img/tour/62d180bed7278.jpeg/100.jpg"
3354                            />
3355
3356                    
3357            <img 
3358                alt="Nettetal, Krickenbecker Lakes, Forest &amp; Castle Segway Tour - Housity" 
3359                onerror="ImgError(this, 'photo-hotel.jpg')"
3360                class="slide-img"
3361                                    data-src="https://cdn.getyourguide.com/img/tour/62d180c1e73aa.jpeg/100.jpg"
3362                            />
3363
3364                    
3365            <img 
3366                alt="Nettetal, Krickenbecker Lakes, Forest &amp; Castle Segway Tour - Housity" 
3367                onerror="ImgError(this, 'photo-hotel.jpg')"
3368                class="slide-img"
3369                                    data-src="https://cdn.getyourguide.com/img/tour/62d180c43007c.jpeg/100.jpg"
3370                            />
3371
3372                    
3373            <img 
3374                alt="Nettetal, Krickenbecker Lakes, Forest &amp; Castle Segway Tour - Housity" 
3375                onerror="ImgError(this, 'photo-hotel.jpg')"
3376                class="slide-img"
3377                                    data-src="https://cdn.getyourguide.com/img/tour/62d180cb65aa3.jpeg/100.jpg"
3378                            />
3379
3380        
3381                    <button class="slider-prev" onclick="sliderNav(event, 'nettetal-krickenbecker-lakes-forest-castle-segway-tour', -1)">&#8249;</button>
3382            <button class="slider-next" onclick="sliderNav(event, 'nettetal-krickenbecker-lakes-forest-castle-segway-tour', 1)">&#8250;</button>
3383            <div class="slider-dots">
3384                                    <span class="dot active"></span>
3385                                    <span class="dot"></span>
3386                                    <span class="dot"></span>
3387                                    <span class="dot"></span>
3388                            </div>
3389            </div>
3390    
3391
3392    <div class="hotel-slide-info">
3393        <div>
3394            
3395            <div class="slide-category">
3396                <p>ADVENTURE</p>
3397            </div>
3398            <h3>Nettetal, Krickenbecker Lakes, Forest & Castle Segway Tour</h3>
3399      
3400            <p class="slide-address">
3401                <img alt="Tour Location" style="width: 15px;" src="https://images.housity.net/icons/location_home.svg" />
3402                Nettetal, Germany                            </p>
3403                    
3404            <div class="flex-row-spaced">
3405                    <div class="price" style="scale: 0.8;">
3406                            <p class="price-from">From </p>
3407                            <span>99€ </span>
3408                            <p class="price-txt">Per Person</p>
3409                        </div>  
3410                <button onclick="event.stopPropagation(); event.preventDefault(); window.open('/book_tour/nettetal-krickenbecker-lakes-forest-castle-segway-tour/', '_blank', 'noopener,noreferrer')" class="buttontour"><svg viewBox="0 0 24 24"><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 0 0-4zm7-1v2h2V6zm0 4v2h2v-2zm0 4v2h2v-2z"/></svg> Book</button>
3411            </div>
3412        
3413        </div>
3414
3415    </div>
3416</a>                                                                        <a href="/tours/potsdam-wine-tour-with-the-e-bike-into-the-vineyards/" class="hotel-slide">
3417        <!-- SLIDER DE IMÁGENES -->
3418    
3419    <div class="img-slider" data-slider="potsdam-wine-tour-with-the-e-bike-into-the-vineyards">
3420                    
3421            <img 
3422                alt="From Potsdam, E-bike tour into the vineyards - Housity" 
3423                onerror="ImgError(this, 'photo-hotel.jpg')"
3424                class="slide-img active"
3425                                    src="https://cdn.getyourguide.com/img/tour/0d659157e9b8b0872660e0adcb78abb681d16fbd43ef6517c1a524d502ac4af0.jpeg/100.jpg"
3426                            />
3427
3428                    
3429            <img 
3430                alt="From Potsdam, E-bike tour into the vineyards - Housity" 
3431                onerror="ImgError(this, 'photo-hotel.jpg')"
3432                class="slide-img"
3433                                    data-src="https://cdn.getyourguide.com/img/tour/edd525599f1c2089206cc608f2fef6e558cbdfd7cec404dc6e2433c09dd02eb8.jpeg/100.jpg"
3434                            />
3435
3436                    
3437            <img 
3438                alt="From Potsdam, E-bike tour into the vineyards - Housity" 
3439                onerror="ImgError(this, 'photo-hotel.jpg')"
3440                class="slide-img"
3441                                    data-src="https://cdn.getyourguide.com/img/tour/f1ad6e59aa608c4f8bcac328252431be02c58fa9e
344111f4fb24854e3a50e9d7687.jpeg/100.jpg"
3442                            />
3443
3444                    
3445            <img 
3446                alt="From Potsdam, E-bike tour into the vineyards - Housity" 
3447                onerror="ImgError(this, 'photo-hotel.jpg')"
3448                class="slide-img"
3449                                    data-src="https://cdn.getyourguide.com/img/tour/8105c26bdc028dce1026c8203575fe97ca97d257c544ff801911c466a7494b23.jpeg/100.jpg"
3450                            />
3451
3452                    
3453            <img 
3454                alt="From Potsdam, E-bike tour into the vineyards - Housity" 
3455                onerror="ImgError(this, 'photo-hotel.jpg')"
3456                class="slide-img"
3457                                    data-src="https://cdn.getyourguide.com/img/tour/c45700e00151ecb9b4f29eb2a27733bf80af8fa7c3a56729d54928994b9cd0ad.jpeg/145.jpg"
3458                            />
3459
3460        
3461                    <button class="slider-prev" onclick="sliderNav(event, 'potsdam-wine-tour-with-the-e-bike-into-the-vineyards', -1)">&#8249;</button>
3462            <button class="slider-next" onclick="sliderNav(event, 'potsdam-wine-tour-with-the-e-bike-into-the-vineyards', 1)">&#8250;</button>
3463            <div class="slider-dots">
3464                                    <span class="dot active"></span>
3465                                    <span class="dot"></span>
3466                                    <span class="dot"></span>
3467                                    <span class="dot"></span>
3468                                    <span class="dot"></span>
3469                            </div>
3470            </div>
3471    
3472
3473    <div class="hotel-slide-info">
3474        <div>
3475            
3476            <div class="slide-category">
3477                <p>ADVENTURE</p>
3478            </div>
3479            <h3>From Potsdam, E-bike tour into the vineyards</h3>
3480      
3481            <p class="slide-address">
3482                <img alt="Tour Location" style="width: 15px;" src="https://images.housity.net/icons/location_home.svg" />
3483                Werder Brandenburg, Germany                            </p>
3484                    
3485            <div class="flex-row-spaced">
3486                    <div class="price" style="scale: 0.8;">
3487                            <p class="price-from">From </p>
3488                            <span>127€ </span>
3489                            <p class="price-txt">Per Person</p>
3490                        </div>  
3491                <button onclick="event.stopPropagation(); event.preventDefault(); window.open('/book_tour/potsdam-wine-tour-with-the-e-bike-into-the-vineyards/', '_blank', 'noopener,noreferrer')" class="buttontour"><svg viewBox="0 0 24 24"><path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v3a2 2 0 0 0 0 4v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 0 0-4zm7-1v2h2V6zm0 4v2h2v-2zm0 4v2h2v-2z"/></svg> Book</button>
3492            </div>
3493        
3494        </div>
3495
3496    </div>
3497</a>                                                            </div>
3498                        </div>
3499                        <img id="tours_loading" class="loading-indicator" src="https://images.housity.net/loading.gif" style="display: none;" />
3500                    </div>
3501                    <div class="list-slide"></div>
3502
3503                            </div>
3504
3505
3506            <div class="vertical-separator"></div>
3507            
3508            
3509
3510                        <div id="tips" >
3511    <h2>Best Travel Tips for Visiting Germany</h2>
3512
3513    </div>
3514
3515<div id="leave-tip" class="container">
3516    <p class="tip-call"> <img src="https://images.housity.net/icons/tip.svg" class="location_icon" /> What would you recommend to travelers visiting Germany? Leave your tip for them!</p>
3517    <div style="display: flex;flex-direction: column; gap: 10px;">
3518        <input id="new-tip-username" placeholder="Your Name" />
3519        <textarea maxlength="500" id="new-tip-advice" placeholder="Your Advice"></textarea>
3520        <button onclick="SubmitTip()" class="buttonbook">Submit Tip</button>
3521    </div>
3522</div>
3523
3524<div id="tip-thanks" style="display: none;">
3525    <p class="tip-call"><img class="location_icon" src="https://images.housity.net/icons/thanks.svg" alt="thank you" /> Thanks for your advice! We’ll keep it in mind.</p>
3526</div>
3527
3528<script>
3529    function SubmitTip() {
3530
3531
3532        const tip_form = document.getElementById("leave-tip");
3533        const tip_sent = document.getElementById("tip-thanks");
3534
3535        var name = document.getElementById("new-tip-username").value;
3536        var advice = document.getElementById("new-tip-advice").value;
3537
3538        if (name == "" || advice == "") {
3539            return;
3540        }
3541
3542
3543        tip_form.style.display = "none";
3544
3545
3546        var requestOptions = {
3547            method: "POST",
3548            headers: {
3549                "Content-Type": "application/json"
3550            },
3551            body: JSON.stringify({
3552                origin: "country",
3553                sid: "germany",
3554                lang_code: "en",
3555                name: name,
3556                advice: advice
3557            })
3558        };
3559        fetch('https://utils.housity.net/submit_tip', requestOptions)
3560            .then(response => {
3561                if (!response.ok) {
3562                    tip_sent.textContent = "Unknown error...";
3563                    tip_sent.style.display = "block";
3564                }
3565                return response.text();
3566            })
3567            .then(responseText => {
3568
3569                if (responseText === 'Ok') {
3570                    tip_sent.style.display = "block";
3571                    return;
3572                } else {
3573                    tip_sent.textContent = responseText;
3574                    tip_sent.style.display = "block";
3575                    return;
3576                }
3577            })
3578            .catch(error => {
3579
3580                tip_sent.textContent = error;
3581                tip_sent.style.display = "block";
3582                return;
3583            });
3584
3585    }
3586    window.onload = function() {
3587        const elements = document.querySelectorAll('.advice-translate');
3588
3589        for (let i = 0; i < elements.length; i++) {
3590            var url = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=' + encodeURIComponent(elements[i].textContent);
3591            fetch(url)
3592                .then(response => response.json())
3593                .then(data => {
3594
3595                    var translations = data[0].map(function(item) {
3596                        return item[0];
3597                    });
3598                    var translated = translations.join('');
3599                    elements[i].textContent = translated;
3600                })
3601                .catch(error => {
3602                    console.error('Translation error: ' + error);
3603                });
3604        }
3605
3606    };
3607</script>
3607
3608            <br><br>
3609                  <div id="faq">
3610         <h2>Frequently Asked Questions about Germany</h2>
3611         <div class="faq-grid">
3612             <div class="faq-item">
3613                     <h3 class="faq-question">Are there many museums in Frankfurt?</h3>
3614                     <p class="faq-answer">Frankfurt boasts an impressive array of museums, including the Kunsthistorisches Museum, which houses one of Europe's largest collections of paintings, and the Alte Pinakothek, featuring Renaissance art masterpieces.</p>
3615                 </div>         </div>
3616
3617         
3617<script>
3618             document.querySelectorAll('.faq-question').forEach(question => {
3619                 question.addEventListener('click', () => {
3620                     const item = question.parentElement;
3621                     item.classList.toggle('active');
3622                 });
3623
3624             });
3625         </script>
3625
3626     </div>
3627              <br><br>
3628                        <div class="vertical-separator"></div>
3629                <div class="country-list">
3630                    <a href="https://housity.net/stuttgart/">Stuttgart</a><a href="https://housity.net/leipzig/">Leipzig</a><a href="https://housity.net/dsseldorf/">Düsseldorf</a><a href="https://housity.net/dortmund/">Dortmund</a><a href="https://housity.net/essen/">Essen</a><a href="https://housity.net/bremen/">Bremen</a><a href="https://housity.net/dresden/">Dresden</a><a href="https://housity.net/hannover/">Hanover</a><a href="https://housity.net/bochum/">Bochum</a><a href="https://housity.net/berlin/">Berlin</a><a href="https://housity.net/wuppertal/">Wuppertal</a><a href="https://housity.net/bonn/">Bonn</a><a href="https://housity.net/bielefeld/">Bielefeld</a><a href="https://housity.net/mannheim/">Mannheim</a><a href="https://housity.net/karlsruhe/">Karlsruhe</a><a href="https://housity.net/augsburg/">Augsburg</a><a href="https://housity.net/wiesbaden/">Wiesbaden</a><a href="https://housity.net/mnchengladbach/">Mönchengladbach</a><a href="https://housity.net/gelsenkirchen/">Gelsenkirchen</a><a href="https://housity.net/chemnitz/">Chemnitz</a><a href="https://housity.net/magdeburg/">Magdeburg</a><a href="https://housity.net/halle/">Halle</a><a href="https://housity.net/krefeld/">Krefeld</a><a href="https://housity.net/erfurt/">Erfurt</a><a href="https://housity.net/mainz/">Mainz</a><a href="https://housity.net/rostock/">Rostock</a><a href="https://housity.net/oberhausen/">Oberhausen</a><a href="https://housity.net/lbeck/">Lübeck</a><a href="https://housity.net/kassel/">Kassel</a><a href="https://housity.net/hagen/">Hagen</a><a href="https://housity.net/potsdam/">Potsdam</a><a href="https://housity.net/hamm/">Hamm</a><a href="https://housity.net/oldenburg/">Oldenburg</a><a href="https://housity.net/leverkusen/">Leverkusen</a><a href="https://housity.net/solingen/">Solingen</a><a href="https://housity.net/heidelberg/">Heidelberg</a><a href="https://housity.net/darmstadt/">Darmstadt</a><a href="https://housity.net/herne/">Herne</a><a href="https://housity.net/paderborn/">Paderborn</a><a href="https://housity.net/neuss/">Neuss</a><a href="https://housity.net/ulm/">Ulm</a><a href="https://housity.net/pforzheim/">Pforzheim</a><a href="https://housity.net/frth/">Fürth</a><a href="https://housity.net/heilbronn/">Heilbronn</a><a href="https://housity.net/erlangen/">Erlangen</a><a href="https://housity.net/recklinghausen/">Recklinghausen</a><a href="https://housity.net/bremerhaven/">Bremerhaven</a><a href="https://housity.net/remscheid/">Remscheid</a><a href="https://housity.net/bottrop/">Bottrop</a><a href="https://housity.net/koblenz/">Koblenz</a><a href="https://housity.net/hildesheim/">Hildesheim</a><a href="https://housity.net/jena/">Jena</a><a href="https://housity.net/salzgitter/">Salzgitter</a><a href="https://housity.net/witten/">Witten</a><a href="https://housity.net/gtersloh/">Gütersloh</a><a href="https://housity.net/cottbus/">Cottbus</a><a href="https://housity.net/kaiserslautern/">Kaiserslautern</a><a href="https://housity.net/flensburg/">Flensburg</a><a href="https://housity.net/iserlohn/">Iserlohn</a><a href="https://housity.net/lnen/">Lünen</a><a href="https://housity.net/norderstedt/">Norderstedt</a><a href="https://housity.net/worms/">Worms</a><a href="https://housity.net/bamberg/">Bamberg</a><a href="https://housity.net/ratingen/">Ratingen</a><a href="https://housity.net/dessau/">Dessau</a><a href="https://housity.net/rheine/">Rheine</a><a href="https://housity.net/villingen-schwenningen/">Villingen-Schwenningen</a><a href="https://housity.net/zwickau/">Zwickau</a><a href="https://housity.net/gladbeck/">Gladbeck</a><a href="https://housity.net/dorsten/">Dorsten</a><a href="https://housity.net/neumnster/">Neumünster</a><a href="https://housity.net/bocholt-germany/">Bocholt</a><a href="https://housity.net/chorweiler/">Chorweiler</a><a href="https://housity.net/ldenscheid/">Lüdenscheid</a><a href="https://housity.net/fulda/">Fulda</a><a href="https://housity.net/delmenhorst/">Delmenhorst</a><a href="https://housity.net/landshut/">Landshut</a><a href="https://housity.net/bayreuth/">Bayreuth</a><a href="https://housity.net/viersen/">Viersen</a><a href="https://housity.net/neuwied/">Neuwied</a><a href="https://housity.net/sindelfingen/">Sindelfingen</a><a href="https://housity.net/troisdorf/">Troisdorf</a><a href="https://housity.net/dinslaken/">Dinslaken</a><a href="https://housity.net/aschaffenburg/">Aschaffenburg</a><a href="https://housity.net/arnsberg/">Arnsberg</a><a href="https://housity.net/friedrichshafen/">Friedrichshafen</a><a href="https://housity.net/wilhelmshaven/">Wilhelmshaven</a><a href="https://housity.net/plauen/">Plauen</a><a href="https://housity.net/detmold/">Detmold</a><a href="https://housity.net/weimar/">Weimar</a><a href="https://housity.net/unna/">Unna</a><a href="https://housity.net/herford/">Herford</a><a href="https://housity.net/grevenbroich/">Grevenbroich</a><a href="https://housity.net/celle/">Celle</a><a href="https://housity.net/euskirchen/">Euskirchen</a><a href="https://housity.net/kerpen/">Kerpen</a><a href="https://housity.net/kempten/">Kempten</a><a href="https://housity.net/greifswald/">Greifswald</a><a href="https://housity.net/neustadt-an-der-weinstrae/">Neustadt an der Weinstraße</a><a href="https://housity.net/hilden/">Hilden</a>                </div>
3631                        <section class="subscribe">
3632    <img style="display: inline;" alt="Housity - Newsletter" class="subscribe-img" src="https://images.housity.net/subscribe.png">
3633    <h3 style="text-transform: capitalize;"> Newsletter </h3>
3634    <p class="p-grey"> Subscribe to our newsletter and get the best offers!</p>
3635    <form id="subscribe-form" action="https:///newsletter.housity.net/subscribe" class="subscribe-form" method="post">
3636        <input id="subscribe-email-input" type="text" name="email" class="subscribe-form-email-input" placeholder="Your Email">
3637        <div class="subscribe-submit">
3638            <button id="subscribe-button"  style="border-top-left-radius: 0px; border-bottom-left-radius: 0px; height: 100%;" type="submit" class="buttonbook">Subscribe </button>
3639            <img alt="Loading Indicator" class="loading-indicator" src="https://images.housity.net/loading.gif" id="subscribe-loading" />
3640            <p id="subscribe-result"></p>
3641        </div>
3642        <div class="form-mess"></div>
3643    </form>
3644    <div class="disclaimer">
3645        <p>
3645By entering your email address, you agree to receive personalized offers and automated commercial communications, including promotions about our products and services, as well as those from selected partners (without sharing your data with third parties). For more details or to withdraw your consent, please refer to our Privacy Policy. You can unsubscribe at any time via the link in the email.</p>
3646    </div>
3647
3648
3649    
3649<script>
3650        const subsBut = document.getElementById("subscribe-button");
3651        const subsLoading = document.getElementById("subscribe-loading");
3652        const subsRes = document.getElementById("subscribe-result");
3653
3654
3655        document.addEventListener("DOMContentLoaded", function() {
3656            var form = document.getElementById("subscribe-form");
3657
3658            form.addEventListener("submit", function(event) {
3659                event.preventDefault(); // Evitar que el formulario se envíe por defecto
3660                SubscribeNewsletter();
3661            });
3662        });
3663
3664        function SubscribeNewsletter() {
3665            var email = document.getElementById("subscribe-email-input").value;
3666
3667            subsBut.style.display = "none";
3668            subsLoading.style.display = "block";
3669            subsRes.textContent = "Subscribing...";
3670            subsRes.style.display = "block";
3671
3672            const data = {
3673                email: email,
3674                lang: 'en'
3675            };
3676
3677            const options = {
3678                method: 'POST',
3679                headers: {
3680                    'Content-Type': 'application/json'
3681                },
3682                body: JSON.stringify(data)
3683            };
3684
3685            fetch("https:///newsletter.housity.net/subscribe", options)
3686                .then(response => response.json())
3687                .then(data => {
3688                    if (data.status === "ok") {
3689                        subsBut.style.display = "none";
3690                        subsLoading.style.display = "none";
3691                        subsRes.textContent = "Subscibed!";
3692                        subsRes.style.display = "block";
3693                    } else {
3694                        subsBut.style.display = "none";
3695                        subsLoading.style.display = "none";
3696                        subsRes.textContent = data.msg;
3697                        subsRes.style.display = "block";
3698                    }
3699                })
3700                .catch(error => {
3701                    subsBut.style.display = "none";
3702                    subsLoading.style.display = "none";
3703                    subsRes.textContent = error;
3704                    subsRes.style.display = "block";
3705
3706                });
3707        }
3708    </script>
3708
3709
3710</section>
3711<style>
3712    .subscribe {
3713        width: 80%;
3714        margin: auto;
3715        text-align: center;
3716        margin-bottom: 50px;
3717        margin-top: 80px;
3718    }
3719
3720    .subscribe-img {
3721        width: 80px;
3722        height: 80px;
3723        border-radius: 60px;
3724    }
3725
3726    .subscribe-form {
3727        display: inline-flex;
3728        height: 50px;
3729
3730    }
3731
3732    .subscribe-form-email-input {
3733        width: 500px;
3734        
3735        border-radius: var(--radius-md);
3736        border-top-right-radius: 0px;
3737        border-bottom-right-radius: 0ox;
3738        border: none;
3739        height: 30px;
3740        padding: 10px;
3741        height: 100%;
3742        background-color: var(--color-white) !important;
3743    }
3744
3745    @media only screen and (max-width: 1000px) {
3746        .subscribe-form-email-input {
3747            width: 100%;
3748        }
3749
3750        .subscribe {
3751            width: 90%;
3752            margin: auto;
3753            text-align: center;
3754            margin-bottom: 50px;
3755            margin-top: 81px;
3756        }
3757
3758    }
3759</style>            </div>
3760            
3761<footer>
3762    <div class='footer-row'>
3763
3764        <div class='column'>
3765             <p class="footer-title">Housity</p>
3766
3767            <div class='social-links'>
3768                <a style="display: flex;gap: 10px; color: white; text-decoration: none;" href='https://www.instagram.com/housity_/' rel='nofollow' target='_blank' aria-label="Follow us on instagram"> <img class="footer-icon" src="https://images.housity.net/instagram.png"/></a>                <a style="display: flex;gap: 10px; color: white; text-decoration: none;" href='https://www.facebook.com/people/Housity/100090119934114/' rel='nofollow' target='_blank' aria-label="Follow us on facebook"> <img class="footer-icon" src="https://images.housity.net/facebook.png"/></a>            </div>
3769        </div>
3770
3771
3772        <div class='column'>
3773            <p class='footer-title'>About us</p>
3774
3775            <div class='footer-links'>
3776                <a href='/contact' rel='nofollow'>Contact </a>
3777                <a href='/privacy' rel='nofollow'>Privacy policy </a>
3778                <a href='/cookie-policy' rel='nofollow'>Cookie Policy </a>
3779                <a href='/terms-and-conditions' rel='nofollow'> Terms and Conditions</a>
3780
3781            </div>
3782        </div>
3783
3784
3785        <div class='column'>
3786            <p class='footer-title'>Travel with us</p>
3787            <div class='footer-links'>
3788                <a href='/map'>Map</a>
3789                <a href='/flights' rel='nofollow' target='_blank'> Flights </a>
3790                <a href='/cars' rel='nofollow' target='_blank'>Car rental </a>
3791
3792            </div>
3793        </div>
3794    </div>
3795    <div class="disclaimer disclaimer-footer desktop-row">
3796        <p>&copy; 2026 Housity.net</p>
3797        <p class="footer-disclaimer">This website provides information for reference purposes only and is in no way affiliated with the accommodations mentioned. The information displayed may be inaccurate or outdated; please consult the official website for accurate details. Bookings are handled by our partner. For more details, see the Legal Notes section</p>
3798    </div>
3799</footer></body>
3800
3801</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.