a:6:{i:0;s:33037:"				<div class="h1"><h1>Rajasthan Tribal Tours</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Rajasthan Tribal Tours</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">
						22 Nights / 23 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Kota, Mandawa, Pushkar, Sawai Madhopur, Udaipur, Agra, Bundi, Rajsamand</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Tribal Tours - 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="107875"/>
						</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_1/7828/178772.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/178772.jpg"  width="150" height="150"    alt="Rajasthan Tribal Tours" title="Rajasthan Tribal Tours" /></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 at Delhi
								</p>
								<p class="aj">Company representatives will receive you on arrival at the international airport in Delhi late in the evening. Transfer to your hotel. Relax.<br />
DELHI, the capital of kingdoms and empires is now a sprawling metropolis with a fascinating blend of the past and the present. It is a perfect introduction to the composite culture of an ancient land. A window to the kaleidoscope - that is India.<br />
Overnight at 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 2:</b> Delhi - Mathura - Vrindaban - Agra
								</p>
								<p class="aj">Proceed for Agra after breakfast.<br />
Visit Mathura and Vrindaban - LORD KRISHNA'S ABODE. Take a round of the ASHRAMS and TEMPLES. Have lunch and proceed to Agra.<br />
Reach Agra in the evening.<br />
AGRA: Two great Mughal monarchs, Akbar and Shah Jahan, transformed the little village of Agra into a befitting second capital of the Mughal Empire - giving it the name Dar-ul-Khilafat {seat of the Emperor}. Today a visitor to Agra is caught up in a world of contrasting edifices, of red sandstone and white marble, narrow galleys and quaint buggies, and that irresistible charm that this favorite city of the Mughals still retains. It is not surprising, that modern Agra still reflects its Mughal heritage most conspicuously. A walk down the narrow bustling streets of the city will introduce the visitor to the wafting aroma of Mughlai cuisine.<br />
Check in at hotel and relax. Overnight at Agra.</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> Agra
								</p>
								<p class="aj">After breakfast proceed to visit Taj. Enjoy battery van ride to the Taj.<br />
TAJ MAHAL: Little needs to be said about this architectural wonder which is always the soul raison-de-etre for every tourist's visit to Agra. Built by Shah Jahan, the Taj is a white marble memorial to his beautiful wife Mumtaz Mahal. This monument took 22 years to be completed and was designed, and planned by Persian architect Ustad Isa. Apart from it's stunning design balance and perfect symmetry, the Taj is also noted particularly for its elegant domes, intricately carved screens and some of the best inlay work ever seen. Proceed for sightseeing to the AGRA FORT - Built by the famed Mughal emperor Akbar in 1565 AD, the fort is predominantly of red sandstone. Ensconced within is the picture perfect Pearl Mosque, which is a major tourist attraction.<br />
Visit Itmadullah's Tomb built by Empress NOOR JEHAN in memory of her father (The interiors of which are considered better than the Taj).<br />
Overnight at Agra.</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 - Jaipur
								</p>
								<p class="aj">After breakfast drive to beautiful Pink City - Jaipur.<br />
Stop at Fatehpur Sikri. The deserted, red Sandstone City, Emperor Akbar built that as his capital and palace in the late 16th century is an exhilarating experience. It a veritable fairytale city and its "ruins" are in pristine condition ... it's not hard to imagine what the court life must have been like in the days of it's grandeur. Also visit the Bulund Darwaza, the largest gateway in the world.<br />
Reach and check in at hotel.<br />
JAIPUR - The origins of the beautiful city of Jaipur can be traced back to the eighteenth century, during the reign of Jai Singh II who ascended the Amber throne in 1699. Jaipur today, epitomizes the spirit of Rajputana. In-spite of growing into a bustling metropolis, it still retains it's character and history - A beautiful fusion of the yesteryears and modernity. Popularly known as the Pink City because of the extensive use of the locally abundant pink plastered stone, painted so in honor of the visit of the royal consort of Queen Victoria. Jaipur thrills the soul with its massive forts, magnificent palaces, exquisite temples and lush gardens.<br />
Overnight at 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 5:</b> Jaipur 
								</p>
								<p class="aj">Breakfast at hotel.<br />
Proceed for excursion to Amber Fort in the outskirts of Jaipur. Elephant ride ascent to the fort.<br />
AMBER FORT PALACE - Amber is the classic romantic Rajasthani fort palace. Its construction was started by Man Singh I in 1592, and completed by his descendent Jai Singh I. It's forbidding exterior belies an inner paradise where a beautiful fusion of Mughal and Hindu styles finds it's ultimate expression.<br />
Proceed for sightseeing of the city.<br />
CITY PALACE - A delightful blend of Mughal and traditional Rajasthani architecture, the City Palace sprawls over one-seventh of the area in the walled city. It houses the Chandra Mahal, Shri Govind Dev Temple and the City Palace Museum.<br />
JANTAR MANTAR - This is the largest and the best preserved of the five observatories built by Jai Singh II in different parts of the country. This observatory consisting of outsized astronomical instruments is still in use.<br />
HAWA MAHAL - The ornamental facade of this "Palace of Winds" is a prominent landmark in Jaipur. Its five-storey structure of sandstone plastered pink encrusted with fine trelliswork and elaborate balconies. The palace has 953 niches and windows. Built in 1799 by Pratap Singh, the Mahal was a royal grandstand for the palace women.<br />
Visit a rug factory and see the ladies at the intricate work or a gem factory and see the gem cutting and polishing process.<br />
Overnight at 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 6:</b> Jaipur - Pushkar
								</p>
								<p class="aj">Proceed for Pushkar after breakfast. Reach Pushkar by noon and relax. Check in at PUSHKAR PALACE.<br />
PUSHKAR - Amongst the grandeur of Rajasthan, discover a unique gem - Pushkar. Lord Brahma - The creator of the world in a search for his abode on earth, performed the supremely spiritual VEDIC YAGNA at Pushkar. It is thus the site of the only Brahma Temple in the world. Blessed with cultural blends, it is the venue for the famous Pushkar Fair, with people coming from all over Asia to buy and sell cattle of breeds from across the world. The consecrated mausoleum of Khawaja Moinuddin Chisti at Ajmer attracts pilgrims from all over the world. A city of Pilgrimage from time immemorial with over 500 temples and Ghats Pushkar begets a legacy of timeless architectural heritage. Pushkar radiates an ambience of peace and spirituality that casts a lure to visit again and again. The Pushkar fair is amongst the largest cattle fairs in the world and amongst the oldest cities in India, with references in mythology and the Mahabharat. There are 52 bathing Ghats, which are linked to the lunar calendar, enclose the lake. Each Ghat has its own miraculous qualities and powers of healing and this city of temples has over 500 temples built over different eras with varied architectural styles. The rose garden of Rajasthan - the essence of the famous Pushkar rose is exported the world over. Pushkar has the most varied terrain in Rajasthan with sand, rock, hills, and proximity to a number of heritage properties in the area and a number of fairs and festivals - especially on the new and full moon days.<br />
Visit the mausoleum, Anasagar and Akbar's Palace.<br />
Overnight 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 7:</b> Pushkar - Ranthambhore
								</p>
								<p class="aj">Visit the BRAHMA TEMPLE - The only one in the world.<br />
Start early after breakfast for Ranthambhore.<br />
Ranthambhore Tiger Reserve, at the junction of the Aravalis and the Vindhyas, is a unique example of natural and historical richness, standing out conspicuously in the vast, arid and denuded tract of eastern Rajasthan, barely 14 kilometers from Sawai Madhopur. Get in tune with nature for a luxury holiday in the heart of the jungle. Ranthambhore - perhaps the best place in the world to sight a tiger in the wild. The Ranthambhore National Park has had more Tiger sightings than any other National Park in the country. It has come to be known as "The land of the Tiger", where most of the documented footage of this majestic beast has been recorded.<br />
It spreads over a highly undulating topography varying from gentle to steep slopes; from flat topped hills of the Vindhyas to the conical hillocks and sharp ridges of the Aravalis, from wide and flat valleys to narrow rocky gorges. An important geological feature the 'Great Boundary Fault' where the Vindhya plateaus meet the Aravali hill ranges, meanders through the Reserve. The National Park is bound by the rivers Chambal in the south and Banas in the north.<br />
Proceed for the afternoon SAFARI to spot tigers.<br />
Overnight at 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 8:</b> Ranthambhore
								</p>
								<p class="aj">Full day (two private safaris) at Ranthambhore.<br />
Overnight at 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 9:</b> Ranthambhore - Kota
								</p>
								<p class="aj">Proceed for the morning SAFARI. Breakfast at hotel.<br />
Start for KOTA.<br />
Rajasthan's largest industrial town situated on the banks of the river Chambal is well known for its Kota sarees and also for a miniature school of art which specialized in hunting scenes.<br />
Visit the CITY PALACE AND FORT - On the banks of the Chambal river close to the Kota Barrage is the fort and the city palace complex, which houses the RAO MADHO SINGH MUSEUM containing the relics of the former rulers of Kota.<br />
JAGMANDIR - in the island in Kishore Sagar Lake was built by one of the queens of Kota. You will take a paddleboat and roam around the same for a spiritual experience.<br />
Also visit the Govt. Museum and the famous gardens of Chambal and Chatter Bilas.<br />
Overnight at Kota.</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 10:</b> Kota - Bundi - Chittaurgarh
								</p>
								<p class="aj">Breakfast at hotel. Start for Bundi.<br />
36 km from Kota is a tiny picturesque town, Bundi - One of the unexplored cities with a rich historical wealth. Once a part of Kota, it was ruled by the Had Chauhans - an offshoot of the famous Chauhan clan who ruled Delhi and Ajmer. Bundi is surrounded by the Aravalli hills on the three sides and is circumscribed by a massive wall with four gateways. In 1193 AD when Prithvi Raj Chauhan was defeated by Sultan Mohammed Ghauri, some Chauhan nobles seeked shelter in Mewar and became allies to the Rana while other young warriors moved towards the Chambal valley and overpowered the Meena and Bhil tribals thus establishing their own kingdom of Hadoti. Later, two branches of Hadas formed two separate states of Kota and Bundi, on either side of the River Chambal. Bundi is surrounded by the Aravalli hills on three sides and is circumscribed by a massive wall with four gateways.<br />
Visit the TARAGARH or STAR FORT. Perched on a thickly wooded hill is a marvelous white fort with a huge reservoir that once supplied water to the palace. Built in 1354 AD the fort is one of the most impressive forts of Rajasthan. This magnificent edifice is a fine example of the Rajput architecture, housing some of the superb Bundi murals.<br />
CHATRASAGAR is a fascinating pavilion of a gallery of miniature murals. Elaborate colorful paintings on the walls depict scenes from the 'Ragamala' 'Raaslila' -- the Radha-Krishna story.<br />
SUKH MAHAL is a magnificent summer palace on the Sukh Sagar Lake amid the lush surroundings of a beautiful garden. An underground tunnel is believed to run from the Sukh Mahal to the old palace.<br />
Proceed to CHITTAURGARH.<br />
THE EPITOME OF ROMANCE AND VALOUR - The pride and glory of Rajasthan, CHITTAUR echoes with the tales of romance and valor unique to the Rajput tradition. This is a ruined citadel, where the royal past lives in its imposing forts, graceful palaces and spectacular CHATTRIS. This fortified settlement has been ravaged thrice and each time the outcome was 'JAUHAR' -when women and children immolated themselves on a huge funeral pyre while men donned in saffron robes of martyrdom rode out of the fort towards a certain death.<br />
After visiting the FORT proceed to stay at the BIJAIPUR CASTLE SUITE.<br />
Overnight at the CASTLE.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Bijaipur - Udaipur
									</p>
									<p class="aj">Start for Udaipur after breakfast.<br />
Reach and check in at hotel.<br />
The city of Dawn, Udaipur is a lovely land around the azure lake, hemmed in by the lush hills of the ARAVALLIS. A vision in white drenched in romance and beauty, Udaipur is a fascinating blend of sights, sound and experiences and inspiration for the imagination of poets, painters and writers.<br />
Its kaleidoscope of fairy-tale palaces, lakes, temples, gardens and narrow lanes strewn with stalls, carry the flavor of a heroic past, epitomizing valor and chivalry. Their reflection in the placid waters of the LAKE PICHOLA is an enticing sight.<br />
Udaipur is the jewel of MEWAR -a kingdom ruled by the Sisodia dynasty for 1200 Years.<br />
Relax in the evening.<br />
Overnight at Udaipur.</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 12:</b> Udaipur
									</p>
									<p class="aj">Breakfast at hotel.<br />
Proceed for sightseeing tour of Udaipur, stopping first at City Palace. Here you will marvel at rooms with mirrored walls and ivory doors, colored glass windows and inlaid marble balconies and the Peacock Courtyard.<br />
Also visit the lovely Sahelion-ki-Bari Gardens, the Jagdish Temple and the local folk Museum.<br />
Proceed for Evening Motor launch cruise on the placid waters of Lake Pichola. From he boat you will be able to view the city of Udaipur as it rises majestically above the lake in the middle of the Rajasthan desert. Also visit the Jag Mandir Palace - the other island palace in the middle of the lake. Spend some time at the Jag Mandir Palace.<br />
Overnight at Udaipur.</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 13:</b> Udaipur - Kumbhalgarh
									</p>
									<p class="aj">After breakfast drive to Kumbhalgarh.<br />
En-route, visit the RANAKPUR TEMPLES, dating back to the 15th century. 200 pillars, none of which are alike, support its 29 halls. The Temple abounds with intricate friezes and sculptures. Includes visits to two more Jain temples and the Temple of the Sun God with its erotic sculptures.<br />
Reach Kumbhalgarh.<br />
Cradled in the cluster of thirteen mountain peaks of the Aravalli ranges, the formidable medieval citadel- Kumbalgarh stands a wary sentinel to the past glory. Rising from a prominent ridge, 1914 metres high from the sea level, the fort was built in 15th century AD by Maharana Kumbha (1419-63 AD) and is the principal fortification after Chittaurgarh, lying 90 km north-west of Udaipur.<br />
The massive fort, encompassed by a 36-km long wall, has seven majestic gates and seven ramparts, one within the other. Rounded bastions and high watchtowers strengthen the crenellated walls of the fort making it an impregnable structure.<br />
Stay overnight at the AODHI HOTEL of KUMBHALGARH</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 14:</b> Kumbhalgarh - Jodhpur
									</p>
									<p class="aj">Proceed in the morning after a leisurely breakfast and reach Jodhpur.<br />
Set at the edge of the Thar Desert, the imperial city of Jodhpur echoes with tales of antiquity in the emptiness of the desert. Once the capital of the Marwar state, it was founded in 1459 AD by Rao Jodha-chief of the Rathore clan of Rajputs who claimed to be descendants of Rama - the epic hero of the Ramayana. The massive 15th century AD Mehrangarh Fort looms on the top of a rocky hill, soaring 125 Mts. Above the plains. The city is encompassed by a high wall -10 km long with 8 gates and innumerable bastions.<br />
Relax in the hotel and visit the museum of UMAID BHAWAN PALACE. Overnight at Jodhpur</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 15:</b> Jodhpur
									</p>
									<p class="aj">Morning go for a village safari in the jeep and have a rare glimpse into the rich culture and true essence of India. Abundant wildlife (game) and memorable moments of the great desert landscape fascinates one while driving along the countryside.<br />
Afternoon sightseeing tour of Jodhpur - gateway to the desert beyond, home of the Rathors of Marwar, visit the Mehrangarh Fort, rising up a hilly scarp, built on the advice of a hermit, overlooking the city in the image of a long sentinel. Inside the Fort are a number of palaces added by successive rulers. In this palace you would see different miniature paintings & cradle room. After this you would visit Jaswant Thada Memorial.<br />
Overnight at Jodhpur.</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 16:</b> Jodhpur - Jaisalmer
									</p>
									<p class="aj">Proceed for Jaisalmer.<br />
Rising from the heart of the Thar Desert like a golden mirage is the city of Jaisalmer. A commanding fort etched in yellow sandstone stands, with its awesome splendor, dominating the amber-hued city.<br />
The city has an interesting legend associated with it, according to which, Lord Krishna-the head of the Yadav Clan, foretold Arjuna that a remote descendent of the Yadav Clan would build his kingdom atop the Trikuta Hill. His prophecy was fulfilled in 1156 AD when Rawal Jaisal, a descendent of the Yadav Clan and a Bhatti Rajput, abandoned his fort at Lodurva and founded a new capital -Jaisalmer, perched on the Trikuta Hill.<br />
Reach and check in at hotel. Overnight at Jaisalmer.</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 17:</b> Jaisalmer
									</p>
									<p class="aj">After a relaxed breakfast proceed for full day sightseeing tour of The Golden City - Jaisalmer. It is in the heart of the Great Indian Desert. Its temple, fort and palaces are all built of yellow stone. The city is a mass of intricately carved buildings, facades and elaborate balconies. Visit the JAISALMER FORT - The oldest living Fort in the world. (This is the highlight of the tour)<br />
See the Patwon-Ki-Havelies, Salim-Singh-Ki-Haveli and Gandhi Sagar Tank. Also visit Barabagh Hill.<br />
In the afternoon, proceed to the SAM SAND DUNES for visiting the typical Rajasthani Desert Village. View the sunset from the dunes, as the sky is set on fire. Return to the village for dinner amidst Rajasthani musicians playing haunting tunes. Stay overnight at the SWISS TENT CAMP</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 18:</b> Safari
									</p>
									<p class="aj">Breakfast at the camp.<br />
Start for JHAMBA CAMPS through the desert in the jeeps. Reach in the afternoon and overnight on camp.</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 19:</b> Safari to Bikaner
									</p>
									<p class="aj">Breakfast at the camp. Continue with the safari and reach Bikaner via NAGAUR.<br />
Check in at hotel.<br />
BIKANER - The royal fortified city with a timeless appeal. Lying in the north of the Desert State, the city is dotted with many sand dunes. Bikaner retains the medieval splendor that pervades the city's lifestyle.<br />
More popularly called the camel country, the city is renowned for the best riding camels in the world. The ship of the desert is an inseparable part of life here. Be it pulling heavy carts, transporting grains or working on wells, camels are the prime helpers. The wells of Bikaner - an important source of water are other attractions of the city. These are built on high plinths with slender minareted towers on each of the Four Corners and can be noticed even from a distance.<br />
Relax in the evening. Overnight at Bikaner.</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 20:</b> Bikaner - Mandawa
									</p>
									<p class="aj">Breakfast at hotel. Proceed for sightseeing tour of Bikaner.<br />
Rao Bikaji, a descendant of Jodhaji - the founder of Jodhpur, founded this desert town in the North of the state in 1488. Visit the Junagarh Fort, constructed between 1588 and 1593 by Raja Jai Singh, a general in the Moghul Emperor Akbar's army. The city is also called the "Camel Country". Visit the camel-breeding farm - the only one in Asia. Visit the KARNI MATA TEMPLE.<br />
Proceed for Mandawa.<br />
The medieval Fort of Mandawa gradually rises on the horizon like a mirage. A breathtaking view of the town can be seen from the terrace of Castle Mandawa. Precious collection of arms with jade handles, traditional ceremonial costumes can be seen at the Museum at the Castle. The havelies worth a visit are Chokhani, Saraf, Goenka and Ladia in this town. Built in 1775 by Thakur Nawal Singh, descendant of Rao Shekhaji, who also founded the city of Nawalgarh. The Castle, now a 51 rooms hotel has no two rooms alike. It also houses an interesting collection of paintings, jade, costumes and antiques. The courtyard and the terrace come to live during evenings with candle-lit dinners and fire-dances during the season. A two hundred and forty year old fortess, that has been converted by the family into a fine example of traditional hospitality.<br />
Reach and check in at hotel. Overnight at Mandawa.</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 21:</b> Mandawa - Delhi
									</p>
									<p class="aj">Breakfast at hotel.<br />
Take a walking tour of the painted 'havelis' of some of the leading business families of the country. Though they no longer live here, the local caretakers are happy to show the visitors around. Chowkhani Haveli, Gulab Rai Ladia Haveli, Lakshminarayan Ladia Haveli, Mohahanlal Saraf Haveli and Bhagchandika Haveli are of special interest. Spend the major part of the day looking into frescoes.<br />
Also visit Mahensar and Dundlod meeting the local village chief. Leave for Delhi. Reach by evening. Overnight at 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 22:</b> Delhi
									</p>
									<p class="aj">Breakfast at Delhi. Proceed for a full day tour of Old & New Delhi.<br />
OLD DELHI - A sightseeing tour of Old Delhi would entail visiting the Raj Ghat - the memorial site where Mahatma Gandhi was cremated; Jama Masjid - the largest mosque in India and the Red Fort - once the most opulent fort and palace of the Moghul Empire.<br />
Cycle rickshaw ride from Jama Masjid to Chandni Chowk.<br />
NEW DELHI - An extensive sightseeing tour of New Delhi would include a visit to the Humayun's Tomb, the Qutub Minar, a drive along the ceremonial avenue - Rajpath, past the imposing India Gate, Parliament House, the President's Residence and would end with a drive through the Diplomatic Enclave.<br />
Relax in the evening. Overnight at 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 23:</b> Delhi - Home
									</p>
									<p class="aj">Breakfast at hotel. Day free to explore the city and finish last minute shopping.<br />
Proceed for the DANCES OF INDIA SHOW in the evening at 1800 hr after checking out of the hotel. After the show you will have FAREWELL DINNER before reaching the airport for flight home with sweet memories of India.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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">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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Tribal Tours - 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="107875"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Rajasthan Tribal Tours - 22 Nights / 23 Days Tour Packages";i:2;s:237:"book rajasthan tribal tours - 22 nights / 23 days tour packages, heritage tour packages, new delhi, bikaner, chittorgarh, jaipur, jaisalmer, jodhpur, kota, mandawa, pushkar, sawai madhopur, udaipur, agra, bundi, rajsamand tour packages";i:3;s:283:"Book Rajasthan Tribal Tours - 22 Nights / 23 Days tour packages from Journey Asia - Get attractive 22 Nights / 23 Days Heritage  tour packages for  New Delhi, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Kota, Mandawa, Pushkar, Sawai Madhopur, Udaipur, Agra, Bundi, Rajsamand.";i:4;s:528:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Kota, Mandawa, Pushkar, Sawai Madhopur, Udaipur, Agra, Bundi, Rajsamand"        
		                 },
		      "description": "",
		      "name": "Rajasthan Tribal Tours",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}