a:6:{i:0;s:28174:"						<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">(15)</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">(11)</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">(11)</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">(10)</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">(7)</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">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.mithutourandtravels.com/packages-in-pathankot.htm" title="Packages in Pathankot">Pathankot</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-amritsar.htm" title="Packages in Amritsar">Amritsar</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-chintpurni.htm" title="Packages in Chintpurni">Chintpurni</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-palampur.htm" title="Packages in Palampur">Palampur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-katra.htm" title="Packages in Katra">Katra</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><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-kufri.htm" title="Packages in Kufri">Kufri</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-kangra.htm" title="Packages in Kangra">Kangra</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-nainital.htm" title="Packages in Nainital">Nainital</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-manikaran.htm" title="Packages in Manikaran">Manikaran</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-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-kodagu.htm" title="Packages in Kodagu">Kodagu</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-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</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-bangkok.htm" title="Packages in Bangkok">Bangkok</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-hampi.htm" title="Packages in Hampi">Hampi</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-kaza.htm" title="Packages in Kaza">Kaza</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-mcleodganj.htm" title="Packages in Mcleodganj">Mcleodganj</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="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">(21)</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">(10)</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="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</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;}