a:6:{i:0;s:64772:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>European Royale Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.bhramandeshvidesh.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.bhramandeshvidesh.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> European Royale 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_12/350588/106337.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106337.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106337.jpg"  alt="European Royale Tour" title="European Royale 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_12/350588/106338.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106338.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106338.jpg"  alt="European Royale Tour" title="European Royale 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_12/350588/106339.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106339.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106339.jpg"  alt="European Royale Tour" title="European Royale 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_12/350588/106340.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106340.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106340.jpg"  alt="European Royale Tour" title="European Royale 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_12/350588/106337.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106338.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106339.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106340.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">European Royale Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						17 Nights / 18 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> London, Paris, Brussels, Amsterdam, Rome, Vaduz, Vienna, Bern, Vatican City</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.bhramandeshvidesh.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="European Royale 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="55398"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">A complete all-inclusive tour at an honest price with maximum quality sightseeing and minimum travelling time.<br />
Stay in top quality hotels - Hilton, Ramada and Marriott etc.<br />
All hot delicious unlimited Indian Jain / vegetarian / non-vegetarian meals included.<br />
Enjoy a welcome Indian dinner with unlimited wine in Rome.<br />
Enjoy daily buffet breakfast.<br />
A choice of local meals in few countries.<br />
Guided city tour of Rome.<br />
A visit to the Vatican Museum including the Sistine Chapel.<br />
Visit the Colosseum from inside - amphitheatre famous for gladiator fights.<br />
See the Leaning Tower of Pisa - one of the wonders of the world.<br />
Guided city tour of Florence.<br />
Romantic gondola ride in Venice.<br />
Demonstration of Murano glass making.<br />
See the Golden Roof and Maria Theresien Strasse in Innsbruck.<br />
Visit the famous Swarovski Crystal museum and showroom in Wattens.<br />
Enjoy funicular ride up to Hungerburg.<br />
Enjoy a mini train ride in Vaduz - Capital city of Liechtenstein<br />
Stay 04 Nights in Scenic Switzerland.<br />
Enjoy a fun-filled Thomas Cook Swiss experience<br />
Cherish an experience to be on top of Europe - Jungfraujoch with Jain / vegetarian /non vegetarian Lunch & Champagne.<br />
Visit scenic Interlaken.<br />
Visit Mt. Titlis in the world’s first revolving cable car.<br />
Gala night on Lake Cruise with Indian dinner and music<br />
Orientation tour of Zurich.<br />
Boat ride at the spectacular Rhine falls in Schaffhausen.<br />
Travel in style by first class on board the TGV from Zurich to Paris.<br />
Guided city tour of Paris<br />
Visit the 3rd level of the Eiffel Tower.<br />
Romantic Seine cruise in Paris.<br />
A day full of fun at Euro Disney.<br />
Visit the magnificent Versailles Palace and the world famous Louvre Museum.<br />
Chance to see the extravagant Lido Show.<br />
Travel by first class high speed train from Paris to Brussels.<br />
Orientation tour of Brussels.<br />
Visit the famous Dam Square - the heart of Amsterdam.<br />
See both Keukenhof and Madurodam.<br />
Visit the Heineken Brewery.<br />
Catch a breathtaking view of Amsterdam city on a canal cruise.<br />
A unique experience of travelling in first class aboard the world’s fastest Chunnel train - the Euro star.<br />
Stay 03 days in London with all meals included.<br />
Guided city tour of London with Changing of the guards<br />
Entrance to the Tower of London housing Britain’s crown jewels including theIf you wish to travel in advance i.e., before the published departure date as mentioned in the brochure or like to come back on a later date after the tour ends, there will be an additional charge that will be applicable (subject to availability of seats for the given dates & ticket validity) which will be advised to you by our sales staff / travel agent. Kindly note, the deviation will be actioned only 30 days prior to departure date.<br />
In case your tour is not ending in United Kingdom and you wish to return from London or any other city in the United Kingdom, the UK departure tax will be advised on confirmation of the deviation date.<br />
Cost of Basic Travel Quota equivalent to USD 10,000.<br />
Any increase in the airfare charged by the airline on your air ticket (presently calculated as of 1st October 2015 rates).<br />
Taxes as applicable are extra.<br />
The tour cost does not include POE charges and passport charges.<br />
No porterage included.<br />
Any expenses of personal nature such as porterage, laundry expenses, wines, mineral water, food and drink not in the regular menu provided by us, minibar, telephone calls etc.<br />
Tips of any nature i.e. drivers, guides, etc.<br />
Meals other than that what is mentioned in your itinerary.<br />
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, other than that mentioned in ‘What your tour price includes’.<br />
Cost of Lido Show and Musical Show.19-0421-06</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> All flights lead to Rome - the eternal city with world - renowned majestic monuments, enormous squar										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Bon voyage! Today you are off on your exciting European tour with Thomas Cook, as you board your flight to Rome – the incomparable home of architectural and artistic masterpieces of the ancient world. Arrive at Rome airport, where you will be greeted by your friendly Thomas Cook Tour Manager outside the baggage hall. We shall then proceed to your conveniently located hotel in the city and check-in first. Freshen up and relax in the comfort of your hotel room. This evening, enjoy an orientation tour of Rome. Tonight, enjoy a welcome Indian dinner at a restaurant.<br />
Overnight at Hotel Imperial / Hilton / Marriott Rome Park or similar, in Rome.															
														   
											</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> Visit the world’s smallest country – the Vatican City which includes the Vatican Museum, the Sis										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast this morning, board your deluxe air conditioned coach and proceed with an expert English speaking guide to the Vatican City - the smallest country in the world (shorts or sleeveless vests not allowed). First stop at the Vatican Museum, with a visit to the world famous Sistine Chapel - a pure source of inspiration for art lovers and tourists alike, specially included on your tour. This will be followed by a visit to the holy Church of St.Peter’s - the incomparable home of architectural and artistic masterpieces by Michelangelo and Bernini, which will leave you awestruck. Enjoy a delicious Indian lunch at an Indian restaurant. Later, visit the imposing Colosseum, from inside, a vast amphitheatre, known for its gladiator fights, the tour of Rome is incomplete without visiting this 2000 year-old stone ruin. Also see the Victor Emmanuel Monument, the Roman Forum and many more sights of this historic city. Tonight, we have arranged a delicious Indian dinner specially for you at a restaurant.<br />
Overnight at Hotel Imperial / Hilton / Marriott Rome Park or similar, in Rome.			
														   
											</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> Pisa - Marvel at one of the wonders of the world - The Leaning Tower of Pisa. Guided city tour o										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at your hotel, check out and proceed to Pisa to visit the Square of Miracles. Remain spellbound as you approach this precariously Leaning Tower. Photograph your family with the Leaning Tower in the backdrop. You also have some free time to shop. Enjoy a delicious Indian meal at a restaurant for lunch. Later, proceed to Florence, the capital of Tuscany. On arrival, we drive to Piazzale Michelangelo, a square. on top of a hill with its replica of the impressive statue of David and also get a bird’s eye view of the city of Florence. Later, meet your English speaking local guide for a city tour of Florence, including the Duomo, the Campanile, the Baptistry with its Gates to Paradise, Piazza Della Signoria - an open air museum of sculptures, the famous Ponte Vecchio - bridge across the river Arno. Tonight enjoy a sumptuous hot Indian dinner at a restaurant.<br />
Overnight at Hotel Hilton / Holiday Inn or similar, in Florence.			
														   
											</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> Romantic Venice - crossed by canals, beautiful monuments, the city that inspires poetry and passio										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at the hotel, check-out and drive to the pier and board a private boat to the heart of the traditional city of Venice - The St. Mark’s Square. This afternoon, enjoy a hot Indian meal for lunch.This astonishingly wonderful lagoon city is a special delight to visitors. Sail over the Guidecca Canal, as you catch a glimpse of the serene waters of the Adriatic Sea. On arrival, admire The St. Mark’s square with the Basilica, Doge’s Palace, Campanile and Bridge of Sighs.<br />
Later you will be taken on an unforgettable gondola ride through the smaller canals for a true picture of this lagoon city. Next, you will see how molten glass is converted into a designable piece of art. You will also have some free time to purchase some Murano glass items for your home. Later, a delicious Indian dinner awaits you at Indian restaurant.<br />
Overnight at Hotel Hilton / Crown Plaza or similar, in Padova.			
														   
											</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> Proceed to Innsbruck, in picturesque Austria at the crossroads of Europe. Visit the magical world										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at the hotel, check-out and proceed to picturesque Austria. You will be entranced by the scenic beauty, as you ascend over the Brenner Pass into Innsbruck - the capital of Tyrol. On arrival , enjoy a Indian meal for lunch at a restaurant. Later, visit the world-famous Swarovski Crystal Museum. Enjoy a fascinating experience in to the ‘world of crystals’. An experience that leaves you amazed at the dazzling glitter as you walk through this museum. A great opportunity to buy a souvenir for your family. Next, we take you on an orientation tour of Innsbruck, where you will see the Golden Roof and the Maria Theresien Strasse. Stroll on cobblestone pathways and get a feel of old-world European charm. This evening, enjoy delicious Indian dinner specially prepared for you.<br />
Overnight at Hotel Grauer Baer / Hilton or similar, in Innsbruck.			
														   
											</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> Funicular ride to the top of Hungerburg included. Today enjoy a mini train ride in Vaduz - capital c										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												This morning, after buffet breakfast, proceed for a fascinating funicular ride to the top of Hungerburg - an experience to be cherished! Enjoy a hot Indian meal for lunch at a restaurant. We then proceed to Vaduz - the capital city of Leichenstein. Enjoy the sights of this beautiful city on a mini train ride. Later proceed to Switzerland. Today, we have arranged a Thomas Cook Swiss experience for our valued guests. Here, enjoy an exciting luge ride and many such interesting activities. What’s more... we have arranged a Swiss party with Bollywood music & dance while you will enjoy some traditional Swiss cheese fondue, chocolates and black apple vodka. Tonight, enjoy Indian dinner specially prepared for you at a restaurant.<br />
Overnight at Hotel Metropole / xxx / Radisson or similar in Interlaken / Lucerne			
														   
											</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> Join us on an all inclusive Alpine excursion tour to the wonderful world of Jungfraujoch - the top										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												This morning, after buffet breakfast get ready for an adventurous ride to visit Jungfraujoch - The Top of Europe, for a memorable encounter with snow and ice - a genuine ‘high-point’ of your tour! Sit back in your coach as we proceed to the beautiful town of Grindelwald / Lauterbrunnen. You will be amazed at the scenic splendour that you see from aboard the ‘cogwheel’ train, which takes you to a height of 3,454 metres to reach Jungfraujoch! Experience the magic of the mountains and visit the Ice Palace on top of the longest glacier in the Alps. A visit to the Sphinx is also included. Today, you enjoy Indian lunch with champagne specially arranged for you at Jungfraujoch.- one of the many great experiences on your tour! Later, we visit the charming city of Interlaken. Be mesmerized with the scenic beauty of this city which is nestled between two lakes and surrounded by the splendid Bernese Oberland Mountains. Treasure these wonderful moments as you drive back to your hotel. This evening enjoy a Indian dinner specially prepared for you at restaurant.<br />
Overnight at Hotel Metropole / xxx / Radisson or similar in Interlaken / Lucerne			
														   
											</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> Today, get set for a day full of fun and excitement as we take you to visit Mt. Titlis with its beau										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After a continental buffet breakfast at your hotel, we take you on one of the most memorable experiences of your Europe tour - visiting Mt. Titlis and Lucerne. Adventure awaits you in an ALL NEW cable car ride up to Mt. Titlis. Marvel at the world’s first revolving cable-car ride, a truly once-in-a lifetime experience. Experience the snow and ice on top of Mt. Titlis. Do not forget to visit the new attraction "Cliff Walk" Later, enjoy a delicious Indian lunch specially prepared for our<br />
valued Thomas Cook guests. Next, we proceed to scenic Lucerne, where you will visit the Lion Monument and the Kapell Brucke wooden bridge. Later, you have some free time to shop for famous Swiss watches, knives and chocolates. Enjoy a Gala Dinner on Scenic Lake cruise - dance your heart out to some pulsating bollywood music and dine in style.<br />
Overnight at Hotel Metropole / xxx / Radisson or similar in Interlaken / Lucerne.			
														   
											</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 9											
											:</b> Embark on a scenic journey across the Swiss countryside. Visit Zurich - the financial capital of S										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												This morning, after buffet breakfast take you to the Swiss economic and cultural centre - Zurich. Later, we take you on a panoramic tour of the city. This afternoon, enjoy a delicious Indian lunch. Later in the evening, you will have some free time to take a stroll along the lake of Zurich or you can spend some time shopping at Bahnhofstrasse, the most popular shopping avenue of Switzerland, which is also famous for its luxury stores and cafés. We then proceed to Schaffhausen to visit the Rhine<br />
Falls - the largest waterfalls in Europe. Enjoy a boat ride at the falls. Tonight, enjoy a delicious Indian dinner at an Indian restaurant.<br />
Overnight at Hotel Metropole / xxx / Radisson or similar in Interlaken / Lucerne			
														   
											</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 10											
											:</b> Travel in style by first class on the TGV to the glamour capital of the world - Paris known for fa										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Check out of your hotel after buffet / boxed breakfast and proceed to Zurich station to board your train to the glamorous city of Paris. Travel in style by first class on one of the world’s fastest train - TGV to Paris, the fashion capital of the world. On arrival, enjoy hot Indian lunch. Next, we proceed on an exhilarating city tour with an English speaking local guide, who will show you many of the best-loved Parisian sights - Alexander Bridge, Arc de Triomphe, Concorde Square, Opera House, Invalides, Champs Elysees and many more. Next, we shall then proceed to visit the top of the Eiffel Tower (3rd level), from where you will have a splendid view of this beautiful city. Tonight; you will enjoy hot Indian dinner.<br />
Overnight at Hotel Novotel / Pullman or similar, in Paris.			
														   
											</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 11											
											:</b> Today, join us on a fun - filled trip to Disney Park OR Disney Studios, Europe’s most famous attra										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at the hotel, join us forsome fun, adventure and entertainment on<br />
our full-day tour to Disney Park and enjoy the many rides (all included) Or you can visit the Disney Studios and be amazed at the stunning stunt shows, watch a film being shot and see real-life sets where famous movies were created. This afternoon, packed Indian lunch will be provided. Watch Disney characters and thrill yourself on a day full of excitement. Tonight, enjoy a delicious hot Indian dinner at restaurant. Later, you have a chance to experience the glamour of the world -famous Lido show.<br />
Overnight at Hotel Novotel / Pullman or similar, in Paris.			
														   
											</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 12											
											:</b> Today, visit the brilliant Versailles Palace. Also, visit the world renowned Louvre Museum famous fo										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at your hotel, we take you on a guided tour of Versailles Palace - set on impressive grounds and steeped in memories of major historic events. Visit the Chateau of Versailles where some of the most prestigious monuments of the world’s artistic heritage are housed. Vast chambers and private apartments of unimaginableluxury include an opera hall, a chapel, and the famous Hall of Mirrors. This afternoon, enjoy Indian meal for lunch. Later, we take you to visit the world-renowned Louvre Museum to see the incomparable and the most prestigious painting of ‘Mona Lisa’- Leonardo da Vinci’s masterpiece and many more. You also have some free time to shop for perfumes and souvenirs. Later in the evening, enjoy a romantic Seine cruise as we sail past some of the historical monuments on the river Seine. Tonight, enjoy hot delicious Indian meal for dinner before you drive back to the comfort of your hotel.<br />
Overnight at Hotel Novotel / Pullman or similar, in Paris.			
														   
											</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 13											
											:</b> Travel in style by first class high speed train to Brussels, the capital of the European Union. Orie										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast at your hotel, check-out and Travel in style by first class on high speed train to Brussels, Brussels the capital of Belgium. The city is a mix of old and modern architecture. A hot Indian lunch awaits you at the restaurant. Upon arrival we proceed for an orientation tour of the capital city. Visit the world renowned Grand Place and the legendary Mannekin Pis statue. admire the beauty of the monument as you drive past St. Michael’s Church. A photo stop at the Atomium is also included Later proceed to the Dutch capital city of Amsterdam. Later, check into your hotel. Tonight, enjoy an delicious Indian meal for dinner.<br />
Overnight at Hotel Movenpick / Swissotel or similar, in Amsterdam.			
														   
											</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 14											
											:</b> Onto Amsterdam - a city full of surprises. Visit Madurodam - Holland in miniature. Also visit Keuk										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After a continental buffet breakfast, sit back and relax in your coach as we proceed to Keukenhof - the largest spring garden in the world. Bulbs of colourful tulips bloom only till May 16th. Be enchanted by the indoor floral displays.<br />
This afternoon, you enjoy a delicious hot Indian lunch. Later visit the Heineken Beer Brewery and see how beer is brewed. Later board your glass-topped boat for an exciting canal cruise. Later, visit the famous Dam Square - the real heart of Amsterdam, where the Royal Palace, the Nieuwe Kerk and the War Memorial overlooks this vast and bustling open space . Next, visit Madurodam, where you can see most of Holland in miniature, replicated in minute detail on a 1:25 scale. Drive back to your hotel where a hot Indian dinner awaits you.<br />
17th May onwards, after continental buffet breakfast we visit Maduroadm where you can see most of Holland in miniature, replicated in minute detail on a 1:25 scale. Later visit a cheese farm and a wooden shoe factory. See a demonstration of how cheese is made and wooden shoes are carved out of wooden blocks. You also have a chance to savour some cheese. Next, stop at a windmill - the most common sight in Holland for a photograph. This afternoon, you have enjoy a delicious hot Indian lunch. Later visit the Heineken Beer Brewery and see how beer is brewed. Next board your glass-topped boat for an exciting canal cruise. Later, visit the famous Dam Square - the real heart of Amsterdam, where the Royal Palace, the Nieuwe Kerk and the War Memorial overlooks this vast and bustling open space . Next visit Volendam a picturesque town, with its little wooden houses, the quaint harbor and its people in graceful traditional costumes. Drive back to your hotel where a hot Indian dinner awaits you.<br />
Overnight at Hotel Movenpick / Swissotel or similar, in Amsterdam			
														   
											</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 15											
											:</b> Get set for the ride of your lifetime to London in first class aboard the ultramodern Eurostar, one										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												This morning, after a buffet breakfast at your hotel, check out and drive to Brussels Midi Station. Enjoy a delicious Indian lunch. You will board the ultra-modern Eurostar, one of the world’s fastest trains. Travel in first class to reach Saint Pancras. On arrival into London, we take you on the famous London Eye - one of the world’s largest observation wheels. Be enchanted by this new and novel way of seeing the city from a bird’s eye view, as the London Eye takes you on a 30 minute flight, rising to 450 feet above the river Thames as the panorama of some of London’s most famous streets, churches, palaces and monuments are spread out before you. Tonight enjoy an Indian dinner at an Indian restaurant. Later check into your hotel.<br />
Overnight at Hotel Copthorne / Marriott or similar, in London.			
														   
											</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 16											
											:</b> Enjoy the many sights of London on your guided tour including the Changing of Guards. Entrance to th										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast, we leave for a guided city tour with an expert Englishspeaking guide who will explain to you all the highlights of London’s landmarks: the Changing of Guards at Buckingham Palace, Hyde Park, the Big Ben, Westminster Abbey, Houses of Parliament, Trafalgar Square, Piccadilly Circus, Tower Bridge, River Thames and many more. We next visit The Tower of London from inside, an important sight not to be missed. The Tower of London houses the exquisite crown jewels including the Kohinoor diamond and many other British national treasures. Relish hot Indian lunch. Post that we take you to visit the famous Madame Tussaud’s wax museum. This museum houses a unique collection of world’s largest wax works of famous personalities, including India’s top leaders and film stars. This evening, enjoy a musical extravaganza. Tonight enjoy Indian dinner at restaurant.<br />
Overnight at Hotel Copthorne / Marriott or similar, in London.			
														   
											</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 17											
											:</b> Shop at the world - famous Oxford Street. Guided tour of the world famous Lord’s cricket ground.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After buffet breakfast, you have the morning free to explore this city. Or you can indulge yourself to shop at many of London’s famous shopping stores like Marks and Spencer’s, Selfridges and many more on Oxford Street. This afternoon, relish hot Indian lunch at a restaurant. This evening, Thomas Cook has specially arranged a guided tour of the world famous Lord’s cricket ground, a dream for every cricket lover. After a nostalgic evening at the Lord’s proceed to the restaurant where a delicious dinner awaits.<br />
Overnight at Hotel Copthorne / Marriott or similar, in London.			
														   
											</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 18											
											:</b> Fly back home.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After a buffet/boxed breakfast, we check out and proceed to the airport for your flight back home. Arrive home with pleasant memories of your European tour, which we are sure you will treasure for a lifetime. Do spare a few minutes to fill in the feedback form and hand it to your Tour Manager. Your valued suggestions will be most appreciated.			
														   
											</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>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																						<li>Transfers</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>If you wish to travel in advance i.e., before the published departure date as mentioned in the brochure or like to come back on a later date after the tour ends, there will be an additional charge that will be applicable (subject to availability of seats for the given dates & ticket validity) which will be advised to you by our sales staff / travel agent. Kindly note, the deviation will be actioned only 30 days prior to departure date.</li><li>
In case your tour is not ending in United Kingdom and you wish to return from London or any other city in the United Kingdom, the UK departure tax will be advised on confirmation of the deviation date.</li><li>
Cost of Basic Travel Quota equivalent to USD 10,000.</li><li>
Any increase in the airfare charged by the airline on your air ticket (presently calculated as of 1st October 2015 rates).</li><li>
Taxes as applicable are extra.</li><li>
The tour cost does not include POE charges and passport charges.</li><li>
No porterage included.</li><li>
Any expenses of personal nature such as porterage, laundry expenses, wines, mineral water, food and drink not in the regular menu provided by us, minibar, telephone calls etc.</li><li>
Tips of any nature i.e. drivers, guides, etc.</li><li>
Meals other than that what is mentioned in your itinerary.</li><li>
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, other than that mentioned in ‘What your tour price includes’.</li><li>
Cost of Lido Show and Musical Show.</li></ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Specific Departure Dates</p>
								</div>
								
								April: 19<br />
May: 03, 17<br />
June: 21								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Departure Cities with rates</p>
								</div>
								Ex-Mumbai / Delhi / Chennai / Hyderabad / Ahmedabad / Bengaluru / Kolkata / Cochin								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<ul>
	<li><strong>Pls note this is just a quotation, rates and availability subject to change<u>.</u> </strong></li>
	<li><strong><u>3.65 % Service Tax will be applicable on Package Cost</u></strong></li>
	<li>Note that the above rates are subject to Availability at the time of Booking.</li>
	<li>No Rooms or Services have been blocked</li>
	<li>Check all inclusions as any additions will occur in extra charges.</li>
	<li>Rates are based on the requested dates</li>
	<li>Current rate of exchange will be applicable at the time of final payment</li>
</ul>								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="European Royale 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="55398"/>
						</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.bhramandeshvidesh.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-faridabad.htm" title="Packages in Faridabad">Faridabad</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-london.htm" title="Packages in London">London</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-berlin.htm" title="Packages in Berlin">Berlin</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-bern.htm" title="Packages in Bern">Bern</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-vienna.htm" title="Packages in Vienna">Vienna</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-rome.htm" title="Packages in Rome">Rome</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-amsterdam.htm" title="Packages in Amsterdam">Amsterdam</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-brussels.htm" title="Packages in Brussels">Brussels</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-kufri.htm" title="Packages in Kufri">Kufri</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-palampur.htm" title="Packages in Palampur">Palampur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-nainital.htm" title="Packages in Nainital">Nainital</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-mussoorie.htm" title="Packages in Mussoorie">Mussoorie</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-prague.htm" title="Packages in Prague">Prague</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-nuwara-eliya.htm" title="Packages in Nuwara Eliya">Nuwara Eliya</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-colombo.htm" title="Packages in Colombo">Colombo</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-budapest.htm" title="Packages in Budapest">Budapest</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-vaduz.htm" title="Packages in Vaduz">Vaduz</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-dehradun.htm" title="Packages in Dehradun">Dehradun</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-kandy.htm" title="Packages in Kandy">Kandy</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bhramandeshvidesh.com/packages-in-pisa.htm" title="Packages in Pisa">Pisa</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.bhramandeshvidesh.com/packages-in-trincomalee.htm" title="Packages in Trincomalee">Trincomalee</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.bhramandeshvidesh.com/packages-in-bhopal.htm" title="Packages in Bhopal">Bhopal</a> <b class="alpha50 bn small">(2)</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.bhramandeshvidesh.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(27)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(17)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bhramandeshvidesh.com/safari-holidays-catid.htm" title="Safari Packages">Safari</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 London, Paris, Brussels, Amsterdam, Rome, Vaduz, Vienna, Bern</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.bhramandeshvidesh.com/tour-packages/enchanting-east-europe-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106241.jpg"  alt="Enchanting East Europe Tour" title="Enchanting East Europe Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/enchanting-east-europe-tour.htm" title="Enchanting East Europe Tour"><h3>Enchanting East Europe Tour</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> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Berlin, Budapest, Prague, Vienna</p>
															<div class="mt10px small">
							<form name="pkg_55320" id="pkg_55320" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/enchanting-east-europe-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Enchanting East Europe Tour - 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="55320"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.bhramandeshvidesh.com/tour-packages/europe-for-all-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106252.jpg"  alt="Europe For All Tour" title="Europe For All Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/europe-for-all-tour.htm" title="Europe For All Tour"><h3>Europe For All Tour</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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Paris, Brussels, Bern</p>
															<div class="mt10px small">
							<form name="pkg_55330" id="pkg_55330" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/europe-for-all-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Europe For All Tour - 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="55330"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.bhramandeshvidesh.com/tour-packages/eastern-europe-with-balkans-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106580.jpg"  alt="Eastern Europe With Balkans Tour" title="Eastern Europe With Balkans Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/eastern-europe-with-balkans-tour.htm" title="Eastern Europe With Balkans Tour"><h3>Eastern Europe With Balkans Tour</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> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Berlin, Zagreb, Budapest, Prague, Vienna..</p>
															<div class="mt10px small">
							<form name="pkg_55600" id="pkg_55600" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/eastern-europe-with-balkans-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Eastern Europe With Balkans Tour - 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="55600"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.bhramandeshvidesh.com/tour-packages/dilkash-europe-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106237.jpg"  alt="Dilkash Europe Tour" title="Dilkash Europe Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/dilkash-europe-tour.htm" title="Dilkash Europe Tour"><h3>Dilkash Europe Tour</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> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  London, Paris, Rome, Bern</p>
															<div class="mt10px small">
							<form name="pkg_55319" id="pkg_55319" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/dilkash-europe-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Dilkash Europe Tour - 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="55319"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.bhramandeshvidesh.com/tour-packages/european-grandeur-with-scottish-highlights-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106317.jpg"  alt="European Grandeur with Scottish Highlights Tour" title="European Grandeur with Scottish Highlights Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/european-grandeur-with-scottish-highlights-tour.htm" title="European Grandeur with Scottish Highlights Tour"><h3>European Grandeur With Scottish Highlights..</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> : 
								20 Nights / 21 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  London, Paris, Berlin, Amsterdam, Rome, ..</p>
															<div class="mt10px small">
							<form name="pkg_55380" id="pkg_55380" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/european-grandeur-with-scottish-highlights-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="European Grandeur with Scottish Highlights Tour - 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="55380"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.bhramandeshvidesh.com/tour-packages/bestof-europe-tour1.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_12/350588/106229.jpg"  alt="Best of Europe Tour" title="Best of Europe Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.bhramandeshvidesh.com/tour-packages/bestof-europe-tour1.htm" title="Best of Europe Tour"><h3>Best Of Europe Tour</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> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  London, Paris, Berlin, Brussels, Amsterd..</p>
															<div class="mt10px small">
							<form name="pkg_55317" id="pkg_55317" method="post" action="http://www.bhramandeshvidesh.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.bhramandeshvidesh.com/tour-packages/bestof-europe-tour1.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Best of Europe Tour - 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="55317"/>
							</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:61:"Book European Royale Tour - 17 Nights / 18 Days Tour Packages";i:2;s:185:"book european royale tour - 17 nights / 18 days tour packages, forts and palaces tour packages, london, paris, brussels, amsterdam, rome, vaduz, vienna, bern, vatican city tour packages";i:3;s:244:"Book European Royale Tour - 17 Nights / 18 Days tour packages from Bhraman Tours and Travels - Get attractive 17 Nights / 18 Days Forts and Palaces  tour packages for  London, Paris, Brussels, Amsterdam, Rome, Vaduz, Vienna, Bern, Vatican City.";i:4;s:4211:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "London, Paris, Brussels, Amsterdam, Rome, Vaduz, Vienna, Bern, Vatican City"        
		                 },
		      "description": "A complete all-inclusive tour at an honest price with maximum quality sightseeing and minimum travelling time.
