a:6:{i:0;s:31647:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Amanati Hajj Umrah Tours</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.amanatihajjumrah.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.amanatihajjumrah.in/hajj-umrah-package.htm" title="Hajj Umrah Package">Hajj Umrah Package</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Amanati Hajj Umrah Tours</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<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/531366/251522.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/251522.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/251522.jpg"  alt="Amanati Hajj Umrah Tours" title="Amanati Hajj Umrah Tours" 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">Amanati Hajj Umrah Tours</p>
					
											<p class="mb5px"><b>Duration :</b> 
						14 Nights / 15 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Makkah</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 49786						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.amanatihajjumrah.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Amanati Hajj Umrah Tours - 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="165701"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
												<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Destination	economy Umrah Package - 15 Days (07 N Makkah/07 N Madinah)	   <br />
query Code		   <br />
no. Of Adults	total Cost :- 49,786 /- per Person	   <br />
<br />
important Note :-<br />
<br />
gst ( Goods & Services Tax - 5% ) Will Applicable On Total Invoice Cost // or //  we Will Take @30 Sgd/-( for Singapore Booking ) or  30/- Usd /-( for other Country  booking )as a Remittance Charge  only Will Be Applicable On Total Invoice  Which is Non Adjustable as Mention Below.<br />
<br />
No. Of Child	child Cost :- 42,786 /-	   <br />
no. Of Infant		   <br />
check in Date	nov First Week  	   <br />
check Out Date		   <br />
no. Of Nights	15 Days	   <br />
meal PlanGst ( Goods & Services Tax  ) Rate Would Be Charged to Flat Rate @ 5%  Will Be Applicable On Given Cost or Final Invoice<br />
<br />
only for Dubai Bookings :-   Starting 1st January 2018, all Bookings Will Be Subject to 5% Vat  ( for U.a.e Govt  ) + 5% Gst ( for India Govt  )<br />
<br />
two Way  Return Flight Fare ( or Country to Country <br />
connecting Flights).<br />
<br />
Visa Fees and Formalities, Travel Insurance & Forex are <br />
not Included Above, Visa Will Not Process Without  Payment<br />
<br />
meals other Than What is Mentioned in the Itinerary<br />
<br />
anything Not Mentioned in the Inclusions<br />
<br />
any Expenses of a Personal Nature, Tips & Portage, <br />
camera & Video Permits<br />
<br />
early Check-in & Late Check-out.<br />
<br />
Entrance Fees</p>
						</div>
														<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>15 Days Economy Umrah - 7 N Makkah/ 7 N Madinah</li><li>
return Airfare (economy Class) (via Flight)</li><li>
umrah Visa</li><li>
hotel Accommodation</li><li>
meet & Assist At Jeddah Airport On Arrival</li><li>
transport</li><li>
without Foot</li><li>
ziyarat</li><li>
umrah Kit</li><li>
complimentary 5 Ltrs Zam-zam</li><li>
pre-departure Guidance</li><li>
all Tours and Transfers On Sic Basis.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Gst ( Goods & Services Tax  ) Rate Would Be Charged to Flat Rate @ 5%  Will Be Applicable On Given Cost or Final Invoice</li><li>
only for Dubai Bookings :-   Starting 1st January 2018, all Bookings Will Be Subject to 5% Vat  ( for U.a.e Govt  ) + 5% Gst ( for India Govt  )</li><li>
two Way  Return Flight Fare ( or Country to Country </li><li>
connecting Flights).</li><li>
Visa Fees and Formalities, Travel Insurance & Forex are </li><li>
not Included Above, Visa Will Not Process Without  Payment</li><li>
meals other Than What is Mentioned in the Itinerary</li><li>
anything Not Mentioned in the Inclusions</li><li>
any Expenses of a Personal Nature, Tips & Portage, </li><li>
camera & Video Permits</li><li>
early Check-in & Late Check-out.</li><li>
Entrance Fees</li></ul>
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p>Important Note ;-<br />
Visa will not process without  payment<br />
Your passport will have to be valid for 6 months beyond the planned date of entering the country.<br />
Given cost is net and non-commissionable<br />
Flight will be booked only after receiveing full payment against flight fare.<br />
We need 50% advance payment at the time of Reconfirming the booking and balance 50% on the time of applying visa &amp; if there is no visa then 100% payment need to pay 10 days before arrival. If booking falls 100% under  cancellation ( or non refundable ) we need 100% payment in advance to process the booking &hellip;<br />
.... OR &hellip;..<br />
40% of payments on reconfirmation of booking or application of visa whichever comes first.<br />
40% of payment at the time of applying visa or 15 days prior to arrival.<br />
20% of payment on delivery of visa or 10  days prior to arrival.<br />
 <br />
Terms &amp; Condition :<br />
 <br />
&middot;         Above Rates are subject to change and availability.<br />
&middot;         When you pay the payment that day of Rate Of Exchange will be applicable we charge 0.50 paisa above the R.O.E<br />
&middot;         Above rates are based on your given details, if there is any add on or reduction in PAX then rates may change as per Final Number of PAX.<br />
&middot;         If you can check the quotation from your side for all your requested options in inclusions , it will be very helpful for us to avoid any miscommunications Later.<br />
&middot;         Kindly please update or brief  your Guest   at least once from your side as per the services mention in the voucher , So  Guest will be aware for what services he will get during the tour so we can avoid last minute hassle or unnecessary complaints from Guest regarding the tour package.<br />
&middot;         If guest demand any add-ons of the new sightseeing  during the travel  which is not included in the package , so that tours cost  will be charge directly by our team in same country and any of  unused services will not refund during the tour because we have already paid for that to reconfirmed the service for your  guest , So kindly update us before 02 working days as per the travel date so we can rearrange the tours and provide you the voucher.<br />
&middot;         Please note Before 48 hours of the travel date there will be no change in the itinerary or program.<br />
&middot;         PLEASE NOTE : - GST ( GOODS &amp; SERVICES TAX  ) RATE WOULD BE CHARGED TO FLAT RATE @ 5%  WILL BE APPLICABLE ON GIVEN COST FOR TOURS OPERATOR SERVICES CONSISTING HOTEL ACCOMODATION AND PACKAGES, LAND PACKAGES , W.E.F. 01-JULY-17.<br />
&middot;         Tourism Dirham is excluded from above package and it will be paid by guest directly to hotel<br />
&middot;         Tourism Dirham FEES is applicable as per hotel category which is directly payable to hotel in Dubai by guest.<br />
&middot;         3 Star Hotel &ndash;AED 10 PRPN, 4Star Hotel- AED 15 PRPN, 5 Star Hotel &ndash; AED 20 PRPN, Hotel Apartment also will charge as per category and Per Room per night Basis (studio, 1B/R, 2B/R, 3B/R).<br />
&middot;         Regarding UAE Visa, we need minimum 4 &ndash; 5 Working Days to get visa, if there is any Blacklist or rejection from Respective immigration then INDUS ROUTE will not responsible and charge will be applicable.<br />
&middot;         Visa Approval is up to immigration solely.<br />
&middot;         Indus Route will apply tourist Visa in the guidance of DTCM Rules. In case of any rejection due to any reason we will not be responsible for Application charge.<br />
&middot;         If flight is booked already and visa approval is delayed by immigration then we will not be liable for flight cancellation.<br />
Note- This would be Guarantee of  Agents or Applicant&rsquo;s that the  &ldquo;subject&rdquo; shall NOT stay in the GCC Nationals or U.A.E for a period longer than the number of days allowed by Immigration authorities. In case of all kind of over stays or absconding of applicant all fines will be paid by Applicant / Sponsor of application.Applicant whosoever requesting for Visa application.<br />
 <br />
Payment Terms:-<br />
&middot;         We need 50% advance payment at the time of Reconfirming the booking and balance 50% on the time of applying visa &amp; if there is no visa then 100% payment need to pay 10 days before arrival. If booking falls 100% under  cancellation ( or non refundable ) we need 100% payment in advance to process the booking &hellip;<br />
&middot;         .... OR &hellip;..<br />
&middot;         40% of payments on reconfirmation of booking or application of visa whichever comes first.<br />
&middot;         40% of payment at the time of applying visa or 15 days prior to arrival.<br />
&middot;         20% of payment on delivery of visa or 10  days prior to arrival.<br />
&middot;         For group  bookings 75% payment should be collected in advance to confirm the booking as per the hotel policy .<br />
&middot;         If  fails to deliver the above mentioned terms that will attract auto cancellation of services and none issuance of service voucherFULL payment should reflect to our bank account At the time of voucher release , which will enable us for the smooth service to your respected guest<br />
 <br />
Cancellation Policy Applicable After Crossing The Given Time Limit  :-<br />
&middot;         Cancellation prior 40 days &ndash; No Charges<br />
&middot;         Cancellation prior 30 days &ndash; 50%  charge of the tour price<br />
&middot;         Cancellation prior 20 days &ndash; 75% charge of the tour price<br />
&middot;         Cancellation prior 12 days &ndash; 100% charge of the tour price<br />
 <br />
OUR POLICY:  FULL payment should reflect to our bank account before check in, which will enable us for the smooth service to your respected guest.     <br />
 for group  bookings 75% payment should be collected in advance to confirm the booking as per the hotel policy .<br />
 <br />
 <br />
Payment Policy Terms For this Booking :-<br />
 <br />
 For Hotel Booking/ Package  :--- We need 70% advance payment at the time of Reconfirming the booking  and balance 30% on 07 working  days prior the travel date.. if time is less ( or hotel under 100% cancellation  we need ful payment in advance to process the booking.)<br />
If  fails to deliver the above mentioned terms that will attract auto cancellation of services and none issuance of service voucher FULL payment should reflect to our bank account At the time of voucher release , which will enable us for the smooth service to your respected guest<br />
 <br />
For Non refundable  Hotel Booking : --We need 100% advance payment  to process the Non Refundable Basis bookings.<br />
In  that Case we have to make the full payment  to hotel in advance to get the confirmation Of Hotel Booking which is non adjustable .<br />
 <br />
Cancellation Policy Applicable After Crossing The Given Time Limit   for hotel booking only :-<br />
There is no time limit its 100% under Cancellation Policy -  100% cancellation charges apply  or  hotel policy apply.<br />
OUR POLICY: If  fails to deliver the above mentioned terms that will attract auto cancellation of services and none issuance of service voucher ,<br />
FULL payment should reflect to our bank account At the time of voucher release/ before check in , which will enable us for the smooth service to your respected guest<br />
 

<p>								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Price &amp; Rates</p>
						</div>				
				        <table class="mb15px bdrall bdreee w100 p5px15px formTable">
			            	<tr class="headVr b">
			                	<td class="p5px10px">No of pax</td>
			                    <td class="p5px10px">Age Limit</td>
			                    <td class="p5px10px">Price per pax (Rs)</td>
			                </tr>

															<tr>
				            	<td class="p5px10px">Adult</td>
				                <td class="p5px10px">Above 12 years</td>
				                <td class="p5px10px">
			                				                		<b class="webrupee">INR</b>
			                					                	<b>49786</b> <small>/
			
			                		Adult			
			                				
			                		
			                	</small></td>
				            	</tr>
				            					         </table>
						</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="http://www.amanatihajjumrah.in/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="http://www.amanatihajjumrah.in/packages-in-makkah.htm" title="Packages in Makkah">Makkah</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/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="http://www.amanatihajjumrah.in/packages-in-madina-saudi-arabia.htm" title="Packages in Madina">Madina</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-jeddah.htm" title="Packages in Jeddah">Jeddah</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-medina.htm" title="Packages in Medina">Medina</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-dalhousie.htm" title="Packages in Dalhousie">Dalhousie</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/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 "><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-mecca.htm" title="Packages in Mecca">Mecca</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.amanatihajjumrah.in/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="http://www.amanatihajjumrah.in/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.amanatihajjumrah.in/packages-in-kullu.htm" title="Packages in Kullu">Kullu</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="http://www.amanatihajjumrah.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.amanatihajjumrah.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Makkah</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.amanatihajjumrah.in/tour-packages/hajjo-umrah-package-deluxe.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/178720.jpeg"  alt="Hajj O Umrah Package  Deluxe" title="Hajj O Umrah Package  Deluxe"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.amanatihajjumrah.in/tour-packages/hajjo-umrah-package-deluxe.htm" title="Hajj O Umrah Package  Deluxe"><h3>Hajj O Umrah Package  Deluxe</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								13 Nights / 14 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Makkah, Jeddah, Madina</p>
															<div class="mt10px small">
							<form name="pkg_178720" id="pkg_178720" method="post" action="http://www.amanatihajjumrah.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.amanatihajjumrah.in/tour-packages/hajjo-umrah-package-deluxe.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Hajj O Umrah Package  Deluxe - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="178720"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.amanatihajjumrah.in/tour-packages/hajj-and-umrah-packages.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/178719.jpg"  alt="Hajj and Umrah Packages" title="Hajj and Umrah Packages"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.amanatihajjumrah.in/tour-packages/hajj-and-umrah-packages.htm" title="Hajj and Umrah Packages"><h3>Hajj And Umrah Packages</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Makkah, Jeddah, Medina</p>
															<div class="mt10px small">
							<form name="pkg_178719" id="pkg_178719" method="post" action="http://www.amanatihajjumrah.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.amanatihajjumrah.in/tour-packages/hajj-and-umrah-packages.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Hajj and Umrah Packages - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="178719"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.amanatihajjumrah.in/tour-packages/hajj-umrah-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/178722.jpg"  alt="Hajj & Umrah Tour" title="Hajj & Umrah Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.amanatihajjumrah.in/tour-packages/hajj-umrah-tour.htm" title="Hajj & Umrah Tour"><h3>Hajj & Umrah Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								14 Nights / 15 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Makkah, Madina</p>
															<div class="mt10px small">
							<form name="pkg_178722" id="pkg_178722" method="post" action="http://www.amanatihajjumrah.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.amanatihajjumrah.in/tour-packages/hajj-umrah-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Hajj & Umrah Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="178722"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.amanatihajjumrah.in/tour-packages/economy-umrah-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/531366/253798.jpg"  alt="Economy Umrah Package" title="Economy Umrah Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.amanatihajjumrah.in/tour-packages/economy-umrah-package.htm" title="Economy Umrah Package"><h3>Economy Umrah Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 51786</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								14 Nights / 15 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Makkah, Madinah</p>
															<div class="mt10px small">
							<form name="pkg_167426" id="pkg_167426" method="post" action="http://www.amanatihajjumrah.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.amanatihajjumrah.in/tour-packages/economy-umrah-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Economy Umrah Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="167426"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:65:"Book Amanati Hajj Umrah Tours - 14 Nights / 15 Days Tour Packages";i:2;s:112:"book amanati hajj umrah tours - 14 nights / 15 days tour packages, adventure tour packages, makkah tour packages";i:3;s:180:"Book Amanati Hajj Umrah Tours - 14 Nights / 15 Days tour packages from Amanati Hajj Umrah Tours & Travels - Get attractive 14 Nights / 15 Days Adventure  tour packages for  Makkah.";i:4;s:1725:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Makkah"        
		                 },
		      "description": "Destination	economy Umrah Package - 15 Days (07 N Makkah/07 N Madinah)	   
