a:6:{i:0;s:11522:"				<div class="h1"><h1>Switzerland and Paris Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northerntourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northerntourandtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Switzerland and Paris 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Paris, Interlaken, 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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Switzerland and Paris 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="46944"/>
						</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_12/334611/92140.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/334611/92140.jpg"  width="150" height="150"    alt="Switzerland and Paris Tour" title="Switzerland and Paris 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> Lucerne
								</p>
								<p class="aj">Once you arrive at the airport, get transferred to your hotel on your own by going on-board Swiss Pass. Treat your eyes the beautiful scenery spread all around you. Once you complete the check-in formalities, you are free to spend the rest of the day at leisure. You can indulge in the activities of your interest. Explore the nearby surroundings on-foot, gorge on sumptuous delicacies, can visit the famous markets, and so on. Overnight in Lucerne.</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> Lucerne
								</p>
								<p class="aj">On day 2, after breakfast in the hotel, leave the hotel for visiting Mt. Titlis. Located at an altitude of 3238 meters above the sea level, Mt. Titlis offers some amazing view of the Swiss Alps region. You enjoy a ride in ROTAIR, which is the first revolving cable car in the world offering a 360 degree view of the mesmerizing Alps. Have a view of the ice boulders, their deep crevasses and the Alpine glaciers. You have a time of 90 minutes to spend here. You can visit the Ice Grotto- a deep cut made into the glacier, can spend some time at the Sun terrace or can relish delicacies at the restaurant (at your own expense). You can take a ride of the Ice Flyer up to the Fun Lift for having a close view of the slopes.  Enjoy sledging. Enjoy the amazing weather and treat your eyes to the amazing scenery spread all around. Stay overnight in Lucerne.</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> Interlaken
								</p>
								<p class="aj">After breakfast on the 3rd day of the tour, complete the check-out formalities and later move to the Lucerne Station for getting transferred to Interlaken. Upon arrival, check-in at your pre-booked hotel in Interlaken. You are free to spend the day at leisure, doing the activities of your interest. Spend the time exploring the place on your own, relishing the sumptuous dishes, visiting the markets, have a chit-chat with the locals and more. Overnight stay at Interlaken.</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> Interlaken
								</p>
								<p class="aj">After you have your breakfast at the hotel, visit Mt. Pilatus, standing high at an altitude of 7000 feet, offering excellent views of the landscape of central Switzerland region. You can take the enchanting gondola for Mt. Pilatus from Krines. Treat your eyes to the stunning aerial view of the Lucerne city, the sparkling blue lakes and the snow-clad Alps. At the Dragon Path, you spend fun-filled two and a half hours. Back downwards, riding a cable car. After exploring the peak, enjoy a typical Swiss lunch. Other attraction of the day is a lake cruise. Stay overnight at Interlaken.<br />
</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Paris
								</p>
								<p class="aj">On the 5th day of your tour, after having breakfast at your hotel, complete the check-out formalities. Transfer from hotel to the station to leave for Paris. On Reaching Paris, check-in at your pre-booked hotel. The evening is schedules for enjoying Seine River Cruise as well as Paris Illumination Tour. Paris is known to be stunning during the evening when the lights go on. The tour is going to be of two and a half hours. Begin with a lamp-lit cruise on the River Seine along the banks to have an amazing view of the city. The ‘City of Lights’ looks amazing with its lighted bridges and buildings. During your cruise, enjoy popular sites such as Place Vendome, Notre Dame Cathedral, Invalides, Place de la Concorde Square, Place du Chatelet, Champs-Elysees, Trocadero, Opera and Arc de Triomphe. Stay overnight at 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
								</p>
								<p class="aj">On day 6, post-breakfast, indulge in sightseeing in Paris. This city tour of Paris, spanning two and a half hours, takes you to some of the most sought-after destinations and attractions of Paris. Treat your eyes to the beauty spread all around you. Go aboard a double-decker bus that takes you to the popular monuments such as the Luxembourg gardens, Champs-Elysees, Saint-Germain des Pres, Concorde, modern opera house, Opera, Bastille square, Arc de Triomphe and Trocadero. This sightseeing is followed by a visit to the world-renowned Eiffel Tower. Climb up to its 2nd floor to have an amazing view of the Paris. The rest of the day is free. Stay overnight at 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 7:</b> Paris
								</p>
								<p class="aj">On the 7th day of the tour, post breakfast you are free to spend the day according to your own liking. You can visit the visit the remaining attractions of the capital city of France, can shop at the famous markets, can interact with the locals, can savor the local delicacies and more. Overnight stay at 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 8:</b> Departure
								</p>
								<p class="aj">On the last day of the tour, after having breakfast at the hotel, get transferred to the airport to board the flight for your home destination.</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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Switzerland and Paris 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="46944"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Switzerland and Paris Tour - 7 Nights / 8 Days Tour Packages";i:2;s:129:"book switzerland and paris tour - 7 nights / 8 days tour packages, valley tour packages, paris, interlaken, lucerne tour packages";i:3;s:175:"A.G Northern Tour and Travels offers Switzerland and Paris Tour - 7 Nights / 8 Days tour package, budget Valley tour packages for Paris, Interlaken, Lucerne at exciting price.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Paris, Interlaken, Lucerne"        
		                 },
		      "description": "",
		      "name": "Switzerland and Paris Tour",
		      "telephone": "+91-9086002323"
		    }
		    </script>
			";i:5;N;}