a:6:{i:0;s:12580:"				<div class="h1"><h1>Northern India Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.tanishhimachaltours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.tanishhimachaltours.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Northern India Package</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">Tour Code </td>
						<td class="p5px pl0px vat">01</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Amritsar, Agra, Haridwar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 13500 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">N/A</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Northern India Package - 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="109170"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Greetings From <br />
Tanish Himachal Tours.<br />
Thank You Very Much For Your Kind Interest Shown Towards Our Travel Organization & As Per Our Discussion Over Phone We Have Designed The Following Package For You.<br />
<br />
Trip Type<br />
Hills Tour <br />
Days - 7 Days<br />
Nights - 6 Nights<br />
Quotation Price  - 13000.00/- Per Person For 10 Adults And 7500.00 + 7500.00 For 2 Kids.Final Costing.Rest Of The Kids 5 Yrs Or Below 5 Yrs Will Be Complementary.<br />
Destination - Amritsar/Hridwar<br />
No. Of Adults & Children  - 10 Adults & 5 Children<br />
Hotel Details<br />
Night 1,  Hotel Saphire,Amritsar Deluxe <br />
Night 2 ,3 ,La Casa ,Haridwar ,Deluxe <br />
Night 4 ,6 Hotel Mint Casa ,Delhi,Deluxe Or Similar.<br />
Night 5 ,Taj Haweli,Agra,Deluxe.<br />
2 Rooms In Triple Occupancy.3 Rooms In Double Occupancy.<br />
<br />
Flight Details - Na<br />
Cab Details - Cab We Offered Tempo Traveller 16 Seater.<br />
<br />
Inclusions<br />
Meal Plan : Breakfast <br />
Meal Plan : Dinner <br />
Government Taxes/Vat/ Service Charges <br />
Cab For Sightseeing <br />
All Transport By Cab <br />
Hotel <br />
Others <br />
Exclusions<br />
Flight <br />
Bus Tickets <br />
Non Veg MealN/AN/A16-1010-12<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> Amritsar Pick
								</p>
								<p class="aj">As Soon As You Arrive At Amritsar Our Cab Will Pick You And Take You Towards Hotel Check In To Hotel Have Some Fresh And Rest Till Half Day.In Evening Visit Wagah Border And Golden Temple.<br />
Overnight Stay At Amritsar</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> Amritsar To Kurukshetra To Haridwar
								</p>
								<p class="aj">After Breakfast The Cab Will Move Towards Kurukshetra.<br />
Jyoti Sar<br />
Brahma Sarover<br />
Kos Minars<br />
Sheikh Chillis Tomb <br />
After Kurukshetra Sight Scene The Cab Will Move Towards Haridwar.<br />
Overnight Stay At Haridwar.</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> Haridwar To Rishikesh
								</p>
								<p class="aj">After Breakfast  We Move To Visit Rishikesh .<br />
Attractions In Rishikesh<br />
Triveni Ghat<br />
Bharat Mandir<br />
Rishikundlakshman Jhula <br />
Ram Jhula<br />
In Evening Visit Haridwar Local Places.Overnight Stay At Haridwar.</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> Haridwar To Delhi ( 6 Hrs )
								</p>
								<p class="aj">After Early Breakfast Move Towards Delhi.<br />
In Evening Reaching Delhi Have Some Local Sight Scene Of  Delhi.<br />
Qutub Minar<br />
India Gate<br />
Lal Qila<br />
Overnight Stay At Delhi.</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> Delhi To Agra
								</p>
								<p class="aj">After Breakfast We Move Towards Agra Enroute We Visit Mathura And Vrindavan.<br />
The City Of Mathura, In Uttar Pradesh, The Nucleus Of Brajabhumi, Is Located 140 Km South-East Of Delhi And 60 Km North-West Of Agra. Covering An Area Of About 3,800 Sq. Km., Brajabhumi Can Be Divided Into Two Distinct Units – The Eastern Part In The Trans-Yamuna Tract With Places Like Gokul, Mahavan, Baldeo, Mat And Bajna And The Western Side Of The Yamuna Covering The Mathura Region That Encompasses Vrindavan, Govardhan, Kusum Sarovar, Barsana And Nandgaon (Nandagram). The Land Of Braj Starts From Kotban Near Hodel About 95 Km From Delhi And Ends At Runakuta Which Is Known Specially For Its Association With The Poet Surdas, An Ardent Krishna Devotee. A Long Line Of Picturesque Ghats – With Their Steps Leading To The Water’S Edge, Arched Gateways And Temple Spires Extending Along The Right Bank Of The River Yamuna, Emphasize The Sacred Character Of The Town Of Mathura. The Birth Place Of Lord Krishna, Mathura Is Today An Important Place Of Pilgrimage.After These Moments Move Towards Agra.<br />
In Evening Visit The Beautiful Taj Mahal Of Agra.<br />
Overnight Stay At Agra.</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 6:</b> Agra  Fateh Pur Sikri And Delhi
								</p>
								<p class="aj">After Breakfast Move To Visit Fateh Pur Sikri.<br />
Attractions<br />
Buland Darwaja<br />
Diwan – I- Khas<br />
Jodhabai Place<br />
Jama Masjid<br />
Panch Mahal<br />
After Fateh Pur Sikri The Cab Will Move Back Towards Delhi.<br />
Overnight Stay At Delhi.</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 7:</b> Delhi Drop
								</p>
								<p class="aj">In Morning The Cab Wil Drop You At Delhi Airport.<br />
Tour Ends <br />
<br />
It’S Been A Great Journey. And It’S Not The End. On The Contrary, It’S The Beginning. It’S The Beginning Of A Promise To Return To The Fascinating Himalyan Valleys Where You Made Friends For Life With Its People, The Colours Of The Landscape, The Smell Of Fresh Air, The Gaze Of The Millions Of Stars And Your Always-Smiling Friends.<br />
Tour Ends</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>4 Star Hotel</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>N/A</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>ANY<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The rates are subjects to change without any prior notice. -Accommodation in the itinerary at the mentioned hotels or the similar hotels. 2. The confirmation is subjects to availability. -Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad Weather, ill health, strike, roadblocks and/or any factors beyond control. -It is a suggestion for you that please book this offer as soon as possible because we are not holding any booking and it is totally depend on the availability of rooms and flight.</li>
	<li>From the booking date till 30 days prior to the departure date, 30 % of the package cost is chargeable.</li>
	<li>From 30 days to 15 days prior to the departure date, 50 % of the package cost is chargeable.</li>
	<li>From 15 days to 7 days prior to departure date, 75 % of the package cost is chargeable.</li>
	<li>For cancellations made within 5 days prior to the departure date, 100% of the package cost is chargeable.</li>
	<li>No refund will be made for any unused accommodation, missed meals, transportation segments, sightseeing tours or any other service due to Bad weather, ill health, Strike, Road Blocks or any other factor beyond our Control. Such unused items are neither refundable nor exchangeable. - Room allocation is done by the hotel depending upon availability at the time of check-in. the category of room as specified on your confirmation voucher.</li>
	<li>No refund shall be claimed, if the services &amp; amenities of hotel were not up to your expectations, it will be considered on case to case basis.</li>
	<li>Room Heater charges will be extra charged as per hotel rates in every hotel.</li>
	<li>Meal plan will be veg in every hotel.( Non veg will be included on travellers request ).</li>
	<li>Rohtang Pass Permit and sighscene will be provided as per govt. Terms and conditions.</li>
	<li>Below 5 Years child will be complementry.More then 5 yrs Child will be charged as adults cost.</li>
	<li>All payments of package cost should be cleared before Last day check out of the tour.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Northern India Package - 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="109170"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Northern India Package - 6 Nights / 7 Days Tour Packages";i:2;s:125:"book northern india package - 6 nights / 7 days tour packages, heritage tour packages, amritsar, agra, haridwar tour packages";i:3;s:178:"Book Northern India Package - 6 Nights / 7 Days tour packages from Tanish Himachal Tours - Get attractive 6 Nights / 7 Days Heritage  tour packages for  Amritsar, Agra, Haridwar.";i:4;s:1479:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Amritsar, Agra, Haridwar"        
		                 },
		      "description": "Greetings From 
