a:6:{i:0;s:34291:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>7 NIGHTS/8 DAYS EASTERN EUROPE TOUR</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.cloud09holidays.co.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.cloud09holidays.co.in/travel-packages.htm" title="Packages">Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> 7 NIGHTS/8 DAYS EASTERN EUROPE TOUR</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296664.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296664.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296664.jpg"  alt="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR" title="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296665.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296665.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296665.jpg"  alt="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR" title="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
							
							<ul class="lsn" id="bxslider-pager"><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296664.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/296665.jpg"></a></li></ul>					
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">7 NIGHTS/8 DAYS EASTERN EUROPE TOUR</p>
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Bratislava, Prague, Karlovy, Vienna, Salzburg</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.cloud09holidays.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="189101"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">HIGHLIGHTS: <br />
<br />
07 Nights’ accommodation with Breakfast at 3 star properties<br />
07 Dinners at Indian restaurant<br />
Services of Professional Experienced Indian Tour Manager<br />
<br />
PRAGUE: 		City tour of Prague<br />
Day Excursion to Karlovy Vary<br />
Visit to Cesky Krumlov<br />
<br />
SALZBURG: 		Orientation Tour of Salzburg<br />
<br />
VIENNA: 		Orientation Tour of Vienna <br />
			Visit Schonbrunn Palace<br />
<br />
BRATISLAVA:	Orientation Tour of Bratislava <br />
<br />
BUDAPEST:		Orientation Tour of Budapest</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Prague Arrival, City Tour										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												We welcome you to the magnificent continent of Europe. Our Tour Manager will meet you at the arrivals hall after immigration.Welcome to the city of Prague. It is one of the largest cities of Central Europe and has served as the capital of the historic region of Bohemia for centuries.The city has a rich architectural heritage that reflects both the uncertain currents of history in Bohemia and an urban life extending back more than 1,000 years.<br />
Later, we proceed for a city tour. You will see some of the cultural treasures of this historic city, including the Old Town, the original heart of the city, with sights such as the Powder Gate and the Old Town Hall. Visit the Castle District (outside guiding) and later enjoy time at leisure to visit the Golden Lane, that was named after the goldsmiths who lived there in the 17th century or stroll through the narrow streets of the city center. In the evening enjoy the czechian local kitchen at a typical czech restaurant! Don´t forget to try the traditional beer, it is delicious!Enjoy a comfortable overnight stay at the hotel. <br />
Meals:  Dinner															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Day Excursion to Karlovy Vary										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast,we proceed for a day excursion to Karlovy Vary. Discover Karlovy Vary (Carlsbad), one of the most captivating spa towns in Europe. This popular west Bohemia spa town sometimes referred to as Carlsbad or Karlsbad is noted for its 13 curative thermal springs and approximately 300 smaller springs. Take a stroll along its elegant colonnades. Taste its hot mineral springs. The Moser Glassworks are sure to amaze as you see how the world famous Bohemia crystal is made. There will be also enough time for a traditional Czech lunch, souvenir shopping or spa treatment in the mineral water of this stunning town.Enjoy a comfortable overnight stay at the hotel.<br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Visit to Cesky Krumlov, Onto Salzburg										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast we proceed to visit Cesky Krumlov. Český Krumlov, in Bohemia’s deep south, is one of the most picturesque towns in Europe. It’s a little like Prague in miniature – a Unesco World Heritage Site with a stunning castle above the Vltava River, an old town square, Renaissance and baroque architecture, and hordes of tourists milling through the <br />
streets – but all on a smaller scale; you can walk from one side of town to the other in 20 minutes. There are plenty of lively bars and riverside picnic spots – in summer it’s a popular hang-out for backpackers. It can be a magical place in winter, though, when the crowds are gone and the castle is blanketed in snow.<br />
We continue our journey to Salzburg. Enjoy a comfortable overnight stay at the hotel.<br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Orientation tour of Salzburg, Onto Vienna										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast we proceed to an Orientation tour of Salzburg. For centuries, Prince Archbishops represented the worldly and clerical power in this independent principality. Impressive monuments still bear witness to their rein. Renowned architects and artists worked through the centuries to create architectural masterpieces. Get to know Salzburg with it's Gothic, Renaissance and Baroque elements. Continue your journey to Vienna, the capital city of Austria & its cultural, economic and political centre. Few cities in the world glide so effortlessly between the present and the past like Vienna. Its splendid historical face is easily recognized: grand imperial palaces and bombastic baroque interiors, museums flanking magnificent squares and, above all, the Hofburg – where the Habsburg rulers lived, loved and married into empires. The capital scores highly thanks to the first-rate musical and cultural attractions at its concert halls, museums and theaters - from the Golden Hall of the Musikverein to the acclaimed Museum of Fine Arts and the State Opera House. Vienna is also a byword for epicurean enjoyment, with centuries of traditions shaping its coffee houses and Heuriger wine taverns.& enjoy a comfortable overnight stay at the hotel.<br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Vienna - city tour & visit to Schonnbrunn Palace										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast today, we begin our city tour with the most significant sights of Vienna. Along the Ringstrasse we see magnificent buildings, such as the MAK, the State Opera House, the Museum of Fine Arts and the Natural History Museum, the cultural district the Museums Quartier, the former Habsburg winter residence, the Hofburg, the Parliament, the City Hall and the Burgtheater. Later visit the Schonbrunn Palace which was the summer residence of the Austrian Emperors for nearly 150 years. It was built between 1695 and 1749 with over 100 rooms and beautiful gardens. Enjoy a comfortable overnight stay at the hotel. <br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Bratislava Orientation tour - Onto Budapest										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast today, we proceed to Bratislava - the capital of Slovakia. It is also the political, cultural and economic centre of Slovakia. Bratislava is neatly divided by the Danube River. On the north bank are the less attractive high-rise blocks erected under Communist occupation (1968-89). On the north bank is the comparatively tiny but beautifully restored historic quarter of the Old Town (Stare Mesto), now devoted almost entirely to tourism.<br />
Bratislava Old Town, much of which is pedestrianised, is characterized by its charming Hapsburg baroque architecture, including many former palaces. Hlavne Square sits at its heart, containing the Old City Hall, and parallel, running north to south, the old Michalska and Venturska streets lead past a number of historical sites. The town has a rich musical pedigree and includes the childhood performance venues of Mozart and Franz Liszt. Zelená Ulica runs off Michalska and is one of the narrowest streets in the city, home to Academia Istropolitana, the first university in the Hungarian Kingdom. Don't miss a stroll along the charming pedestrian promenade which begins at the National Theatre with its statuary, fountains and many cafés. At the other end of the Old Town is St Martin's Cathedral, which hosted the coronation of exiled Hungarian kings during the period when most of Hungary was under Ottoman rule. The city also boasts a number of copper-domed churches, palaces, and, just outside the walls, the dominant landmark of Bratislava Castle. Later, we proceed to the hotel for a comfortable overnight stay. <br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 7											
											:</b> Orientation Tour of Budapest										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast, we proceed to we proceed to Budapest, which is Hungary’s principal political, cultural, commercial, industrial, and transportation centre. With green filled parks full of charming pleasures, museums that will inspire, and a pulsating nightlife that is on par with its European counterparts, Budapest is one of Europe's most delightful and enjoyable cities. Thanks to the perfect location, inhabitants' hospitality and memorable monuments it is mentioned as "Little Paris of Central Europe" and "Pearl of Danube". On our city tour we see the Chain bridge, the Parliament (the most picturesque building of the city) and the Castle. We drive to the Gellert Hill (Citadel) for the amazing view of Budapest, after that – Central Market hall with the largest synagogue of Europe. We take a photo stop at Heroes square - one of the major squares of Budapest, rich with historic and political connotations. Its iconic statue complex, the Millennium Memorial, was completed in 1900, the same year the square was named "Heroes' Square". Enjoy a comfortable overnight stay at the hotel.<br />
Meals: Breakfast and Dinner			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 8											
											:</b> Departure										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast, we bid goodbye to Europe as we receive a transfer to the airport in time to board your flight back home. With an enriching experience of a lifetime, it’s time to takehome happy memories of the beautiful places visited, which you will treasure for a lifetime.<br />
Meals: Breakfast			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																				<li>Airfare + Visas </li><li>
Remittance Euro 45 on total bill</li><li>
Mandatory tips of EUR 3 per person per day to be directly handed over on tour</li><li>
Porterage unless mentioned on offer sheet</li><li>
Any Supplements for un-social hours</li><li>
Insurance or Medical Cover for any passenger</li><li>
5% GST or Taxes of any nature as applicable</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Booking Amount	: INR 60000/- per person at the time of booking. </li><li>
Balance Payment	: 45 days prior to departure.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>120 days and more before departure - 25% of total holiday cost</li><li>
90 days before departure - 30% of total holiday cost</li><li>
60 Days before departure - 75% of total holiday cost</li><li>
30 Days before departure - 100% of total holiday cost</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.cloud09holidays.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 NIGHTS/8 DAYS EASTERN EUROPE TOUR - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="189101"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-kumarakom.htm" title="Packages in Kumarakom">Kumarakom</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-thiruvananthapuram.htm" title="Packages in Thiruvananthapuram">Thiruvananthapuram</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-prague.htm" title="Packages in Prague">Prague</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-salzburg.htm" title="Packages in Salzburg">Salzburg</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-cape-town-tour.htm" title="Packages in Cape Town">Cape Town</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-kovalam.htm" title="Packages in Kovalam">Kovalam</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-vienna.htm" title="Packages in Vienna">Vienna</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-johannesburg-tours.htm" title="Packages in Johannesburg">Johannesburg</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-brussels.htm" title="Packages in Brussels">Brussels</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-karlovy.htm" title="Packages in Karlovy">Karlovy</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-patnitop.htm" title="Packages in Patnitop">Patnitop</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-lille.htm" title="Packages in Lille">Lille</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-baramulla.htm" title="Packages in Baramulla">Baramulla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-kozhikode-calicut.htm" title="Packages in Kozhikode Calicut">Kozhikode Calicut</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-dusseldorf.htm" title="Packages in Dusseldorf">Dusseldorf</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-taupo.htm" title="Packages in Taupo">Taupo</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-nice.htm" title="Packages in Nice">Nice</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-lucerne.htm" title="Packages in Lucerne">Lucerne</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-kollam.htm" title="Packages in Kollam">Kollam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-bali.htm" title="Packages in Bali">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.cloud09holidays.co.in/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.cloud09holidays.co.in/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Bratislava, Prague, Karlovy, Vienna, Salzburg</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.cloud09holidays.co.in/tour-packages/europe-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/503996/191887.jpg"  alt="Europe Package" title="Europe Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.cloud09holidays.co.in/tour-packages/europe-package.htm" title="Europe Package"><h3>Europe Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								14 Nights / 15 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Paris, Munich, Dusseldorf, Brussels, Zur..</p>
															<div class="mt10px small">
							<form name="pkg_118330" id="pkg_118330" method="post" action="http://www.cloud09holidays.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.cloud09holidays.co.in/tour-packages/europe-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Europe Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="118330"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:74:"Book 7 NIGHTS/8 DAYS EASTERN EUROPE TOUR - 7 Nights / 8 Days Tour Packages";i:2;s:160:"book 7 nights/8 days eastern europe tour - 7 nights / 8 days tour packages, adventure tour packages, bratislava, prague, karlovy, vienna, salzburg tour packages";i:3;s:193:"Cloud09 Holidays offers 7 NIGHTS/8 DAYS EASTERN EUROPE TOUR - 7 Nights / 8 Days tour package, budget Adventure tour packages for Bratislava, Prague, Karlovy, Vienna, Salzburg at exciting price.";i:4;s:912:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bratislava, Prague, Karlovy, Vienna, Salzburg"        
		                 },
		      "description": "HIGHLIGHTS: 

07 Nights’ accommodation with Breakfast at 3 star properties
07 Dinners at Indian restaurant
Services of Professional Experienced Indian Tour Manager

PRAGUE: 		City tour of Prague
Day Excursion to Karlovy Vary
Visit to Cesky Krumlov

SALZBURG: 		Orientation Tour of Salzburg

VIENNA: 		Orientation Tour of Vienna 
			Visit Schonbrunn Palace

BRATISLAVA:	Orientation Tour of Bratislava 

BUDAPEST:		Orientation Tour of Budapest",
		      "name": "7 NIGHTS/8 DAYS EASTERN EUROPE TOUR",
		      "telephone": "+91-9246610238"
		    }
		    </script>
			";i:5;N;}