Stay in top quality hotels - Hilton, Ramada and Marriott etc.
All hot delicious unlimited Indian Jain / vegetarian / non-vegetarian meals included.
Enjoy a welcome Indian dinner with unlimited wine in Rome.
Enjoy daily buffet breakfast.
A choice of local meals in few countries.
Guided city tour of Rome.
A visit to the Vatican Museum including the Sistine Chapel.
Visit the Colosseum from inside - amphitheatre famous for gladiator fights.
See the Leaning Tower of Pisa - one of the wonders of the world.
Guided city tour of Florence.
Romantic gondola ride in Venice.
Demonstration of Murano glass making.
See the Golden Roof and Maria Theresien Strasse in Innsbruck.
Visit the famous Swarovski Crystal museum and showroom in Wattens.
Enjoy funicular ride up to Hungerburg.
Enjoy a mini train ride in Vaduz - Capital city of Liechtenstein
Stay 04 Nights in Scenic Switzerland.
Enjoy a fun-filled Thomas Cook Swiss experience
Cherish an experience to be on top of Europe - Jungfraujoch with Jain / vegetarian /non vegetarian Lunch & Champagne.
Visit scenic Interlaken.
Visit Mt. Titlis in the world’s first revolving cable car.
Gala night on Lake Cruise with Indian dinner and music
Orientation tour of Zurich.
Boat ride at the spectacular Rhine falls in Schaffhausen.
Travel in style by first class on board the TGV from Zurich to Paris.
Guided city tour of Paris
Visit the 3rd level of the Eiffel Tower.
Romantic Seine cruise in Paris.
A day full of fun at Euro Disney.
Visit the magnificent Versailles Palace and the world famous Louvre Museum.
Chance to see the extravagant Lido Show.
Travel by first class high speed train from Paris to Brussels.
Orientation tour of Brussels.
Visit the famous Dam Square - the heart of Amsterdam.
See both Keukenhof and Madurodam.
Visit the Heineken Brewery.
Catch a breathtaking view of Amsterdam city on a canal cruise.
A unique experience of travelling in first class aboard the world’s fastest Chunnel train - the Euro star.
Stay 03 days in London with all meals included.
Guided city tour of London with Changing of the guards
Entrance to the Tower of London housing Britain’s crown jewels including theIf you wish to travel in advance i.e., before the published departure date as mentioned in the brochure or like to come back on a later date after the tour ends, there will be an additional charge that will be applicable (subject to availability of seats for the given dates & ticket validity) which will be advised to you by our sales staff / travel agent. Kindly note, the deviation will be actioned only 30 days prior to departure date.
In case your tour is not ending in United Kingdom and you wish to return from London or any other city in the United Kingdom, the UK departure tax will be advised on confirmation of the deviation date.
Cost of Basic Travel Quota equivalent to USD 10,000.
Any increase in the airfare charged by the airline on your air ticket (presently calculated as of 1st October 2015 rates).
Taxes as applicable are extra.
The tour cost does not include POE charges and passport charges.
No porterage included.
Any expenses of personal nature such as porterage, laundry expenses, wines, mineral water, food and drink not in the regular menu provided by us, minibar, telephone calls etc.
Tips of any nature i.e. drivers, guides, etc.
Meals other than that what is mentioned in your itinerary.
Cost of excursions, city sightseeing, entrance fees and local guides availed of by the passengers, other than that mentioned in ‘What your tour price includes’.
Cost of Lido Show and Musical Show.19-0421-06",
		      "name": "European Royale Tour",
		      "telephone": "+91-9711158456"
		    }
		    </script>
			";i:5;N;}