a:6:{i:0;s:5680:"				<div class="h1"><h1>Umrah Economy Packages</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.parwaztourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.parwaztourandtravels.com/vacation-packages.htm" title="Vacation Packages">Vacation Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Umrah Economy Packages</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">
						14 Nights / 15 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Medina, Mecca</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 45000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.parwaztourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Umrah Economy Packages - 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="117680"/>
						</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_17/508952/191016.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/508952/191016.jpg"  width="150" height="150"    alt="Umrah Economy Packages" title="Umrah Economy Packages" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Umrah is a great performance of  worship but is not an obligation (Faraz) but a tradition which is almost compulsory for those who have the means.<br />
<br />
The rewards and virtues of performing umrah are many, The Prophet (sallahu alaihi wassallam) mentioned is a hadith, “Between one umrah and another is an expiation of sins”.<br />
<br />
Performing Umrah in the month of Ramadan has a special significance, <br />
The Prophet (sallahu alaihi wassallam) said, “Whoever performs Umrah in Ramadan, receives the reward like one who performs Hajj with me.”<br />
<br />
Umrah can be performed at anytime of the year and usually takes about 2 hours to perform under normal circumstances. During the off season Makkah and Madinah are relatively quiet, allowing you to carry out your worship in a relaxed manner.<br />
<br />
Return Air Ticket<br />
Umrah Visa<br />
Best Accomodation in Building / Hotels Sharing 2, 3 & 4 Beds.<br />
Hotels will be 10 to 12 mins Walking Distance from sehan of Haram Shariff .<br />
Buffet System Breakfast, Lunch & Dinner.<br />
Free Laundry Service in Makkah & Madinah on every alternate days.<br />
Ziyarat Service in Madinah by our Guides.<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>
												</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.parwaztourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Umrah Economy Packages - 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="117680"/>
						</form>
						</div>
						
						";i:1;s:63:"Book Umrah Economy Packages - 14 Nights / 15 Days Tour Packages";i:2;s:130:"book umrah economy packages - 14 nights / 15 days tour packages, religious & pilgrimage tour packages, medina, mecca tour packages";i:3;s:169:"Parwaz Tours & Travels offers Umrah Economy Packages - 14 Nights / 15 Days tour package, budget Religious & Pilgrimage tour packages for Medina, Mecca at exciting price.";i:4;s:1517:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Medina, Mecca"        
		                 },
		      "description": "Umrah is a great performance of  worship but is not an obligation (Faraz) but a tradition which is almost compulsory for those who have the means.

The rewards and virtues of performing umrah are many, The Prophet (sallahu alaihi wassallam) mentioned is a hadith, “Between one umrah and another is an expiation of sins”.

Performing Umrah in the month of Ramadan has a special significance, 
The Prophet (sallahu alaihi wassallam) said, “Whoever performs Umrah in Ramadan, receives the reward like one who performs Hajj with me.”

Umrah can be performed at anytime of the year and usually takes about 2 hours to perform under normal circumstances. During the off season Makkah and Madinah are relatively quiet, allowing you to carry out your worship in a relaxed manner.

Return Air Ticket
Umrah Visa
Best Accomodation in Building / Hotels Sharing 2, 3 & 4 Beds.
Hotels will be 10 to 12 mins Walking Distance from sehan of Haram Shariff .
Buffet System Breakfast, Lunch & Dinner.
Free Laundry Service in Makkah & Madinah on every alternate days.
Ziyarat Service in Madinah by our Guides.",
		      "name": "Umrah Economy Packages",
		      "telephone": "+91-7426875919"
		    }
		    </script>
			";i:5;N;}