a:6:{i:0;s:13706:"				<div class="h1"><h1>Glimpse of Europe Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidaymasti.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Glimpse of Europe Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Paris, Dijon, Zurich, Lucerne</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 96000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Glimpse of Europe Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="48365"/>
						</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_2/30465/94238.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30465/94238.jpg"  width="150" height="150"    alt="Glimpse of Europe Tour" title="Glimpse of Europe Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Increase In Airfare, Visa Fees, Airport Taxes, Govt Taxes, Fuel Surcharges And Any Applicability Of New Taxes From Govt<br />
Any Up Gradation In Airline Class Or Hotel Room Category<br />
Cost Of Air Ticket Deviation Charges<br />
Any Increase In The Rate Of Exchange Leading To An Increase In All Land Arrangements Which May Come In To Effect Prior To Departure<br />
Cost Of Pre Or Post Tour Hotel Accommodation<br />
Any Extra Expense Such As Route Change, Airline Change, Date Change, Accommodation Facilities, Etc Incurred Due To The Unforeseen, Unavoidable Forced Majeuere Circumstances During The Tour<br />
Porterage, Laundry, Telephone Charges, Shopping, Wines And Alcoholic Beverages, Mineral Water, Items Of Personal Nature And Food Or Drink Which Is Not Part Of A Set Group Menu<br />
Any Extra Cost Incurred On Behalf Of An Individual Due To Illness, Accident, Hospitalization, Or Any Personal Emergency<br />
To And Fro Air Fare, Airport Transfers, Visa Fees To Join/Leave The Group And Airport Snack Hamper For Joining And Leaving Guests<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> Arrive Zurich
								</p>
								<p class="aj">Welcome on TUI's exciting tour to Europe. Enter through Switzerland - the heart of Europe, known for its scenic grandeur, beautiful lakes, and impressive snow - clad mountains. On arrival at Zurich airport, receive a warm welcome by TUI representative who will then transfer you to your hotel in Zurich. Zürich, the largest city in Switzerland reveals something amazing at every corner: architectural highlights, historic squares, streets and districts, churches, works of art and much more. Evening proceed for orientation tour of Zurich. Overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Zurich - Lucerne - (Optional - Mt. Titlis )
								</p>
								<p class="aj">After breakfast, You will be transferred to Engelberg. Enjoy morning at leisure OR you can opt for a trip to Mt. Titlis aboard the aerial cableway for a 45 minute journey from the green valley bottom to the high alpine glacier region at 3020m/10000ft which guarantees snow the whole year round. Enjoy a magnificent ride in the world's first ever revolving `ROTAIR` gondola, which offers a 360° panoramic view into the Alps. Visit the Ice Grotto and experience the `Ice Flyer`, a chair lift which rides over the glacier with fantastic views into crevasses and ice falls. Newly opened, an exciting Titlis Cliff Walk awaits you….the spectacular suspension bridge high up on the summit. 3041metres above sea-level! 500 meters off the ground! 150 heart pounding steps! To cross the bridge, you'll need nerves as strong as the steel cables from which it hangs. The TITLIS Cliff Walk holds the record for being the highest suspension bridge in Europe. Don't forget to enjoy a snow slide on the `Fun lift`. In evening enjoy an orientation tour of Lucerne visiting the Chapel Bridge, Lion monument & old city squares. Visit the biggest jeweler in town is Bucherer, famous for its watches and luxury goods. You cannot miss Casa Grande & Sturzenneger for handicrafts & embroideries. Overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Engelberg - Interlaken - (Optional - Jungfraujoch )
								</p>
								<p class="aj">After breakfast, day is free OR you can opt for an adventurous ride to Jungfraujoch - The Top of Europe, for a memorable encounter with snow and ice - a genuine 'high-point' of your tour! Relax in your coach as we proceed to the beautiful town of 'Lauterbrunnen'. You will be awed by the scenic splendor from aboard the 'cogwheel' train, which takes you to a height of 3,454metres to reach Jungfraujoch - a wonderful world of eternal ice and snow. Experience the magic of the mountains and visit the Ice Palace on top of the longest glacier in the Alps. Later, we visit Interlaken, a charming city nestled between two lakes and surrounded by the splendid Bernese Oberland Mountains. Dinner at Indian Restaurant Overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Engelberg - Dijon - Beaune - Wine Tasting
								</p>
								<p class="aj">After breakfast, drive to Beaune - Capital of Burgundy Wines and city of art, and wander through its typical cobblestone streets. Within its ramparts the charming town of Beaune reveals its historical mansions, medieval half-timbered houses, flowered squares and gardens Beaune is a city where strolling is a pleasure! This evening enjoy Wine Tasting - Beaune is deeply involved in wine culture and trade, and became centre of international wine trade in the 18th century. Thus, Beaune has been designated Capital of Burgundy Wines where wine growers and merchants invite you to discover their wine cellars and taste their best wines. Overnight stay at the comfort of your hotel Dinner at Indian restaurant. Overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Dijon - Paris (Paris City Tour with River Seine Cruise)
								</p>
								<p class="aj">After breakfast, drive to Paris. Upon arrival, enjoy the guided city tour of Paris. Visit Notre dame Cathedral and Arc de Triomphe, drive through the famous Champs Elysees, Place de la Concorde, Chaillot Palace, Louvre and many more places.Later proceed for a visit to the Eiffel Tower (2nd level) followed by an evening on romantic Seine cruise as we sail past some of the historical monuments on the River Seine. Thereafter, return to the hotel to relax after an exciting day. Dinner at Indian restaurant Enjoy overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Paris (Optional - Disneyland, Lido Show)
								</p>
								<p class="aj">After breakfast, day is free at leisure or you can opt to join us for some fun, adventure and entertainment on our tour to Disney Park and enjoy the many rides. Watch Disney characters and thrill yourself on a day full of excitement. Evening is free OR you can choose the option of Illumination tour of Paris followed by a glamorous evening at the world famous Lido Show - Enjoy an unforgettable evening at the world renowned Lido de Paris accompanied with a glass of champagne during the show and be seized by the unique Parisian spirit. Overnight stay at the comfort of your hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Depart Paris
								</p>
								<p class="aj">After a delicious breakfast, say goodbye to Europe & transfer to the airport to board your flight back home.</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>
												</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Increase In Airfare, Visa Fees, Airport Taxes, Govt Taxes, Fuel Surcharges And Any Applicability Of New Taxes From Govt</li><li>
Any Up Gradation In Airline Class Or Hotel Room Category</li><li>
Cost Of Air Ticket Deviation Charges</li><li>
Any Increase In The Rate Of Exchange Leading To An Increase In All Land Arrangements Which May Come In To Effect Prior To Departure</li><li>
Cost Of Pre Or Post Tour Hotel Accommodation</li><li>
Any Extra Expense Such As Route Change, Airline Change, Date Change, Accommodation Facilities, Etc Incurred Due To The Unforeseen, Unavoidable Forced Majeuere Circumstances During The Tour</li><li>
Porterage, Laundry, Telephone Charges, Shopping, Wines And Alcoholic Beverages, Mineral Water, Items Of Personal Nature And Food Or Drink Which Is Not Part Of A Set Group Menu</li><li>
Any Extra Cost Incurred On Behalf Of An Individual Due To Illness, Accident, Hospitalization, Or Any Personal Emergency</li><li>
To And Fro Air Fare, Airport Transfers, Visa Fees To Join/Leave The Group And Airport Snack Hamper For Joining And Leaving Guests</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.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Glimpse of Europe Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="48365"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Glimpse of Europe Tour - 6 Nights / 7 Days Tour Packages";i:2;s:139:"book glimpse of europe tour - 6 nights / 7 days tour packages, forts and palaces tour packages, paris, dijon, zurich, lucerne tour packages";i:3;s:184:"Book Glimpse of Europe Tour - 6 Nights / 7 Days tour packages from Holiday Masti - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Paris, Dijon, Zurich, Lucerne.";i:4;s:1440:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Paris, Dijon, Zurich, Lucerne"        
		                 },
		      "description": "Any Increase In Airfare, Visa Fees, Airport Taxes, Govt Taxes, Fuel Surcharges And Any Applicability Of New Taxes From Govt
Any Up Gradation In Airline Class Or Hotel Room Category
Cost Of Air Ticket Deviation Charges
Any Increase In The Rate Of Exchange Leading To An Increase In All Land Arrangements Which May Come In To Effect Prior To Departure
Cost Of Pre Or Post Tour Hotel Accommodation
Any Extra Expense Such As Route Change, Airline Change, Date Change, Accommodation Facilities, Etc Incurred Due To The Unforeseen, Unavoidable Forced Majeuere Circumstances During The Tour
Porterage, Laundry, Telephone Charges, Shopping, Wines And Alcoholic Beverages, Mineral Water, Items Of Personal Nature And Food Or Drink Which Is Not Part Of A Set Group Menu
Any Extra Cost Incurred On Behalf Of An Individual Due To Illness, Accident, Hospitalization, Or Any Personal Emergency
To And Fro Air Fare, Airport Transfers, Visa Fees To Join/Leave The Group And Airport Snack Hamper For Joining And Leaving Guests",
		      "name": "Glimpse of Europe Tour",
		      "telephone": "+91-8090952150"
		    }
		    </script>
			";i:5;N;}