a:6:{i:0;s:10927:"				<div class="h1"><h1>Excitement Unlimited Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rapidactionexpedition.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rapidactionexpedition.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Excitement Unlimited 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Agra, Haridwar, Shivpuri</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Excitement Unlimited 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="75434"/>
						</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/446641/134342.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/446641/134342.jpg"  width="150" height="150"    alt="Excitement Unlimited Tour" title="Excitement Unlimited 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> Delhi
								</p>
								<p class="aj">After arriving Delhi, our representatives would greet you and escort you to the hotel. After check-in, rest and relax for the day. Spend overnight at the 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> Delhi
								</p>
								<p class="aj">Start your day by taking a city tour to Old Delhi covering Jama Masjid, Red Fort and Gandhi memorial . Later in the afternoon set for a city tour to New Delhi which would cover tourist attractions like Laxmi Narayan Temple, India Gate, Parliament House. In the evening get delight in watching the light and sound show. Night at 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> Delhi - Haridwar - Shivpuri
								</p>
								<p class="aj">In the morning a transfer to railway station would be arranged for you to board a train to Haridwar. On reaching Haridwar you would be transferred to Shivpuri. Check-in at the Natural camp resort where you will be served with welcome drink on arrival. Spend some time acclimatizing to climate and getting familiar with whole program. This will be followed by an introduction to the staff / professionals, and process to be followed for team making, selection of the leaders of the day / activity. Later in the  afternoon opt for the  jungle walk in the near surroundings of Nature camp resort. Camp-fire and dinner in the evening.</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> Shivpuri
								</p>
								<p class="aj">Start your day early by waking-up for  Yoga class followed that would have a calming effect on both your body and mind. Afterwards treat yourself with  yogic breakfast. Then head straight to Byasi where you would be briefed about the safety regulations, river discipline and Raft maneuvering, and river discipline. Today we will hit the most exciting rapids on Ganges in way to exercise teamwork. Return to nature camp resort for lunch. Spend rest of the day at your own discretion. Evening is to spend while meditating and relaxing. Dinner and night stay at nature camp resort.</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> Shivpuri
								</p>
								<p class="aj">Get up early and after breakfast leave for Hindolakhal. On arrival, start trek to Kunjapuri. This trek experience promises to take you through the thick forest that you will enjoy,  till we reach Kunjapuri. Join the class for meditation , asanas and relaxation given by expert teachers after exploring the area for sometime. Behold the sight of sunrise on Greater Himalayan peaks, return  to Nature camp resort. Post lunch head toward Chilla for an ultimate wildlife safari experience. On your arrival at Chilla, you will be briefed about the jungle discipline, animal behavior & low impact eco friendly outdoors. Return to Nature camp resort. Overnight at the resort.</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> Shivpuri
								</p>
								<p class="aj">In the morning attend advance yoga class, followed by question answer session that will help you to assess the changes occurred in your personality during the course. Raft down from Shivpuri to Rishikesh assessing team spirit, training for rescue and leadership qualities. Halt at Brahampuri for lunch. After lunch, we will hit the most exciting rapids on Ganga which includes roller – coaster, clubhouse,  return to sender,  golf course  and many more. Return to Camp for night stay.</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> Shivpuri - Rishikesh - Delhi
								</p>
								<p class="aj">In the morning leave for Rishikesh for the city tour. Drive back to Delhi. Check-in at the hotel on arrival. Retire for the night at 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 8:</b> Delhi - Agra
								</p>
								<p class="aj">Early morning start for Agra, along the way visit Sikandara. After reaching, check in at the hotel. Afternoon excursion to c, The Tomb of Itmad-ud-Daula and Red Fort. Night stay at 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 9:</b> Agra - Delhi
								</p>
								<p class="aj">Proceed to Fatehpur Sikri, post breakfast. After exploring this rich cultural heritage, drive back to Delhi. Enjoy farewell dinner in the night, then transfer to International Airport to board a flight for your onwards destination.</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Excitement Unlimited 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="75434"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Excitement Unlimited Tour - 8 Nights / 9 Days Tour Packages";i:2;s:137:"book excitement unlimited tour - 8 nights / 9 days tour packages, valley tour packages, new delhi, agra, haridwar, shivpuri tour packages";i:3;s:177:"Rapid Action Expedition offers Excitement Unlimited Tour - 8 Nights / 9 Days tour package, budget Valley tour packages for New Delhi, Agra, Haridwar, Shivpuri at exciting price.";i:4;s:432:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Agra, Haridwar, Shivpuri"        
		                 },
		      "description": "",
		      "name": "Excitement Unlimited Tour",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}