a:6:{i:0;s:12468:"				<div class="h1"><h1>Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grihapraveshtravels.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grihapraveshtravels.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Gangtok 2 Darjeeling 2 [4 Night 5 Days] 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok</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.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok 2 Darjeeling 2 [4 Night 5 Days] 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="97048"/>
						</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_15/423905/164171.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/423905/164171.jpg"  width="150" height="150"    alt="Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour" title="Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Rooms on Twin/ Triple sharing basis<br />
Daily Breakfast & Dinner <br />
Exclusive Non-ac  vehicle. <br />
Luxury Taxes, Toll Taxes etc.Air Fare/Train fare.<br />
Personal Expenses such as Laundry, telephone calls, tips & gratuity. Mineral/soft/hard drinks, Rafting, Joy ride (Toy Train). <br />
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. <br />
Guide charges & Entrance Fees.<br />
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances, etc (to be borne by the client, which is directly payable on the spot).<br />
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.<br />
Service Tax, Insurance<br />
Anything which is not include in the inclusion.<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> IXB/ Njp to Gangtok
								</p>
								<p class="aj">Meet & Greet on arrival and transfer to Gangtok.</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> Excursion to Tsomgo Lake and Baba Mandir
								</p>
								<p class="aj">After breakfast leave early at 7:30am for Tsomgo Lake and Baba Mandir. (Nathulla Pass is not included in the package and remains closed on Monday & Tuesday). Return back to Gangtok around 4.00 PM. Enjoy the evening at MG Marg.</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> Gangtok Half day S/S to Darjeeling
								</p>
								<p class="aj">After breakfast leave for half day local sightseeing covering Chorten Stupa, Rope Way, Flower Show, Bhanjhakri falls, Institute of Tibetalogy, Cottage Industry and later drive to Darjeeling. Overnight at Darjeeling.</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> Darjeeling Full day sightseeing
								</p>
								<p class="aj">Early morning 4:00 am sharp Head for Tiger Hills (considered as most beautiful sunrise in the world) on the way back visit Ghoom Monastery and Batasia Loop. Get back into the hotel for fresh up. After breakfast Darjeeling Full day sightseeing, Zoological Park  & Himalayan Mountaineering Institute (Thursday close) View of Tea Garden, Refugee Centre, Tenzing Rock & Japanese Temple. Evening is free for leisure.</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> Darjeeling To IXB/NJP Drop
								</p>
								<p class="aj">After breakfast drop off to IXB/ NJP according to Train/ Flight Schedule.</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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air Fare/Train fare.</li><li>
Personal Expenses such as Laundry, telephone calls, tips & gratuity. Mineral/soft/hard drinks, Rafting, Joy ride (Toy Train). </li><li>
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. </li><li>
Guide charges & Entrance Fees.</li><li>
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances, etc (to be borne by the client, which is directly payable on the spot).</li><li>
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.</li><li>
Service Tax, Insurance</li><li>
Anything which is not include in the inclusion.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>Please note</strong>

<ul>
	<li>All transport service will be on point to point basis and not available for disposal.</li>
	<li>In small category Tsomgo lake &amp; Baba Mandir and Lachung &amp; Lachen is by done Tata Sumo/ Maxx</li>
	<li>In regular category Gangtok sightseeing is done by Wagon-R / Maruti Van / Alto 4 Seater.</li>
	<li>In regular category intercity transfer will be on stand to stand as the regular vehicle are not allowed inside the Gangtok town</li>
	<li>The mentioned rates are only applicable for Indian Nationals</li>
	<li>For Nathulla Pass special permit is required for which the guest document should reach us at least &nbsp; before 10 days prior to arrival</li>
	<li>In case of Land slide or any reason Tsomgo Lake &amp; Baba Mandir / North Sikkim (Lachen &amp; Lachung) is closed we will provide alternate sightseeing and there will be no refunds. But if the permit is given then the vehicle will go till snowline and there will be no refunds in this case.</li>
	<li>After issue of permit for restricted areas i.e Tsomgo Lake &amp; Baba Mandir / North Sikkim (Lachen &amp; Lachung) if the guest is unable to cover all the places due to weather conditions or road conditions we will not provide any extra sightseeing in replace to that.</li>
	<li>The rates are valid only for the guest who are staying within the 1 KM radius of the main town</li>
	<li>The rates provided can be changed without any prior notice during blackout dates.</li>
</ul>

<p><strong>Passenger capacity</strong>

<ul>
	<li>Luxury Xylo / Innova / Scorpio (6 Seater)</li>
	<li>Small Wagon-R / Alto / Omni Van (4 Seater)</li>
</ul>

<p><strong>For Passes and Permits</strong>

<ul>
	<li>4 Copies PP size photos of each member travelling.</li>
	<li>2 photo copies of ID of each member travelling (Driving license / Voter ID / Passport only accepted) (Adhar Card and Pan card not accepted)</li>
	<li>Guest can send us the documents and photos via mail in case of emergency but in that case they will be charged Rs 60/- per person.</li>
</ul>

<p><strong>Cancellation Policy</strong>

<ul>
	<li>30 Days before Arrival Date Rs 2000/- for back office expense.</li>
	<li>Between 30 to 15 Days of arrival 25% of the total amount.</li>
	<li>Less than 15 days of arrival 50% of the total amount.</li>
	<li>7 Days before arrival 75% of the total amount.</li>
	<li>Less than 7 days of arrival 100% of the total amount</li>
	<li>Early checkout 100% of the total Amount.</li>
</ul>

<p>&nbsp;<strong>Child Policy</strong>

<ul>
	<li>Up to 5 years complimentary without extra bed</li>
	<li>6 to 12 years charged as per child policy</li>
	<li>Above 12 years charged as Extra adults (with/without extra bed)</li>
</ul>						
    	<p class="h dif xlarge b mb5px">Package Cost</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">NO OF PAX (COST PER PERSON)</td>
				<td class="headHr p5px b">02 PAX     (Non Ac Wagon R/ Alto)</td>
				<td class="headHr p5px b">04 PAX (Non Ac Innova/ Xylo/ Scorpio)</td>
				<td class="headHr p5px b">06 PAX (Non Ac Innova/ Xylo/ Scorpio)</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe (MAP)</td>
				<td class="data p5px">Rs 14’999/-</td>
				<td class="data p5px">Rs 11’199/-</td>
				<td class="data p5px">Rs 9’199/-</td>
			</tr>
			<tr>
				<td class="data p5px">Premium  (MAP)</td>
				<td class="data p5px">Rs 17’599/-</td>
				<td class="data p5px">Rs 13’999/-</td>
				<td class="data p5px">Rs 11’999/-</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grihapraveshtravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok 2 Darjeeling 2 [4 Night 5 Days] 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="97048"/>
						</form>
						</div>
						
						";i:1;s:83:"Book Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour - 4 Nights / 5 Days Tour Packages";i:2;s:128:"book gangtok 2 darjeeling 2 [4 night 5 days] tour - 4 nights / 5 days tour packages, valley tour packages, gangtok tour packages";i:3;s:165:"Grihapravesh Travels offers Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour - 4 Nights / 5 Days tour package, budget Valley tour packages for Gangtok at exciting price.";i:4;s:1222:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok"        
		                 },
		      "description": "Rooms on Twin/ Triple sharing basis
Daily Breakfast & Dinner 
Exclusive Non-ac  vehicle. 
Luxury Taxes, Toll Taxes etc.Air Fare/Train fare.
Personal Expenses such as Laundry, telephone calls, tips & gratuity. Mineral/soft/hard drinks, Rafting, Joy ride (Toy Train). 
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. 
Guide charges & Entrance Fees.
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances, etc (to be borne by the client, which is directly payable on the spot).
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.
Service Tax, Insurance
Anything which is not include in the inclusion.",
		      "name": "Gangtok 2 Darjeeling 2 [4 Night 5 Days] Tour",
		      "telephone": "+91-9800718321"
		    }
		    </script>
			";i:5;N;}