a:6:{i:0;s:28193:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>TROPICAL HIGHLANDS OF SOUTH TOUR</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.journeybond.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.journeybond.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> TROPICAL HIGHLANDS OF SOUTH TOUR</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Bangalore, Coorg, Wayanad, Ooty</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.journeybond.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="TROPICAL HIGHLANDS OF SOUTH 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="189500"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_21/609805/297389.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/609805/297389.jpg"  width="150" height="76"    alt="TROPICAL HIGHLANDS OF SOUTH TOUR" title="TROPICAL HIGHLANDS OF SOUTH TOUR" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Colorfully decorated temples, vast coffee and tea plantations, verdant luxuriant tropical forests and lagoons canopied by coconut trees, characterize Southern India. Venture in to the unexplored Western Ghats in Karnataka and Tamil Nadu. Carved against a mountainous canvas, this beautiful district is full of surprises, lofty peaks, racing rivers and sparkling streams. Unwind and explore the unspoiled beauty of South India. An exquisite eco friendly jungle getaway in the heart of Wayanad in north western Kerala. Wrapped in the lush embrace of a tropical rainforest, you will dwell in perfect harmony with nature, pristine and waiting to be explored. Allow yourself to be seduced by the orchestration of delicate, subtle sounds accompanying nature's theatre.TOUR HIGHLIGHTS:<br />
• Visit Srirangapatnam - the capital of Hyder Ali and his son, Tipu Sultan.<br />
• Enjoy the beauty of Mysore Palace.<br />
• Explore the land of coffee plantations - Coorg.<br />
• Visit the beautiful landscape of Wayanad.<br />
• Enjoy a visit Sim's Park and Dolphin's Nose Point in Coonor								</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> ARRIVE BENGALURU (143KMS/APPROX 3HR).S DRIVE)
										</p>
										<p class="aj">Welcome to your 'Tropical Highlands of South - Summer ' tour! On arrival at the airport / railway station in Bengaluru, you you will be met and transferred to your hotel in Mysore. en route, visit Srirangapatnam - the capital of Hyder Ali and his son, Tipu Sultan.<br />
In the evening, visit Brindavan Gardens. The Brindavan gardens are the most sought after locations for experiencing nature's beauty first hand. These gardens have been featured in numerous Hindi, Tamil, Telugu, Kannada and Malayalam films. Indigenous and exotic species of plant varieties are found here. Overnight in Mysore.<br />
None (Meals on your own).</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> ARRIVE BENGALURU (143KMS/APPROX 3HR).S DRIVE)
										</p>
										<p class="aj">Welcome to your 'Tropical Highlands of South - Summer ' tour! On arrival at the airport / railway station in Bengaluru, you you will be met and transferred to your hotel in Mysore. en route, visit Srirangapatnam - the capital of Hyder Ali and his son, Tipu Sultan.<br />
In the evening, visit Brindavan Gardens. The Brindavan gardens are the most sought after locations for experiencing nature's beauty first hand. These gardens have been featured in numerous Hindi, Tamil, Telugu, Kannada and Malayalam films. Indigenous and exotic species of plant varieties are found here. Overnight in Mysore.<br />
None (Meals on your own).</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> IN COORG
										</p>
										<p class="aj">After breakfast, proceed on a sightseeing tour of Coorg visiting places like the Omkareshwara Temple, Madikeri Fort and Abbey Falls. A Shaiva theology inspired temple, the Omkareshwara temple was built in the most unique architectural combinations. The temple has been built in a rare mix of Gothic and Islamic forms of architecture. It has a pond which has been used for centuries for prayer and offerings to God. The temple is symbolic of a repentant king and his true devotion to the Lord.<br />
A famous landmark in the city of Coorg, the Madikeri Fort is one of the relics of the glorious past of Karnataka. The fort holds remnants of history. The Fort was built in the late 16th century and was raised and rebuilt in the 17th century. The most salient feature of the fort is that there are two masonry elephants installed outside the front gate of the fort. The fort is a great vantage point to see the entire city of Coorg from atop. Later, visit Abbey Falls - located between the coffee plantations that is spread through acres of land. The view of the cascading water from the high mountain cliffs in the Abbey falls is truly astounding. The water here falls from a great height. The origin of the waterfalls here seems to be from the Kaveri River. The Abbey falls is a very pleasant location for nature lovers and trekking enthusiasts. The rest of the day is at leisure for independent activities.<br />
Overnight in Coorg. (B, D)</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> ONTO TO WAYANAD(115KMS/3HRS DRIVE)
										</p>
										<p class="aj">After breakfast, proceed to Wayanad. On arrival, check in to your hotel. The rest of the day is at leisure to explore the city of Wayanad.<br />
