a:6:{i:0;s:17653:"				<div class="h1"><h1>London Paris Zurich Italy Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelbhai.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelbhai.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>London Paris Zurich Italy 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">
						14 Nights / 15 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">London, Paris, Milan, Venice, Florence, Rome, Zurich</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="London Paris Zurich Italy 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="53617"/>
						</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/397474/104231.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397474/104231.jpg"  width="150" height="150"    alt="London Paris Zurich Italy Tour" title="London Paris Zurich Italy Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> London - Arrival
								</p>
								<p class="aj">Upon you arrival at the airport, get welcomed by our representative and get transferred to the hotel. The remaining day is to be spent at leisure. You may take rest in your hotel room or enjoy small walks in close vicinity of the hotel. Dinner and an overnight stay at the hotel.</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 2:</b> London
								</p>
								<p class="aj">In the morning, post breakfast, get ready to visit two of London's top attractions, namely London Eye and a Thames River. Get combined tickets as the deal will save money and on the same allow you to enjoy the day exploring the world's greatest city, London.<br />
<br />
London Eye:World’s tallest observation wheel, London Eye, offers the panoramic view of the London City from a height of 442 ft (135 m). The location, being on the shores of River Thames, visitors get mesmerized with the vistas. Since establishment, the attraction has served as an iconic landmark along with Big Ben, Tower Bridge, and the Tower of London. The attraction has also been featured in various commercial films due to its breathtaking view.<br />
<br />
Thames River Sightseeing Cruise: The deck of a boat is perhaps the best way to witness the sights and attractions of London city. Onboard, the guests will experience the comforts and styling according to historic world-famous landmarks of London. The boats feature open upper decks which help in excellent sightseeing experience. There also are comfortable lower saloons. As the cruise departs from Waterloo Pier, the guests enjoy light refreshments and bar service as major attraction of London glide by. On the round tour of 40 minutes, a guide is also provided to help the guests get the best of the knowledge of the attractions.<br />
<br />
Thereafter, return to your hotel for dinner and an overnight stay.</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> London - Paris
								</p>
								<p class="aj">Early morning, have breakfast and get ready and transferred to Paris by Eurail. Upon arrival, get assisted and transferred to the hotel. Remaining hours of the day is free to be spent at leisure. You may rest in hotel or take small walks on the nearby streets. Dinner and an overnight stay at the hotel.</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> Paris
								</p>
								<p class="aj">Post breakfast, get ready to see the main attractions of Paris. This will be a 5-hour city tour of Paris. The excursion includes city tour by coach, toweringpanoramas from the Eiffel Tower’s 2ndfloor, and amazing views of Paris on cruise along the Seine River. There are four timings available, such as 9:00 am, Noon, 2:45 pm or 6:15 pm, to help the guests choose according to their convenience. This is a comprehensive tour package that allows the visitors to know the best of the city in the very first visit. Paris tour by coach includes Place de la Concorde Square, the Arc de Triomphe, the Champs-Elysees, the western districts of Paris, the Palais Bourbon (National Assembly), and the Palais de Chaillot. Return to the hotel for dinner and an overnight stay.</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> Paris - Zurich
								</p>
								<p class="aj">In the morning, post breakfast, get assisted and transferred to Zurich by Eurail. Rest of the day is free to be spent at leisure. You may spend the day taking rest in your hotel or enjoy small walks on the nearby streets. Dinner and an overnight stay in the hotel.</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> Zurich
								</p>
								<p class="aj">After breakfast in the hotel, get ready to explore the best of Zurich on board the unique Classic Trolley. The trolley is designed in styles of yesteryears, complemented with modern comforts to meet the satisfaction level of the elite travelers. There are state-of-the-art headsets provided for commentary, which is available in 8 different languages. The tour will be of two hours, which will feature excursion through the beautiful Zurich City and visit the financial and business centre, a section of the Old Town, Bahnhofstrasse, major museums, historical Limmatquai, Fraumunster Church & Chagall windows, residential areas, the University district, recreation areas, lovely hillside villas on the Zurichberg and amazing sights of the Alps from vantage point on the lake of Zurich. Return to your hotel for dinner and an overnight stay.</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> Zurich - Milan
								</p>
								<p class="aj">After breakfast in the hotel, get assisted and transferred to Milan by Eurail. The remaining hours of the day are to be spent at leisure. You may spend the remaining day taking rest in the hotel or enjoy walks in nearby area of the hotel. Dinner and an overnight stay at the hotel.</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 8:</b> Milan
								</p>
								<p class="aj">Post breakfast, get ready to explore the best of the Milan via 2 different tour routes. On board an open-top double-decker bus, see all the major attractions of the city. The bus has 12 stops in total, thus, guests could choose and hop-on and hop-off throughout the city. The validity of the ticket is for 48 hours from the first use. Milano is economic engine room of the country and also houses stock market and business centers of Italy. The city of Milan is also recognized as the design capital of the world and competitor of Paris as a fashion centre. Return to your hotel for dinner and an overnight stay.</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 9:</b> Milan - Venice
								</p>
								<p class="aj">In the morning, after breakfast, get assisted and transferred to Venice by Eurail. The remaining day is free to be spent at leisure. Dinner and an overnight stay at the hotel.</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 10:</b> Venice
								</p>
								<p class="aj">The day is dedicated to explore the best of the Venice. After breakfast, get ready for half-day excursion to the famous islands of the Venice lagoon namely, Murano, Burano and Torcello. Start with glass-blowing display on Murano, continuing with shopping spree for lace on Burano and finally visiting the first church of Venice on the serene Torcello Island. This tour is probably the best way to introduce the magical charm of the Venetian lagoon. Speed through the Venetian lagoon to Murano on a comfortable motor boat. On the island you can visit shops and factories, along with witness the skilled glass-blowers as they create masterpieces. On your visit to the museum, you can also view the world-famous Murano glass featured there. Dinner and an overnight stay at the hotel.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Venice - Florence
									</p>
									<p class="aj">After breakfast at the hotel, get assisted and transferred to Florence by Eurail. As the remaining hours of the day is free to be spent at leisure, you may opt to take rest in the hotel or take small walks down the streets of Florence. Dinner and an overnight stay in the hotel.</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 12:</b> Florence
									</p>
									<p class="aj">After breakfast at the hotel, get ready to explore the best of the Florence city through hop-on and hop-off double-decker bus. The stopovers in the tour route feature the Cathedral, San Marco, Santa Croce, Piazzale Michelangelo and more. For the full day of sightseeing, guests can hop-on and off as many times as they want to. Florence is regarded as the ‘jewel city of the Renaissance’ and is bordered by the Appenine mountain range. The museums and art galleries are also popular world-wide and thus, attract tourists from different parts of the globe. David of Michaelangelo, the stunning Duomo & marble facade and the Venus of Botticelli are also some of the major attractions. Apart from rich culture, the city also features elegant boutique, tempting ice cream parlors and tiny craft shops. Dinner and overnight stay at the hotel.</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 13:</b> Florence - Rome
									</p>
									<p class="aj">Post breakfast, get assisted and transferred to Rome through Eurail. The rest of the day is free to be spent at leisure. Dinner and an overnight stay at the guests.</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 14:</b> Rome
									</p>
									<p class="aj">After breakfast at the hotel, explore the more of Rome through a guided walking tour. Visit St Peter's Basilica and the Vatican Museums. On the first visit, the guests get overwhelmed. Allow the guide to help you explore the best and know about various aspects being the history, politics and architecture of the Vatican. The guided walking tour in the morning, afternoon and evening, the guests get to know the best of the smallest country of the world, including magnificent churches and impressive fine art collection. Famous Sistine Chapel and frescoes, started by Michelangelo in 1508, is also one of the major highlight of the tour. Thereafter, return to the hotel for dinner and an overnights stay.</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 15:</b> Rome - Departure
									</p>
									<p class="aj">In the morning, after breakfast, check-out from the hotel and get assisted and transferred to the Airport. On reaching airport, on board the flight towards your onward journey.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>Sightseeing</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. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="London Paris Zurich Italy 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="53617"/>
						</form>
						</div>
						
						";i:1;s:71:"Book London Paris Zurich Italy Tour - 14 Nights / 15 Days Tour Packages";i:2;s:172:"book london paris zurich italy tour - 14 nights / 15 days tour packages, forts and palaces tour packages, london, paris, milan, venice, florence, rome, zurich tour packages";i:3;s:217:"Book London Paris Zurich Italy Tour - 14 Nights / 15 Days tour packages from Travel Bhai - Get attractive 14 Nights / 15 Days Forts and Palaces  tour packages for  London, Paris, Milan, Venice, Florence, Rome, Zurich.";i:4;s:454:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "London, Paris, Milan, Venice, Florence, Rome, Zurich"        
		                 },
		      "description": "",
		      "name": "London Paris Zurich Italy Tour",
		      "telephone": "+91-9811617033"
		    }
		    </script>
			";i:5;N;}