a:6:{i:0;s:27933:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Kodagu White Water Rafting & Trekking Program Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="https://www.mithutourandtravels.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="https://www.mithutourandtravels.com/packages.htm" title="Packages">Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Kodagu White Water Rafting & Trekking Program Tour</p>
						</div>
						</div>
						</section>
										<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-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_18/521346/256700.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/521346/256700.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/521346/256700.jpg"  alt="Kodagu White Water Rafting & Trekking Program Tour" title="Kodagu White Water Rafting & Trekking Program Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Kodagu White Water Rafting & Trekking Program Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						1 Nights / 2 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kodagu</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.mithutourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kodagu White Water Rafting & Trekking Program Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="169925"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">(from June 15th to October 15th Every Year)<br />
introduction<br />
<br />
Rafting and White Water Rafting are Recreational Outdoor Activities Which Use An Inflatable Raft to Navigate a River or other Body of Water. This is Often Done On Whitewater or Different Degrees of Rough Water. Whitewater is Formed in a Rapid, When a River‘s Gradient Increases Enough to Disturb Its Laminar Flow and Create Turbulence, I.e. Form a Bubbly, or Aerated and Unstable Current; the Frothy Water Appears White. The Term is also Used Loosely to Refer to Less-turbulent But Still Agitated Flows. The Term “whitewater” also Has a Broader Meaning, Applying to Any River or Creek Itself that Has a Significant Number of Rapids. The Term is also Used as An Adjective Describing Boating On such Rivers, such as Whitewater Canoeing or Whitewater Kayaking.<br />
<br />
White Water Rafting is Probably One of the Craziest Water Sports You Can Get Involved In. The Idea of Hurtling Down a River in a Blow Up Rubber Boat, Dodging Whirlpools, Hitting Rocks and Falling Down Waterfalls Just Sounds Nuts Right? But It Isn’t. And Here’s Why.<br />
<br />
White Water Rafting is An Awesome Adrenaline Rush that Mixes the Thrill of Dangerous White Water with the Camaraderie of a War Movie, Pitting You and a Group of Similarly Petrified Individuals Against the Best that Nature Has to Throw At Them. There’s Something About An Experience like That, Facing Down An Opponent Staggeringly More Powerful Than You that Really Brings a Group Together. This is Why White Water Rafting Has Become a Go to Choice for Stag/hen Dos, Team Building, Youth Groups and Gaggles of Generally Insane People the World Over. While Many Action Sports are About a Single Athlete Pushing Their Limits Alone, Rafting Lets You Enjoy Those Jaw Dropping Moments Together, Sharing that Joy and Triumph from Right in the Heart of the Action.<br />
<br />
On Top of the Thrills and Bonding of a White Water Rafting Trip, You also Get to Experience Nature in a Whole New Way. Rafting Takes You to Areas that Don’t See a Lot of People, Letting You Get Close to Wildlife and Travelling Through Places that are Almost Impossible to Reach Unless You’re On the Water. This Mixture of Danger, Stunning Scenery and Team Work is What’s Helped White Water Rafting to Reach the Ripe Old Age of 200 Years and Still Be Going Strong. So if You’re Looking for a Fun Way to Celebrate Your Action Sports-mad Mate’s Upcoming Wedding or Just have a Tone of Friends Who are Up for a Crazy Challenge, Here’s Everything You Need to Know About White Water Rafting. <br />
<br />
Our Role<br />
<br />
We are Working with a Very Well Experienced - Talented Professional Team in T Shettigeri, Kodagu in South Karnataka to Conduct White Water Rafting Activity During Season When You’re Planning a Rafting Trip in Kodagu, Look to Us for Your Whitewater Rafting Outing Needs. Our Team Offers Adventures that Create Lasting Family Memories, Great Team Collaboration, and An Overall One of Kind Experience. At Whitewater Rafting We Pride Ourselves On Creating An Environment of Exuberant Discovery Every Time We Head Out Onto the Barapole River - Near Tata Tea Estate, T Shettigeri. The Memories that You Create On Your Whitewater Rafting Tour Will Last a Lifetime. We Specialize in Offering Affordable Rafting Trip that are Built Around Fun, Quality and Value for Every Budget. Rafting with Our Guided Trip is An Exciting Vacation Option. You’ll Get a Little Break from Your Everyday Routine and Enjoy the Natural Surroundings While Soaking Up the Sun. You Won’t Even Notice the Work of Paddling While You’re On the Boat Because You Will Be Having So Much Fun. <br />
<br />
General Details<br />
<br />
We Conduct this Activity for 01 Night & 02 Days Include Trekking & White Water Rafting<br />
<br />
Rafting Can Be Done One Side Only. We Provide Jeep Service to Pick You from the Finishing Point to the River Rafting Base Camp Along with Boat, Which Will Be 3 Km Off Road Trip Our Professional Guide Will Give You Instructions Before Starting this Activity At Base Camp<br />
<br />
Professional Guide Will Be Joining with You and Assist You Throughout this Activity<br />
<br />
We Provide Vehicle to and from Karnataka / Tamil Nadu / Kerala / Goa for this Program<br />
<br />
We Provide other Sightseeing Packages On Request<br />
<br />
Accommodation Will Be in Home Stay for All, Which Will Be Near to the Rafting Base Camp<br />
<br />
You are Advised to Change in to T-shirts, Shorts / Trousers with Adequate Foot Wear like Floaters During Rafting.<br />
<br />
Do Not Wear Sarees & Middy While Rafting. Pregnant Ladies are Not Allowed for this Activity<br />
<br />
Consumption of Alcohol or Any other Intoxicating Products is Strictly Prohibited During this Trip.Flight / Train / Bus Reservation, Dinner, <br />
<br />
All Entrance Fees, Camera Fees, Personal Expenses,<br />
<br />
All others not mentioned in “The Tour Cost Includes” Column</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> SRIMANGALA – IRUPPU FALLS										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Pick-up from Bangalore / Mysore / Mangalore Airport / Railway Station / Bus Station / City and Proceed to Srimangala in South Coorg By Early Morning. On Arrival At Srimangala, Check-in At Home Stay and Then Leisure Time<br />
<br />
proceed for a Trekking to Iruppu Falls By Afternoon (08 Km). Enjoy 02 Hours Trekking and Waterfalls. (no Guide). Back to Home Stay and have Dinner with Campfire. Overnight Stay															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> SRIMANGALA –WHITE WATER RAFTING- TATA TEA ESTATE										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast, Proceed to T Shettigeri, the Base Camp for Rafting (05 Km). Enjoy 02 Hours Guided White Water Rafting At Barapole River in T Shettigeri. Guest Can also Try Some Rope Activities Over There (optional). Guest Can Enjoy At Tata Tea Estate, En- Route to Home Stay and Can Take Few Beautiful Pictures. Back to Home Stay. Later Check-out from Home Stay and Proceed to Bangalore / Mysore / Mangalore for Your Return Trip.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Meals</li>
																						<li>Sightseeing</li>
																						<li>EP (No Meal)</li>
																				<li>Pick-up & Drop, Land Transfers, 01 Night Home Stay with 01 Breakfast & 01 Dinner per Person, 02 Sharing / 03 Sharing per Room as per Team Strength, </li><li>
02 Days Activities as per Itinerary, </li><li>
Campfire, Guide,</li><li>
A/c Vehicle with Driver, </li><li>
Vehicle Rent, Fuel, </li><li>
Toll, </li><li>
Permit, </li><li>
Parking, Driver Allowance & Tax.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Flight / Train / Bus Reservation, Dinner, </li><li>
All Entrance Fees, Camera Fees, Personal Expenses,</li><li>
All others not mentioned in “The Tour Cost Includes” Column</li></ul>
								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.mithutourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kodagu White Water Rafting & Trekking Program 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="169925"/>
						</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.mithutourandtravels.com/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-dalhousie.htm" title="Packages in Dalhousie">Dalhousie</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-katra.htm" title="Packages in Katra">Katra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-kangra.htm" title="Packages in Kangra">Kangra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-chintpurni.htm" title="Packages in Chintpurni">Chintpurni</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-palakkad.htm" title="Packages in Palakkad">Palakkad</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-una.htm" title="Packages in Una">Una</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</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.mithutourandtravels.com/packages-in-pathankot.htm" title="Packages in Pathankot">Pathankot</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.mithutourandtravels.com/packages-in-trivandrum.htm" title="Packages in Trivandrum">Trivandrum</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.mithutourandtravels.com/packages-in-kathgodam.htm" title="Packages in Kathgodam">Kathgodam</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.mithutourandtravels.com/packages-in-hyderabad.htm" title="Packages in Hyderabad">Hyderabad</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.mithutourandtravels.com/packages-in-pondicherry.htm" title="Packages in Pondicherry">Pondicherry</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.mithutourandtravels.com/packages-in-palampur.htm" title="Packages in Palampur">Palampur</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.mithutourandtravels.com/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</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.mithutourandtravels.com/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</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.mithutourandtravels.com/packages-in-corbett.htm" title="Packages in Corbett">Corbett</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.mithutourandtravels.com/packages-in-kovalam.htm" title="Packages in Kovalam">Kovalam</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.mithutourandtravels.com/packages-in-ranikhet.htm" title="Packages in Ranikhet">Ranikhet</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.mithutourandtravels.com/packages-in-ooty.htm" title="Packages in Ooty">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.mithutourandtravels.com/packages-in-kalpa.htm" title="Packages in Kalpa">Kalpa</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.mithutourandtravels.com/packages-in-khajjiar.htm" title="Packages in Khajjiar">Khajjiar</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.mithutourandtravels.com/packages-in-coorg.htm" title="Packages in Coorg">Coorg</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.mithutourandtravels.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/wildlife-safari-holidays-catid.htm" title="Wildlife Safari Packages">Wildlife Safari</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.mithutourandtravels.com/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/mountain-climbing-holidays-catid.htm" title="Mountain Climbing Packages">Mountain Climbing</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.mithutourandtravels.com/cycling-holidays-catid.htm" title="Cycling Packages">Cycling</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.mithutourandtravels.com/motor-bike-holidays-catid.htm" title="Motor Bike Packages">Motor Bike</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.mithutourandtravels.com/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 spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/heli-skiing-holidays-catid.htm" title="Heli Skiing Packages">Heli Skiing</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.mithutourandtravels.com/mountaineering-holidays-catid.htm" title="Mountaineering Packages">Mountaineering</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.mithutourandtravels.com/artificial-wall-climbing-holidays-catid.htm" title="Artificial Wall Climbing Packages">Artificial Wall Climbing</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:89:"Book Kodagu White Water Rafting & Trekking Program Tour - 1 Nights / 2 Days Tour Packages";i:2;s:140:"book kodagu white water rafting & trekking program tour - 1 nights / 2 days tour packages, river rafting tour packages, kodagu tour packages";i:3;s:186:"Mithu Tour & Travels ( Regd.) offers Kodagu White Water Rafting & Trekking Program Tour - 1 Nights / 2 Days tour package, budget River Rafting tour packages for Kodagu at exciting price.";i:4;s:5245:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kodagu"        
		                 },
		      "description": "(from June 15th to October 15th Every Year)
