a:6:{i:0;s:16017:"				<div class="h1"><h1>Gujarat Package Dwarka With Asiatic Lion Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.vramanspecial.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.vramanspecial.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Gujarat Package Dwarka With Asiatic Lion 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Ahmedabad, Jamnagar, Junagadh, Dwarka, Somnath, Diu, Sasan Gir</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.vramanspecial.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gujarat Package Dwarka With Asiatic Lion 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="28700"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_10/288519/56779.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/288519/56779.jpg"  width="150" height="150"    alt="Gujarat Package Dwarka With Asiatic Lion Tour" title="Gujarat Package Dwarka With Asiatic Lion Tour" /></a></p></div></li>
																		<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_10/288519/56780.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/288519/56780.jpg"  width="150" height="150"    alt="Gujarat Package Dwarka With Asiatic Lion Tour" title="Gujarat Package Dwarka With Asiatic Lion Tour" /></a></p></div></li>
																		<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_10/288519/56781.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/288519/56781.jpg"  width="150" height="150"    alt="Gujarat Package Dwarka With Asiatic Lion Tour" title="Gujarat Package Dwarka With Asiatic Lion Tour" /></a></p></div></li>
																		<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_10/288519/56782.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/288519/56782.jpg"  width="150" height="150"    alt="Gujarat Package Dwarka With Asiatic Lion Tour" title="Gujarat Package Dwarka With Asiatic Lion Tour" /></a></p></div></li>
																		<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_10/288519/56783.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/288519/56783.jpg"  width="150" height="150"    alt="Gujarat Package Dwarka With Asiatic Lion Tour" title="Gujarat Package Dwarka With Asiatic Lion Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					The state of Gujarat is a renowned hub of cultural and religious activities. The sacred town of Dwarka will unleash various intriguing holy sites in front as you travel through the state. The peace lover Gujarat also has a very interesting wild side to it the homeland of Mahatma Gandhi, Gujarat is blessed with several wildlife sanctuaries which are doing great job at preserving several endangered wildlife species. This tour will bring an opportunity to penetrate deep inside the wilderness to access its stunning treasures. At Sasangir- the sole habitat of Asiatic Lions explore some of the most exciting destinations for spotting wildlife. Guests are accompanied with expert naturalists and are fully equipped with all security measures for a hassle-free and enthralling jungle safari.Additional / personal use of vehicle.<br />
Any personal expenses, room service and special orders, mineral / packed waters, alcoholic and non<br />
alcoholic beverages, porterage, tips.<br />
Any extra excursions or sightseeing apart from the above specified itinerary.<br />
Camera fees, guide charges.<br />
Any incidental and other expenses which are not specified in the inclusions.<br />
Govt service tax - 3.09 % applicable on total billing.<br />
Air ticket<br />
Camera fees (still or movie).,<br />
laundry, horse ride,<br />
Any kind of personal expenses such as monument Fees, laundry, telephone bills and alcoholic beverages.<br />
Anything not specified in the itinerary<br />
Unspecified meals.<br />
Local car ride,<br />
Cable car ride.12-0931-03<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> Ahmedabad
								</p>
								<p class="aj">Morning arrival at Ahmedabad. Meet to Greet and transfer to hotel. Later visit Akshardham Temple - Akshardham is situated in the capital city of Gandhinagar, which lies near Ahmedabad. The magnificent temple is dedicated to Lord Swaminarayan. It was constructed on the directions of Pramukh Swami Maharaj, the spiritual leader of BAPS Sanstha. The complex of this temple is the largest in Gujarat. Akshardham temple was inaugurated in the year 1992 and has become a major tourist attraction in India, during the last decade. It has a sprawling 23 acre area and is chiseled out in pink sandstone. The Swetambara Temple Hatheesing temple was built outside delhi gate in 1850 by a rich jain merchant Sheth Hatheesing. This is the best known of Ahmedabad's many ornate jain temples. It is dedicated to Dharamnath, the fifteenth Tirthankar whose status stand in the main sanctuary Built by pure marble profusely decirated with rich carving, Gandhi Ashram The beautiful ashram complex of Ahmedabad, with shady trees populated by thousand of paraketers, Beaters, sunbirds, squirells, offers a refuge from the loud streets of the city and is one of the foremost tourist attraction of Ahmedabad. This ashram was Gandhi?s headquarters during the long struggle for Indian independence. His ashram was founded in 1915 and still makes handicrafts, handmade paper and spinning wheels. This ashram is open from 8.30 AM to 6.30 PM. Overnight at hotel.</p>					
									<p><b>Meals : </b> Dinner</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> Ahmedabad to Jamnagar
								</p>
								<p class="aj">After B/F drive to Jamnagar, visit of Bala Hanuman Temple - Bala Hanuman Temple is a pilgrim place venerated by the devotees of Lord Ram. It is a world famous temple, known for the continuous chanting of Jai Ram, Shri Ram. The chanting is going on since 1964 and has found a place for it in the Guinness Book of World Records. People chant the name of the Lord in shifts, 24 hours a day. Over night at Dwarka.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</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> Jamnagar - Dwarka
								</p>
								<p class="aj">Today proceed to Dwarka check into hotel and latter visit Bet Dwarka & Nageshwar Jyotirling. Bet Dwarka Also known as Bet Shankhoddar, Bet Dwarka is only 5 kms from Okha Junction in sea and Okha is 30 kms from Dwarka. It is said to be the place where Lord Krishna lived with his family when the ruled at Dwarka. It is also the place where Vishnu slew the demon Shankhasura. Visitors make it a point to visit the Krishna temple at this site which holds much of interest to be seen and experienced. Nageswar Mahadev The Puranas mention 12 Jyotirlingas or columns of light representing Lord Shiva, who manifested himself in that form in different parts of India. This shiva shrine near Dwarka is one of these and is there- fore accorded great respect. Rukmani Temple ? Temple of Lord Krihsna?s wife. O/n stay at Dwarka.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</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> Dwarka to Porbandar to Somnath
								</p>
								<p class="aj">Morning proceed to Porbandar(130 Kms) visit of Kirti temple known as house & born place of Mahatma Gandhi. In back side house of Kasturba wife of Gandhi. Also visit of Gandhi museum, study room of Mahatma Gandhi in the Kirti temple. Later visit of Sudama temple & continue proceed to Somnath, evening Aarti Darshan at Somnath Temple - A lord shiva temple known as Jyotirling built by Moon God. Enjoy lighting and sounding Show. O/n stay at Somnath.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</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> Somnath to Diu
								</p>
								<p class="aj">Morning visit Bhalka Tirth, Triveni Tirth. Later proceed for Diu. visit of Diu Fort & beach. The fort has canons, which reminds one of the struggles between bahadur Shah, Sultan of Gujarat, Mughal emperor & the Portuguese. Later visit Diu includes st.Paul Church which is founded by Jesuits, Diu Museum which is collection of wooden carving, idols, shadow clocks & so many other items. O/n stay at Diu.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</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> Diu to Sasan Gir
								</p>
								<p class="aj">Morning proceed for Sasan Gir. Evening safari to Gir National Park. Sasan Gir Lion sanctuary is home of some 300 Asiatic Lions. Sasan Gir is only place in world outside African continent where lion can be seen in its natural habitat.O/n sasan gir.</p>					
									<p><b>Meals : </b> Breakfast, Dinner</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> Sasan Gir to Junagadh - Ahmedabad
								</p>
								<p class="aj">Morning drive to Ahmedabad. Enroute visit Junagadh, visit of UPERKOT FORT, is an ancient fort built by Chandr Gupta. The fort as been rebuilt & extended many times. Later visit of Ashokan Edicts,Mahabat Maqbara. The Ashoka?s Rock edict is on way of Girnar hill temple. The rock engraved with the Buddhist edicts of Ashoka. The edicts impart moral instruction on dharma, harmony,tolerance and peace. Arrival at Ahmedabad. Evening transfer to Airport / Railway station.</p>					
									<p><b>Meals : </b> Breakfast</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>Sightseeing</li>
																		<li>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Additional / personal use of vehicle.</li><li>
Any personal expenses, room service and special orders, mineral / packed waters, alcoholic and non</li><li>
alcoholic beverages, porterage, tips.</li><li>
Any extra excursions or sightseeing apart from the above specified itinerary.</li><li>
Camera fees, guide charges.</li><li>
Any incidental and other expenses which are not specified in the inclusions.</li><li>
Govt service tax - 3.09 % applicable on total billing.</li><li>
Air ticket</li><li>
Camera fees (still or movie).,</li><li>
laundry, horse ride,</li><li>
Any kind of personal expenses such as monument Fees, laundry, telephone bills and alcoholic beverages.</li><li>
Anything not specified in the itinerary</li><li>
Unspecified meals.</li><li>
Local car ride,</li><li>
Cable car ride.</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.vramanspecial.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gujarat Package Dwarka With Asiatic Lion 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="28700"/>
						</form>
						</div>
						
						";i:1;s:84:"Book Gujarat Package Dwarka With Asiatic Lion Tour - 6 Nights / 7 Days Tour Packages";i:2;s:186:"book gujarat package dwarka with asiatic lion tour - 6 nights / 7 days tour packages, heritage tour packages, ahmedabad, jamnagar, junagadh, dwarka, somnath, diu, sasan gir tour packages";i:3;s:217:"Vraman Special offers Gujarat Package Dwarka With Asiatic Lion Tour - 6 Nights / 7 Days tour package, budget Heritage tour packages for Ahmedabad, Jamnagar, Junagadh, Dwarka, Somnath, Diu, Sasan Gir at exciting price.";i:4;s:1962:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ahmedabad, Jamnagar, Junagadh, Dwarka, Somnath, Diu, Sasan Gir"        
		                 },
		      "description": "The state of Gujarat is a renowned hub of cultural and religious activities. The sacred town of Dwarka will unleash various intriguing holy sites in front as you travel through the state. The peace lover Gujarat also has a very interesting wild side to it the homeland of Mahatma Gandhi, Gujarat is blessed with several wildlife sanctuaries which are doing great job at preserving several endangered wildlife species. This tour will bring an opportunity to penetrate deep inside the wilderness to access its stunning treasures. At Sasangir- the sole habitat of Asiatic Lions explore some of the most exciting destinations for spotting wildlife. Guests are accompanied with expert naturalists and are fully equipped with all security measures for a hassle-free and enthralling jungle safari.Additional / personal use of vehicle.
Any personal expenses, room service and special orders, mineral / packed waters, alcoholic and non
alcoholic beverages, porterage, tips.
Any extra excursions or sightseeing apart from the above specified itinerary.
Camera fees, guide charges.
Any incidental and other expenses which are not specified in the inclusions.
Govt service tax - 3.09 % applicable on total billing.
Air ticket
Camera fees (still or movie).,
laundry, horse ride,
Any kind of personal expenses such as monument Fees, laundry, telephone bills and alcoholic beverages.
Anything not specified in the itinerary
Unspecified meals.
Local car ride,
Cable car ride.12-0931-03",
		      "name": "Gujarat Package Dwarka With Asiatic Lion Tour",
		      "telephone": "+91-9874035665"
		    }
		    </script>
			";i:5;N;}