Overnight in Wayanad. (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> IN WAYANAD
										</p>
										<p class="aj">Post breakfast, proceed to visit Edakkal Cave. 1200 m above sea level and deep inside a dense forest lay two caves that define the history of Kerala like no other. The caves lie next to an ancient trade route which was discovered a few thousand years ago. The caves have paintings that have been easily dated back to 6000 BC indicating the presence of pre-historic developments in India. The carvings are rare and are the only examples of such old ones in the world. Later, proceedto visit Pookode Lake. Famous for its natural beauty and god gifted environmental resources; the Pookode Lake in Wayanad is a scenic freshwater lake. The lake is 770 km above sea level and is treated as a force of God. If one were to look at the map of the lake from an aerial view, the lake resembles the Indian subcontinent very strikingly. One can also opt to go for boating in Pookot Lake (On direct payment basis).<br />
The rest of the evening is at leisure.<br />
Overnight in Wayanad. (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> ONTO OOTY (140KMS/APPROX 4HRS DRIVE)
										</p>
										<p class="aj">After breakfast, proceed to Ooty. On arrival, check in to your hotel. In the evening, proceed to visit the Ooty lake. The Ooty Lake is artificial lake is situated in the heart of the city making it an ideal place for families visit. Created by John Sullivan in 1824, it spread over an area of around 65 acres. It is known for hosting boat races during the summer month of May.<br />
Overnight in Ooty. (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> IN OOTY
										</p>
										<p class="aj">This morning, enjoy a tour of the 'Queen of the Blue Mountains', that includes a visit to Dodabetta Peak for a spectacular view. The Dodabetta Peak is situated merely 10 km away from Ooty. Doddabetta Peak stands at an altitude of 2,623 meters and is said to be one of the highest peaks in South India and one of the famous tourist spots in India. Later, drive to Coonoor and visit Sim's Park and Dolphin's Nose Point. Situated at a height of 1780 m above sea level Sim's Park has a collection of over 1,000 plant species that includes magnolia, pines, tree ferns, and camellia. Dolphin's nose is located 10 km away from Coonoor. The protruding rock formation looks exactly like the nose of a dolphin hence the name. Dolphin's nose is a great vantage point that offers a panoramic view of the surrounding areas.<br />
Drive back to Ooty to visit the Botanical Garden, Rose Garden, Art Gallery and the popular Ooty Lake. One of the famous attraction of Ooty is the Botanical Garden. This garden was laid out in 1897 by the Marquis of Tweedale. Presently this garden is under the maintenance of Horticulture Department of Tamilnadu. The garden features thousands of species of plants, shrubs, ferns, trees, herbal plants etc. (Entry to Botanical Garden will be on direct payment basis). Rose Garden or Centenary Rose Park is situated in the heart of Ooty town. It is the largest Rose Garden in India laid out to commemorate the centenary Flower Show in Government Botanical Gardens. The garden is laid out with a path into the rose garden with pergolas and bowers covered with rose creepers. Today, this garden has the largest collections of roses in the country, around 2241 varieties of roses like Hybrid Tea Roses, miniature rose, Floribunda, Ramblers, roses of unusual colors like black, green and many more varieties of roses that will captivate your senses. Art gallery located on the Ooty - Mysore Road, this museum has on display various artifacts of tribal people, among which are sculptures and artworks from Toda tribe and objects detailing the ecological features of the region. It was set up in 1989, with an aim to familiarize people about the Tribal lifestyle and culture of the native Toda Tribe.<br />
Overnight in Ooty. (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 8:</b> DEPORT OOTY
										</p>
										<p class="aj">Today, bid farewell to your 'Tropical Highlands of South - Summer' tour, as you are transferred from hotel in Ooty to the airport / railway station in Bengaluru for your onward journey.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
												
						<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</table>
						</div>
												<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.journeybond.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="TROPICAL HIGHLANDS OF SOUTH 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="189500"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/singapore-city-tour-packages.htm" title="Singapore Tour Packages">Singapore</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/pelling-tour-packages.htm" title="Pelling Tour Packages">Pelling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/jaisalmer-tour-packages.htm" title="Jaisalmer Tour Packages">Jaisalmer</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/washington-tour-packages.htm" title="Washington Tour Packages">Washington</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/gulmarg-tour-packages.htm" title="Gulmarg Tour Packages">Gulmarg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/borana-tour-packages.htm" title="Borana Tour Packages">Borana</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/kufri-tour-packages.htm" title="Kufri Tour Packages">Kufri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/melbourne-tour-packages.htm" title="Melbourne Tour Packages">Melbourne</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/male-tour-packages.htm" title="Male Tour Packages">Male</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/srinagar-tour-packages.htm" title="Srinagar Tour Packages">Srinagar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/kargil-tour-packages.htm" title="Kargil Tour Packages">Kargil</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/san-francisco-tour-packages.htm" title="San Francisco Tour Packages">San Francisco</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/chandigarh-city-tour-packages.htm" title="Chandigarh City Tour Packages">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/coorg-tour-packages.htm" title="Coorg Tour Packages">Coorg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/sydney-tour-packages.htm" title="Sydney Tour Packages">Sydney</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/dubai-tour-packages.htm" title="Dubai Tour Packages">Dubai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/katra-tour-packages.htm" title="Katra Tour Packages">Katra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/shillong-tour-packages.htm" title="Shillong Tour Packages">Shillong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/bali-tour-packages.htm" title="Bali Tour Packages">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/port-blair-tour-packages.htm" title="Port Blair Tour Packages">Port Blair</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/pahalgam-tour-packages.htm" title="Pahalgam Tour Packages">Pahalgam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/rome-tour-packages.htm" title="Rome Tour Packages">Rome</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/pointe-aux-piments-tour-packages.htm" title="Pointe Aux Piments Tour Packages">Pointe Aux Piments</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/shimla-tour-packages.htm" title="Shimla Tour Packages">Shimla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/ooty-tour-packages.htm" title="Ooty Tour Packages">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/cape-town-tour-tour-packages.htm" title="Cape Town Tour Packages">Cape Town</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/tuscany-tour-packages.htm" title="Tuscany Tour Packages">Tuscany</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/jodhpur-tour-packages.htm" title="Jodhpur Tour Packages">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/desert-holidays-catid.htm" title="Deserts Packages">Deserts</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.journeybond.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.journeybond.in/food-drink-holidays-catid.htm" title="Food and Drink Packages">Food and Drink</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:71:"Book TROPICAL HIGHLANDS OF SOUTH TOUR - 7 Nights / 8 Days Tour Packages";i:2;s:151:"book tropical highlands of south tour - 7 nights / 8 days tour packages, beach and islands tour packages, bangalore, coorg, wayanad, ooty tour packages";i:3;s:180:"Journey Bond offers TROPICAL HIGHLANDS OF SOUTH TOUR - 7 Nights / 8 Days tour package, budget Beach and Islands tour packages for Bangalore, Coorg, Wayanad, Ooty at exciting price.";i:4;s:1497:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bangalore, Coorg, Wayanad, Ooty"        
		                 },
		      "description": "Colorfully decorated temples, vast coffee and tea plantations, verdant luxuriant tropical forests and lagoons canopied by coconut trees, characterize Southern India. Venture in to the unexplored Western Ghats in Karnataka and Tamil Nadu. Carved against a mountainous canvas, this beautiful district is full of surprises, lofty peaks, racing rivers and sparkling streams. Unwind and explore the unspoiled beauty of South India. An exquisite eco friendly jungle getaway in the heart of Wayanad in north western Kerala. Wrapped in the lush embrace of a tropical rainforest, you will dwell in perfect harmony with nature, pristine and waiting to be explored. Allow yourself to be seduced by the orchestration of delicate, subtle sounds accompanying nature's theatre.TOUR HIGHLIGHTS:
• Visit Srirangapatnam - the capital of Hyder Ali and his son, Tipu Sultan.
• Enjoy the beauty of Mysore Palace.
• Explore the land of coffee plantations - Coorg.
• Visit the beautiful landscape of Wayanad.
• Enjoy a visit Sim's Park and Dolphin's Nose Point in Coonor",
		      "name": "TROPICAL HIGHLANDS OF SOUTH TOUR",
		      "telephone": "+91-9828432009"
		    }
		    </script>
			";i:5;N;}