introduction

Rafting and White Water Rafting are Recreational Outdoor Activities Which Use An Inflatable Raft to Navigate a River or other Body of Water. This is Often Done On Whitewater or Different Degrees of Rough Water. Whitewater is Formed in a Rapid, When a River‘s Gradient Increases Enough to Disturb Its Laminar Flow and Create Turbulence, I.e. Form a Bubbly, or Aerated and Unstable Current; the Frothy Water Appears White. The Term is also Used Loosely to Refer to Less-turbulent But Still Agitated Flows. The Term “whitewater” also Has a Broader Meaning, Applying to Any River or Creek Itself that Has a Significant Number of Rapids. The Term is also Used as An Adjective Describing Boating On such Rivers, such as Whitewater Canoeing or Whitewater Kayaking.

White Water Rafting is Probably One of the Craziest Water Sports You Can Get Involved In. The Idea of Hurtling Down a River in a Blow Up Rubber Boat, Dodging Whirlpools, Hitting Rocks and Falling Down Waterfalls Just Sounds Nuts Right? But It Isn’t. And Here’s Why.

White Water Rafting is An Awesome Adrenaline Rush that Mixes the Thrill of Dangerous White Water with the Camaraderie of a War Movie, Pitting You and a Group of Similarly Petrified Individuals Against the Best that Nature Has to Throw At Them. There’s Something About An Experience like That, Facing Down An Opponent Staggeringly More Powerful Than You that Really Brings a Group Together. This is Why White Water Rafting Has Become a Go to Choice for Stag/hen Dos, Team Building, Youth Groups and Gaggles of Generally Insane People the World Over. While Many Action Sports are About a Single Athlete Pushing Their Limits Alone, Rafting Lets You Enjoy Those Jaw Dropping Moments Together, Sharing that Joy and Triumph from Right in the Heart of the Action.

