a:6:{i:0;s:8800:"				<div class="h1"><h1>03 Days Ranthambore Tour from Jaipur</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.grandindiatrip.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.grandindiatrip.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>03 Days Ranthambore Tour from Jaipur</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">ROYAL RAJASTHAN</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						2 Nights / 3 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jaipur, Sawai Madhopur</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="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="03 Days Ranthambore Tour from Jaipur - 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="53942"/>
						</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_9/257644/104579.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/257644/104579.jpg"  width="150" height="150"    alt="03 Days Ranthambore Tour from Jaipur" title="03 Days Ranthambore Tour from Jaipur" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Ranthambore National park is spread over an area of 392 sq km. along with its nearby sanctuaries like - the Mansingh Sanctuary and the Kaila Devi Sanctuary.The park is majorly famous for its tigers and is one of the best locations in India to see the majestic predators in its natural habitat. The tigers can be easily spotted even during the day time busy at their ordinary quest- hunting and taking proper care of their young ones.<br />
<br />
Ranthambore is also counted as the famous heritage site because of the pictorial ruins that dot the wildlife park. Certainly, a visit to Ranthambore National Park is a treat for every wildlife and nature lover. The time spend on watching tigers roaming around, verdant greenery, a gamut of other species of chirpy birds and animals is priceless and worth enough to be explored at least once.Medical insurance of any kind.<br />
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities<br />
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks, Meals, Tipping etc.<br />
Camera Fee & Entrance Fees to Monuments.<br />
Gratuities: We do not include tipping when quoting the tour price.<br />
Anything not specified not Included.17-0230-06<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> Jaipur
								</p>
								<p class="aj">Arrive Jaipur - Ranthambore [ 200 kms / 03 hrs ]<br />
Welcome to Jaipur, the capital of modern Rajasthan. On arrival, you are received and will be driven to Ranthambore. Arrive and check in hotel. Stay overnight at a resort in Ranthambore.</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> Ranthambore
								</p>
								<p class="aj">Ranthambore<br />
Today have the morning & evening Jungle Safari at Ranthambore.</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> Ranthambore - Jaipur
								</p>
								<p class="aj">Ranthambore - Jaipur drop [ 200 kms / 03 hrs ]<br />
After breakfast drive to Jaipur. Arrive Jaipur and transfer to airport / Railway Station in time to board flight / train to your onward 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>
																		<li>Sightseeing</li>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Medical insurance of any kind.</li><li>
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities</li><li>
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks, Meals, Tipping etc.</li><li>
Camera Fee & Entrance Fees to Monuments.</li><li>
Gratuities: We do not include tipping when quoting the tour price.</li><li>
Anything not specified not Included.</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Using Ananta Palace / Similar 
3 Star

INR 23 ,500/-per couple 
Adult / Child with Extra bed  : INR 5700/-
Adult / Child without Extra bed  : INR 4800/-

Using OmRudrapriya/ Similar 
4 Star 


INR 25 ,600/- per couple 
Adult / Child with Extra bed  : INR 6800/-
Adult / Child without Extra bed  : INR 5700/-

Using Juna Mahal / Similar 
5 Star 

INR 35 ,500/-per couple 
Adult / Child with Extra bed : INR 12500/-
Adult / Child without Extra bed : INR 8000/-<br /><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="https://www.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="03 Days Ranthambore Tour from Jaipur - 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="53942"/>
						</form>
						</div>
						
						";i:1;s:75:"Book 03 Days Ranthambore Tour from Jaipur - 2 Nights / 3 Days Tour Packages";i:2;s:148:"book 03 days ranthambore tour from jaipur - 2 nights / 3 days tour packages, wildlife and nature tour packages, jaipur, sawai madhopur tour packages";i:3;s:192:"Grand India Tours & Travels offers 03 Days Ranthambore Tour from Jaipur - 2 Nights / 3 Days tour package, budget Wildlife and Nature tour packages for Jaipur, Sawai Madhopur at exciting price.";i:4;s:1681:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jaipur, Sawai Madhopur"        
		                 },
		      "description": "Ranthambore National park is spread over an area of 392 sq km. along with its nearby sanctuaries like - the Mansingh Sanctuary and the Kaila Devi Sanctuary.The park is majorly famous for its tigers and is one of the best locations in India to see the majestic predators in its natural habitat. The tigers can be easily spotted even during the day time busy at their ordinary quest- hunting and taking proper care of their young ones.

Ranthambore is also counted as the famous heritage site because of the pictorial ruins that dot the wildlife park. Certainly, a visit to Ranthambore National Park is a treat for every wildlife and nature lover. The time spend on watching tigers roaming around, verdant greenery, a gamut of other species of chirpy birds and animals is priceless and worth enough to be explored at least once.Medical insurance of any kind.
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks, Meals, Tipping etc.
Camera Fee & Entrance Fees to Monuments.
Gratuities: We do not include tipping when quoting the tour price.
Anything not specified not Included.17-0230-06",
		      "name": "03 Days Ranthambore Tour from Jaipur",
		      "telephone": "+91-9415285186"
		    }
		    </script>
			";i:5;N;}