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'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">×</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)">‹</button> 3225 <button class="slider-next" onclick="sliderNav(event, 'sylt-guided-mudflat-hike-on-the-island', 1)">›</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)">‹</button> 3309 <button class="slider-next" onclick="sliderNav(event, 'frankfurt-airport-fraport-visitor-center', 1)">›</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 & 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 & 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 & 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 & 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)">‹</button> 3382 <button class="slider-next" onclick="sliderNav(event, 'nettetal-krickenbecker-lakes-forest-castle-segway-tour', 1)">›</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)">‹</button> 3462 <button class="slider-next" onclick="sliderNav(event, 'potsdam-wine-tour-with-the-e-bike-into-the-vineyards', 1)">›</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>© 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.