a:6:{i:0;s:11715:"				<div class="h1"><h1>Golden Triangle Ranthambore Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hussaintours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hussaintours.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Golden Triangle Ranthambore 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">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="http://www.hussaintours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle Ranthambore 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="73228"/>
						</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_13/387846/131306.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/387846/131306.jpg"  width="150" height="150"    alt="Golden Triangle Ranthambore Tour" title="Golden Triangle Ranthambore 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">Arrive Delhi, meet Ae Travels representative at the airport & transfer to hotel. Rest of the day free for leisure or city tour. Night stay in Delhi of Golden Triangle Package With Birds And Tiger</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">After a leisurely breakfast sightseeing tour of New Delhi where ornate buildings recall the days when India was the Jewel in the crown of the British empire. Visit the 11th century Qutab Minar, India Gate and the grand government buildings, the President's House, Red fort, Mahatma Gandhi Memorial. Also visit Laxmi Narayan temple popularly known as Birla Temple.<br />
Night stay in Delhi.</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 - Agra
								</p>
								<p class="aj">Early morning breakfast, pick up from hotel & drive to Agra. Arrive Agra in approx. 04 hours & transfer to hotel. Later visit the magnificent Taj Mahal - one of the seven wonders of the world surely the most extravagant expression of love ever created. 20,000 men laboured for over 17 years to build this memorial to Shah Jahan's beloved wife. Also visit the Agra fort - the rusty and majestic red-sandstone fort of Agra stands on the banks of the river Yamuna and the construction was started by Emperor Akbar in 1566. At the Diwan-I-Am (hall of public audience), a colonnaded hall of red-sandstone with a throne alcove of inlaid marble at the back, the Emperor heard public petitions. At the Diwan-I-Khas (hall of private audience) where marble pavilions with floral inlays lend an ethereal ambience, the Emperor sat on his gem-studded Peacock Throne and met foreign ambassadors and rulers of friendly kingdoms. Evening free to explore the Agra's rich heritage of handicrafts in its markets.</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> Agra - Fatehpur Sikri - Bharatpur
								</p>
								<p class="aj">After breakfast drive to Bharatpur - lying between the cities of Agra and Jaipur in the north-west is famous for Keoladeo Ghana bird sanctuary which is a home to an astonishing range of flora and fauna. Birds come to this national park in waves enroute visiting Fatehpur Sikri- a perfectly preserved red sandstone "ghost town" which was the estranged capital of mughal emperor Akbar, built in 1569 and deserted when its water supply failed. Arrive Bharatpur and transfer to hotel. Rest of the day at leisure.<br />
Night stay in Bharatpur.</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> Bharatpur - Ranthambhore
								</p>
								<p class="aj">Ranthambore TigerMorning have a completely rewarding experience of seeing an overwhelming range of birds during the rickshaw ride into the Keoladeo Ghana National Park. Later drive to Ranthambhore- famous for the wildlife sanctuary which is said to have the India's friendliest Tigers and also considered to be the best place in the world to photograph the tiger in its natural habitat. Arrive Ranthambhore & transfer to hotel.<br />
Night stay in Ranthambhore.</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> Ranthambhore
								</p>
								<p class="aj">Early morning 3 hrs Jungle safari in a Canter (a vehicle which is open on the top) enjoy the game viewing in the national park and back to the hotel. After lunch a second visit in the national park. Night stay in Ranthambhore.</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> Ranthambhore - Jaipur
								</p>
								<p class="aj">Morning Jungle safari . The park, which is one of the finest tiger reserves in the country is the main attraction of Ranthambore. Later drive to Jaipur - the fabled "pink city" of the desert named after Jai Singh, the former Maharaja of Jaipur. This is the only city in the world symbolizing the nine divisions of the universe through the nine rectangular sectors subdividing it. The palaces and forts of the yesteryears, which were witnesses to the royal processions and splendours are now living monuments. Arrive Jaipur & transfer to hotel. Night stay in Jaipur.</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> Jaipur - Delhi
								</p>
								<p class="aj">After breakfast checkout from hotel & visit the majestic Amber Fort, is one that cannot be easily described. Ride up on Elephants to the former capital of the royals set against the backdrop of the wooded hills. Later visit the City Palace, Palace of Winds also known as Hawa Mahal, this elaborate building, now little more than a facade, is encrusted with delicate screen sand carved balconies from which the royal ladies, confined to their quarters, could sneak views of the outside world. Past, present and future merge at Jai Singh's observatory, where time has been accurately measured since the 17th century. Evening drive to Delhi. Arrive Delhi & transfer to hotel. Night stay in Delhi. .</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> Delhi
								</p>
								<p class="aj">Morning at leisure. Afternoon drive to Delhi & transfer to airport to board the onward flight.</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">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.hussaintours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle Ranthambore 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="73228"/>
						</form>
						</div>
						
						";i:1;s:71:"Book Golden Triangle Ranthambore Tour - 8 Nights / 9 Days Tour Packages";i:2;s:136:"book golden triangle ranthambore tour - 8 nights / 9 days tour packages, wildlife and nature tour packages, sawai madhopur tour packages";i:3;s:166:"Hussain Tours offers Golden Triangle Ranthambore Tour - 8 Nights / 9 Days tour package, budget Wildlife and Nature tour packages for Sawai Madhopur at exciting price.";i:4;s:418:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Sawai Madhopur"        
		                 },
		      "description": "",
		      "name": "Golden Triangle Ranthambore Tour",
		      "telephone": "+91-9411923927"
		    }
		    </script>
			";i:5;N;}