a:6:{i:0;s:14617:"				<div class="h1"><h1>Forts of Rajasthan Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Forts of Rajasthan Package</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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jaipur, Jodhpur, Udaipur</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Forts of Rajasthan Package - 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="103026"/>
						</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_17/484941/172338.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/172338.jpg"  width="150" height="150"    alt="Forts of Rajasthan Package" title="Forts of Rajasthan Package" /></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> Arrival
								</p>
								<p class="aj">On arrival l at the airport / railway station in Jaipur you will be met and transfered to your hotel.<br />
On arrival, check-in to your hotel.<br />
Jaipur - The Capital of Rajasthan and one of the largest state of India. The city of victory, Jaipur presides over the fascinating desert state and its people: surrounded by rugged hills, each crowned by a formidable fort; and beautiful palaces, mansions and gardens dotted throughout its precincts. The palaces and forts of yesteryear that were witness to royal processions and splendour are now living monuments, accepted quite naturally into the lifestyles of the people of the 'pink city'.<br />
Later, proceed on a city tour of Jaipur, visiting the fabulous City Palace and Jantar Mantar.<br />
The City Palace, which includes the Chandra Mahal and Mubarak Mahal palaces and other buildings, is a palace complex in Jaipur. It was the seat of the Maharaja of Jaipur, the head of the Kachwaha Rajput clan. The Chandra Mahal palace now houses a museum but the greatest part is that it is still a royal residence. It is a seven-storeyed building and each floor has been given a specific name. Mubarak Mahal, meaning the Auspicious Palace, was built with a fusion of the Islamic, Rajput and European architectural styles.<br />
Visit Jantar Mantar or Astronomical Observatory. The Jantar Mantar is a collection of architectural astronomical instruments, built by Sawai Jai Singh, as he was particularly interested in learning about astronomy. It has been inscribed on the World Heritage List.<br />
Later,return to the hotel.<br />
Overnight 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 2:</b> Jaipur
								</p>
								<p class="aj">After breakfast , drive outside Jaipur to the ancient capital of Amer to see the fabulous Amer Fort followed by a visit to Hawa Mahal, Nahargarh Fort and Jaigarh Fort .<br />
The Amer fort is also known as the Amber fort. The construction of Amber fort was started by Raja Mansingh in the 16th century and was completed by Sawai Jai Singh in the 18th Century.The palace here has been wonderfully built and has an intelligent design. The palace has a four storied layout and each level has its own courtyard. It consists of the Diwan-e-Aam, or 'Hall of Public Audience', the Diwan-e-Khas, or 'Hall of Private Audience', the Sheesh Mahal (mirror palace), or Jai Mandir, and the Sukh Niwas where a cool climate is artificially created by winds that blow over a water cascade within the palace.<br />
Thereafter, enjoy a photo- stop at the 'Palace of Winds', otherwise known as Hawa Mahal . It was named so because it was a high screen wall built to allow royal ladies to observe everyday life in the street below without being seen. Constructed of red and pink sandstone, the palace sits on the edge of the City Palace, and extends to the zenana, or women's chambers.<br />
Hawa Mahal - the Palace of Winds with 953 small windows called jharokhas decorated with intricate web work. It is really an elaborate facade behind which the ladies of the court used to watch the daily goings on in the street below.<br />
The Fort at Nahargarh stands tall on the edges of the Aravalli hills that overlook the city of Jaipur. The view from the top of the fort is splendid. Small buildings and colorful ones dot the landscape. On the other side there are fields. This fort along with the Jaigarh fort and the Amer fort combined provided a great secure area for the city of Jaipur.<br />
The Jaigarh fort literally means the fort of victory. The fort here, served more as a military fort than a residence of the Royals. The Jaigarh fort in collaboration with the Amer fort was used to man the borders of the erstwhile kingdom of Amber. The fort has thick walls built from red stone and spreads across three kilometers.<br />
The rest of the day is at leisure for independent activities.<br />
Overnight in Jaipur</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> Jodhpur
								</p>
								<p class="aj">After breakfast, proceed to Jodhpur, en route visit the most famous Brahma Temple.<br />
En route you will stop at the holy city of Pushkar to visit the famous Brahma Temple. Life in Pushkar, today, revolves around its lakeside Ghats, temples and vibrant, colorful bazaars, and it is this harmonious mix of the spiritual and commercial elements, that draw millions of tourists and devotees to Pushkar.<br />
On arrival, check in to the hotel in Jodhpur.<br />
The rest of the evening is at leisure to explore the city.<br />
Overnight in Jodhpur</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> Jodhpur
								</p>
								<p class="aj">After breakfast, proceed on a sightseeing tour of Jodhpur, visiting places like the Mehrangarh Fort and Jaswant Thada.<br />
The Mehrangarh Fort is the most magnificent and one of the largest forts in Rajasthan, situated on a 150 m high hill. It was founded by Rao Jodha in 1459. There are seven gates, which one has to cross before reaching the fort. These gates still bear the marks of the various battles fought in the past. On the wall, adjacent to the Lahapol or 'Iron Gate' are 15 handprints, the sati marks of the widows of Maharaja Man Singh who threw themselves upon his funeral pyre in 1843.<br />
To the left of the Mehrangarh Fort complex is the Jaswant Thada, built by Maharaja Sardar Singh in commemoration of his father, Maharaja Jaswant Singh II in 1899. The Jaswant Thada is a white marble memorial, built out of intricately carved sheets of marble. The sheets are extremely thin and polished so that they excrete a warm glow when illuminated by the sun.<br />
After sightseeing, return to the hotel.<br />
The rest of the day is at leisure. One can opt to visit the clock tower and the local markets in Jodhpur.<br />
Overnight in Jodhpur</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 5:</b> Udaipur
								</p>
								<p class="aj">After breakfast, transfer from hotel in Jodhpur to hotel in Udaipur, en route visit the Ranakpur Jain Temples.<br />
The shrine in Ranakpur is dedicated to the Jain religion. The temples are called the Ranakpur Jain temples in memory of Rana Kumbha who was also the Maharana who laid the foundation of the Kumbhalgarh fort in Rankapur. The architecture of this temple is Maru gurjara style. On arrival, check in to the hotel in Udaipur. Set on the shores of Lake Pichola and surrounded by hills, The lake was constructed by the Maharana in the year 1362 to solve the problem of water shortage in the region. The lake itself is a romantic setting surrounding the gleaming white Lake Palace and the Jag Mandir, a refuge of the rebel Mughal prince, Shah Jahan, soon to be the creator of the incomparable Taj Mahal.<br />
The rest of the day is at leisure for independent activities.<br />
Overnight in Udaipur</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 6:</b> Udaipur
								</p>
								<p class="aj">After breakfast, proceed on a sightseeing tour of Udaipur visiting the City Palace and Saheliyon ki Bari.<br />
Built by the Sisodia clan in 1559, the City palace in Udaipur is a complex of various buildings that has been fortified over the period of 400 years. The palace displays musical instruments, various clothing items, paintings and other such antiques which were used by the Royal family. The famed Helmet and the sword of Maharana Pratap, the savior of Mewar, have been preserved here.<br />
Saheliyon Ki Bari also known as 'Garden of the Maids' was laid for a group of forty-eight young women attendants who accompanied a princess to Udaipur as part of her dowry. It is a major garden and a tourist place which has fountains and wonderful flora surrounding them. The fountains are fitted with bright colorful lights which are illuminated at night and which provide a delightful view of the water.<br />
The rest of the day is at leisure for independent activities.<br />
Overnight in Udaipur</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 7:</b> Departure
								</p>
								<p class="aj">you are transferred to the airport / railway station in Udaipur, for your onward journey.</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Forts of Rajasthan Package - 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="103026"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Forts of Rajasthan Package - 6 Nights / 7 Days Tour Packages";i:2;s:129:"book forts of rajasthan package - 6 nights / 7 days tour packages, heritage tour packages, jaipur, jodhpur, udaipur tour packages";i:3;s:167:"Softpro Tour & Travel offers Forts of Rajasthan Package - 6 Nights / 7 Days tour package, budget Heritage tour packages for Jaipur, Jodhpur, Udaipur at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jaipur, Jodhpur, Udaipur"        
		                 },
		      "description": "",
		      "name": "Forts of Rajasthan Package",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}