a:7:{i:0;s:84536:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>The American And Canadian Vacation Calling Tour (17 Nights)</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.cheapthrillsair.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.cheapthrillsair.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> The American And Canadian Vacation Calling Tour (17 Nights)</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle" class="propDtls ttwBtmFtSpace">
				<div class="wrap thinFormat " id="bodyFormatNT">
								
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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>
				
					<div class="data mb15px mt15px p10px"> 
	 				<div class="fo dt w100"> 	 				
	 											<div class="dtc vat ttw-detail pr20px pr">
							<div class="headVr bdr0">
							<ul class="lsn gallery-slide" >
																	<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/522022/306441.jpg"><div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/522022/306441.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/522022/306441.jpg"  height="150"  width="150"    alt="The American and Canadian Vacation Calling Tour (17 Nights)" title="The American and Canadian Vacation Calling Tour (17 Nights)" ></div></a></div></div></li>
																	</ul>
														</div>
							</div>
												<div class="dtc pt7px ttwDtlsCont">
					<div class="adrsDtls">
											<div class="xxlarge fw6 mb7px lh13em">The American and Canadian Vacation Calling Tour (17 Nights)</div>
											<div class="ShareDropdown">		
					<div class="copyLinkPopup">Link Copied</div>	  
					<span class="data"><i class="fa fa-share-alt xxlarge vam"></i></span>
					<ul class="shareList data bdr0">
					<li><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm" class="facebook" title="Facebook"><i class="fa fa-facebook-official"></i></a></li> 
					<li><a target="_blank" href="https://www.instagram.com/?url=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm" class="instagram" title="Instagram"><i class="fa fa-instagram"></i></a></li>
					<li><a target="_blank" href="https://wa.me/?text=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm" class="whatsapp" title="Whatsapp"><i class="fa fa fa-whatsapp"></i></a></li>  
					<li><a target="_blank" href="https://twitter.com/intent/tweet?text=The American and Canadian Vacation Calling Tour (17 Nights)&url=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm" class="twitter" title="Twitter"><img src="https://catalog.wlimg.com/mobile/social-networking-img/1002.svg" alt="Twitter" style="width:22px;height:22px;vertical-align:middle;margin-right:6px;"></a></li> 
					<li><a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm&title=The American and Canadian Vacation Calling Tour (17 Nights)" class="linkedin" title="Linkedin"><i class="fa fa-linkedin-square"></i></a></li>
					<li><a target="_blank" href="https://pinterest.com/pin/create/button/?url=https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm&description=The American and Canadian Vacation Calling Tour (17 Nights)" class="pinterest" title="Pinterest"><i class="fa fa-pinterest-square"></i></a></li>
					<li><a href="javascript:;" title="Copy Link" class="copy" onclick="copyURL()"><i class="fa fa-clone"></i></a></li>
					</ul>
					</div>
					</div>
					<script>
					$(document).ready(function(){
					$('.ShareDropdown span').click(function(){
					 $('.ShareDropdown').toggleClass("active");
					}); 
					});
					</script>
					<script>
					  function copyURL() {
					    const url = window.location.href;
						const textarea = document.createElement("textarea");
						textarea.value = url;
						textarea.style.position = "fixed";
						document.body.appendChild(textarea);
						textarea.focus();
						textarea.select();
				
						try {
						  document.execCommand("copy");
						//  alert("URL copied (fallback)!");
						  $(".copyLinkPopup").show();		 
				          setTimeout(function(){$(".copyLinkPopup").hide();}, 2000);
					      $('.ShareDropdown').removeClass("active");
						  
						} catch (err) {
						  console.error("Fallback copy failed:", err);
						}
				
						document.body.removeChild(textarea);
					  }
					</script>
											<p class="mb5px"><b>Duration :</b> 
						17 Nights / 18 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> New York, Washington, Toronto, Los Angeles, Las Vegas, Ontario, Statue of Liberty, Times Square</p>
												<p class="mb5px"><b>Tour Activities :</b> Adventure, Affordable & Budget, Lakes & Rivers</p>
												<div class="fo mt20px mb20px ac large">
              			<p class="fw6 dif">Price on Request</span></p>
              			</div>
											<div class="ac">
					<form class="inquiry-form" name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.cheapthrillsair.com/enquiry-form-10028.htm">
					<input type="hidden" name="subject" value="The American and Canadian Vacation Calling Tour (17 Nights) - Tour Package"/>
					<input type="hidden" name="allocate_type" value="tour"/>							
					<input type="hidden" name="pkg_slno" value="193797"/>
					</form>
					<a href="javascript:;" class="submit-inquiry button p10px20px c5px ts0 xlarge dib fw6">Inquire Now for Best Deals</a>
					
										</div>
					<br />
										</div>
	   				</div>
					</div>
													<section id="s1">
								<div class="data mt20px mb20px m_p25px lh2em">      
								<div class="xxlarge mb10px">
												   					<h2 class="fw7">New York, Washington and Toronto Tour Overview</h2>
				   													</div>
								<p class="large">					
								We have carved out a 17 nights trip where you can explore the United States of America like never before. This package will allow you to explore the major cities on East and West Coast of the country and Toronto, Canada thrown in as a bonus! This tour will allow you to see the place in the best way possible. So, book this tour and let us take care of the rest…<br />
<br />
Destinations Covered<br />
New York, Philadelphia, Washington DC, Niagara Falls, Toronto, San Francisco, Los Angeles, Las Vegas								</p>
								</div>
								</section>
																<section id="s2" class="mt15px">
								<div class="data mb20px m_p25px">
		  						<div class="fw7 xxlarge">
		  										   					<h2 class="fw7">New York, Washington and Toronto Tour Itinerary</h2>
				   							  						</div>
					            <div class="tour-details-view mt22px">
					            
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 1</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px on"><a href="javascript:;" class="clickable db"><h3>Welcome to Fancy city of New York</h3>
										<span class="fr pr10px"><i class="fa fa-angle-up"></i></span></a>
										</div>
										<div class="pro-detail mb15px ">New York! New York! Welcome to the fascinating city where grandeur gets a new definition. From latest fashion, art, nightlife and the architecture- everything oozes magnificence.<br />
Arguably, the most famous city in the whole wide world- New York is going to surprise you at every step.<br />
<br />
Arrive at the New York Airport, complete all the security checks and collect you baggage. Right after the baggage claim section, our local travel expert will be waiting for you. Later, you will be transferred to the Hotel (Standard check in time is 1500 to 1600 hours).<br />
<br />
After checking in to the hotel, you will be transferred to an Indian Restaurant where you can savour some delicious Indian spread. After savouring the meal, return to the hotel and call it a night!<br />
<br />
Overnight stay at hotel in New York. (Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 2</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>New York - Explore away!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Begin your day with a scrumptious breakfast. Later you will be picked up from the hotel for the city tour of this magnanimous city- New York. You will stop at one of the most popular spots in New York called the Charging Bull or the Wall Street Bull - also famously known as Bowling Green Bull. It is a shiny bronze sculpture that stands tall in the Bowling Green Park which is the Financial Hub in Manhattan, New York City.<br />
<br />
Later, you will be taken to the pier where you will board the ferry to view the magnanimous and iconic Statue of Liberty. The French gifted the Statue of Liberty to the United States of America as a symbol of democracy and freedom. This neoclassical sculpture on the Liberty Island stands witness to the fabulousness of New York. Soak in the grandeur of the Statue of Liberty and the breath taking views around it.<br />
<br />
Later in the evening, you will be transferred to an Indian Restaurant for a delectable dinner. After having dinner, head to the hotel, marinate in the memories that you have made today and call it a day!<br />
<br />
Overnight stay at hotel in New York. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 3</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>New York- Your way is the right way!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">This is the day when you can go about the New York City on your own - however you want. Start your day right and have a scrumptious breakfast at the hotel which has been laid down for you. We will drop you off at the City Centre from where you can begin exploring New York your way.<br />
<br />
Here are a few things that may interest you on your free day in New York-<br />
Head to the Famous Times Square at any time of the day to soak in the magnanimity of this place. No matter at what time you plan to visit the Times Square - it will always be bustling with people trying to steal a selfie. Just sit around at the pedestrian areas and hang out for around half hour to forty five minutes people watching before heading to you next stop.<br />
<br />
Later visit the Brooklyn Bridge and take a stroll on it - experience a manmade marvel of a hybrid suspension bridge in this city of dreams, New York. This famous bridge connects the boroughs of the magical Manhattan and the boisterous Brooklyn by make the East River easy to cross. You could stop for a while and marvel at the stunning skyline and the harbour - this walk could take anywhere between 45 minutes to an hour. Click pictures against the spectacular backdrops for keepsake. Walk through the neighbourhoods and see the essence of a regular New Yorker’s life. You could hang around the funky neighbourhood and the Historic Cast Iron District with the elaborately decorated buildings.<br />
Walk around and live a day like a New Yorker!<br />
<br />
Later in the evening, you will be transferred to an Indian Restaurant for a delectable dinner. After having dinner, head to the hotel, marinate in the memories that you have made today and call it a day!<br />
<br />
Overnight stay at hotel in New York. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 4</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>On the Road to Philadelphia</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Pack your bags and head off to the restaurant at the hotel to have breakfast, Indulge in some tasty food that has been laid down for you before checking out of the hotel. The road trip from New York to Philadelphia takes about 2 hours. Philadelphia is the largest city in Pennsylvania with a culture and history worth exploring. There are numerous sights to see in this city. Here are a few of them for your knowledge- the Liberty Bell, Independence Hall and many other magnificent American Revolutionary sites. If you are a Sylvester Stallone fan, the steps leading you to the Philadelphia Museum of Art will transport you to the cult movie - Rocky. Oh yeah! Picture that!<br />
<br />
Later in the evening, you will be transferred to an Indian Restaurant for a delectable dinner. After having dinner, head to the hotel, check in to your room and call it a day!<br />
<br />
Overnight stay at hotel in Philadelphia. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 5</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Philadelphia to Washington DC</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Begin your day with a yummy breakfast buffet at the restaurant in your hotel. Pack your bags and get ready for the journey to Washington DC. The distance between Philadelphia and Washington DC is roughly covered in 3 hours. Upon arrival in the city, you will be taken for a city tour. This sightseeing city tour will cover iconic spots like The White House, Jefferson Memorial, Lincoln Memorial, Vietnam Veterans Memorial, the Smithsonian Air and Space Museum to name a few. After the enlightening tour of this political city, enjoy a buffet dinner at an Indian Restaurant. Later, head back to the hotel and retire to your room to catch up on sleep.<br />
<br />
Overnight stay at hotel in Washington DC. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 6</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>To the magical world of Niagara</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Start your day with a hearty spread of breakfast at the restaurant in your hotel. After the breakfast, check out from the hotel and you will be transferred to Buffalo. Sitting beautifully on the shores of Lake Erie, Buffalo is in upstate New York. The architecture, neoclassical, beaux arts and décor speak greatly of the magnanimous history right up to the 20th century where this place was considered the Industrial Capital. The journey from Washington DC to Buffalo takes roughly around 7 hours.<br />
<br />
After reaching Niagara / Buffalo, you will be transferred to an Indian restaurant for a delectable and inviting dinner. Post dinner, head back to the hotel and retire to your room after a long day of being driven around.<br />
Overnight stay at hotel in Niagara. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 7</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>From Niagara to Toronto, Canada</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Have your fill at the breakfast spread at the hotel. After the breakfast, check out from the hotel and get ready for another adventure. You will be heading for the Journey Behind the Falls today - the fascinating attraction in Niagara Falls, Ontario. Sitting beautifully at the Table Rock Centre beside the Canadian Horseshoe Falls, this place is going to steal your heart away. Imagine a larger than life spectacle with humungous amounts of crystal clear fresh water crashing down the basin. Get ready to be bowled over by this spectacle of nature.<br />
You would not forget this sight for a lifetime!<br />
<br />
After this experience, you will be transferred to Toronto. Upon your arrival in Toronto, you will witness the dynamic metropolis with wonderful and towering skyscrapers which look like miniature in front of the iconic CN Towers. Head straight to the Indian restaurant after a long day for a delectable Indian dinner that has been laid down for you. After dinner, check in to the hotel and head to your room to unwind after a long day!<br />
<br />
Overnight stay at hotel in Toronto. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 8</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Exploring Toronto, Canada</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After devouring on the yummy breakfast that has been laid out for you at the hotel, leave for Toronto City tour. During this tour, you will visit the CN Tower that defines the skyline of Toronto - standing 533.33 meters tall. This architectural and engineering biggie also serves as the most popular tourist destination in Toronto which also combines entertainment and dining experiences to make every visitor’s visit worthwhile. Observe the magnanimous structure and imagine what it must have taken to create this marvel. Remaining time in the evening is free at leisure to explore nearby places on own. Later proceed to Indian restaurant and devour on the Indian delicacies that have been laid down for you.<br />
Thereafter, call it a night and catch up on sleep.<br />
<br />
Overnight stay at hotel in Toronto. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 9</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Explore Toronto your way!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Take your fill at the breakfast buffet at the hotel to keep you energized through the day. Post breakfast, head out to explore the city the way you like. You could possibly just walk around the neighbourhoods to observe the regular people there and see a typical day in the life of a local. You could indulge in great food and shopping which will leave you wanting some more of Toronto. We ensure that you are dropped off at the City Centre to get around easily and also picked up from the same point in the evening. Spend the day seeing the city and soaking in the best of it before you are picked up for the transfer to the hotel. Later in the evening, proceed to an Indian restaurant for dinner. Thereafter, head to the hotel and call it a night.<br />
Overnight stay at hotel in Toronto. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 10</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Off to San Francisco</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Commence your day with a scrumptious breakfast at the hotel and get ready to head to the fascinating San Francisco. You will be dropped off at the airport to catch the flight from Toronto to San Francisco. San Francisco sits gorgeously in the norther California region. It is a beautiful hilly city right at the tip of a peninsula which is stunningly surrounded by the Pacific Ocean and the San Francisco Bay. It is well known for the yearlong fog that sits over the city and the iconic and Golden Gate Bridge which has been shot in several movies. This is what sets San Francisco apart and also the cable cars and the wonderful coloured Victorian Houses. At every step, you will see the views that will stay with you for a very long time.<br />
<br />
Once you arrive in San Francisco, you will be taken to the hotel. Upon reaching the hotel, check in to your room. Later, head to the Local Indian Restaurant where we have arranged an Indian dinner spread for you. After the dinner, come back to your hotel and catch up on your beauty sleep.<br />
Overnight stay at hotel in San Francisco. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 11</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Getting around San Francisco</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After having your fill at the breakfast buffet that has been laid down for you, you will be transferred to the Fisherman’s Wharf. Here you will board the Bay Cruise on which you will<br />
witness the most stunning views of some of the most iconic landmarks like the picturesque Alcatraz Island in the San Francisco Bay and the grandeur of the Golden Gate Bridge. The cruise with its elaborate and insightful narration of the city’s glorious history in multiple languages will create imagery for you and help you relate to everything around. Later on you can steal an hour for lunch (Please note- it is not a part of the package). Once you have had lunch and regained your energy, get ready for a city tour of San Francisco.<br />
<br />
During this tour you will see some of the most amazing sights such as the Lombard Street - famous for its several hairpin turns and for being very steep - this street is an experience in itself. Later, you will see the overwhelmingly stunning view of the grand Pacific Ocean and then you would be driven through Chinatown and the Golden Gate Bridge.<br />
<br />
After exploring all this, we understand that you want to have some quiet time. You will then head to an Indian restaurant for a delicious Indian meal and later proceed to your room and call it a night!<br />
<br />
Overnight stay at hotel in San Francisco. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 12</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Los Angeles Calling!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Commence your day with a hearty breakfast at the hotel restaurant which will energize you for the journey to come. You will be driven to Los Angeles post breakfast. The journey from San Francisco to Los Angeles is a pretty one - behold the sights close to your heart! The journey takes approximately 7 to 8 hours. Los Angeles is one of the largest cities in the Unites States of America and is also known as the Entertainment hub / city of the world.<br />
<br />
Upon your arrival in Los Angeles, you will be transferred to and Indian Restaurant for a delicious Indian meal spread that we have arranged for your welcome. Post dinner, you will be driven to the hotel you will be staying in. Check in to the hotel and sleep away to rejuvenate.<br />
<br />
Overnight stay at hotel in Los Angeles. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 13</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Entertaining Universal Studios tour</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After a hearty breakfast at the restaurant of the hotel that you are staying at, head out for a day at the sprawling amusement park of the Universal Studios which boasts of the best rides in the world, shows and cinema themed everything! The restaurants and shops here are as interesting as any part of this magical place!<br />
Perched in the Universal City community of the San Fernando Valley Region of Los Angeles- California, the Universal Studios Hollywood is one of the world’s most famous and the oldest Hollywood film studio that is still in use. It is rightly called the entertainment city of Los Angeles! Initially, it was created to offer tours of the real Universal Studio sets for the tourists to get a feel of how and where the movies were made. Later in the years, many Universal Studios came up across the world but this one remains the first one ever and fully fledged Universal Studio of the world. You will find the mascot of the Universal Studios Hollywood, Woody Woodpecker, greeting everyone as you enter this fascinating world of movies! Soak in the grandeur and the enormity of the Studios and click pictures with your most favourite characters. After this fun day trip, head to the Indian Restaurant to enjoy a spread of Indian delicacies. Later, head to the hotel and sleep tight!<br />
<br />
Overnight stay at hotel in Los Angeles. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 14</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Exploring LA & heading to Las Vegas</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Start your day with a scrumptious breakfast which will be made available to you at the hotel. Post breakfast, you will check out from the hotel and go out for a Sightseeing City tour of Los Angeles. Delve into the grandeur of the splendid city of Los Angeles by enjoying the drive through the bustling streets and observing the locals getting on with their daily lives. You will now witness the most famous Avenue of Stars, the well-known Kodak Theatre and the envious neighbourhood of the rich - The Beverly Hills. Later, head to the most spectacular part of the city which is the Los Angeles Downtown. You can get a picture with the iconic sign that reads - Hollywood.<br />
<br />
After exploring Los Angeles, you will then be transferred to the Sin City in the world aka Las Vegas!!! So, lo and behold, the resort town that Vegas is in the Nevada’s Mojave Desert is a hub of everything fun and oozes some great vibe and energy. OK, picture this - the casinos that run 24x7 and round the clock options of super cool entertainment - that is precisely what Vegas offers to the ones visiting. The main and the most cherished part of the city - the Strip is over 4 miles long and is lined with hotels that exude opulence. The pyramid shaped super luxury hotel called Luxor and Venetian - based on Venice and a Grand Canal to give it a real touch are extraordinary examples of theme based hotels in Vegas. A little ahead, stands tall the grand Bellagio with the iconic dancing fountains and glitz that it will bowl you over.<br />
<br />
Welcome to the city of casinos and everything fun, Las Vegas. Proceed to an Indian restaurant and then head straight to the hotel. Check in to the hotel and call it a night - you will have an early morning the next day.<br />
<br />
Overnight stay at hotel in Las Vegas. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 15</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Soak the grandeur of- Grand Canyon</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Today we begin early. Our Local Travel Expert will pick you from the hotel’s Lobby at around 7:30 AM. Begin the journey for the Grand Canyon tour. On this trip, you will be served a packed breakfast on the go to save time. The first stop on your day trip will be the magnanimous Hoover Dam. Soak in the grandeur of this place and get a picture taken here with the stunning backdrop - this will be a short stop. Move to the magnanimous Grand Canyon which is a mindboggling layered red rock natural formation. It is spread across a whopping 277 miles in length, 10 miles in breadth and a scary mile deep. Most of the Grand Canyon area is dedicated to a National Park which keeps the local flora and fauna intact.<br />
The great Grand Canyon is the place where you will be amazed at the enormity of this<br />
nature’s wonder, the picturesque sights and the magnanimity of it would quite literally take your breath away!<br />
<br />
The Grand Canyon is famous amongst hikers and campers from all over the world. It is also famous for the mule rides, picturesque aerial tours and white water rafting in the Colorado River. Soak in the grandeur of this magnificent piece of art gifted to us by our Mother Nature and head back to Las Vegas (Please do note that a complimentary packed lunch will be served during this trip). Upon reaching Vegas, head to the Indian Restaurant for a hearty meal and return to your room to catch up on the much required sleep!<br />
<br />
Overnight stay at hotel in Las Vegas. (Breakfast + Lunch + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 16</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Vegas- Your day to explore!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Begin your day with a full stomach- head to the restaurant at the hotel and have your fill at the breakfast buffet. Put on those walking shoes and stroll the entire length of the famous Vegas Strip. It is pedestrian friendly with walking path all along and foot bridges at the important intersections. This is your day to explore this city of opulence on your own. With a trillion options, you might just get overwhelmed. Here are a few options that you might want to explore on this day-<br />
On the Strip are perched the famous hotels, casinos, shops, cafes and restaurants along with other attractions. Walk around and maybe just try your luck at one of the casinos - well, you are in Vegas - you better try gambling once!<br />
<br />
If not this, you could also go for the famous KA By Cirque du Soleil. It is a show that depicts the epic journey of two twins who have set out to fulfil the destiny that they share. The storytelling of this show is fascinating and the production is on a lavish scale with acrobats, martial artists, daring pyrotechnics and heart thumping aerial adventures. Once you are done with the show, head straight to the Indian Restaurant for dinner and then to your room to unwind! If neither of these options rock your boat enough, get on the Open Top Big Bus for a fun day. Please note that if you opt for this option, it will incur an additional cost. The Big<br />
Bus is the best way to explore all the major attractions and landmarks in the city. The Experienced Guides will make the ride even more interesting with the story of Las Vegas and some fun facts that you would be thrilled to know of. This will let you experience the essence of Vegas like nothing else. These Day tours ensure that you see Vegas in the best way possible. Hop on the bus and hop off at the full length of the strip, the famous central area of Downtown. If you opt for a Night tour, it makes sure that you get to see the real grandeur and opulence of Vegas. The Vegas Strip which comes to life at night is a sight to behold with the lights beaming and travelers having a jolly good time! The shimmering neon sign boards, stunning and very well curated displays and the eye popping visual effects will ensure that you slip into the grandness of Las Vegas! After the fun day in this Sin City, proceed to the Indian Restaurant for dinner and then head to your room and call it a night!<br />
<br />
Overnight stay at hotel in Las Vegas. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 17</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Adieu Vegas - Hello Los Angeles</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Begin your day with a stroll breakfast place where we have arranged for a hearty meal for you near your hotel in Vegas. Post breakfast, check out from the hotel and get on the vehicle to driven back to Los Angeles.<br />
<br />
Reach in Los Angeles and you will be taken straight to the breath-taking Santa Monica Beach. The Santa Monica Beach is popular not just amongst the locals but also with travellers from world over. The panoramic views of the mountains and the beach are few of the sights that will leave your heart wanting more. A heaven for the surfers and beach bums, the miles of waterfront is a great place for enthusiastic bikers. The star studded neighbourhood, several parks, restaurants, amusement rides and video arcades - Santa Monica Beach is everyone’s favourite go-to place! You could take a ride on the famous Ferris wheel at the pier or just take a spin on a 1920’s Carousel. If any of this does not fancy you enough, just perch yourself on the beach, watch the life go by and enjoy the breath- taking views of the sunset.<br />
<br />
Later in the evening, proceed for dinner at an Indian Restaurant and head to you hotel to catch up on sleep.<br />
<br />
Overnight stay at hotel in Los Angeles. (Breakfast + Dinner)
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 18</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>End of the trip- Heading home!</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">Pack your bags - it is time to go home! Have your last breakfast at the hotel in Los Angeles. Once you have checked out from the hotel, you will be transferred to the Los Angeles International Airport. We do hope that we were able to serve you well and that you made memories that will bring you back to us for your next trip to another exotic country. We value our association and request you to please share your feedback with us. (Breakfast)
										</div> 
										</div>  
			 							</div>								</div>
								</div>
								<script>
								jQuery('.fancybox').fancybox();
								  jQuery(document).ready(function() {
								  jQuery('[data-fancybox]').fancybox({
								  thumbs : {
								  autoStart : true,
								  axis      : 'x'
								  }
								  });
								});
								</script>
								<script>
								jQuery(document).ready(function() {
								//jQuery('.pro-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);
									  if($this.hasClass('on')){
										$this.removeClass('on');
										$this.next().slideUp();          	
									  } else {
										jQuery(".sub-title").removeClass('on');
										jQuery('.pro-detail').slideUp();
										$this.addClass('on');
										$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>
								</section>
															<div class="xxlarge mt10px mb10px dib">
										   					<h2 class="fw7">More Details about New York, Washington and Toronto Tour</h2>
			   												</div>
															<section id="s3">
								<div class="data mb20px m_p25px large">
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																				<li>Cost of your Round trip Economy class Airfare valid for the duration of the Tour</li><li>
Airport taxes as per the routing of the Tour</li><li>
3 Nights accommodation in New York</li><li>
(Holiday Inn Somerset / Radisson Hotel Piscataway </li><li>
/ Similar*)</li><li>
New York City tour + visit to Statue of Liberty</li><li>
1 Night accommodation in Philadelphia</li><li>
(Best Western Fort Washington Inn / Holiday Inn </li><li>
Express & Suites Fort Washington / Similar*)</li><li>
Philadelphia City tour</li><li>
1 Night accommodation in Washington DC</li><li>
(Aloft Dulles Airport North / Tysons Corner </li><li>
Marriott / Similar*)</li><li>
City tour of Washington DC + visit to Smithsonian </li><li>
air & space museum</li><li>
1 Night accommodation in Niagara Falls</li><li>
(Radisson Hotel Niagara Falls-Grand Island / </li><li>
Similar*)</li><li>
Journey Behind the Falls</li><li>
3 Nights accommodation in Toronto</li><li>
(Four Points by Sheraton- Mississauga / Holiday </li><li>
Inn Express- Downtown / Courtyard by Marriott- </li><li>
Downtown / Similar*)</li><li>
City tour of Toronto + visit to CN Tower</li><li>
2 Nights accommodation in San Francisco</li><li>
(Crowne Plaza Silicon Valley N - Union City / San </li><li>
Mateo Marriott San Francisco Airport / Similar*)</li><li>
San Francisco City tour with Bay Cruise</li><li>
3 Nights accommodation in Los Angeles</li><li>
(Holiday Inn West Covina / Holiday Inn Diamond </li><li>
Bar / DoubleTree by Hilton Hotel Los Angeles - </li><li>
Norwalk / Similar*)</li><li>
City tour of Los Angeles</li><li>
Universal studios Hollywood</li><li>
3 Nights accommodation in Las Vegas</li><li>
(Excalibur Hotel and Casino / Planet Hollywood Las </li><li>
Vegas / Similar*)</li><li>
Grand Canyon West Rim With Skywalk</li><li>
Cost of the Visa</li><li>
Services of Tour Manager or Local Representatives</li><li>
Meals (Breakfast & Dinner), Coach Tours, </li><li>
Transfers, Entrance fees, Sightseeing and Surface </li><li>
Transportation as mentioned in the Itinerary</li><li>
All Tours & Transfers on Seat In Coach (shared) </li><li>
Basis</li><li>
All Hotel & Airlines taxes</li><li>
Tip</li>
																	</ul>
								</div>
								</section> 
																<section id="s4">
								<div class="data mb20px m_p25px large">
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Any increase in the Air fare, Fuel surcharge and Taxes charged by the Airlines on your Air Ticket</li><li>
Any increase in the Rate of Exchange leading to an increase in all Land Arrangement which may come into effect prior to Departure</li><li>
Cost of extension of the Validity or Deviation from route of your Air Ticket</li><li>
Cost of Overseas Travel Insurance policy</li><li>
Cost of the Additional Suggested Excursions</li><li>
Porterage, Laundry, Wines, Mineral water, Telephone charges, All items of personal nature and also Food & Drinks not forming part of the Group Menus</li><li>
Any Service not mentioned in Inclusions</li><li>
Surcharge (if Any)</li></ul>
								</div>
								</section>
																<section id="s5">
								<div class="data mb20px m_p25px large">          
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
								</section>
														<section id="s6">
						<div class="data mb20px m_p25px large">             
						<div class="mb7px"> 
						<p class="fw7 xxlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
						</section>
												<section id="s7">
						<div class="data mb20px m_p25px large">            
						<div class="mb7px"> 
						<p class="fw7 xxlarge mb10px dib">Packages by Theme</p>
						</div>
													<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/hill-station-holidays-catid.htm" title="Hill Stations & Valleys Tour Packages">Hill Stations & Valleys Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Tour Packages">Lakes & Rivers Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Tour Packages">Religious & Pilgrimage Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/adventure-holidays-catid.htm" title="Adventure Tour Packages">Adventure Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/affordable-budget-holidays-catid.htm" title="Affordable & Budget Tour Packages">Affordable & Budget Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/beach-islands-holidays-catid.htm" title="Beaches and Islands Tour Packages">Beaches and Islands Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/river-cruising-holidays-catid.htm" title="River Cruising Tour Packages">River Cruising Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/cruise-holidays-catid.htm" title="Ship & Cruise Tour Packages">Ship & Cruise Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/desert-holidays-catid.htm" title="Desert Safari Tour Packages">Desert Safari Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.cheapthrillsair.com/heritage-holidays-catid.htm" title="Heritage Tour Packages">Heritage Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px spanlist dn"><a  href="https://www.cheapthrillsair.com/honeymoon-holidays-catid.htm" title="Honeymoon Tour Packages">Honeymoon Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px spanlist dn"><a  href="https://www.cheapthrillsair.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Tour Packages">Forts and Palaces Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px spanlist dn"><a  href="https://www.cheapthrillsair.com/house-boat-holidays-catid.htm" title="House Boat Tour Packages">House Boat Tours</a></span>
														<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:;" >View More</a></span>
													</div>
						</section>
												
						<div class="ac mb10px">
						<form class="inquiry-form" name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.cheapthrillsair.com/enquiry-form-10028.htm">
						<input type="hidden" name="subject" value="The American and Canadian Vacation Calling Tour (17 Nights) - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>							
						<input type="hidden" name="pkg_slno" value="193797"/>
						</form>
						<a href="javascript:;" class="submit-inquiry button p10px20px w150px fw6 large dib ttu ts0">Book Your Tour</a>
						</div>
											<div id="myModal" class="modal fade dn pf" role="dialog" style="z-index:9999;left:0;top:0%;width:100%;height:100%;background-color:rgba(0,0,0,0.6);overflow-x: hidden; overflow-y: auto;">
					    <!-- Modal content-->
					    <div style="max-width:380px;margin-top: 50px;min-height:400px;" class="modal-content data m0a p10px pr">
					      <div class="modal-header">
					        <a style="right:25px;top:25px;" class="pa b xxxlarge" data-dismiss="modal"><span class="xlarge">&times;</span></a>	        
					      </div>
					      <div class="modal-body">
					        <p>Loading...</p>
					      </div>
					      <div class="modal-footer">
					        
					      </div>
					    </div>
					</div>
					<script type="text/javascript">
						jQuery(document).ready(function(){
							jQuery(document).on("click", ".submit-inquiry" , function(e){e.stopPropagation()
								var form = jQuery(this).parent().find(".inquiry-form");
								if(form.length){
									jQuery.ajax({
										url: form.attr("action"),
										type: form.attr("method"),
										data:form.serialize(),
										crossDomain:true,
										success:function(res){
											jQuery("#myModal .modal-body").html(res);
										}
									});
								}
							});
							jQuery(document).on("click", "[data-dismiss=modal]", function(){
								jQuery("#myModal .modal-body").html("<p>Loading...</p>");
								jQuery("#myModal").hide();
							});
							jQuery(document).on("submit", "form[name=static_form]", function(e){				
								e.preventDefault();
								var isValidForm =static_inq_form_validate(jQuery(this).attr("form-id"));
								if(isValidForm == undefined){
									var form = jQuery(this);
									if(form.length){
										jQuery.ajax({
											url: form.attr("action"),
											type: form.attr("method"),
											data:form.serialize(),
											crossDomain:true,
											beforeSend:function(){
												jQuery("#myModal .modal-footer").html("");
											},
											success:function(res){
												jQuery("#myModal .modal-body").html(res);
												setTimeout(function(){
													jQuery("#myModal", document).hide();
													jQuery("#myModal .modal-body").html("<p>Loading...</p>");
													},2000)
											}
										});
									}
								}
							});
							var modal = jQuery("#myModal", document);
				
							jQuery(document).on("click", ".submit-inquiry" , function(){
							    modal.show();
							});
				
							window.onclick = function(event) {
							    if (jQuery(event.target) == modal) {
							        modal.css("display","none");
							    }
							}
						});
					</script>
									</div>
									<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
					<div class="column_Box mc rghtFix">
					<div class="tcl bullet data divider enqForm stickyForm">
					<div class="h h2 ac xxlarge theme2 p10px" style="color:#fff;"><b class="plusMinus"></b>
					Fill Enquiry Form Below
					</div>
					<div class="showHide_rp mt7px p10px">
					<form name="package_form" method="post" action="//catalog.tourtravelworld.com/catalog-enquiry.php" onsubmit="return static_inq_form_validate(10029);">
					<div class="fo">
					<div class="mb15px">
					<input type="text" name="dynFrm_contact_person" id="dynFrm_contact_person_10029" placeholder="Your Full Name" />
					<span class="red small"></span>
					</div>
					<div class="fl w100 mb15px">
					<textarea name="dynFrm_details_2" id="dynFrm_details_2_10029">I am interested in The American and Canadian Vacation Calling Tour (17 Nights). Please get in contact with me.</textarea>
					<span class="fl red small"></span>
					</div>
					<div class="fl w100 mb15px df-dt">
					<div class="df-dtc w50 pr5px dateOpt pr"><input type="text" name="dynFrm_arrival_date" id="dynFrm_arrival_date_10029" class="dynFrm_arrival_date" style="padding-left:30px;" placeholder=" Departure Date" /><span class="fl red small"></span></div>
					<div class="df-dtc pl5px"><input type="text" name="dynFrm_duration" id="dynFrm_duration_10029" placeholder="Number of Days" /><span class="fl red small"></span></div>
					</div>  
					<div class="mb15px">
					<input type="text" name="dynFrm_email_id" id="dynFrm_email_id_10029" placeholder="Email" />
					<span class="red small"></span>
					</div> 
					<div class="mb20px fl w100">
					<div class="w60px pr fl ofh">
					<div id="isdpackCode" class="isdCode pr0px">+91</div>
					<select class="contSelect" name="dynFrm_country" id="dynFrm_country" onChange="document.getElementById('phone_package_isd').value=this.value.substr(3, 4); document.getElementById('isdpackCode').innerHTML=this.value.substr(3, 4);">
					
											
						<option value="AF^+93" >Afghanistan +93</option>
					
												
						<option value="CF^+236" >African Republic +236</option>
					
												
						<option value="AL^+355" >Albania +355</option>
					
												
						<option value="DZ^+213" >Algeria +213</option>
					
												
						<option value="AS^+0" >American Samoa +0</option>
					
												
						<option value="AD^+376" >Andorra +376</option>
					
												
						<option value="AO^+244" >Angola +244</option>
					
												
						<option value="AI^+264" >Anguilla +264</option>
					
												
						<option value="AG^+268" >Antigua and Barbuda +268</option>
					
												
						<option value="AR^+54" >Argentina +54</option>
					
												
						<option value="AM^+374" >Armenia +374</option>
					
												
						<option value="AW^+297" >Aruba +297</option>
					
												
						<option value="AU^+61" >Australia +61</option>
					
												
						<option value="AT^+43" >Austria +43</option>
					
												
						<option value="AZ^+994" >Azerbaijan +994</option>
					
												
						<option value="BS^+242" >Bahamas +242</option>
					
												
						<option value="BH^+973" >Bahrain +973</option>
					
												
						<option value="BD^+880" >Bangladesh +880</option>
					
												
						<option value="BB^+246" >Barbados +246</option>
					
												
						<option value="BY^+375" >Belarus +375</option>
					
												
						<option value="BE^+32" >Belgium +32</option>
					
												
						<option value="BZ^+501" >Belize +501</option>
					
												
						<option value="BJ^+229" >Benin +229</option>
					
												
						<option value="BM^+441" >Bermuda +441</option>
					
												
						<option value="BT^+975" >Bhutan +975</option>
					
												
						<option value="BO^+591" >Bolivia +591</option>
					
												
						<option value="BA^+387" >Bosnia and Herzegovina +387</option>
					
												
						<option value="BW^+267" >Botswana +267</option>
					
												
						<option value="BV^+47" >Bouvet +47</option>
					
												
						<option value="BR^+55" >Brazil +55</option>
					
												
						<option value="BN^+673" >Brunei +673</option>
					
												
						<option value="BG^+359" >Bulgaria +359</option>
					
												
						<option value="BF^+226" >Burkina +226</option>
					
												
						<option value="BF^+0" >Burkina Faso +0</option>
					
												
						<option value="BI^+257" >Burundi +257</option>
					
												
						<option value="KH^+855" >Cambodia +855</option>
					
												
						<option value="CM^+237" >Cameroon +237</option>
					
												
						<option value="CA^+1" >Canada +1</option>
					
												
						<option value="CV^+238" >Cape Verde +238</option>
					
												
						<option value="KY^+345" >Cayman Islands +345</option>
					
												
						<option value="236^+236" >Central African Republic +236</option>
					
												
						<option value="TD^+235" >Chad +235</option>
					
												
						<option value="IO^+246" >Chagos +246</option>
					
												
						<option value="CL^+56" >Chile +56</option>
					
												
						<option value="CN^+86" >China +86</option>
					
												
						<option value="CX^+61" >Christmas Island +61</option>
					
												
						<option value="CC^+61" >Cocos +61</option>
					
												
						<option value="CO^+57" >Colombia +57</option>
					
												
						<option value="KM^+269" >Comoros +269</option>
					
												
						<option value="CG^+242" >Congo +242</option>
					
												
						<option value="CK^+682" >Cook Islands +682</option>
					
												
						<option value="RCI^+506" >Costa Rica +506</option>
					
												
						<option value="HR^+385" >Croatia +385</option>
					
												
						<option value="CY^+357" >Cyprus +357</option>
					
												
						<option value="CZ^+420" >Czech Republic +420</option>
					
												
						<option value="DK^+45" >Denmark +45</option>
					
												
						<option value="DJ^+253" >Djibouti +253</option>
					
												
						<option value="DM^+767" >Dominica +767</option>
					
												
						<option value="DO^+809" >Dominican Republic +809</option>
					
												
						<option value="TP^+670" >East Timor +670</option>
					
												
						<option value="EC^+593" >Ecuador +593</option>
					
												
						<option value="EG^+20" >Egypt +20</option>
					
												
						<option value="SV^+503" >El Salvador +503</option>
					
												
						<option value="GQ^+0" >Equatorial Guinea +0</option>
					
												
						<option value="ER^+291" >Eritrea +291</option>
					
												
						<option value="EE^+372" >Estonia +372</option>
					
												
						<option value="ET^+251" >Ethiopia +251</option>
					
												
						<option value="FO^+298" >Faroe +298</option>
					
												
						<option value="FM^+691" >Federated States of Micronesia +691</option>
					
												
						<option value="FJ^+679" >Fiji +679</option>
					
												
						<option value="FI^+358" >Finland +358</option>
					
												
						<option value="FR^+33" >France +33</option>
					
												
						<option value="FX^+590" >France, Metropolitan +590</option>
					
												
						<option value="GF^+594" >French Guiana +594</option>
					
												
						<option value="FP^+689" >French Polynesia +689</option>
					
												
						<option value="TF^+590" >French Southern Territories +590</option>
					
												
						<option value="GA^+241" >Gabon +241</option>
					
												
						<option value="GM^+220" >Gambia +220</option>
					
												
						<option value="GE^+995" >Georgia +995</option>
					
												
						<option value="DE^+49" >Germany +49</option>
					
												
						<option value="GH^+233" >Ghana +233</option>
					
												
						<option value="GI^+350" >Gibraltar +350</option>
					
												
						<option value="GR^+30" >Greece +30</option>
					
												
						<option value="GL^+299" >Greenland +299</option>
					
												
						<option value="GD^+809" >Grenada +809</option>
					
												
						<option value="Gre^+473" >Grenada +473</option>
					
												
						<option value="GP^+590" >Guadeloupe +590</option>
					
												
						<option value="GU^+1" >Guam +1</option>
					
												
						<option value="GT^+502" >Guatemala +502</option>
					
												
						<option value="GN^+224" >Guinea +224</option>
					
												
						<option value="GW^+245" >Guinea-bissau +245</option>
					
												
						<option value="GY^+592" >Guyana +592</option>
					
												
						<option value="HT^+509" >Haiti +509</option>
					
												
						<option value="HM^+61" >Heard and Mc Donald Islands +61</option>
					
												
						<option value="HN^+504" >Honduras +504</option>
					
												
						<option value="HU^+36" >Hungary +36</option>
					
												
						<option value="IS^+354" >Iceland +354</option>
					
												
						<option value="IN^+91"  selected="selected" >India +91</option>
					
												
						<option value="ID^+62" >Indonesia +62</option>
					
												
						<option value="IQ^+964" >Iraq +964</option>
					
												
						<option value="IE^+353" >Ireland +353</option>
					
												
						<option value="Isi^Isiolo" >Isiolo Isiolo</option>
					
												
						<option value="IL^+972" >Israel +972</option>
					
												
						<option value="IT^+39" >Italy +39</option>
					
												
						<option value="CI^+225" >Ivory Coast +225</option>
					
												
						<option value="JM^+876" >Jamaica +876</option>
					
												
						<option value="JP^+81" >Japan +81</option>
					
												
						<option value="JO^+962" >Jordan +962</option>
					
												
						<option value="KZ^+7" >Kazakhstan +7</option>
					
												
						<option value="KE^+254" >Kenya +254</option>
					
												
						<option value="KI^+686" >Kiribati +686</option>
					
												
						<option value="KW^+965" >Kuwait +965</option>
					
												
						<option value="KG^+996" >Kyrgyzstan +996</option>
					
												
						<option value="LA^+856" >Lao People's Democratic Republic +856</option>
					
												
						<option value="LA^+856" >Laos +856</option>
					
												
						<option value="LV^+371" >Latvia +371</option>
					
												
						<option value="LB^+961" >Lebanon +961</option>
					
												
						<option value="LS^+266" >Lesotho +266</option>
					
												
						<option value="LR^+231" >Liberia +231</option>
					
												
						<option value="LY^+218" >Libya +218</option>
					
												
						<option value="LI^+423" >Liechtenstein +423</option>
					
												
						<option value="LT^+370" >Lithuania +370</option>
					
												
						<option value="LU^+352" >Luxembourg +352</option>
					
												
						<option value="MO^+853" >Macau +853</option>
					
												
						<option value="MK^+389" >Macedonia +389</option>
					
												
						<option value="MG^+261" >Madagascar +261</option>
					
												
						<option value="MW^+265" >Malawi +265</option>
					
												
						<option value="MY^+60" >Malaysia +60</option>
					
												
						<option value="MV^+960" >Maldives +960</option>
					
												
						<option value="ML^+223" >Mali +223</option>
					
												
						<option value="MT^+356" >Malta +356</option>
					
												
						<option value="FK^+500" >Malvinas +500</option>
					
												
						<option value="MH^+692" >Marshall Islands +692</option>
					
												
						<option value="MQ^+596" >Martinique +596</option>
					
												
						<option value="MR^+222" >Mauritania +222</option>
					
												
						<option value="MU^+230" >Mauritius +230</option>
					
												
						<option value="YT^+269" >Mayotte +269</option>
					
												
						<option value="MX^+52" >Mexico +52</option>
					
												
						<option value="MD^+0" >Moldova +0</option>
					
												
						<option value="MD^+373" >Moldova (Republic of Moldova) +373</option>
					
												
						<option value="MC^+377" >Monaco +377</option>
					
												
						<option value="MN^+976" >Mongolia +976</option>
					
												
						<option value="ME^+381" >Montenegro +381</option>
					
												
						<option value="MS^+664" >Montserrat +664</option>
					
												
						<option value="MA^+212" >Morocco +212</option>
					
												
						<option value="MZ^+258" >Mozambique +258</option>
					
												
						<option value="MM^+95" >Myanmar +95</option>
					
												
						<option value="NA^+264" >Namibia +264</option>
					
												
						<option value="NR^+674" >Nauru +674</option>
					
												
						<option value="NP^+977" >Nepal +977</option>
					
												
						<option value="NL^+31" >Netherlands +31</option>
					
												
						<option value="AN^+599" >Netherlands Antilles +599</option>
					
												
						<option value="NC^+687" >New Caledonia +687</option>
					
												
						<option value="PG^+675" >New Guinea +675</option>
					
												
						<option value="NZ^+64" >New Zealand +64</option>
					
												
						<option value="NI^+505" >Nicaragua +505</option>
					
												
						<option value="NE^+227" >Niger +227</option>
					
												
						<option value="NG^+234" >Nigeria +234</option>
					
												
						<option value="NU^+683" >Niue +683</option>
					
												
						<option value="NF^+672" >Norfolk Island +672</option>
					
												
						<option value="MP^+670" >Northern Mariana Islands +670</option>
					
												
						<option value="NO^+47" >Norway +47</option>
					
												
						<option value="OM^+968" >Oman +968</option>
					
												
						<option value="PK^+92" >Pakistan +92</option>
					
												
						<option value="PW^+680" >Palau +680</option>
					
												
						<option value="PA^+507" >Panama +507</option>
					
												
						<option value="PG^+0" >Papua New Guinea +0</option>
					
												
						<option value="PY^+595" >Paraguay +595</option>
					
												
						<option value="PE^+51" >Peru +51</option>
					
												
						<option value="PH^+63" >Philippines +63</option>
					
												
						<option value="PN^+872" >Pitcairn +872</option>
					
												
						<option value="PL^+48" >Poland +48</option>
					
												
						<option value="PF^+689" >Polynesia +689</option>
					
												
						<option value="PT^+351" >Portugal +351</option>
					
												
						<option value="PR^+1-787" >Puerto Rico +1-787</option>
					
												
						<option value="QA^+974" >Qatar +974</option>
					
												
						<option value="RE^+262" >Reunion +262</option>
					
												
						<option value="RO^+40" >Romania +40</option>
					
												
						<option value="RU^+7" >Russia +7</option>
					
												
						<option value="RW^+250" >Rwanda +250</option>
					
												
						<option value="KN^+869" >Saint Kitts and Nevis +869</option>
					
												
						<option value="LC^+758" >Saint Lucia +758</option>
					
												
						<option value="VC^+784" >Saint Vincent and the Grenadines +784</option>
					
												
						<option value="WS^+685" >Samoa +685</option>
					
												
						<option value="SM^+378" >San Marino +378</option>
					
												
						<option value="ST^+239" >Sao Tome And Principe +239</option>
					
												
						<option value="SA^+966" >Saudi Arabia +966</option>
					
												
						<option value="SN^+221" >Senegal +221</option>
					
												
						<option value="RS^+381" >Serbia +381</option>
					
												
						<option value="SC^+248" >Seychelles +248</option>
					
												
						<option value="SL^+232" >Sierra Leone +232</option>
					
												
						<option value="SG^+65" >Singapore +65</option>
					
												
						<option value="SK^+421" >Slovakia +421</option>
					
												
						<option value="SI^+386" >Slovenia +386</option>
					
												
						<option value="SB^+677" >Solomon Islands +677</option>
					
												
						<option value="SO^+252" >Somalia +252</option>
					
												
						<option value="ZA^+27" >South Africa +27</option>
					
												
						<option value="GS^+44" >South Georgia and the South Sandwich Islands +44</option>
					
												
						<option value="KR^+82" >South Korea +82</option>
					
												
						<option value="ES^+34" >Spain +34</option>
					
												
						<option value="LK^+94" >Sri Lanka +94</option>
					
												
						<option value="SH^+290" >St. Helena +290</option>
					
												
						<option value="PM^+508" >St. Pierre and Miquelon +508</option>
					
												
						<option value="SD^+249" >Sudan +249</option>
					
												
						<option value="SR^+597" >Suriname +597</option>
					
												
						<option value="SJ^+47" >Svalbard and Jan Mayen Islands +47</option>
					
												
						<option value="SZ^+268" >Swaziland +268</option>
					
												
						<option value="SE^+46" >Sweden +46</option>
					
												
						<option value="CH^+41" >Switzerland +41</option>
					
												
						<option value="TW^+886" >Taiwan +886</option>
					
												
						<option value="TJ^+7" >Tajikistan +7</option>
					
												
						<option value="TZ^+255" >Tanzania +255</option>
					
												
						<option value="TH^+66" >Thailand +66</option>
					
												
						<option value="TG^+228" >Togo +228</option>
					
												
						<option value="TK^+64" >Tokelau +64</option>
					
												
						<option value="TO^+676" >Tonga +676</option>
					
												
						<option value="TT^+868" >Trinidad and Tobago +868</option>
					
												
						<option value="TN^+216" >Tunisia +216</option>
					
												
						<option value="TR^+90" >Turkey +90</option>
					
												
						<option value="TM^+993" >Turkmenistan +993</option>
					
												
						<option value="TC^+649" >Turks and Caicos Islands +649</option>
					
												
						<option value="TV^+688" >Tuvalu +688</option>
					
												
						<option value="AE^+971" >UAE +971</option>
					
												
						<option value="UG^+256" >Uganda +256</option>
					
												
						<option value="UA^+380" >Ukraine +380</option>
					
												
						<option value="UK^+44" >United Kingdom +44</option>
					
												
						<option value="UM^+1" >United States Minor Outlying Islands +1</option>
					
												
						<option value="UY^+598" >Uruguay +598</option>
					
												
						<option value="US^+1" >USA +1</option>
					
												
						<option value="UZ^+998" >Uzbekistan +998</option>
					
												
						<option value="VU^+678" >Vanuatu +678</option>
					
												
						<option value="VA^+0" >Vatican City +0</option>
					
												
						<option value="VA^+39" >Vatican City State (Holy See) +39</option>
					
												
						<option value="VE^+58" >Venezuela +58</option>
					
												
						<option value="VN^+84" >Vietnam +84</option>
					
												
						<option value="VG^+1" >Virgin Islands (British) +1</option>
					
												
						<option value="VI^+1" >Virgin Islands (U.S.) +1</option>
					
												
						<option value="WF^+681" >Wallis and Futuna Islands +681</option>
					
												
						<option value="EH^+212" >Western Sahara +212</option>
					
												
						<option value="YE^+967" >Yemen +967</option>
					
												
						<option value="YU^+381" >Yugoslavia +381</option>
					
												
						<option value="ZR^+243" >Zaire +243</option>
					
												
						<option value="ZM^+260" >Zambia +260</option>
					
												
						<option value="ZW^+263" >Zimbabwe +263</option>
					
											</select>
					</div>									
					<input type="text" name="dynFrm_phone" id="dynFrm_phone_10029" class="fl" style="width:calc(100% - 62px);" placeholder="Mobile No" />
					<span class="fl red small"></span>
					</div>					
										
					<div class="mb5px ac">
					<input type="submit" name="submit" value="Send Enquiry" class="dib theme1 p12px bdr fw6">
					<input type="hidden" name="phone_isd" id="phone_package_isd" value="+91">
					<input type="hidden" name="subject" value="The American and Canadian Vacation Calling Tour (17 Nights) - Tour Package"/>
					<input type="hidden" name="allocate_type" value="tour"/>
					<input type="hidden" name="pkg_slno" value="193797"/>
					<input type="hidden" name="current_url" value="https://www.cheapthrillsair.com/holiday-packages/the-american-and-canadian-vacation-calling-tour17-nights.htm">
				  	<input type="hidden" name="web_address" value="https://www.cheapthrillsair.com">
				  	<input type="hidden" name="inq_thanks_msg" value="Thank you for inquiry.<br /><br />We have received your request. Our Sales Team will soon get in touch with you.<br /><br /><br />">
					<input type="hidden" name="inq_thanks_title" value="Enquiry">
				  	<input type="hidden" name="redirected_url" value="https://www.cheapthrillsair.com/thanks.htm">
					<input type="hidden" name="catalog_mi" value="522022">
				  	<input type="hidden" name="id" value="static_form">
				  	<input type="hidden" name="form_id" value="10029">
					</form>
					</div>
					</div>					
					</div>
					</div>
					<style>
					.ui-datepicker-trigger {
						vertical-align : middle;
					}
					</style>
					<script>
					jQuery('.dynFrm_arrival_date').datepicker({minDate: 0,
					buttonImage: '//catalog.wlimg.com/jquery-date-picker/calbtn.gif',
					buttonText: 'Click to view calendar',
				    buttonImageOnly: true,
				    showOn: 'button',
				    changeMonth: true,
				    changeYear: true,
				    onClose: function(dateText, inst) {
				        var endDateTextBox = jQuery('.dynFrm_departure_date');
				        if (endDateTextBox.val() != '') {
				            var testStartDate = new Date(dateText);
				            var testEndDate = new Date(endDateTextBox.val());
				            if (testStartDate > testEndDate)
				                endDateTextBox.val(dateText);
				        }
				    }, 
					    onSelect: function (selectedDateTime){
					        var start = jQuery(this).datepicker('getDate');
					        jQuery('.dynFrm_departure_date').datepicker('option', 'minDate', new Date(start.getTime()));
					        jQuery('#dynFrm_departure_date').datepicker('option', 'minDate', new Date(start.getTime()));
					    }    
					});
					jQuery('.dynFrm_departure_date').datepicker({
					minDate: 0,
					buttonImage: '//catalog.wlimg.com/jquery-date-picker/calbtn.gif',
					buttonText: 'Click to view calendar',
				    buttonImageOnly: true,
				    showOn: 'button',
				    changeMonth: true,
				    changeYear: true,
				    onClose: function(dateText, inst) {
				        var startDateTextBox = jQuery('.dynFrm_arrival_date');
				        if (startDateTextBox.val() != '') {
				            var testStartDate = new Date(startDateTextBox.val());
				            var testEndDate = new Date(dateText);
				            if (testStartDate > testEndDate)
				                startDateTextBox.val(dateText);
				        }
				    },
				    onSelect: function (selectedDateTime){
				        var end = jQuery(this).datepicker('getDate');
				        jQuery('.dynFrm_arrival_date').datepicker('option', 'maxDate', new Date(end.getTime()) );
				        jQuery('#dynFrm_arrival_date').datepicker('option', 'maxDate', new Date(end.getTime()) );
				    }
					});
					</script>
					<script>
					jQuery(document).ready(function(){
					var sticky = jQuery('.stickyForm').offset().top;
					jQuery(window).scroll(function(){      
					 if(jQuery(window).scrollTop() > sticky){
					  jQuery('.stickyForm').css('position','fixed');
					  jQuery('.stickyForm').css('top','75px'); 
					 }
					 else if (jQuery(window).scrollTop() <= sticky) {
					  jQuery('.stickyForm').css('position','');
					  jQuery('.stickyForm').css('top','');
					 }  
					if (jQuery('.stickyForm').offset().top + jQuery(".stickyForm").height() > jQuery(".rel-prop").offset().top) {
					  jQuery('.stickyForm').css('top',-(jQuery(".stickyForm").offset().top + jQuery(".stickyForm").height() - jQuery(".rel-prop").offset().top));
					}
					});
					});
					</script>
					<script>
					jQuery(document).ready(function(e){
					if (jQuery(window).width() < 992) {
					jQuery(".rghtFix .enqForm .h").on("click", function(){
					  jQuery(this).find('.plusMinus').toggleClass('act').parent().next('.showHide_rp').slideToggle('slow');
					});  
					jQuery(".rghtFix .enqForm .plusMinus").on("click", function(e){
					e.stopPropagation(); 
					});
					}
					});  
					</script>
					</div>
					</div>
									
				
				</div>
				
								<section class="pt20px pb20px absTour-Title rel-prop">
				<div class="wrap">
				<div class="fo">     	
				<div class="ac mb7px"><div><h2 class="hd_NT">Explore Tour Packages by Destination</h2></div></div>     	
				<div class="ic" id="1102_3-1">
				<div class="slider">
				<ul class="bxslider988">								
				
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/manali-tour-packages.htm" title="Manali Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10061-classified.jpg"  height=""  width=""    alt="Manali" title="Manali" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10009-classified.jpg"  height=""  width=""    alt="New Delhi" title="New Delhi" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/shimla-tour-packages.htm" title="Shimla Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10070-classified.jpg"  height=""  width=""    alt="Shimla" title="Shimla" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/shimla-tour-packages.htm" title="Shimla Tour Packages">Shimla Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/kullu-tour-packages.htm" title="Kullu Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10059-classified.jpg"  height=""  width=""    alt="Kullu" title="Kullu" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/kullu-tour-packages.htm" title="Kullu Tour Packages">Kullu Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10405-classified.jpg"  height=""  width=""    alt="Darjeeling" title="Darjeeling" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/gangtok-tour-packages.htm" title="Gangtok Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10401-classified.jpg"  height=""  width=""    alt="Gangtok" title="Gangtok" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/gangtok-tour-packages.htm" title="Gangtok Tour Packages">Gangtok Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/guwahati-tour-packages.htm" title="Guwahati Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10377-classified.jpg"  height=""  width=""    alt="Guwahati" title="Guwahati" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/guwahati-tour-packages.htm" title="Guwahati Tour Packages">Guwahati Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/mysore-tour-packages.htm" title="Mysore Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10195-classified.jpg"  height=""  width=""    alt="Mysore" title="Mysore" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/mysore-tour-packages.htm" title="Mysore Tour Packages">Mysore Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/ooty-tour-packages.htm" title="Ooty Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10263-classified.jpg"  height=""  width=""    alt="Ooty" title="Ooty" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/ooty-tour-packages.htm" title="Ooty Tour Packages">Ooty Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/male-tour-packages.htm" title="Male Tour Packages" >
					<img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/522022/306828.jpg"  height=""  width=""    alt="Male Tour Packages" title="Male Tour Packages" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/male-tour-packages.htm" title="Male Tour Packages">Male Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/bangalore-tour-packages.htm" title="Bangalore Tour Packages" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10182-classified.jpg"  height=""  width=""    alt="Bangalore" title="Bangalore" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/bangalore-tour-packages.htm" title="Bangalore Tour Packages">Bangalore Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.cheapthrillsair.com/havelock-tour-packages.htm" title="Havelock Tour Packages" >
					<img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/522022/306431.jpg"  height=""  width=""    alt="Havelock Tour Packages" title="Havelock Tour Packages" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.cheapthrillsair.com/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock Tours</a></div>
					</div> 
					</li>
									</ul>
				</div>
				</div>
				 
						<script>
						$(document).ready(function(){			
						$('.bxslider988').bxSlider({
						mode:'horizontal',				
						slideWidth: 214,maxSlides: 10,slideMargin:12,auto: true, 
						autoDirection:'next',
						moveSlides: 1,
						pause:2000,
						pager:false,
						pagerType:'full',
						autoControls: false, 
						controls:true, 
						autoHover:true,				
						speed:1000
						});
						});
						</script>
										
				</div>
				</div>
				</section>
				
				</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:100:"Book The American and Canadian Vacation Calling Tour (17 Nights) - 17 Nights / 18 Days Tour Packages";i:2;s:236:"book the american and canadian vacation calling tour (17 nights) - 17 nights / 18 days tour packages, adventure tour packages, new york, washington, toronto, los angeles, las vegas, ontario, statue of liberty, times square tour packages";i:3;s:283:"Book The American and Canadian Vacation Calling Tour (17 Nights) - 17 Nights / 18 Days tour packages from Cheap Thrills - Get attractive 17 Nights / 18 Days Adventure  tour packages for  New York, Washington, Toronto, Los Angeles, Las Vegas, Ontario, Statue of Liberty, Times Square.";i:4;s:1002:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New York, Washington, Toronto, Los Angeles, Las Vegas, Ontario, Statue of Liberty, Times Square"        
		                 },
		      "description": "We have carved out a 17 nights trip where you can explore the United States of America like never before. This package will allow you to explore the major cities on East and West Coast of the country and Toronto, Canada thrown in as a bonus! This tour will allow you to see the place in the best way possible. So, book this tour and let us take care of the rest…

Destinations Covered
New York, Philadelphia, Washington DC, Niagara Falls, Toronto, San Francisco, Los Angeles, Las Vegas",
		      "name": "The American and Canadian Vacation Calling Tour (17 Nights)",
		      "telephone": "+91-8849639222"
		    }
		    </script>
			";i:5;N;i:6;s:73:"https://ttw.wlimg.com/package-images/photo-small/dir_18/522022/306441.jpg";}