a:6:{i:0;s:12152:"				<div class="h1"><h1>New Year's Adventure In Finnish Lapland Tour</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>New Year's Adventure In Finnish Lapland 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">Tour Code </td>
						<td class="p5px pl0px vat">023</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Rovaniemi</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="New Year's Adventure In Finnish Lapland 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="65563"/>
						</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/120784.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/120784.jpg"  height="150"  width="150"    alt="New Year's Adventure In Finnish Lapland Tour" title="New Year's Adventure In Finnish Lapland Tour" /></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/120785.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/120785.jpg"  height="150"  width="150"    alt="New Year's Adventure In Finnish Lapland Tour" title="New Year's Adventure In Finnish Lapland Tour" /></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/120786.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/120786.jpg"  height="150"  width="150"    alt="New Year's Adventure In Finnish Lapland Tour" title="New Year's Adventure In Finnish Lapland Tour" /></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/120787.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/120787.jpg"  height="150"  width="150"    alt="New Year's Adventure In Finnish Lapland Tour" title="New Year's Adventure In Finnish Lapland Tour" /></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/120788.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/120788.jpg"  height="150"  width="150"    alt="New Year's Adventure In Finnish Lapland Tour" title="New Year's Adventure In Finnish Lapland Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Welcome To Kemi
								</p>
								<p class="aj">Your magical New Year's adventure begins at Kemi-Tornio Airport, Kemi Train Station* where our friendly local representatives await to greet you and transfer you to your hotel in Kemi. After check-in, the rest of the day is free for you to explore this delightful destination or relax in a traditional Finnish sauna at the hotel. In the evening, enjoy a delicious three course dinner at the hotel.<br />
*You can also choose to fly into Oulu Airport, but complimentary transfer to your Kemi hotel will not included in that case. See "Transfers to/from Oulu" under the items Not Included in this tour for more information</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> Santa Claus & New Year’s Fun
								</p>
								<p class="aj">Experience the magic of the Arctic Circle during a day-long excursion to Rovaniemi, the capital of Finnish Lapland, which is a relaxing 1.5 hour ride from Kemi in a comfortable coach bus. The first stop is a Lappish reindeer farm. Here, you can learn about reindeer herding and Sami culture and take a 30-minute ride in a reindeer sleigh through the woods. Your guide will take the lead and you will follow in a true Sami-style convoy, but you will still earn a special “reindeer driver license” from this experience!<br />
Afterwards, enjoy a delicious lunch at a local restaurant before heading to the famous Santa Claus Village to meet Santa himself and his merry elves at his workshop before a bit of souvenir shopping. By late afternoon the coach bus returns you to Kemi.<br />
Back at the hotel, get dressed in your favorite (and warm!) outdoor party outfit before the bus picks you up at for a 15-minute ride to a rustic cottage in the woods. Here, you will enjoy a festive New Year's Eve dinner and try unique activities in traditional tepees, such as tin melting and fortune telling. You will also be "baptized" by a traditional Shaman inside a kota tepee, with a special amulet necklace given to you as a keepsake of this experience. And to stave off any late night hunger, the fire will be hot and ready to grill some sausages!<br />
Before the countdown to midnight starts, you will be transferred to Victoriatorget on the border between Finland and Sweden to experience two New Year celebrations. First you can watch a firework in Finland at midnight and one hour later it is time again in Sweden at  their midnight. After the celebrations bus will bring you back to your hotel and you are free to discover Kemis nightlife.</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> Snow Safari By Dog & Machine
								</p>
								<p class="aj">Start the New Year on the right foot with a hearty Finnish breakfast buffet at your hotel. Then it's time to shake off the remnants of last night's festivities with some fresh Arctic air! Equipped from head to toe in winter gear (with helmet and goggles), you will get acquainted with the snowmobile, the Laplanders’ favorite method of travel. After a thorough briefing on safety and driving instructions, you'll join your guides on the trails in no time. With two people per machine, you can take turns driving to your destination: a Lappish camp in the snowy wilderness, where an outdoor lunch is served in a kota teepee.  <br />
Later in the day, the adventure continues at a local husky kennel, just a 30 minute ride away. Here, the group will be split into two smaller groups: while one group enjoys a 45 minutes husky safari in the wilderness (two persons sharing one sled) the other group can warm up in a laavu, a traditional Sami tepee, and grill some sausages. This is a great opportunity to learn about the training of Siberian huskies and to try your hand at “mushing”. The groups will switch activities before returning to the hotel in time for dinner.</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> Departure
								</p>
								<p class="aj">Kemi Airport for any of the 2 departure or to Kemi Train Station at any time or a transfer to Oulu Airport with one of our two scheduled buses can be arranged.* <br />
* Should you choose to fly out of Oulu Airport, note that the bus transfer from Kemi to Oulu is not included in the cost of the tour. See "Transfers to/from Oulu" under the items Not Included in this tour for more information.</p>					
									<p><b>Meals : </b> Breakfast</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Meals</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="New Year's Adventure In Finnish Lapland 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="65563"/>
						</form>
						</div>
						
						";i:1;s:83:"Book New Year's Adventure In Finnish Lapland Tour - 3 Nights / 4 Days Tour Packages";i:2;s:138:"book new year's adventure in finnish lapland tour - 3 nights / 4 days tour packages, lakes & rivers tour packages, rovaniemi tour packages";i:3;s:179:"El Travel Elect Pvt. Ltd offers New Year's Adventure In Finnish Lapland Tour - 3 Nights / 4 Days tour package, budget Lakes & Rivers tour packages for Rovaniemi at exciting price.";i:4;s:425:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Rovaniemi"        
		                 },
		      "description": "",
		      "name": "New Year's Adventure In Finnish Lapland Tour",
		      "telephone": "+91-9225503370"
		    }
		    </script>
			";i:5;N;}