a:6:{i:0;s:24802:"				<div class="h1"><h1>Magnificent Europe Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.visiontourandtravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.visiontourandtravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Magnificent Europe 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">
						17 Nights / 18 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">London, Paris, Florence, Brussels, Innsbruck, Rome, Lucerne</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.visiontourandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Magnificent 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="74536"/>
						</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_16/450636/133094.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/450636/133094.jpg"  width="150" height="150"    alt="Magnificent Europe Tour" title="Magnificent Europe 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> Arrive into London - Begin your ‘Magnificent Europe’ Tour
								</p>
								<p class="aj">Welcome to London - capital of England and United Kingdom. On arrival, you will be met by your Tour Manager / Local Representative outside the customs area, who will welcome you and take you to your hotel (Check-in time is after 3.00 pm). Overnight at the hotel in London.<br />
(Dinner)</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> Guided City Tour of London - Ride on the London Eye
								</p>
								<p class="aj">After a continental breakfast, we proceed for a guided panoramic city tour of London. See the Westminster Abbey, the Houses of Parliament, Big Ben, Nelson’s Column at Trafalgar Square, the statue of Eros at Piccadilly Circus, the symbolic Tower Bridge. Later, enjoy a ride on London Eye by the river Thames. Hold your breath as you take a thrilling ride on one of the world’s tallest Ferris wheel. Overnight at the hotel in London.</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> Visit to Tower of London - Witness the Changing of the Guards - Visit to Madame Tussauds Wax Museum
								</p>
								<p class="aj">After a continental breakfast, we visit the Tower of London, where we will see the ‘ Kohinoor Diamond ’. You can also photograph yourself with the ‘Yeomen Warders’, the ceremonial guardians of the Tower of London. We then drive to Buckingham Palace where we can see the Changing of the Guards (If Operational). Later we proceed to the Madame Tussauds Wax Museum, the world’s largest exhibition of wax works. The celebrity list includes over 400 stunning, life-like figures that never fail to entice the visitors. We, then proceed to the Ferry Port of Harwich and board our overnight Ferry to Hook of Holland. Overnight in the comforts of your cabin.</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> Keukenhof OR Madurodam - Photo-stop at a Windmill - Wooden Shoe Factory and Cheese Farm - Canal Crui
								</p>
								<p class="aj">After a continental breakfast, on board, we disembark at Hook of Holland and drive to Lisse to visit the Keukenhof Tulip Gardens (until 21st May), the famed National Flower Exhibition. Like the million visitors that journey here annually, you will be spellbound at the sight of beautiful displays of over seven million Tulips, Daffodils, Narcissi and other flowers. From 22nd May, we drive to The Hague - political capital of Netherlands and residence of the Queen. Here we visit Madurodam - Holland in miniature. Feel like a giant amidst models of palaces, canals, windmills, harbours, airports. Next, stop at one of the windmills - a symbol of the Netherlands, a splendid backdrop for a family photograph. Later, enjoy a demonstration on the art of making wooden shoes, at a wooden shoe factory. Discover Amsterdam in a novel manner as we take you on a cruise along its canals, the best way to see this captivating city. Overnight at the hotel in Belgium.</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> Orientation Tour of Brussels - See the Cologne Cathedral - Visit to the Altstadt, Heidelberg
								</p>
								<p class="aj">After a continental breakfast, we check-out and proceed for an orientation tour. See the adorable Mannekin Pis Statue, a charming fountain of a little boy, today the symbol of Brussels, the beautiful Grand Place with its Town Hall. Later, we drive to Cologne, famous for Eau de Cologne, where we visit the magnificent Cologne Cathedral. This 515 feet tall gothic Cathedral took six centuries to build and Germany’s most visited monument. Drive towards Heidelberg and stroll on the Altstadt - the cobbled stone old town. Later check into the hotel. Overnight at the hotel in Germany</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> Visit to Drubba in the Black Forest - Onto Switzerland - Visit the Rhine at the Schaffhausen
								</p>
								<p class="aj">After a continental breakfast, we check-out and journey to Switzerland through the famous Black Forest region of Germany. We stop at the Drubba Centre in the heart of the forest. Here you have an opportunity to buy Cuckoo clocks & other souvenirs. Next, we journey to Switzerland known for its spectacular mountain scenery, sparkling lakes and folklore traditions. At Schaffhausen, see the mighty Rhine Falls and admire the thundering beauty of the falls - Europe’s most powerful waterfalls. Overnight at the hotel in Switzerland.</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> Day Free Suggested Excursion: Visit to Jungfraujoch with Lunch and Interlaken
								</p>
								<p class="aj">After a continental breakfast, the day is free OR we suggest a visit to Jungfraujoch and picturesque Interlaken. We begin with a scenic drive to Lauterbrunnen, from where we board a train to Jungfraujoch the highest altitude railway station in Europe at 11,333 ft. takes us along lovely lakes and mountain passes. Marvel at the changes in alpine scenery as your charming cogwheel train takes you on a unique journey to Jungfraujoch, the very Top of Europe. On top of Jungfraujoch, you have free time to explore the modern complex. Experience the magic of the mountains at the Sphinx Terrace. See the breathtaking Jungfrau Peak and the awesome Aletsch Glacier. Also, visit the Ice Palace, where you see a beautiful display of sculptures made of ice, while being encased in ice yourself. Send a postcard to your friends and relatives from Europe’s highest altitude Post office with its own special postmark. Enjoy an Indian lunch on top.<br />
<br />
Thereafter, we proceed to Interlaken, one of Switzerland’s best known health and pleasure resorts. There’s time to relax at the many cafes or shop for Swiss watches, chocolates, Swiss memorabilia, etc. Overnight at the hotel in Switzerland.</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> Visit to Mount Titlis with Cliff Walk and Lucerne
								</p>
								<p class="aj">After a continental breakfast, we proceed to Mt. Titlis and Lucerne. We begin the tour with a visit to Mt. Titlis, which at 10,000 ft is the highest peak in central Switzerland. At Mt. Titlis you have free time to play and enjoy in the snow, visit the Ice Cave or just relax at the restaurant. At the Terrace on top of the Mt. Titlis summit station, weather permitting, you could take a stroll on the latest attraction at Mt.Titlis - The Cliff Walk. Next, we proceed for an orientation tour of Lucerne, one of the six most frequently visited cities in the World. See the Lion Monument, ‘Lowendenkmal’ hewn from a limestone cliff to commemorate the bravery and loyalty of Swiss Guards. You may take a stroll across the Kappelbrucke- the world’s oldest covered wooden bridge, originally built in 1333 over the Reuss river. You have free time at Schwanenplatz to shop for Swiss army knives, chocolates, watches, souvenirs, etc. Overnight at the hotel in Switzerland.</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> Onto Innsbruck - Visit Swarovski Crystal World - Orientation Tour of Innsbruck
								</p>
								<p class="aj">After a continental breakfast, we check out and drive towards Wattens in Austria to visit the amazing Swarovski Crystal World. We, then continue our journey towards Innsbruck. On arrival, we take you on an orientation tour of Innsbruck. See the ‘Goldenes Dachl’ - the Golden roof, an ornate Gothic balcony and a symbol of the city. Also see the Heiblinghaus, a building resembling a wedding cake. Overnight at the hotel in Innsbruck.</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> : Private Water Taxi to St.Marks Square - Orientation Tour of Venice - Visit to Murano Glass Showroo
								</p>
								<p class="aj">After a continental breakfast, we check-out and drive to Venice, the romantic Italian city, known for its unique architecture. We arrive in Venice, an archipelago of 118 islands, 170 canals & 400 bridges. We drive over Mussolini’s Bridge of Liberty and then take a Private Water Taxi to St. Mark’s Square, the very heart of Venice. Here, see the historic Ducal Palace, the infamous prison, the Bridge of Sighs, the exquisite Clock Tower and the splendour of St. Mark’s Basilica. Visit the Murano Glass factory where a master craftsman will demonstrate the art of creating the famous Venetian blown glass. Do not miss this opportunity to buy souvenirs at discounted prices. We return to St. Mark’s Square, the most photographed Square in the world and soak in the unique atmosphere of this charming city. Overnight at the hotel in Venice/Padova.</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> Visit to Ferrari Museum - Guided Walking Tour of Florence
									</p>
									<p class="aj">After a continental breakfast, we check-out and drive to Maranello to visit the Ferrari Museum where, you will be greeted by the beautiful F1,GT and sport cars that made history which will relive the great competitions of the past. See the technological innovations, some of which had made the transition from racing cars to road cars. Also view the prizes, photographs and other historical objects relating to the Italian motor racing industry. Next, we drive to Florence. On arrival, we proceed on a guided walking tour of Florence. See the Magnificent Duomo, the Baptistery and Giotto’s Bell Tower. Walk towards Piazza Signoria to see the Palazzo Vecchio, The Logia and the Equesterian statue of Cosimo the 1st. Overnight at the hotel in Arezzo.</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> Day trip to Rome - Visit to the Vatican Museum with Sistine Chapel and St. Peter’s Basilica - Guid
									</p>
									<p class="aj">After a continental breakfast, we check-out and take you to the world-renowned Vatican museum with Sistine Chapel, built between 1475 and 1483, in the time of Pope Sixtus IV. It has many beautiful frescoes, which depict the history of the universe, God and humanity. Do not miss the beautiful ceiling and also “The Last Judgement” painted on the altar by the renowned artist Michelangelo. Visit St. Peter’s Basilica, the world’s largest Cathedral, which will amaze you with its size, beauty and splendour. Next, on our guided city tour of Rome, we see Piazza Venezia, the colossal Victor Emmanuel II Monument, built to commemorate the 50th anniversary of Italian reunification. Relive the thrills of historic Rome as you view the ancient Roman & Imperial Forums. See the gigantic Colosseum - symbol of Rome (from outside).<br />
<br />
Next, we drive to Florence. Overnight at the hotel in Florence</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> Orientation Tour of Pisa - Onto Nice - English Promenade in Nice
									</p>
									<p class="aj">After a continental breakfast, we check-out and drive to Pisa. On arrival, we visit the “Field of Miracles”, wherein stands the grand Romanesque Pisan styled marble Cathedral. See the Baptistery and the bell tower, known throughout the world as the Leaning Tower of Pisa. Remember to take a photograph of your family against this wonder of the world.<br />
<br />
Next, we drive to Nice - the uncontested Queen of the French Riviera. On arrival you have free time to stroll along the world famous palm lined English Promenade above the white crescent beach and savor the atmosphere of this Mediterranean resort. Overnight at the hotel in Nice/Cannes.<br />
<br />
(During the Grand Prix your hotel may not be in Nice/ Cannes).</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> Visit to Fragonard Perfumery in Eze Village - Visit to Monaco, Monte Carlo and Cannes
									</p>
									<p class="aj">After a continental breakfast, we take you on an exciting trip to Eze Village, Monaco, Monte Carlo and Cannes. Visit the Fragonard Perfumery in Eze village where you will see a demonstration of how perfumes are made. Seize this opportunity to buy original and classic Fragonard perfumes. Next, we drive to Monaco. See Prince Rainier’s Royal Palace and the Cathedral, where many members of Monaco’s royal family are buried, including Princess Grace. You have free time to stroll along the winding streets and pedestrian alleyways of the old town where you will find beautiful souvenirs and quaint cafes. We then proceed to Monte Carlo. Enjoy the beautiful views of the splendid harbour with its expensive yachts and drive along the famous Grand Prix circuit of Monte Carlo (entry will be restricted during Grand Prix Race).<br />
<br />
Later, we drive along the sparkling shores of the Riviera to fashionable Cannes. It is difficult to imagine a more splendid location than glitzy Cannes. Among the famous festivals held here, the most celebrated is the International Festival of Cinema. Drive along the Boulevard de la Croisette and see the film festival center, where the stars congregate each year. Overnight at the hotel in Nice/Cannes.<br />
<br />
(During the Grand Prix your hotel may not be in Nice/Cannes).</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> Onto Paris - High-Speed TGV Train to Paris - Guided City Tour of Paris - Grand Evening in Paris - Li
									</p>
									<p class="aj">After a continental breakfast, we check-out and proceed to Nice station to board the high speed TGV Train, which will take you to Lyon station in Paris. On arrival, we proceed for a Guided Panoramic City tour. See Place de la Concorde, the majestic Arc de Triomphe, the fashionable Champs Elysees and the magnificent Opera House. In the evening we take you for a ‘Grand Evening in Paris’ that includes Champagne with Indian dinner and great entertainment at the Lido show. See the finest combination of beauty, rhythm and gaiety. Experience the charm of striking ballets, shimmering costumes and talented dance troupes. After the show, we take you on an Illumination tour of Paris. See the famous landmarks of Paris - the city of lights, magically lit up. A perfect end to this beautiful evening!!! Post dinner proceed to the hotel and check in. Overnight at the hotel in Paris.</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 16:</b> Visit to Disneyland, Paris
									</p>
									<p class="aj">After a continental breakfast, we proceed to Disneyland, Paris For the fun-loving and adventurous, we take you for an exciting trip to Disneyland, Paris. Get charmed by Cinderella’s castle. Take an exciting roller coaster ride down the Thunder Mountain. Visit Fantasyland and meet Alice in Wonderland, Pinocchio, Peter Pan and Snow White. Get thrilled by the legends of Aladdin and Indiana Jones at Adventureland. Ride a space shuttle to the moon at Discoveryland. Encounter Ghost Ships, Steam trains and Western scenes in the Wild West town of Frontierland. Overnight at the hotel in Paris.</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 17:</b> Visit to Versailles Palace and Louvre Museum - Visit the Eiffel Tower Level 3 ­
									</p>
									<p class="aj">After a continental breakfast, we proceed to Versailles Palace and Louvre Museum. Vast chambers and private apartments of unimaginable luxury including the famous Hall of mirrors. We then, visit the renowned Louvre museum, world’s most visited art museum. See the world famous painting of Mona Lisa by Leonardo da Vinci which has fascinated the world with her smile. Next, we visit the Eiffel Tower, the symbol of Paris, where a bird’s eye view from the 3rd level will leave you breathless.!! Overnight at the hotel in Paris.</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 18:</b> Return Home with Wonderful Memories
									</p>
									<p class="aj">After a continental breakfast, we check out and drive to the airport for your flight back home. It’s time to say goodbye to all the new friends you have made. We hope you take back many happy memories of your holiday.<br />
<br />
(Breakfast)Disembark the ship and transfer to Vienna International Airport for your flight home, or extend your stay in Vienna.</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>
															</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.visiontourandtravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Magnificent 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="74536"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Magnificent Europe Tour - 17 Nights / 18 Days Tour Packages";i:2;s:163:"book magnificent europe tour - 17 nights / 18 days tour packages, heritage tour packages, london, paris, florence, brussels, innsbruck, rome, lucerne tour packages";i:3;s:201:"Vision Tour & Travels offers Magnificent Europe Tour - 17 Nights / 18 Days tour package, budget Heritage tour packages for London, Paris, Florence, Brussels, Innsbruck, Rome, Lucerne at exciting price.";i:4;s:464:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "London, Paris, Florence, Brussels, Innsbruck, Rome, Lucerne"        
		                 },
		      "description": "",
		      "name": "Magnificent Europe Tour",
		      "telephone": "91-9987181732/8684821464"
		    }
		    </script>
			";i:5;N;}