On Top of the Thrills and Bonding of a White Water Rafting Trip, You also Get to Experience Nature in a Whole New Way. Rafting Takes You to Areas that Don’t See a Lot of People, Letting You Get Close to Wildlife and Travelling Through Places that are Almost Impossible to Reach Unless You’re On the Water. This Mixture of Danger, Stunning Scenery and Team Work is What’s Helped White Water Rafting to Reach the Ripe Old Age of 200 Years and Still Be Going Strong. So if You’re Looking for a Fun Way to Celebrate Your Action Sports-mad Mate’s Upcoming Wedding or Just have a Tone of Friends Who are Up for a Crazy Challenge, Here’s Everything You Need to Know About White Water Rafting. 

Our Role

We are Working with a Very Well Experienced - Talented Professional Team in T Shettigeri, Kodagu in South Karnataka to Conduct White Water Rafting Activity During Season When You’re Planning a Rafting Trip in Kodagu, Look to Us for Your Whitewater Rafting Outing Needs. Our Team Offers Adventures that Create Lasting Family Memories, Great Team Collaboration, and An Overall One of Kind Experience. At Whitewater Rafting We Pride Ourselves On Creating An Environment of Exuberant Discovery Every Time We Head Out Onto the Barapole River - Near Tata Tea Estate, T Shettigeri. The Memories that You Create On Your Whitewater Rafting Tour Will Last a Lifetime. We Specialize in Offering Affordable Rafting Trip that are Built Around Fun, Quality and Value for Every Budget. Rafting with Our Guided Trip is An Exciting Vacation Option. You’ll Get a Little Break from Your Everyday Routine and Enjoy the Natural Surroundings While Soaking Up the Sun. You Won’t Even Notice the Work of Paddling While You’re On the Boat Because You Will Be Having So Much Fun. 

