a:6:{i:0;s:20996:"				<div class="h1"><h1>Grand Tour of Switzerland Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelect.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelect.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Grand Tour of Switzerland Package</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">Tour Code </td>
						<td class="p5px pl0px vat">032</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Zurich, Lucerne, Lugano</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.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Grand Tour of Switzerland Package - 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="90386"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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/333350/156281.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156281.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156293.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156293.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156292.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156292.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156291.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156291.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156290.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156290.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156289.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156289.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156287.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156287.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156286.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156286.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156282.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156282.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></a></p></div></li>
																		<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/333350/156294.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/156294.jpg"  height="150"  width="150"    alt="Grand Tour of Switzerland Package" title="Grand Tour of Switzerland Package" /></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> Arrival Zürich | Pick up VW Golf or Audi A3
								</p>
								<p class="aj">Welcome to Switzerland!! After arrival at the airport you will clear immigration and pick up your car at the airport and drive to your hotel for check in. As a «metropolis of experiences» by the water, with a magnificent view of the snowcapped Alps on the horizon, Zurich offers a unique mixture of attractions – over 50 museums and more than 100 art galleries, international fashion labels and Zurich designs, and the most flamboyant and lively nightlife in Switzerland. Recreational activities range from a visit to the riverside and lakeside bathing areas in the very heart of the city, to a spectacular hike on the Uetliberg Mountain. One of the recommended Grand Tour attractions is the Grossmünster, which is an Evangelical Protestant church in the Old Town of Zurich, and is one of Zurich‘s most famous landmarks. Construction of this Romanesque church was begun in 1100 and it has since been rebuilt and renovated several times. Overnight at Hotel in Zürich.</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> Zürich – St. Gallen (ca. 150 km)
								</p>
								<p class="aj">After breakfast drive to St. Gallen with a stoppover at the Rhine Falls, Europe‘s largest waterfall, feeling the roar and vibration of the water over one‘s entire body - this can be experienced at the Rhine Falls near Schaffhausen. Continue to St. Gallen. The compact metropolis of eastern Switzerland between Lake Constance and Appenzellerland has a charming, traffic-free old town. Colourfully-painted oriel windows are a town feature. The Abbey precinct with the cathedral and Abbey Library has been accorded UNESCO World Heritage listing and belongs to the top attractions along the Grand Tour. Overnight in St. Gallen.</p>					
									<p><b>Meals : </b> Breakfast</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> Gallen – Davos
								</p>
								<p class="aj">After breakfast today you will drive from St. Gallen to Davos. On your way you will pass the village of Appenzell that is situated in a singularly beautiful landscape of rolling hills. The Appenzell region is known for rural customs and traditions such as the ceremonial descent of the cattle in autumn and cultural events such as folk music and rustic dances, as well as hiking tours in the Alpstein region. Continue your drive and have a stopover at `Heidi`s Village` in Maienfeld. The town lies in the distinctive Bündner Herrschaft region of Graubünden and inspired the poetess Johanna Spyri to write her novel Heidi. In the Heidi village, the story of this cheerful, nature-loving little orphan girl comes to life at the original locales of the story. Continue your drive to Davos. Check in. Overnight at hotel in Davos.</p>					
									<p><b>Meals : </b> Breakfast</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> Davos – Lugano (ca. 290 km)
								</p>
								<p class="aj">After breakfast you will drive to Lugano in the South of Switzerland you have several possibilities to experience the Grand Tour attractions. You can sit back and relax on a train ride on the most beautiful Alpine train, the Bernina Express. The cross-border Albula and Bernina Lines between Thusis and Tirano owe their 2008 inscription into the UNESCO World Heritage list to stunning scenery such as the Schyn Gorge, Morteratsch Glacier and Brusio spiral viaduct. If you prefer to be active do the hike on Mount Muottas Muragl near Pontresina. The entire Upper Engadine region lies at your feet when you are perched on the hiking mountain high above the Inn River Valley. The breathtaking views of the four lakes and the world-famous resort town of St. Moritz extend far beyond the mountain ranges into the distant horizon. Continue to Lugano. Overnight in Lugano.</p>					
									<p><b>Meals : </b> Breakfast</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> Lugano – Zermatt (ca. 215 km)
								</p>
								<p class="aj">Breakfast at the hotel. Before you leave Lugano to Zermatt one must visit Monte Brè. Since 1912 funicular rail has been making its way from Cassarate by Lugano to the scenic mountain above Lake Lugano. Trips up here are worthwhile if just for the views! The romantic little Brè village with its grottos has succeeded in maintaining its original character of country settlement – further embellished by numerous works of art. On your way and just a footstep away lies Ascona. The city is famous for its mild climate, its Old Town and a lake promenade which is dotted with street cafés and boasts a Latin ambience. Further north and also on your way you can visit beautiful Bellinzona. With its castles, walls, towers, battlements and gates, this impressive fortress is a source of wonder and amazement and UNESCO World Heritage Site since 2000. Depart Mediterranean Ticino, heading north to cross the famous St. Gotthard Pass and Furka Pass passing the Aletsch Glacier. The Aletsch Glacier is the biggest glacier in the Alps, with a length of 23 km. To cross the Aletsch Glacier is to take a magnificent journey into a stunning world of ice and rocks, Alpine flowers and forests. Continue moving down to Täsch, last stop for your car before you continue by train on to Zermatt. Overnight in Zermatt.</p>					
									<p><b>Meals : </b> Breakfast</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> Zermatt – Montreux (ca. 150 km)
								</p>
								<p class="aj">Take time this morning to walk through Zermatt, at the foot of the Matterhorn: traditional shops and wooden clad houses creating a charming place to explore. A morning trip up the exhilarating open air Gornergrat railway is not to be missed, for unrivalled views over the 4000m peaks surrounding Zermatt. After making your way back down to Täsch to collect your car, your route begins with a stunning drive up through the Valais, views dominated by amazing peaks. The river and forests accompany you as you enter French speaking Switzerland, heading through Sierre and Sion before you arrive in Montreux. After travelling through Martigny, your final leg takes you up through Aigle and along the shores of Lake Geneva to Montreux, one of the most popular holiday resorts in the Lake Geneva region. One must not miss a visit to the famous Castle Chillon. The Castle is located on a rock on the banks of Lake Geneva. The water castle is the most visited historic building in Switzerland. For nearly four centuries Chillon was the residence and profitable toll station of the Counts of Savoy. Overnight in Montreux.</p>					
									<p><b>Meals : </b> Breakfast</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> Montreux – Gstaad (ca. 330 km)
								</p>
								<p class="aj">Today you have one of your longest drives but also a very fascinating one with interesting sights to see along your way to Gstaad. Continue to the surrounded orchards and terraced vineyards of the Lavaux and further to Lausanne, the second-largest city on Lake Geneva. Sports and culture are given a high profile in the Olympic capital. Make sure to visit the Olympic Museum. Continue your drive to Freiburg, which is nestled on a rock promontory, is surrounded on three sides by the Saane River. It is one of the largest medieval towns in Üechtland. Over 200 unique Gothic facades from the 15th century impart incomparable medieval charm to the Old Town. Drinking a cup of coffee in a leisurely fashion, admiring the old facades and beautiful fountains, listening to two local languages or gazing from the 74-meter spire of the Cathedral far into the countryside - this is an experience enjoyed in Fribourg. Further on your way you will pass the Greyerzer (Gruyère) region, with its rolling green landscape and the peaks of the Fribourg Pre-Alps, is home to the world-famous Gruyère cheese. The picture-book little medieval town of Gruyères is perched atop a small hill. Overnight at hotel in Gstaad.</p>					
									<p><b>Meals : </b> Breakfast</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> Gstaad – Lucerne (ca. 315 km)
								</p>
								<p class="aj">Before you continue to Lucerne enjoy the beautiful scenery of the chalet village Gstaad, which attracts countless stars and starlets. Continue your drive to Interlaken. Enjoy a lake cruise on the turquoise Lake Brienz and neighbouring Lake Thun that are situated in the spectacular mountain setting of the Bernese Oberland. From Interlaken you can experience the majestic Eiger, Mönch and Jungfrau summits, together with close-up views of the longest glacial flow. The Jungfrau railway travels from the heart of the mountains to Europe’s highest lying mountain station at 3454 meter altitude. If you have some time left before you head to Lucerne, Bern is the place to spend it. Not many cities have managed to retain their historic features quite as successfully as Bern, the capital of Switzerland. The old town of Bern is a UNESCO World Heritage Site and thanks to its 6 kilometres of arcades - the locals refer to them as ‚Lauben‘ - boasts one of the longest weather-sheltered shopping promenades in Europe. Overnight in Lucerne.</p>					
									<p><b>Meals : </b> Breakfast</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 9:</b> Departure Lucerne – Zürich (ca. 140 km)
								</p>
								<p class="aj">You will spent your last day in one of the nicest cities in Switzerland. Lucerne is the gateway to central Switzerland, sited on Lake Lucerne, is embedded within an impressive mountainous panorama. Thanks to its attractions, its souvenir and watch shops, the beautiful lakeside setting and the nearby Excursion Mountains of the Rigi, Pilatus and Stanserhorn, the town is a destination for many travel groups and individuals on their journey through central Switzerland. One of the highlights along the Grand Tour lies in Lucerne - the Chapel Bridge. The covered, wooden pedestrian walkway on the Chapel Bridge was built in the 14th century. In 1993 the bridge burned down but it was reconstructed true to the original. This large fire hit the international headlines. Do visit this landmark bridge. Drive back to Zürich for rental car drop-off at the airport.</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>
															</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.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Grand Tour of Switzerland Package - 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="90386"/>
						</form>
						</div>
						
						";i:1;s:72:"Book Grand Tour of Switzerland Package - 8 Nights / 9 Days Tour Packages";i:2;s:133:"book grand tour of switzerland package - 8 nights / 9 days tour packages, valley tour packages, zurich, lucerne, lugano tour packages";i:3;s:189:"Book Grand Tour of Switzerland Package - 8 Nights / 9 Days tour packages from El Travel Elect Pvt. Ltd - Get attractive 8 Nights / 9 Days Valley  tour packages for  Zurich, Lucerne, Lugano.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Zurich, Lucerne, Lugano"        
		                 },
		      "description": "",
		      "name": "Grand Tour of Switzerland Package",
		      "telephone": "+91-9225503370"
		    }
		    </script>
			";i:5;N;}