a:6:{i:0;s:16035:"				<div class="h1"><h1>Culture of Karnataka With Wildlife Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.knowellresorts.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.knowellresorts.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Culture of Karnataka With Wildlife 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">
						14 Nights / 15 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bangalore, Hassan, Mysore, Kodagu, Goa City, Hospet, Uttara Kannada</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.knowellresorts.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Culture of Karnataka With Wildlife 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="72356"/>
						</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_14/396623/130098.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/396623/130098.jpg"  height="150"  width="150"    alt="Culture of Karnataka With Wildlife Tour" title="Culture of Karnataka With Wildlife Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Overview<br />
<br />
Culture of Karnataka with wildlife will offer you a chance to explore the world-renowned destinations of the state such as Bangalore, Mysore, Hassan, Hospet and Badami. You are also going to explore the diverse wildlife of the region through jungle safaris at the Dandeli National Park and Nagarhole wildlife sanctuary. Along with this, the tour also includes a visit to Goa, where you will not only enjoy sightseeing, but will also enjoy fun activities on the beach.<br />
Trip Highlights<br />
<br />
    Visit to Lal Bagh, ISKCON temple in Bangalore<br />
    Tipu Sultan’s Palace at Mysore<br />
    A Jungle safari into the Nagarhole National Park<br />
    Day-trip to Belur and Halebid Temples, UNESCO World Heritage Site, Hassan<br />
    Explore the ruins of the Vijayanagar empire at Hampi<br />
    Admire the great architecture of Pattadakal and Aihole Temples, Badami<br />
    Wildlife safari into the Dandeli Wildlife Sanctuary<br />
    Visit the popular churches of Goa including the Basilica of Bom Jesus<br />
    Indulge in water sports activity of Goa<br />
    Enjoy local Goa and seafood at the shacks by Goa beaches<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 Bangalore
								</p>
								<p class="aj">After your arrival at the Bangalore international airport, get transported to your hotel. After freshening-up, leave for the city tour. You are going to explore the major attractions of the city such as Vidhana Soudha, Lal Bagh, ISKON temple and Bangalore Palace. Night stay.</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> Bangalore - Mysore
								</p>
								<p class="aj">Have your breakfast and leave for Mysore by road. On the way, halt at Srirangapatnam (around 145 kms). It is a small town near Mysore, which has a lot of religious cultural, historic and religious importance. Later, continue towards Mysore, the second-largest city of Karnataka. Once you reach there, check into the hotel for staying overnight. If you want, you can take a stroll to explore the surroundings.</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> Mysore
								</p>
								<p class="aj">On day 3 relish your breakfast and leave your hotel room for visiting the popular attractions of Mysore. You will get a chance to explore Tipu Sultan's Palace. This palace was a summer retreat for the ruler. It is also known as the Wooden Palace as along with stones and bricks, it is also made up of wood. Later visit Somnathpura, popular for its temples, the most famous one being the Chennakesava Temple. Night stay at Mysore.</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> Mysore - Nagerhole National Park (100 kms)
								</p>
								<p class="aj">In the morning as you have your breakfast, begin your road journey towards the Nagarhole National Park. Also known as Rajiv Gandhi National Park, it houses a large variety of flora and fauna. On arrival, check into a jungle resort. Embark on a jungle safari for exploring the wildlife in the park. Return to the lodge for dinner and overnight stay.</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> Nagarhole National Park
								</p>
								<p class="aj">Day 5 of the tour is booked for two jungle safaris into the park, one will be in the morning and the other one will be in the afternoon. Spot animals like Snakes, Four-Horned Antelope, Sloth Bear, Porcupine, Jackal, Mouse-deer. Later, you can also indulge in nature walks. Night stay.</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> Nagarhole - Hassan
								</p>
								<p class="aj">Leave by road for Hassan, after relishing breakfast. It is home to a number of temples. On reaching, check into the hotel. Have your lunch and leave for exploring Belur and Halebid Temples. This UNESCO world heritage site is an amazing example of South Indian architecture. There are numerous ancient temples such as Chennakesava Temple, the Vir Narayan and the Chennigaraya temple. Night halt in Hassan.</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> Hassan - Hospet (395 kms)
								</p>
								<p class="aj">Have your breakfast, begin your road journey towards Hospet. Directly move to the hotel for freshening-up. A small town, it is well-connected with several important places. If you want you can take a leisure walk. Overnight stay at your 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 8:</b> Hospet
								</p>
								<p class="aj">On the 8th day, post breakfast, begin your one hour drive towards Hampi, situated within the ruins of the Vijayanagara Empire. This UNESCO world heritage site, is the remains of the largest empire in India's history. During the day, explore the remains of the kingdom that include Virupaksha Temple, UddanaVeerabhadra temple etc. Back to Hospet for staying overnight.</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> Hospet - Badami (146 kms)
								</p>
								<p class="aj">Have your breakfast and leave for Badami. Earlier known as Vatapi, it is well-known for rock cut as well as other structural temples. On arriving, check in at your hotel. Explore the surroundings that will include cave temples, gateways, forts, inscriptions and sculptures. Night stay.</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> Badami
								</p>
								<p class="aj">Relish your breakfast and later leave for a day trip to Pattadakal and Aihole Temples. Both these complexes house a number of ancient temples and are UNESCO world heritage sites as well. The temples here are a mix of Dravidian, Northern and Indo-Aryan architecture. Night stay in Badami.</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> Badami - Dandeli
									</p>
									<p class="aj">After having your breakfast, begin driving towards Dandeli Wildlife Sanctuary, the second largest wildlife sanctuary of Karnatak. On arrival, move to your jungle Lodge. Post lunch, jungle safari into the park where you will be able to spot animals like tigers, leopards, black panthers, elephants, gaur, deer, antelopes, and bears. Back to the lodge for dinner and overnight stay.</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> Dandeli – Goa
									</p>
									<p class="aj">After an early morning safari, get transported by road to Goa which is 108 kms away. One of the most popular tourist destinations of the country, it is visited by a large number of tourists every year. You can do numerous activities here such as sightseeing, water sports, partying, and much more. Get to your hotel after arriving. Spend the day in doing activities of your interest. Enjoy a stroll along the beach. Shop for souvenirs from the popular flea markets, enjoy can buy bamboo products, colorful clothes, fake products etc. Night stay.</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> Goa
									</p>
									<p class="aj">Entire day-13 is booked for sightseeing of Goa. You will cover the popular attractions such as Aguada Fort, Basilica of Bom Jesus, St. Cajetan Church, The Church of Mae de Deus etc. After a whole day is sightseeing, relax in the shacks built along the beaches. Enjoy the local Goan and seafood here. Overnight stay.</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> Goa
									</p>
									<p class="aj">If you are an adventure enthusiast, then you can indulge in various kinds of water sports activities such as parasailing, windsurfing, dinghy sailing, motor biking and so on. You can also do other activities of your interest such as taking a walk, sunbathing and reading. Night stay at your 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 15:</b> Goa Departure
									</p>
									<p class="aj">Get an assisted transfer to the airport. From the Goa international Airport avail flights for home. Return home with cherished memories.</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>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.knowellresorts.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Culture of Karnataka With Wildlife 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="72356"/>
						</form>
						</div>
						
						";i:1;s:80:"Book Culture of Karnataka With Wildlife Tour - 14 Nights / 15 Days Tour Packages";i:2;s:185:"book culture of karnataka with wildlife tour - 14 nights / 15 days tour packages, valley tour packages, bangalore, hassan, mysore, kodagu, goa city, hospet, uttara kannada tour packages";i:3;s:217:"Knowell Resorts offers Culture of Karnataka With Wildlife Tour - 14 Nights / 15 Days tour package, budget Valley tour packages for Bangalore, Hassan, Mysore, Kodagu, Goa City, Hospet, Uttara Kannada at exciting price.";i:4;s:1571:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bangalore, Hassan, Mysore, Kodagu, Goa City, Hospet, Uttara Kannada"        
		                 },
		      "description": "Overview

Culture of Karnataka with wildlife will offer you a chance to explore the world-renowned destinations of the state such as Bangalore, Mysore, Hassan, Hospet and Badami. You are also going to explore the diverse wildlife of the region through jungle safaris at the Dandeli National Park and Nagarhole wildlife sanctuary. Along with this, the tour also includes a visit to Goa, where you will not only enjoy sightseeing, but will also enjoy fun activities on the beach.
Trip Highlights

    Visit to Lal Bagh, ISKCON temple in Bangalore
    Tipu Sultan’s Palace at Mysore
    A Jungle safari into the Nagarhole National Park
    Day-trip to Belur and Halebid Temples, UNESCO World Heritage Site, Hassan
    Explore the ruins of the Vijayanagar empire at Hampi
    Admire the great architecture of Pattadakal and Aihole Temples, Badami
    Wildlife safari into the Dandeli Wildlife Sanctuary
    Visit the popular churches of Goa including the Basilica of Bom Jesus
    Indulge in water sports activity of Goa
    Enjoy local Goa and seafood at the shacks by Goa beaches",
		      "name": "Culture of Karnataka With Wildlife Tour",
		      "telephone": "+91-9890187499"
		    }
		    </script>
			";i:5;N;}