General Details

We Conduct this Activity for 01 Night & 02 Days Include Trekking & White Water Rafting

Rafting Can Be Done One Side Only. We Provide Jeep Service to Pick You from the Finishing Point to the River Rafting Base Camp Along with Boat, Which Will Be 3 Km Off Road Trip Our Professional Guide Will Give You Instructions Before Starting this Activity At Base Camp

Professional Guide Will Be Joining with You and Assist You Throughout this Activity

We Provide Vehicle to and from Karnataka / Tamil Nadu / Kerala / Goa for this Program

We Provide other Sightseeing Packages On Request

Accommodation Will Be in Home Stay for All, Which Will Be Near to the Rafting Base Camp

You are Advised to Change in to T-shirts, Shorts / Trousers with Adequate Foot Wear like Floaters During Rafting.

Do Not Wear Sarees & Middy While Rafting. Pregnant Ladies are Not Allowed for this Activity

Consumption of Alcohol or Any other Intoxicating Products is Strictly Prohibited During this Trip.Flight / Train / Bus Reservation, Dinner, 

All Entrance Fees, Camera Fees, Personal Expenses,

All others not mentioned in “The Tour Cost Includes” Column",
		      "name": "Kodagu White Water Rafting & Trekking Program Tour",
		      "telephone": "+91-9816187531"
		    }
		    </script>
			";i:5;N;}