a:6:{i:0;s:35570:"				<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="h1"><h1>American Sojourn Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.meiplworld.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.meiplworld.in/holiday-packages.htm" title="Packages">Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>American Sojourn Tour</p> 
										<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_17/499517/180750.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_17/499517/180750.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/499517/180750.jpg"  alt="American Sojourn Tour" title="American Sojourn 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">American Sojourn Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						9 Nights / 10 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Washington, New York, Las Vegas, Los Angeles, Corning</p>
												<p class="mb5px"><b>Attractions :</b> Statue of Liberty</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="http://www.meiplworld.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="American Sojourn 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="109276"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</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> Arrival in Los Angeles										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												As you reach the lovely iconic city of the US, Los Angeles, our tour representative meets you and helps you with an assisted transfer to the hotel. After completing the check-in formalities, you are free to explore the city on your own. Following the rule of 'live and let live', the city is a mix of relaxation, leisure and excitement at the same time. Savor sumptuous dinner.<br />
<br />
Stay overnight in Los Angeles.															
														   
											</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> Los Angeles- Las Vegas										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On the 2nd day of the tour, post breakfast, start the half-day guided sightseeing tour of Los Angeles including the prime attractions. The tour starts by driving past Beverly Hills- the hub of excitement and entertainment; the popular Sunset Boulevard street; the Mann's Chinese Theatre- a cinema palace of the famous Hollywood Walk of Fame, it is also known as TCL Chinese Theatre, Rodeo Drive- a street with 3-block setting that is known for being the center of luxury dining, shopping and luxurious accommodation experiences as well as options, and lastly, the very popular 'HOLLYWOOD' sign.<br />
<br />
Sightseeing is followed by a road journey to Las Vegas. As you reach, complete the check-in formalities. Continue with a city tour of Las Vegas attractions including the tall Stratosphere Tower with a height of 1,149 feet where you can relish rides, jumps and food at this site. The next attraction in line is Downtown Glitter Gulch- the street and the casino area where all of the city's action happens. Next is the wonderful Illumination tour and a show in Las Vegas at the Fremont Street Light Show. This night is going to be a memorable lifetime experience for you. Now, have dinner.<br />
<br />
Overnight stay in Las Vegas.			
														   
											</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 3:</b> Las Vegas										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												The 3rd day of the tour after breakfast is at leisure. Celebrated as the Gambler's Paradise, Vegas is a resort town famous for its endless entertainment, lively energy and 24-hour running casinos. You can indulge in the activities of your interest. The other option is an excursion to the Grand Canyon. This site is located at a distance of four and a half house away from Las Vegas. Covering an area of 10 miles with 277 miles of length, it is known for its striking natural formation of layered red rocks. Most of the canyon is a national park. Some of the popular activities that the visitors can indulge in here include mule rides, aerial tours, hiking, camping and rafting in River Colorado.<br />
<br />
After dinner, stay overnight in Las Vegas.			
														   
											</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 4:</b> Las Vegas- Fresno										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast at the hotel, begin your journey for Fresno- famed to be the business, financial, cultural and entertainment hub of the San Joaquin Valley. As you arrive late afternoon, check-into the hotel. The evening is free. Explore this city on your own. Have sumptuous dinner at a delightful restaurant.<br />
<br />
Overnight stay in Fresno.			
														   
											</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 5:</b> Fresno- San Francisco										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On the 5th day of the tour, post breakfast, start your road journey to San Francisco, famous for cable cars, year-long fog, a hilly landscape, vibrant Victorian houses and the iconic Golden Gate Bridge. After completing the check-in formalities, begin the sightseeing tour with a walk on Lombard Street, USA's most crooked street. Thereafter, start your drive past the Civic Centre. Stop at the Twin Peaks for a photograph opportunity. This place offers a lovely view of the legendary Bridge, looking stunning in its bright orange color. Next in line is a drive the Fisherman's Wharf, a famous destination of the city, via Ghirardelli Square with a historic waterfront. This is a public landmark, a popular square, popular amidst locals as well as tourists for delightful seafood, remarkable sights and unique shopping experiences. Indulge in shopping at the Pier 39, a lively market that has over 110 stores and wonderful attractions. In the evening, you can enjoy a cruise on the famous San Francisco bay.<br />
<br />
Dinner and overnight stay in San Francisco.			
														   
											</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 6:</b> San Francisco-Buffalo- Niagara										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast on this day, board a flight to Buffalo. As you arrive at the Buffalo airport, hit the road for an assisted transfer to Niagara Falls. Complete the check-in formalities at the hotel. Linking the borders of Canada and the US, these waterfalls are one of the world's most- visited natural wonders. The view of the falls at night is even more mesmerizing with special light-effect added to the falls.<br />
<br />
Have your dinner. 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 7:</b> Niagara- Corning										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On the 7th day of the tour, have your breakfast and continue to the legendary Niagara Falls for experiencing and witnessing the wonderful whirlpool and rapids, cruising past falls on the Maid of the Mist. The cruise is operational from the last week of May as per the weather conditions. The tourists who book the cruise before this time, they are offered The View Mobile Tram ride.<br />
<br />
Later on, get transferred to Corning- one of the chief innovators in materials science in the world. The place produces some of the most stunning ceramic and glass products. On arrival, check-in at the hotel. Proceed for a visit to the Corning Glass Museum, dedicated to history, art and science of glass. Witness the live glassmaking demonstration and learn how to make glass. The museum has more than 40,000 glass objects on display. This visit is followed by dinner.<br />
<br />
Stay overnight in Corning.			
														   
											</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 8:</b> Corning- Washington D.C.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast, day 8 of the tour is going to be super exciting especially for kids and chocolate lovers as today you embark on a Chocolate tour at the famed Hershey's Chocolate World. The tour starts with a visit to the tropical rainforest where cocoa is grown as well as harvested. During your visit to the Hershey's Chocolate factory you can also understand the process, from making up to delivering the best quality products, starting from bean to milk chocolates all around. You will hear, feel and smell chocolate.<br />
<br />
After this memorable tour, you head to the capital city of the United States, Washington D.C., a pleasure for sightseeing enthusiast as it is dotted with a number of important buildings and other architectural marvel. On reaching, complete the check-in formalities at a hotel.<br />
<br />
After dinner, stay overnight in the capital city.			
														   
											</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 9:</b> Washington D.C. - New York										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Have your breakfast in the morning, followed by a guided city tour of Washington D.C. the tour starts with a drive to the Capitol Hill for a memorable photo opportunity. Known to be the city's largest historic residential neighborhood, it is the center of entertainment and nightlife here. Later on, continue with driving through Pennsylvania Avenue, to the Lafayette Park where you can enjoy superb views of the White House. Do not forget to click some photographs here. During your road journey, have stoppages at different landmarks of Washington D.C. like the Washington Monument- an amazing viewpoint offering panoramic views of the city; the World War II Memorial – constructed in the commemoration of American soldiers and other people who lost their lives in World War II; the Lincoln Memorial- constructed in the commemoration of the 16th President of the US -Abraham Lincoln and lastly, Jefferson Memorial- a superb Classic Revival architecture, another popular presidential memorial.<br />
<br />
After sightseeing, continue drive towards the New York. After reaching, check- in. New York is fast-paced busy city, known as the world's center of fashion, art, finance and culture. A huge number of leisure and business visitors from all around the world come here every year. The evening is booked for relishing 'Big Apple' on an Illumination Tour, as you drive past superbly well-lit landmarks of the city, proving to be an unforgettable experience. After this, you some free time at hand at Times Square.<br />
<br />
Post dinner, stay overnight in New York.			
														   
											</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 10:</b> Departure										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Today is the last day of the tour. Start it with a sumptuous breakfast following it with sightseeing tour of New York. The tour starts with visit to the Statue of Liberty, at Liberty Island. A World Heritage Site, this colossal statue is a representation of human spirit. Continue with sightseeing as drive past the well-known landmarks of the New York city like the New York Exchange, the Wall Street, the popular Manhattan Bridge, World Trade Centre site, Brooklyn Bridge, through Soho right up to the Little Italy, the Fifth Avenue, the Broadway and then to the Madison Square Garden up to the Times Square, lying on the confluence of the Broadway and the 42nd Street, known as the 'Crossroads of the World'. This place is city's entertainment hub. Later, you are scheduled for memorable photo opportunities at popular points such as Trump Tower, the United Nations Headquarters and Rockefeller Centre.<br />
<br />
Get on-time transfer to the airport to board a flight for your onward destination.			
														   
											</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>Hotel</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.meiplworld.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="American Sojourn 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="109276"/>
						</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="http://www.meiplworld.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-colombo.htm" title="Packages in Colombo">Colombo</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-kandy.htm" title="Packages in Kandy">Kandy</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-rotorua.htm" title="Packages in Rotorua">Rotorua</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-cairns.htm" title="Packages in Cairns">Cairns</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-dubai.htm" title="Packages in Dubai">Dubai</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-bali.htm" title="Packages in Bali">Bali</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-hanoi.htm" title="Packages in Hanoi">Hanoi</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-auckland.htm" title="Packages in Auckland">Auckland</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-cape-town-tour.htm" title="Packages in Cape Town">Cape Town</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-tokyo.htm" title="Packages in Tokyo">Tokyo</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-london.htm" title="Packages in London">London</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-xian.htm" title="Packages in Xian">Xian</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-nara.htm" title="Packages in Nara">Nara</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-johannesburg-tours.htm" title="Packages in Johannesburg">Johannesburg</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-beijing.htm" title="Packages in Beijing">Beijing</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-hiroshima.htm" title="Packages in Hiroshima">Hiroshima</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-sydney.htm" title="Packages in Sydney">Sydney</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(3)</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.meiplworld.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/paragliding-holidays-catid.htm" title="Paragliding Packages">Paragliding</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(29)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/bird-watching-holidays-catid.htm" title="Birdwatching Packages">Birdwatching</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.meiplworld.in/adventure-sports-holidays-catid.htm" title="Adventure Sports Packages">Adventure Sports</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.meiplworld.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</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>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Washington, New York, Las Vegas, Los Angeles</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.meiplworld.in/tour-packages/new-york-nigara-falls-with-washingtondc-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/499517/180747.jpg"  alt="New York, Nigara Falls with Washington DC Tour" title="New York, Nigara Falls with Washington DC Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.meiplworld.in/tour-packages/new-york-nigara-falls-with-washingtondc-tour.htm" title="New York, Nigara Falls with Washington DC Tour"><h3>New York, Nigara Falls With Washington Dc ..</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> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Washington, New York, Niagara Falls, Phi..</p>
															<div class="mt10px small">
							<form name="pkg_109273" id="pkg_109273" method="post" action="http://www.meiplworld.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.meiplworld.in/tour-packages/new-york-nigara-falls-with-washingtondc-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="New York, Nigara Falls with Washington DC 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="109273"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.meiplworld.in/tour-packages/american-glimpse-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_17/499517/180768.jpg"  alt="American Glimpse Tour" title="American Glimpse Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.meiplworld.in/tour-packages/american-glimpse-tour.htm" title="American Glimpse Tour"><h3>American Glimpse 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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Las Vegas, Los Angeles, San Francisco</p>
															<div class="mt10px small">
							<form name="pkg_109289" id="pkg_109289" method="post" action="http://www.meiplworld.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.meiplworld.in/tour-packages/american-glimpse-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="American Glimpse 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="109289"/>
							</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:61:"Book American Sojourn Tour - 9 Nights / 10 Days Tour Packages";i:2;s:154:"book american sojourn tour - 9 nights / 10 days tour packages, heritage tour packages, washington, new york, las vegas, los angeles, corning tour packages";i:3;s:215:"Book American Sojourn Tour - 9 Nights / 10 Days tour packages from Magnificent Excursions India - Get attractive 9 Nights / 10 Days Heritage  tour packages for  Washington, New York, Las Vegas, Los Angeles, Corning.";i:4;s:446:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Washington, New York, Las Vegas, Los Angeles, Corning"        
		                 },
		      "description": "",
		      "name": "American Sojourn Tour",
		      "telephone": "+91-9773845621"
		    }
		    </script>
			";i:5;N;}