Tanish Himachal Tours.
Thank You Very Much For Your Kind Interest Shown Towards Our Travel Organization & As Per Our Discussion Over Phone We Have Designed The Following Package For You.

Trip Type
Hills Tour 
Days - 7 Days
Nights - 6 Nights
Quotation Price  - 13000.00/- Per Person For 10 Adults And 7500.00 + 7500.00 For 2 Kids.Final Costing.Rest Of The Kids 5 Yrs Or Below 5 Yrs Will Be Complementary.
Destination - Amritsar/Hridwar
No. Of Adults & Children  - 10 Adults & 5 Children
Hotel Details
Night 1,  Hotel Saphire,Amritsar Deluxe 
Night 2 ,3 ,La Casa ,Haridwar ,Deluxe 
Night 4 ,6 Hotel Mint Casa ,Delhi,Deluxe Or Similar.
Night 5 ,Taj Haweli,Agra,Deluxe.
2 Rooms In Triple Occupancy.3 Rooms In Double Occupancy.

Flight Details - Na
Cab Details - Cab We Offered Tempo Traveller 16 Seater.

Inclusions
Meal Plan : Breakfast 
Meal Plan : Dinner 
Government Taxes/Vat/ Service Charges 
Cab For Sightseeing 
All Transport By Cab 
Hotel 
Others 
Exclusions
Flight 
Bus Tickets 
Non Veg MealN/AN/A16-1010-12",
		      "name": "Northern India Package",
		      "telephone": "+91-9736035555"
		    }
		    </script>
			";i:5;N;}