a:6:{i:0;s:28345:"				<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="h1"><h1>Best of Switzerland and Paris Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.phoenixtandt.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.phoenixtandt.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Best of Switzerland and Paris Tour</p> 
									
						<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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Paris</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.phoenixtandt.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Switzerland and Paris 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="146702"/>
						</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_18/510229/227931.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/510229/227931.jpg"  height="150"  width="150"    alt="Best of Switzerland and Paris Tour" title="Best of Switzerland and Paris 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>
													
								Welcome to Europe, the land of promise, of glamour, of beauty, of fun and of history! Europe has always been at the top of a world traveller’s list. We bring to you a vacation curated lovingly, to ensure that you enjoy the very best of Europe in a short trip. Have a perfectly romantic holiday to the most famous places in Europe, to be able to gather all the jewels it has to offer, an experience that you will cherish for the rest of your life!<br />
<br />
Tentative Itinerary<br />
<br />
Note: Above Itinerary is just indicative. Do not consider it as a Final Schedule. Date & Time of Tours can be changed by Local Agent / Tour Operator.Any increase in the Air fare, Fuel surcharge and Taxes charged by the Airlines on your Air Ticket<br />
Any increase in the Rate of Exchange leading to an increase in all Land Arrangement which may come into effect prior to Departure<br />
Cost of extension of the Validity or Deviation from route of your Air Ticket<br />
Cost of the Additional Suggested Excursions<br />
Porterage, Laundry, Wines, Mineral water, Telephone <br />
charges, <br />
All items of personal nature and also Food & Drinks not forming part of the Group Menus<br />
Any Service not mentioned in Inclusions<br />
Surcharge (if Any)								</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> Welcome to Paris
										</p>
										<p class="aj">Welcome to the most romantic city in the world! On arrival, you will be met with our local representative at the airport, outside the customs area. After your pick up from the airport, you will proceed to a carefully chosen Indian restaurant for dinner. After the dinner, you will check in to the hotel.<br />
<br />
Overnight stay at the hotel in Paris.</p>					
											<p><b>Meals : </b> 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 2:</b> Sightseeing Tour & Optional Lido Show
										</p>
										<p class="aj">Sightseeing tour includes- City tour of Paris + Seine River Cruise + Tour of Eiffel Tower<br />
<br />
After a sumptuous breakfast at the hotel, we will proceed to visit the most famous landmark of Paris - the magnificent Eiffel Tower. We will get a bird’s eye view of the beautiful Paris from an impressive height of 377 feet, from the second level of Eiffel Tower. After this, we will go for a magical river cruise of the Seine River. After this invigorating cruise, we will begin our city tour of this historic city, exploring Paris and all its iconic and glorious sights! We will visit Champs Elysees, one of the most famous and glamorous boulevards in the whole world, with iconic stores and impossibly beautiful cafes lining the street. We will visit the wonderful opera, the gorgeous Town Hall and the National Assembly, we will see the famous Louvre museum (from the outside), the legendary Notre Dam cathedral and the Arc De Triomphe.<br />
<br />
After a lavish dinner, we will proceed back to the hotel, or you can choose to watch the Lido show- one of the most famous and long running shows in Paris (at an extra cost). With exotic, glamorous dancers, beautiful setting, foot tapping music, scintillating costumes and a beautifully racy atmosphere, this promises to be the quintessential night out in the most dazzling city in the world! You will be taken to the hotel after the show.<br />
<br />
Overnight stay at the hotel in Paris.</p>					
											<p><b>Meals : </b> Breakfast, 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 3:</b> Paris (Day Free for Leisure)
										</p>
										<p class="aj">Optional Sightseeing: Visit to Disneyland (at an extra cost)<br />
<br />
After an amazing spread of continental breakfast, you have the day free, to relax, to revel in the amazing Paris. You can explore the dainty cafes, go back to sights you saw the previous day and want to explore further, visit the absolutely brilliant Louvre and gaze at the world’s most precious art pieces, like Mona Lisa and Venus De Milo. Get acquainted with Paris like a friend, discovering it at your own pace!<br />
<br />
OR<br />
<br />
You can spend the day in the Disneyland (at an extra cost). The delights of Disneyland charm adults and children alike! There are themed parks with famous Hollywood Disney movie themes, roller coasters and adventure rides, cartoon characters to play with, and such a festive, happy atmosphere that it feels impossible to leave. Disneyland guarantees to make your day filled with fun and laughter. Later return to hotel after having Dinner at Indian restaurant.<br />
<br />
Overnight stay at the hotel in Paris.</p>					
											<p><b>Meals : </b> Breakfast, 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> Paris to Zurich
										</p>
										<p class="aj">After a hearty continental breakfast, we will check out from our hotel and proceed to Zurich in a coach. The scintillating beauty of the Swizz Alps, the pristine lakes, quaint farms with cows dotting the greenery and breathtaking scenery giving us company, this journey promises to be a soul stirring experience. We will have dinner in a brilliant Indian restaurant in Zurich before checking into our hotel.<br />
<br />
Overnight stay at the hotel in Switzerland.</p>					
											<p><b>Meals : </b> Breakfast, 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> Day Free At Leisure or Optional Tour
										</p>
										<p class="aj">Free Day for Exploration OR Optional Excursion to Mt Jungfraujoch with Tour of Interlaken City (at an extra cost)<br />
<br />
After a sumptuous and hearty breakfast, you are free to spend the day as you deem fit. You can laze around in the bed, or just marinate in the beauty if arguably the most beautiful city in the world!<br />
<br />
OR<br />
<br />
We can immerse ourselves in the beauty of the Alps, and visit Jungfraujoch and the Interlaken (at an extra cost). We will drive through the exquisitely picturesque views to Grund/Lauterbrunnen, from where we will board a train to take us to Jungfraujoch. The train ride in itself is uniquely pleasing, as it takes us from twists and turns and tunnels and mountain passes in the great Alps, to the Jungfraujoch station, the highest altitude station in all of Europe at 11,333 feet. Get enchanted with the magic of the Alps at the Sphinx Terrace, see the stunning views from Jungfrau Peak, and watch the remarkable Aletsch Glacier. We will also visit the spectacular Ice Palace, where we can see incredible ice sculptures, while incased in ice ourselves! The whole experience of ice and snow on the plateau is unforgettable and quite surreal. We can send postcards to our friends and family from here, the highest altitude post office in all of Europe. You can enjoy a brilliant lunch at an Indian restaurant in Jungfraujoch on your own. We will return via the Interlaken City. You will have free time at your disposal here, to roam, shop for the famous Swiss chocolates, Swiss watches and other memorabilia, or simply explore the beautiful cafes here. From here, we will proceed to the hotel after having Dinner at Indian Restaurant.<br />
<br />
Overnight stay at the hotel in Switzerland.</p>					
											<p><b>Meals : </b> Breakfast, 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> Switzerland ( Day Free for Leisure)
										</p>
										<p class="aj">Optional Daytrip: Mount Titlis Tour & Lucerne (at an Extra cost)<br />
<br />
After a continental breakfast, the day will be for a full day excursion to Mt. Titlis and Lucerne city (at an extra cost). We will begin the outing with a visit to Mt. Titlis, which at 10,000 ft is the highest peak in central Switzerland. We will travel to Mt. Titlis through a series of cable cars. The last leg of the rise will be in our planet’s first revolving cable car called the ‘Titlis Rotair’. At Mount Titlis we will have free time to relish and have fun in the snow. We can travel to the Ice Cave or just relax at the restaurant and enjoy the scenery.<br />
<br />
In the afternoon, post lunch (by own), we will move towards one more striking city of the Swiss region of Lucerne. Here we can revel in our city tour which includes the famed Lion monuments - Mark Twain praised the sculpture of a mortally-wounded lion at the Lion Monument as "the most mournful and moving piece of stone in the world."<br />
<br />
Next we will visit the Kappelbruck Bridge which is the oldest surviving wooden bridge in Europe. This bridge also houses a lot of interior paintings from the 17th century. This is another ideal place to purchase branded Swiss watches, Swiss chocolates, Swiss army knives. Dinner will be at the Indian restaurant and will conclude extraordinary trip.<br />
<br />
Overnight stay at the hotel in Switzerland.</p>					
											<p><b>Meals : </b> Breakfast, 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 7:</b> Bid Adieu to the Magic of Europe
										</p>
										<p class="aj">This is a day of goodbyes! After a brilliant breakfast at the hotel, we will check out from the hotel. Taking in the reverberating beauty of the beautiful Switzerland for the last time, we will drive to the airport. With the memories, experiences and photographs of a lifetime, this Euro trip will draw to an end. We would love to hear your stories, and your feedback. Please write to us with anything you would want to share with us, as this keeps us motivated in our effort to provide beautiful holiday experiences to our guests.<br />
 </p>					
											<p><b>Meals : </b> Breakfast</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>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>Cost of your Round trip Economy class Airfare valid for the duration of the Tour</li><li>
Airport taxes as per the routing of the Tour</li><li>
3 Nights accommodation in Paris</li><li>
(BEST WESTERN / Ibis Paris CDG Airport / Park Inn by Radisson Paris CDG Airport Hotel / Hotel Novotel Noisy le Grand / OnlySuites / Similar*)</li><li>
Guided Paris City Tour</li><li>
Eiffel Tower 2nd Level / Montparnasse</li><li>
Seine River Cruise</li><li>
3 Nights accommodation in Switzerland</li><li>
(Hotel ibis Styles / NH Zurich Airport / Novotel Zurich Airport Messe / Hotel Terrace / Hotel Central / Park Inn by Radisson Zurich Airport / Similar*)</li><li>
Cost of the Visa</li><li>
Services of Tour Manager or Local Representatives</li><li>
Meals (Breakfast & Dinner), Coach Tours, Transfers, </li><li>
Entrance fees, Sightseeing and Surface Transportation as </li><li>
mentioned in the Itinerary</li><li>
Cost of Overseas Travel Insurance policy valid for the tour (Passengers above 59 years of age will have to pay the actual difference of the Insurance premium along with the Medical Reports)</li><li>
All Tours & Transfers on Seat In Coach (shared) Basis</li><li>
All Hotel & Airlines Taxes</li><li>
Tip</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Any increase in the Air fare, Fuel surcharge and Taxes charged by the Airlines on your Air Ticket</li><li>
Any increase in the Rate of Exchange leading to an increase in all Land Arrangement which may come into effect prior to Departure</li><li>
Cost of extension of the Validity or Deviation from route of your Air Ticket</li><li>
Cost of the Additional Suggested Excursions</li><li>
Porterage, Laundry, Wines, Mineral water, Telephone </li><li>
charges, </li><li>
All items of personal nature and also Food & Drinks not forming part of the Group Menus</li><li>
Any Service not mentioned in Inclusions</li><li>
Surcharge (if Any)</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</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>* 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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.phoenixtandt.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of 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="146702"/>
						</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.phoenixtandt.com/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.phoenixtandt.com/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/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.phoenixtandt.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/packages-in-bagdogra.htm" title="Packages in Bagdogra">Bagdogra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/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 "><a class="dif" href="http://www.phoenixtandt.com/packages-in-namchi.htm" title="Packages in Namchi">Namchi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/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 "><a class="dif" href="http://www.phoenixtandt.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</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.phoenixtandt.com/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</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.phoenixtandt.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</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.phoenixtandt.com/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</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.phoenixtandt.com/packages-in-paris.htm" title="Packages in Paris">Paris</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.phoenixtandt.com/packages-in-tashkent-travel.htm" title="Packages in Tashkent">Tashkent</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.phoenixtandt.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</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.phoenixtandt.com/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</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.phoenixtandt.com/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</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.phoenixtandt.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</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.phoenixtandt.com/packages-in-pokhara.htm" title="Packages in Pokhara">Pokhara</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.phoenixtandt.com/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</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.phoenixtandt.com/packages-in-moscow.htm" title="Packages in Moscow">Moscow</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.phoenixtandt.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</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.phoenixtandt.com/packages-in-dubai.htm" title="Packages in Dubai">Dubai</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.phoenixtandt.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.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.phoenixtandt.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/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.phoenixtandt.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.phoenixtandt.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.phoenixtandt.com/luxury-holidays-catid.htm" title="Luxury Packages">Luxury</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.phoenixtandt.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</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>
				
								
				</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:74:"Book Best of Switzerland and Paris Tour - 6 Nights / 7 Days Tour Packages";i:2;s:120:"book best of switzerland and paris tour - 6 nights / 7 days tour packages, adventure tour packages, paris tour packages";i:3;s:163:"Phoenix Travel and Tourism offers Best of Switzerland and Paris Tour - 6 Nights / 7 Days tour package, budget Adventure tour packages for Paris at exciting price.";i:4;s:1602:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Paris"        
		                 },
		      "description": "Welcome to Europe, the land of promise, of glamour, of beauty, of fun and of history! Europe has always been at the top of a world traveller’s list. We bring to you a vacation curated lovingly, to ensure that you enjoy the very best of Europe in a short trip. Have a perfectly romantic holiday to the most famous places in Europe, to be able to gather all the jewels it has to offer, an experience that you will cherish for the rest of your life!

Tentative Itinerary

Note: Above Itinerary is just indicative. Do not consider it as a Final Schedule. Date & Time of Tours can be changed by Local Agent / Tour Operator.Any increase in the Air fare, Fuel surcharge and Taxes charged by the Airlines on your Air Ticket
Any increase in the Rate of Exchange leading to an increase in all Land Arrangement which may come into effect prior to Departure
Cost of extension of the Validity or Deviation from route of your Air Ticket
Cost of the Additional Suggested Excursions
Porterage, Laundry, Wines, Mineral water, Telephone 
charges, 
All items of personal nature and also Food & Drinks not forming part of the Group Menus
Any Service not mentioned in Inclusions
Surcharge (if Any)",
		      "name": "Best of Switzerland and Paris Tour",
		      "telephone": "+91-8192997664"
		    }
		    </script>
			";i:5;N;}