a:6:{i:0;s:10624:"				<div class="h1"><h1>Glimpse of Europe Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rajastravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rajastravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Glimpse of 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Paris, Amsterdam</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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Glimpse of 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="78673"/>
						</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_13/370602/138660.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/370602/138660.jpg"  height="150"  width="150"    alt="Glimpse of Europe Tour" title="Glimpse of 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> Amsterdam
								</p>
								<p class="aj">Upon arrival at airport, transfer to hotel. This afternoon enjoy an orientation of the city, which is built on a network of narrow canals. See the Mint Tower beside the floating flower market and Dam Square at the centre of the city. Perhaps take the opportunity to explore the city further on a canal cruise in a glass-covered boat to enjoy views of the historic gabled houses.</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> Amsterdam - Rhineland (Germany)
								</p>
								<p class="aj">This morning, after breakfast, travel eastwards through the Dutch countryside passing by Utrecht, both a provincial capital and the largest university city of The Netherlands, and Arnhem, renowned for the battle fought here during the Second World War which was recounted in the film 'A Bridge Too Far'. Then cross into Germany and travel via Bonn, the former capital of West Germany when the country was divided into the picturesque Rhine Valley. Here you embark on a cruise at Boppard, which glides past medieval castles and steeply terraced vineyards producing the well-known high quality Rhine wines. You disembark at St. Goar and then have views of the notorious Lorelei Rock and learn about the legends associated with this stretch of the river. Finally continue southwards to your hotel where you dine tonight.</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> Rhineland - Lucerne(via Heidelberg)
								</p>
								<p class="aj">Travel this morning to Heidelberg, the oldest university city in Germany. Learn about the riotous life of past students and enjoy views of the sandstone castle from the charming Old Town. Continue south, through the Black Forest region, which is bordered by the Rhine Valley to the west, and south. This beautiful area is renowned for woodcarving, the creation of the original cuckoo clock, and specialist cuisine that includes delicacies such as smoked ham and Black Forest Cake. Cross the border into Switzerland before stopping to admire the impressive Rhine Falls at Schaffhausen. Travel to central Switzerland and enter the scenic region of Lake Lucerne, your home for the next two nights. Later this evening, perhaps enjoy the fun and explore the city on your own after enjoying dinner at your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Lucerne Orientation Tour
								</p>
								<p class="aj">This morning your orientation tour around this medieval city highlights the poignant Lion Monument, built in memory of Louis XVI's courageous Swiss Guards who tried to defend the Palace of the Tuileries in Paris during the French Revolution, the wooden Chapel Bridge across the River Reuss and the onion domed Jesuit Church. Later, perhaps enjoy an exhilarating excursion to the top of one of the surrounding mountains or explore the squares and towers of the quaint old city? Alternatively, there is plenty of opportunity for shopping, whether it be Swiss watches, jewellery or the wide range of deliciously flavoured chocolate.</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> Lucerne - Paris
								</p>
								<p class="aj">Today head north and cross the Rhine River for the final time in the city of Basel as you leave Switzerland and re-enter France for the second time. Here pass by Belfort and the remains of the Maginot Line, a vast fortification built after the First World War, which ended in 1918, to protect the French - German border. Then cross through part of the renowned wine producing Burgundy region with views of the extensive vineyards. Continue past the rolling fertile farmland of the Auxerre region before the approach to the capital city of 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 6:</b> Paris City Tour
								</p>
								<p class="aj">This morning, your sightseeing tour with a Local Guide introduces you to this exquisitely planned city with views of the Champs Elysees, Place de la Concorde, Arc de Triomphe, Eiffel Tower and Notre Dame Cathedral on the City island on the River Seine. Later there is time to see the vast Louvre Museum, or ascend the Eiffel Tower. This evening, why not sample Paris nightlife at a cabaret show?</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> Paris - Airport
								</p>
								<p class="aj">This morning, say goodbye to Paris and bid farewell to your Travel Director and newfound friends. Transfer to airport for onward journey.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Glimpse of 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="78673"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Glimpse of Europe Tour - 6 Nights / 7 Days Tour Packages";i:2;s:117:"book glimpse of europe tour - 6 nights / 7 days tour packages, heritage tour packages, paris, amsterdam tour packages";i:3;s:147:"RAJAS TRAVELS offers Glimpse of Europe Tour - 6 Nights / 7 Days tour package, budget Heritage tour packages for Paris, Amsterdam at exciting price.";i:4;s:410:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Paris, Amsterdam"        
		                 },
		      "description": "",
		      "name": "Glimpse of Europe Tour",
		      "telephone": "+91-9820123553"
		    }
		    </script>
			";i:5;N;}