a:6:{i:0;s:29890:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Paris To Swiss Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.adiyogitourism.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.adiyogitourism.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Paris To Swiss Tour</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<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-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Paris, Zurich</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.adiyogitourism.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Paris to Swiss Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="186771"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/568903/290430.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_19/568903/290430.jpg"  width="150" height="84"    alt="Paris to Swiss Tour" title="Paris to Swiss Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Paris , France's capital, is a major European city and a global center for art, fashion, gastronomy and culture. Its 19th-century cityscape is crisscrossed by wide boulevards and the River Seine. Beyond such landmarks as the Eiﬀel Tower and the 12th-century, Gothic Notre-Dame cathedral, the city is known for its cafe culture and designer boutiques along the Rue du Faubourg Saint-Honoré. Zurich One of the richest and most sophisticated cities in the world, Zurich is not only a global financial center, but also one of Europe's most important crossroads when it comes to transportation and travel. Its historical center has been preserved almost to the millimeter, although a trendy, avant-garde feel to the place makes Zurich one of the most a1ractive cities in the world to live and play. Lucerne, Lucerne,the gateway to central Switzerland, sited on Lake Lucerne, is embedded within an impressive mountainous panorama. Complete with gable paintings, the covered, medieval Chapel Bridge forms the centrepiece of Lucerne's townscape and is considered to be one of the oldest, covered wooden bridges in Europe. The figure of a dying lion which was hewn from the face of rock in remembrance of the heroic death of Swiss guards killed during an a1ack on the Tuileries in 1792 is one of the best-known monuments in Switzerland. Interlaken It's not unusual for a town to be on a River, Lake or An Ocean. But for It sit between two lakes may will be unique. Interlaken-between lake thin and lake brienz-can boast such a privileged position and there's more. Interlaken is also in the heart of the mangnifient Jungfrau region mountain World and aﬀords views of the World famous Icy Icons, The Eiger, Monch & Jungfrau.								</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> Paris (france)
										</p>
										<p class="aj">Arrive At Airport & Transfer to Hotel By Your Own Arrangement. the Rest of Day is At Leisure So that You Can Relax Ager Your Long Haul Flight.<br />
<br />
please Note: the Tour Manager Will Meet You Once You Reached the Hotel. the Standard Check-in Time is 1500 Hrs.<br />
<br />
meals: (packed Indian Vegetarian Dinner Delivered to Hotel)</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Paris –guided City Orientation Tour-eiﬀel Tower Visit 2nd Level-river Seine
										</p>
										<p class="aj">This Morning Enjoy a Guided Orientation Day Introductory Tour of Paris. as the The Capital of France, You Will Be Treated to a Superb Panoramic View of the Most Famous Monuments. the City Can also Be More Intimate, Revealing the Charm of Its Medieval Districts and Its Former Villages to the Casual Stroller. See Popular Sites like Place De La Concorde, Arc De Triomphe. Notre Dame De Paris, Louvre Pyramid, Musée D'orsay, Palais Garnier Opera, Champs Elysees Street, Alexander Bridge, Montmatre, Concords Square, a Journey to the 2nd Floor of the Eiﬀel Tower for Breathtaking View and Many other Historic Buildings. a Glimpse of the Eiﬀel Tower, Outlined Romantically Against the Paris Skyline — That's What You Remember Ager Visiting France. Later Enjoy a Cruise On River Seine. You'll Be Able to See the Best of Paris, the City of Love. Ager the Tour, Having the Dinner At Indian Restaurant</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> Paris–Rhine Falls- Zurich (Switzerland)
										</p>
										<p class="aj">Check out and board your coach to drive to Switzerland. On your way you will make a stop at Scha hausen which is prevalently known as Rhine Falls - Mini Niagara falls of Europe. This is a record - there is no other waterfall in Europe bigger than the Rheinfall. This is experienced in a most impressive way on a boat trip through the Rheinfall. Later proceed to Zurich. On arrival in Zurich, enjoy dinner at Indian restaurant.<br />
<br />
Meals: Continental Breakfast and Indian Dinner</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Zurich- Mt. Titlis, Ice Flyer, snow park and Lucerne Orientation - Zurich
										</p>
										<p class="aj">AGer breakfast, proceed to Engelberg town- a base cable car station of Mt.Titlis. The TITLIS ROTAIR revolving gondola transports you easily to the mountain station. Take your time and visit the Swiss Lion shop, the world's highest watch shop. You can even have your photo taken in traditional Swiss costume in our photo studio.<br />
<br />
The glacier cave is only a snowball's throw from the mountain station. The glistening, blue ice tunnel leads deep down into the fascinating world inside the glacier. In the summer months, the Ice Flyer chair liG will take you to the glacier park where all kinds of fun snow activities await. Grab a snowtube or a speedy sled and whiz down the piste, whipping up plenty of snow as you go.<br />
<br />
Later, in the aGernoon, proceed to the city of Lucerne for Orientation tour and see the Chapel Bridge-The Chapel Bridge is a covered wooden footbridge spanning diagonally across the Reuss River in the city of Lucerne. Named aGer the nearby St. Peter's Chapel, the bridge is unique since it contains a number of interior paintings dating back to the 17th century, Jesuit Church- This beautiful church is considered to be the first large baroque style church ever built in Switzerland.Lion Monument-The Lion Monument, or the Lion of Lucerne, is a rock relief in Lucerne, Switzerland, designed by Bertel Thorvaldsen and hewn in 1820–21 by Lukas Ahorn. We will proceed back to Zurich<br />
<br />
Meals: Continental Breakfast and Indian Dinner</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> Zurich- OPTIONAL Excursion to Jungfrau-Top of Europe/Interlaken- Zurich
										</p>
										<p class="aj">Breakfast. Choose an optional excursion to Mt. Jungfrau - Top of Europe. Those who don't want to go Jungfrau, have free time to explore the Interlaken by own. Our Coach will drop at Interlaken. The Jungfraujoch - Top of Europe is the highlight of any Swiss holiday. The highest railway station in Europe is located 3,454 metres above sea level. You have access to a high-alpine wonderland of ice, snow and rock, which can be admired from the viewing plaVorms, on the Aletsch Glacier or in the Ice Palace - experience the magic. Visit the Sohinx observation tower. AGer the tour we will proceed for orientation tour of Interlaken. We will start from Höheweg is the main street in Interlaken, which stretches from the city's central square to the east. Roman Catholic church- Situated on Schlossstrasse, this Swiss religious building houses a Roman Catholic parish church, which oﬀers worship masses, religious education, and other. Group members not opting for Mt. Jungfrau will have an opportunity to proceed to the city of Interlaken for an orientation tour. Later back to Zurich Hotel aGer having a dinner.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 6:</b> Zurich Airport
										</p>
										<p class="aj">Meals: Continental Breakfast and Indian Dinner</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>EP (No Meal) </li><li>
Hotel</li><li>
Meals</li><li>
Sightseeing </li><li>
Accommodation for 02 nights in Paris</li><li>
Accommodation for 03 nights in Switzerland</li><li>
Orientation Guided Tour of Paris</li><li>
Orientation tour of Interlaken, Lucerne</li><li>
Paris Eiﬀel Tower level 2</li><li>
Paris Seine River Cruise</li><li>
Visit to Rhine Falls- No Boat ride Included</li><li>
Mountain Excursion to Mt. Titlis with Ice Flyer</li><li>
05 Breakfast as per provided by the hotel</li><li>
05 Veg / Non Veg / Jain Dinners at Indian </li><li>
Restaurant</li><li>
Hindi / English speaking Tour Leader / Manager </li><li>
throughout the tour</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Air Tickets</li><li>
Visa and Insurance</li><li>
Extra charges/expenses of personal nature like laundry, mineral water/drinks, telephone or any other charges/ expenses not mentioned in Inclusions Optional Tours</li><li>
Mandatory tips of Euro 2 per person per day for Coach Drivers, Guides etc.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Payment Terms & Methods :</li><li>
Cost for Ticket + Visa + Insurance, No Porterage included, Any increase</li><li>
in the rate of exchange leading to an increase in surface transportation and land arrangements, which may come into effect prior to departure. The tour price is subject to increase without notice if this rate changes substantially prior to the departure of your tour. Any expenses of personal nature such as laundry, wines, mineral water, food and drink not in the regular menu provided by us pay TV, mini-bar, telephone calls, etc. Meals other than what is mentioned in your Itinerary. Cost of excursions, city sightseeing, entrance fees and local guides other than that mentioned in “Tour Cost Includes”, Overseas Mediclaim, Tips to Driver: EURO 2 per pax per day (Compulsory)</li><li>
Vouchers are not transferable and valid only for the services mentioned therein. Any services not specifically requested, confirmed and noted on vouchers will not be rendered. All extras to be paid directly to the hotels / the service providers.</li><li>
Passenger Comments / Complaints:</li><li>
It is imperative that any complaints be made known to the respective handling agents or its representatives without any delay so that appropriate action can be taken.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Cancellation charges will be levied for bookings cancelled after confirmations are done. Requests for refund should be made in writing within 14 days after the scheduled completion of the services. Refund requests for curtailed stays cannot be processed unless provided with documentary evidence from hotel / the service provider. All refund requests are subject to obtaining a refund approval from the hotel / the service provider and no refund can be given without this approval. Holiday Kingdom Of Heaven reserves the right to process and whether or not to approve the refund request and if necessary charge an administrative fee. For packages, no refunds can be processed for partially utilized services and no-Shows. In the event of no show Holiday Kingdom Of Heaven reserves the right to release the complete booking and levy 100% cancellation charges.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.adiyogitourism.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Paris to Swiss 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="186771"/>
						</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.adiyogitourism.in/packages-in-ahmedabad.htm" title="Packages in Ahmedabad">Ahmedabad</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-zurich.htm" title="Packages in Zurich">Zurich</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-mussoorie.htm" title="Packages in Mussoorie">Mussoorie</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-new-york.htm" title="Packages in New York">New York</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-khajjiar.htm" title="Packages in Khajjiar">Khajjiar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-amsterdam.htm" title="Packages in Amsterdam">Amsterdam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-jodhpur.htm" title="Packages in Jodhpur">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-dwarka.htm" title="Packages in Dwarka">Dwarka</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-somnath.htm" title="Packages in Somnath">Somnath</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-frankfurt.htm" title="Packages in Frankfurt">Frankfurt</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-dehradun.htm" title="Packages in Dehradun">Dehradun</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-corbett.htm" title="Packages in Corbett">Corbett</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-old-goa.htm" title="Packages in Old Goa">Old Goa</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-kufri.htm" title="Packages in Kufri">Kufri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-kovalam.htm" title="Packages in Kovalam">Kovalam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-washington.htm" title="Packages in Washington">Washington</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-dalhousie.htm" title="Packages in Dalhousie">Dalhousie</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.adiyogitourism.in/packages-in-mysore.htm" title="Packages in Mysore">Mysore</a> <b class="alpha50 bn small">(1)</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.adiyogitourism.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/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.adiyogitourism.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.adiyogitourism.in/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</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>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Paris, Zurich</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.adiyogitourism.in/holiday-packages/10-days-paristo-swiss-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/568903/290469.jpg"  alt="10 Days Paris to Swiss Tour" title="10 Days Paris to Swiss Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.adiyogitourism.in/holiday-packages/10-days-paristo-swiss-tour.htm" title="10 Days Paris to Swiss Tour"><h3>10 Days Paris To Swiss 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> : 
								9 Nights / 10 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Paris, Brussels, Amsterdam, Zurich, Fran..</p>
															<div class="mt10px small">
							<form name="pkg_186772" id="pkg_186772" method="post" action="http://www.adiyogitourism.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.adiyogitourism.in/holiday-packages/10-days-paristo-swiss-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="10 Days Paris to Swiss 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="186772"/>
							</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:58:"Book Paris to Swiss Tour - 5 Nights / 6 Days Tour Packages";i:2;s:112:"book paris to swiss tour - 5 nights / 6 days tour packages, adventure tour packages, paris, zurich tour packages";i:3;s:159:"Book Paris to Swiss Tour - 5 Nights / 6 Days tour packages from Adiyogi Tourism - Get attractive 5 Nights / 6 Days Adventure  tour packages for  Paris, Zurich.";i:4;s:2123:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Paris, Zurich"        
		                 },
		      "description": "Paris , France's capital, is a major European city and a global center for art, fashion, gastronomy and culture. Its 19th-century cityscape is crisscrossed by wide boulevards and the River Seine. Beyond such landmarks as the Eiﬀel Tower and the 12th-century, Gothic Notre-Dame cathedral, the city is known for its cafe culture and designer boutiques along the Rue du Faubourg Saint-Honoré. Zurich One of the richest and most sophisticated cities in the world, Zurich is not only a global financial center, but also one of Europe's most important crossroads when it comes to transportation and travel. Its historical center has been preserved almost to the millimeter, although a trendy, avant-garde feel to the place makes Zurich one of the most a1ractive cities in the world to live and play. Lucerne, Lucerne,the gateway to central Switzerland, sited on Lake Lucerne, is embedded within an impressive mountainous panorama. Complete with gable paintings, the covered, medieval Chapel Bridge forms the centrepiece of Lucerne's townscape and is considered to be one of the oldest, covered wooden bridges in Europe. The figure of a dying lion which was hewn from the face of rock in remembrance of the heroic death of Swiss guards killed during an a1ack on the Tuileries in 1792 is one of the best-known monuments in Switzerland. Interlaken It's not unusual for a town to be on a River, Lake or An Ocean. But for It sit between two lakes may will be unique. Interlaken-between lake thin and lake brienz-can boast such a privileged position and there's more. Interlaken is also in the heart of the mangnifient Jungfrau region mountain World and aﬀords views of the World famous Icy Icons, The Eiger, Monch & Jungfrau.",
		      "name": "Paris to Swiss Tour",
		      "telephone": "+91-9510847518"
		    }
		    </script>
			";i:5;N;}