a:6:{i:0;s:27893:"						<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-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 "><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 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-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-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="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.mithutourandtravels.com/packages-in-coimbatore.htm" title="Packages in Coimbatore">Coimbatore</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-sangla.htm" title="Packages in Sangla">Sangla</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-badami.htm" title="Packages in Badami">Badami</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-sarhan.htm" title="Packages in Sarahan">Sarahan</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-wayanad.htm" title="Packages in Wayanad">Wayanad</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-nainital.htm" title="Packages in Nainital">Nainital</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-manikaran.htm" title="Packages in Manikaran">Manikaran</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-kufri.htm" title="Packages in Kufri">Kufri</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-mysore.htm" title="Packages in Mysore">Mysore</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;}