query Code		   
no. Of Adults	total Cost :- 49,786 /- per Person	   

important Note :-

gst ( Goods & Services Tax - 5% ) Will Applicable On Total Invoice Cost // or //  we Will Take @30 Sgd/-( for Singapore Booking ) or  30/- Usd /-( for other Country  booking )as a Remittance Charge  only Will Be Applicable On Total Invoice  Which is Non Adjustable as Mention Below.

No. Of Child	child Cost :- 42,786 /-	   
no. Of Infant		   
check in Date	nov First Week  	   
check Out Date		   
no. Of Nights	15 Days	   
meal PlanGst ( Goods & Services Tax  ) Rate Would Be Charged to Flat Rate @ 5%  Will Be Applicable On Given Cost or Final Invoice

only for Dubai Bookings :-   Starting 1st January 2018, all Bookings Will Be Subject to 5% Vat  ( for U.a.e Govt  ) + 5% Gst ( for India Govt  )

two Way  Return Flight Fare ( or Country to Country 
connecting Flights).

Visa Fees and Formalities, Travel Insurance & Forex are 
not Included Above, Visa Will Not Process Without  Payment

meals other Than What is Mentioned in the Itinerary

anything Not Mentioned in the Inclusions

any Expenses of a Personal Nature, Tips & Portage, 
camera & Video Permits

early Check-in & Late Check-out.

Entrance Fees",
		      "name": "Amanati Hajj Umrah Tours",
		      "telephone": "+91-7860031981"
		    }
		    </script>
			";i:5;N;}