a:6:{i:0;s:9439:"				<div class="h1"><h1>Dwarkadhish With Jyotirlings Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.geetcompany.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.geetcompany.com/holiday-tour-packages.htm" title="Holiday Tour Packages">Holiday Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Dwarkadhish With Jyotirlings Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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/22362/55094.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/55094.jpg"  width="150" height="150"    alt="Dwarkadhish With Jyotirlings Tour" title="Dwarkadhish With Jyotirlings Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> 112</p>
												<p class="mb5px"><b>Duration :</b> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Ahmedabad, Jamnagar, Dwarka</p>
												<p><b>Price (Starting From) :</b>						
						INR 12750 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Dwarkadhish With Jyotirlings Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="28081"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
											<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Ahmedabad - Jamnagar - Dwarka (480 Kms / 8 hrs Approx)
									</p>
									<div class="data p10px">Arrival at Ahmadabad, Meet to Greet and continue drive to Dwarka, en-route visit Jamnagar 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. Later Proceed to Dwarka and attend Evening Aarti Darshan at Dwarkadhish Temple - Temple of Lord Krishna. Overnight stay at Dwarka.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Dwarka (480 Kms / 8 hrs Approx)
									</p>
									<div class="data p10px">Attend early morning Aarti at Dwarkadhish temple. Have breakfast & thereafter 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. Overnight stay at Dwarka.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Dwarka - Porbandar - Somnath (250 Kms / 5 hrs Approx)
									</p>
									<div class="data p10px">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. Overnight stay at Somnath.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Somnath - Junagadh - Ahmedabad (400 Kms / 8 hrs Approx)
									</p>
									<div class="data p10px">Morning proceed for 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. Continue drive to Ahmadabad & transfer to airport / railway station for onward journey.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Ahmedabad :-<br />
<br />
Multiplexes (Fun Republic, Wide Angle, City Gold, R-World, etc.), drive-in-movie halls, game parlours, bowling alleys… Ahmedabad offers all modern forms of entertainment to its visitors.The Water Park and Go Karting outlets are extremely popular with children and adults. The Kankaria Lake on the other hand offers a different kind of escape. It is located on the other side of the Sabarmati and is one of the oldest recreation spots in Ahmedabad. It was built in 1451 by Sultan Qutb-Ud-Din and consists of an island garden with a summer palace in the centre of the lake.There is also a children’s park and a zoo nearby making it an ideal picnic spot for adults as well as children. Gujarat is a dry state; alcohol is, therefore, available only to non-Indian passport and permit holders<br />
<br />
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.<br />
<br />
Somnath :-<br />
<br />
The Somnath Temple located in the Prabhas Kshetra near Veraval in Saurashtra, on the western coast of Gujarat, India, is one of the twelve Jyotirlinga shrines of the god Shiva. It has currently become a tourist spot for pilgrims. The temple is considered sacred due to the various legends connected to it. Somnath means "The Protector of (the) Moon god". The Somnath Temple is known as "the Shrine Eternal", having been destroyed many times by Islamic kings and rulers. Most recently it was rebuilt in November 1947, when Sardar Vallabhbhai Patel visited the area for the integration of Junagadh and mooted a plan for restoration. After Patel's death, the rebuilding continued under K. M. Munshi, another minister of the Government of India. Somnath is famous for Beaches, Pilgrim, Temples and Jyotirlingas.Additional sightseeing or extra usage of vehicle other then mentioned will be charged<br />
Service tax will be extra01-1031-03							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Sightseeing</li>
																				<li>Transport</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Additional sightseeing or extra usage of vehicle other then mentioned will be charged</li><li>
Service tax will be extra</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:72:"Book Dwarkadhish With Jyotirlings Tour - 3 Nights / 4 Days Tour Packages";i:2;s:148:"book dwarkadhish with jyotirlings tour - 3 nights / 4 days tour packages, forts and palaces tour packages, ahmedabad, jamnagar, dwarka tour packages";i:3;s:194:"Book Dwarkadhish With Jyotirlings Tour - 3 Nights / 4 Days tour packages from Geet & Company - Get attractive 3 Nights / 4 Days Forts and Palaces  tour packages for  Ahmedabad, Jamnagar, Dwarka.";i:4;s:2594:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ahmedabad, Jamnagar, Dwarka"        
		                 },
		      "description": "Ahmedabad :-

Multiplexes (Fun Republic, Wide Angle, City Gold, R-World, etc.), drive-in-movie halls, game parlours, bowling alleys… Ahmedabad offers all modern forms of entertainment to its visitors.The Water Park and Go Karting outlets are extremely popular with children and adults. The Kankaria Lake on the other hand offers a different kind of escape. It is located on the other side of the Sabarmati and is one of the oldest recreation spots in Ahmedabad. It was built in 1451 by Sultan Qutb-Ud-Din and consists of an island garden with a summer palace in the centre of the lake.There is also a children’s park and a zoo nearby making it an ideal picnic spot for adults as well as children. Gujarat is a dry state; alcohol is, therefore, available only to non-Indian passport and permit holders

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.

Somnath :-

The Somnath Temple located in the Prabhas Kshetra near Veraval in Saurashtra, on the western coast of Gujarat, India, is one of the twelve Jyotirlinga shrines of the god Shiva. It has currently become a tourist spot for pilgrims. The temple is considered sacred due to the various legends connected to it. Somnath means "The Protector of (the) Moon god". The Somnath Temple is known as "the Shrine Eternal", having been destroyed many times by Islamic kings and rulers. Most recently it was rebuilt in November 1947, when Sardar Vallabhbhai Patel visited the area for the integration of Junagadh and mooted a plan for restoration. After Patel's death, the rebuilding continued under K. M. Munshi, another minister of the Government of India. Somnath is famous for Beaches, Pilgrim, Temples and Jyotirlingas.Additional sightseeing or extra usage of vehicle other then mentioned will be charged
Service tax will be extra01-1031-03",
		      "name": "Dwarkadhish With Jyotirlings Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}