a:6:{i:0;s:11275:"				<div class="h1"><h1>4 Nights Kenya  Special (4 star) Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.avanitravels.net/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.avanitravels.net/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>4 Nights Kenya  Special (4 star) Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Nairobi</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights Kenya  Special (4 star) 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="95807"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/277951/162763.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/277951/162763.jpg"  width="150" height="150"    alt="4 Nights Kenya  Special (4 star) Tour" title="4 Nights Kenya  Special (4 star) Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Arrival and departure transfers<br />
03 Nights accommodation at Safari lodge/Camp on a FB Basis<br />
1 nights Nairobi hotel on BB<br />
Transport in non-AC minivan with pop up roof for game viewing<br />
Park entrance fees and Game drives as indicated in the itinerary<br />
Services of an experienced English speaking driver guide<br />
01 litre mineral water per person per day while on game drives<br />
<br />
1 Night Nairobi<br />
2 Nights Masai Mara Game Reserve<br />
1 Night L. Elementaita<br />
<br />
Passports should be valid at least 6 months beyond the period of stay<br />
It is the duty of the client to check passport requirements for travel<br />
Check-in at hotels is 1400 hours and check-out is 1000 hours<br />
Missed or delayed flights can lead to changes in itinerary and will be at the clients’ expense should the case arise<br />
Luggage limit of 1 soft bag maximum 15 Kilograms per person during travel in Kenya. Hard cases should be avoided as they cannot fit in safari vehicles/aircrafts.<br />
All prices given are subject to availability<br />
Re-routing of Itineraries due to limited space availability: <br />
There may be some departures operated on a re-routed version depending on the availability at the time of booking, but reflecting same experience and number of game drives.<br />
Note that we might give the best alternative accommodation based on availability.<br />
Cancellation policy<br />
Cancellation between 45 & 31 days 20% of the amount  <br />
Cancellation between 30 & 21 days 40% of the amount<br />
Cancellation between 20 & 0 days 100% of the amountMeals not mentioned<br />
Drinks<br />
International & local flights<br />
Tips/gratuities<br />
Entry visas and fees<br />
Nature walk<br />
Items of a personal nature and any other not mentioned above.<br />						<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrive, Nairobi
								</p>
								<p class="aj">Upon arrival at the Jomo Kenyatta International Airport, you will be met by a Travel Wild representative and after a brief introduction, you will be transferred to your hotel for check in. All meals on own and overnight at Royal Orchid Azure Hotel or best alternative (Bed Only)<br />
Nairobi’s cosmopolitan charm includes a vibrant cultural life, great places to eat and an exciting night life! If you are just passing through this melting pot of people, there are some great attractions that are not to be missed, including the intriguing National Museum, a National Park within the city (yes! You heard right – a wildlife park that measures 170 square kms! And has lion, leopard and rhino), an irresistible elephant orphanage, Karen Blixen’s former home, the most heartwarming elephant orphanage, and so much more. Welcome to one of Africa’s most dynamic cities, a place that you’ll almost certainly pass through and one that you will love!</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Nairobi – Maasai Mara
								</p>
								<p class="aj">After breakfast, depart for the world famous Masai Mara National Reserve. It is approximately a 6 hrs drive (3 ½ hrs on Tarmac road and 2 ½ hrs on bumpy road). Arrive at your camp for check-in and have lunch. The camp blends in perfectly with its surrounding hillside landscape. Enjoy an afternoon game drive around the world famous Mara. Dinner and overnight stay at the Mara Sentrim Camp/Fig Tree Camp or best alternative (LDBB)<br />
The accent here is on the Masai people and the wealth of wildlife, birdlife, and natural flora to be found in the fabled Masai Mara Game Reserve.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Masai Mara Game Reserve
								</p>
								<p class="aj">Full day spent in the Mara with morning and afternoon game drives. All meals and overnight stay at the Mara Sentrim Camp/Fig Tree Camp or best alternative (LDBB)<br />
Masai Mara offers an absolutely unique variety of animals. The reason is that this hilly region is both humid and fertile, and is crossed by the Mara and Talek rivers, full of crocodiles and hippos. The abundance of water and excellent availability of food are the reasons why the Masai Mara, which in fact is a continuation of the Tanzanian Serengeti National Park, has the greatest population of wild animals in the whole of Africa. There is a particularly dramatic “spectacle” from July to November, the annual migration of huge herds of Gnus and zebras. Predators such as Hyenas, Jackals, Leopards and Lions of course, closely follow these herds. Gigantic herds of over 200 buffaloes can also be observed. Plenty of food is available for elephants, giraffes, and the many species of antelopes.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Maasai Mara – Lake Elementaita
								</p>
								<p class="aj">After breakfast, check out and drive to either Lake Naivasha or Lake Elementaita. Arrive in time to check in and lunch. Afternoon at leisure.  Dinner and overnight at Lake Elementaita Sentrim Lodge or best alternative (LDBB)</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Depart
								</p>
								<p class="aj">After breakfast, you will be transferred to the Jomo Kenyatta International Airport for your onward flight (B)</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Meals not mentioned</li><li>
Drinks</li><li>
International & local flights</li><li>
Tips/gratuities</li><li>
Entry visas and fees</li><li>
Nature walk</li><li>
Items of a personal nature and any other not mentioned above.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights Kenya  Special (4 star) 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="95807"/>
						</form>
						</div>
						
						";i:1;s:76:"Book 4 Nights Kenya  Special (4 star) Tour - 4 Nights / 5 Days Tour Packages";i:2;s:134:"book 4 nights kenya  special (4 star) tour - 4 nights / 5 days tour packages, wildlife and nature tour packages, nairobi tour packages";i:3;s:179:"Book 4 Nights Kenya  Special (4 star) Tour - 4 Nights / 5 Days tour packages from Avani Travels - Get attractive 4 Nights / 5 Days Wildlife and Nature  tour packages for  Nairobi.";i:4;s:2076:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Nairobi"        
		                 },
		      "description": "Arrival and departure transfers
03 Nights accommodation at Safari lodge/Camp on a FB Basis
1 nights Nairobi hotel on BB
Transport in non-AC minivan with pop up roof for game viewing
Park entrance fees and Game drives as indicated in the itinerary
Services of an experienced English speaking driver guide
01 litre mineral water per person per day while on game drives

1 Night Nairobi
2 Nights Masai Mara Game Reserve
1 Night L. Elementaita

Passports should be valid at least 6 months beyond the period of stay
It is the duty of the client to check passport requirements for travel
Check-in at hotels is 1400 hours and check-out is 1000 hours
Missed or delayed flights can lead to changes in itinerary and will be at the clients’ expense should the case arise
Luggage limit of 1 soft bag maximum 15 Kilograms per person during travel in Kenya. Hard cases should be avoided as they cannot fit in safari vehicles/aircrafts.
All prices given are subject to availability
Re-routing of Itineraries due to limited space availability: 
There may be some departures operated on a re-routed version depending on the availability at the time of booking, but reflecting same experience and number of game drives.
Note that we might give the best alternative accommodation based on availability.
Cancellation policy
Cancellation between 45 & 31 days 20% of the amount  
Cancellation between 30 & 21 days 40% of the amount
Cancellation between 20 & 0 days 100% of the amountMeals not mentioned
Drinks
International & local flights
Tips/gratuities
Entry visas and fees
Nature walk
Items of a personal nature and any other not mentioned above.",
		      "name": "4 Nights Kenya  Special (4 star) Tour",
		      "telephone": "+91-9970119645"
		    }
		    </script>
			";i:5;N;}