a:6:{i:0;s:13622:"				<div class="h1"><h1>6N/7D Czech-Austria-Hungary Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bellatours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bellatours.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>6N/7D Czech-Austria-Hungary Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Budapest, Prague, Vienna</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 33488 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Special Offer <br />
1st 50 people get BELLA TOURS bag</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6N/7D Czech-Austria-Hungary 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="91765"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/397488/157880.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/157880.jpg"  width="150" height="150"    alt="6N/7D Czech-Austria-Hungary Tour" title="6N/7D Czech-Austria-Hungary Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					2 Nights in Prague with Breakfast<br />
2 Nights in Vienna with Breakfast<br />
2 Nights in Budapest with Breakfast<br />
Prague Hop on hop off city tour including one hour River Vltava cruise<br />
Vienna Hop on hop off city tour<br />
Budapest Hop on hop off city tour<br />
Prague airport - hotel transfer on private<br />
Budapest hotel - airport transfer on private<br />
Prague - Vienna - Budapest : 2nd Class Train TicketsSpecial Offer <br />
1st 50 people get BELLA TOURS bagAirfare & Taxes<br />
Visa & Insurances charges<br />
Any up gradation in hotel room category<br />
Any meals other than specified above<br />
Any sightseeing other than mentioned above<br />
Any Entrance fees or Fees for video or camera permit<br />
Any item of personal nature like tips, laundry, telephone calls etc<br />
Service tax will be applicable on total invoice17-0731-12<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrive in Prague
								</p>
								<p class="aj">Welcome to Europe. Arrive at the airport and transfer to hotel for your stay. You have rest of day at leisure. Overnight stay in Prague.</p>
								</td>
									<td class="p10px vat imgWidth150 w150px lh0">
									<div class="demo-wrap">
									<ul class="lsn m0px p0px" >
												<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/397488/157880.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/157880.jpg"  width="150" height="150"    alt="6N/7D Czech-Austria-Hungary Tour" title="6N/7D Czech-Austria-Hungary Tour" /></a></p></div></li>
									</ul>
									</div>
									</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Prague - Hop on hop off tour With One Hour Cruise
								</p>
								<p class="aj">Today after breakfast proceed for Hop on hop off tour. Discover Prague on a mini bus! Take advantage of this offer and try out a unique way of getting around Prague streets. Three different circuits will let you travel around the city in comfort with unlimited changes! A stewardess will be available on the bus throughout the entire journey. On Route a Downtown there will be headphones with audio recordings about Prague in 22 different languages including English. The ticket price also includes a one-hour cruise on a sightseeing boat, something you won't want to miss. Overnight stay in Prague.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Prague - Vienna
								</p>
								<p class="aj">Today after breakfast check out from hotel & transfer to Vienna by train. Arrive & check in at hotel. Rest of the day is free for leisure. Overnight stay in Vienna.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Vienna - Hop on hop off tour
								</p>
								<p class="aj">Today after breakfast proceed for Hop on hop off tour. See Vienna in a completely new and relaxing way on this Hop-on-Hop-off bus tour. Set your own pace, get on and off at any of the 15 stops, as often as you wish. Choose from four different routes, shop, see sights, have fun and create your own tour. On the Ring route (red route) you see a selection of the most important sights of Vienna, such as the State Opera, the Hofburg, the City Hall and St. Stephen's Cathedral. The Donau route (blue route) will take you to the Danube and the Prater amusement park with the Giant Ferris Wheel. On the Schoenbrunn route (yellow route) you get the chance to visit Schoenbrunn palace, one of Vienna's major attractions. Last but not least on the NEW Schloss Hof & Carnuntum route (grey route) Walk in the footsteps of the Romans in the Open-Air Museum Petronell-Carnuntum or in the Museum Carnuntinum of the Archaeological Park Carnuntum and visit the Palace Schloss Hof, Austria's largest country palace complex. Overnight stay in Vienna.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Vienna - Budapest
								</p>
								<p class="aj">Today after breakfast check out from hotel & transfer to Budapest by train. Arrive & check in at hotel. Rest of the day is free for leisure. Overnight stay in Budapest.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Budapest - Hop on hop off tour
								</p>
								<p class="aj">Today after breakfast proceed for Hop on hop off tour.Experience the beauties of Budapest with our City Circle Tour guided in English, on our partly open-air bus. You can Hop On and off at 5 different landmarks all around the city at your leisure. Enjoy your most individual tour and see some of the main sights of Budapest like the Parliament, Museum of Ethnography, Heroes' Square, Museum of Fine Arts, Vajadahunyad Castle, Szechenyi Thermal Bath, royal Castle, Matthias Church, Fishermen's Bastion, Hungarion National Gallery, Citadel.Overnight stay in Budapest.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Budapest- Departure
								</p>
								<p class="aj">After breakfast it’s time to check out.Transfer to the airport for your onward flight or back home.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>3 Star Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfare & Taxes</li><li>
Visa & Insurances charges</li><li>
Any up gradation in hotel room category</li><li>
Any meals other than specified above</li><li>
Any sightseeing other than mentioned above</li><li>
Any Entrance fees or Fees for video or camera permit</li><li>
Any item of personal nature like tips, laundry, telephone calls etc</li><li>
Service tax will be applicable on total invoice</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~						
    	<p class="h dif xlarge b mb5px">Hotel Details:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">City</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
			</tr>
			<tr>
				<td class="data p5px">Prague</td>
				<td class="data p5px">St.George Hotel / Ibis Mala Strana or similar</td>
				<td class="data p5px">Astoria/ Design Metropol or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Vienna</td>
				<td class="data p5px">Allegro / Mozart or similar</td>
				<td class="data p5px">Mercure Westbahnhof or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Budapest</td>
				<td class="data p5px">Star Inn Hotel Budapest Centru / Kings or similar</td>
				<td class="data p5px">Hotel President / Carlton or similar</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Price per person in EUR:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Category</td>
				<td class="headHr p5px b">Twin</td>
				<td class="headHr p5px b">Single</td>
			</tr>
			<tr>
				<td class="data p5px">Standard</td>
				<td class="data p5px">470</td>
				<td class="data p5px">652</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe</td>
				<td class="data p5px">599</td>
				<td class="data p5px">917</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6N/7D Czech-Austria-Hungary 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="91765"/>
						</form>
						</div>
						
						";i:1;s:71:"Book 6N/7D Czech-Austria-Hungary Tour - 6 Nights / 7 Days Tour Packages";i:2;s:135:"book 6n/7d czech-austria-hungary tour - 6 nights / 7 days tour packages, heritage tour packages, budapest, prague, vienna tour packages";i:3;s:178:"Book 6N/7D Czech-Austria-Hungary Tour - 6 Nights / 7 Days tour packages from Bella Tours - Get attractive 6 Nights / 7 Days Heritage  tour packages for  Budapest, Prague, Vienna.";i:4;s:1213:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Budapest, Prague, Vienna"        
		                 },
		      "description": "2 Nights in Prague with Breakfast
2 Nights in Vienna with Breakfast
2 Nights in Budapest with Breakfast
Prague Hop on hop off city tour including one hour River Vltava cruise
Vienna Hop on hop off city tour
Budapest Hop on hop off city tour
Prague airport - hotel transfer on private
Budapest hotel - airport transfer on private
Prague - Vienna - Budapest : 2nd Class Train TicketsSpecial Offer 
1st 50 people get BELLA TOURS bagAirfare & Taxes
Visa & Insurances charges
Any up gradation in hotel room category
Any meals other than specified above
Any sightseeing other than mentioned above
Any Entrance fees or Fees for video or camera permit
Any item of personal nature like tips, laundry, telephone calls etc
Service tax will be applicable on total invoice17-0731-12",
		      "name": "6N/7D Czech-Austria-Hungary Tour",
		      "telephone": "+91-9819406969"
		    }
		    </script>
			";i:5;N;}