body{overflow: hidden;padding: 0;}

#map_container{position: fixed;top: 0; left: 0; right: 0;height: calc(100vh - 120vw - var(--bottom-safe-space));transition-duration: 0.3s;}
	#map{height: 150%;z-index: 3;}
	#address_button{position: fixed;z-index: 4;top: calc(5vw + var(--top-safe-space));left: 50%;transform: translateX(-50%);padding: 0;padding-left: 5vw;padding-right: 5vw;text-align: center;height: 8vw;border-radius: 4vw;line-height: 7vw;transition-duration: 0.3s;overflow: hidden;}
	#mapshadow{position: fixed;z-index: 5;top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; opacity: 0; transition-duration: 0.3s;}


#address_console{display: block;position: fixed;z-index: 8;}
	#address_background{display: none;opacity: 0;position: fixed;top: 0; bottom: 0; left: 0; right: 0;pointer-events: none;transition-duration: 0.3s;}
	#address_body{display: none;position: fixed;top: calc(7vw + var(--top-safe-space));left: 25vw;padding: 0;text-align: center;line-height: 8vw;width: 50vw;height: 0;border-radius: 3vw;overflow: hidden;opacity: 0;transition-duration: 0.3s;}
		#address_body_heading{height: 15vw;line-height: 15vw;}
		#addresses{padding-top: 5vw;padding-bottom: 5vw;overflow: scroll;max-height: 35vw;}
			.selectaddressitems{margin: auto;margin-bottom: 5vw;width: 30vw;border-radius: 5vw;transition-duration: 0.3s;}
			.selectaddressitems:active{transform: scale(0.9);}


.panel{position: fixed;bottom: 0; left: 0; right: 0;box-sizing: content-box;padding-bottom: var(--bottom-safe-space);border-top-left-radius: 2vw;border-top-right-radius: 2vw;overflow: hidden;transition-duration: 0.3s;border-left-width: 0;border-right-width: 0;}
	.paneltop{padding-top: 1.5vw;padding-bottom: 5vw;height: 20vw;border-top-left-radius: 2vw;border-top-right-radius: 2vw;}
		.panelhandle{margin: 2vw;margin-top: 0;margin-left: auto;margin-right: auto;height: 1.5vw;width: 12vw;border-radius: 0.75vw;}
		.paneltopcontent{display: flex;}
			.paneltopleft{flex-grow: 1;margin-left: 5vw;margin-right: 5vw;line-height: 10vw;height: 10vw;}
			.paneltopcross{flex-shrink: 0;margin-top: 2vw;margin-right: 5vw;padding: 1vw;width: 6vw;height: 6vw;border-radius: 3vw;}
	.panelbody{overflow: scroll;-webkit-overflow-scrolling: touch;transition-duration: 0.3s;}


#menu{display: block;z-index: 5;}
	#menutop{display: block;}
		#menusearch{border-radius: 1.5vw;padding-left: 3vw;padding-right: 3vw;height: 12vw;line-height: 12vw;transition-duration: 0.3s;border-width: 0.3vw;}
		#menusearchclose{height: 0;width: 0;margin-right: 0;padding: 0;border-radius: 3.5vw;transition-duration: 0.3s;}
	#search_results{height: 0;overflow: scroll;transition-duration: 0.3s;}
	#menubody{height: 100vw;transition-duration: 0.3s;}
		#explore{margin-top: 2vw;}
			#explorebody{display: flex;align-items: center;overflow: scroll;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;}
			#explorebody::-webkit-scrollbar{display: none;}
				.explorecontainer{padding-left: 6vw;padding-right: 6vw;flex-shrink: 0;display: flex;scroll-snap-align: center;justify-content: space-between;}
					.exploreitem{width: 18vw;text-align: center;transition-duration: 0.1s;}
					.exploreitem:active{transform: scale(0.9);}
						.exploreicon{padding: 3.2vw;height: 14vw;width: 14vw;border-radius: 2vw;}
						#allexploreicon{padding: 3.5vw;}
						#newexploreicon{padding: 3.7vw;}
						#ordersexploreicon{padding: 3.2vw;}
						.exploretext{margin-top: 2vw;overflow: hidden;white-space: nowrap;}
			#explorepagination{margin-top: 3vw;}
		#categorycards{display: block;}
			#categoriesheading{padding: 5vw;padding-bottom: 3vw;}
			#categoriesbody{padding-left: 5vw;display: flex;align-items: center;overflow: scroll;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;}
			#categoriesbody::-webkit-scrollbar {display: none;}
				.bigcategory{flex-shrink: 0;position: relative;padding: 2vw;padding-left: 3vw;margin-right: 3vw;width: 38vw;height: 57vw;border-radius: 1vw;border-width: 0.25vw;transition-duration: 0.1s;overflow: hidden;}
					.bigcategoryimage{position: absolute;right: 0;bottom:0;left: 0;height: 37.5vw;}
					.bigcategoryspacer{flex-shrink: 0;height: 52.5vw;width: 2.5vw;}
				.smallcategorycontainer{flex-shrink: 0;position: relative;margin-right: 3vw;width: 38vw;height: 57vw;}
					.smallcategory{position: relative;padding: 2vw;padding-left: 3vw;width: 38vw;height: 27vw;border-radius: 1vw;border-width: 0.25vw;transition-duration: 0.1s;overflow: hidden;}
						.smallcategoryimage{position: absolute;right: 0;bottom:0;height: 27vw;}
						.smallcategoryspacer{height: 3vw;width: 38vw;}

				#dailyessentialscard{background-color: hsl(98, 100%, 79%);}
				#retailandshoppingcard{background-color: hsl(0, 100%, 79%);}
				#servicescard{background-color: hsl(209, 100%, 79%);}
				#homeservicescard{background-color: hsl(54, 100%, 79%);}
				#lifestylecard{background-color: hsl(98, 100%, 79%);}
				#healthandfitnesscard{background-color: hsl(278, 100%, 79%);}
				#professionalscard{background-color: hsl(209, 100%, 79%);}
				#foodcard{background-color: hsl(0, 100%, 79%);}
				#homegrownbusinessescard{background-color: hsl(54, 100%, 79%);}
				#otherscard{background-color: hsl(0, 0%, 90%);}


.search_result_store{display: flex;align-items: center;padding: 5vw;}
	.search_result_store_image{flex-shrink: 0;margin-right: 4vw;height: 10vw;width: 10vw;border-radius: 1vw;}
	.search_result_store_details{flex-grow: 1;margin-right: 4vw;}
	.search_result_store_button{flex-shrink: 0;}


#storelist{display: block;z-index: 6;height: 0;padding-bottom: 0;}
	#storelisttop{display: block;}
		#storelistheading{display: block;}
		#storelistcross{display: block;}
	#storelistbody{height: 0;transition-duration: 0.3s;}
		#cardscrollview{padding-left: 8vw;display: flex;overflow: scroll;scroll-snap-type: x mandatory;-webkit-overflow-scrolling: touch;}
		#cardscrollview::-webkit-scrollbar{display: none;}
			#nocards{flex-grow: 1;padding-right: 8vw;line-height: 50vw;text-align: center;}
			#cardscrollviewspacer{flex-shrink: 0;width: 3vw;height: 1vw;}
			.card{position: relative;flex-shrink: 0;scroll-snap-align: center;margin-top: 1vw;margin-right: 5vw;margin-bottom: 4vw;height: 50vw;width: 84vw;border-radius: 2vw;}
				.card{display: flex;}
				.cardleft{margin: 5vw;top: 0;width: 25vw;}
					.cardimage{object-fit: cover;margin-bottom: 5vw;height: 25vw;width: 25vw;border-radius: 1vw;}
					.viewbutton{margin: 0;}
					.cardbutton:active{transform: scale(0.9);}
						.cardbuttonicon{padding: 2vw;height: 10vw;width: 10vw;border-radius: 1vw;}
						.cardbuttontext{margin-top: 1vw;}
				.cardright{justify-content: space-between;margin: 5vw;margin-left: 0;bottom: 0;width: 74vw;}
		#storelistpagination{display: flex;justify-content: center;}
			.pagemarker{margin: 2vw;margin-top: 0;height: 2vw;width: 2vw;border-radius: 1vw;}


#storedisplay, #paymentdetaildisplayitem{display: block;z-index: 7;height: 0;padding-bottom: 0;}
	#storedisplaytop{display: block;padding-bottom: 0;}
		#storedisplaytopdetails{display: flex;line-height: 1.5;align-items: center;}
			#storedetailstoplogo{flex-shrink: 0;margin-right: 5vw;height: 10vw;width: 10vw;border-radius: 1vw;object-fit: cover;}
			#storetopdetails{flex-shrink: 0;}
		#storedisplaycross{display: block;}
	#storedisplaybody{height: 0;transition-duration: 0.3s;padding-top: 5vw;padding-bottom: calc(25vw + var(--bottom-safe-space));}
		
		/* basic layout */
		.storedisplayitem,.paymentmethoditem{margin-bottom: 8vw;padding-left: 5vw;padding-right: 5vw;}
			.storedisplayheadingcontainer,.paymentmethodheadingcontainer{display: flex;justify-content: space-between;margin-bottom: 2vw;line-height: 5vw;}
				.storedisplayheading,.paymentmethodheading{text-align: left;}
				.storedisplaycaption{text-align: right;}
			.storedisplaycontentcontainer,.paymentmethodcontentcontainer{display: flex;justify-content: space-between;transition-duration: 0.3s;}
				.storedisplaycontent,.paymentmethodcontent{flex-grow: 1;text-align: left;margin-right: 5vw;}
				.storedisplaydetails{flex-grow: 1;text-align: right;}
		
		/* view store button */
		#shortcutscontainer{position: absolute;bottom: 0;padding: 5vw;padding-top: 3vw;width: 100vw;padding-bottom: calc(3vw + var(--bottom-safe-space))}
			#shortcutsinfo{text-align: center;margin-bottom: 3vw;}
			#shortcutslink{display: flex;}
				.shortcutbuttons{border-width: 0;margin: 0;margin-right: 5vw;width: 10vw;line-height: 10vw;}
				.shortcuticon{height: 7vw;width: 7vw;padding-bottom: 1vw;}
				#storelink{width: 60vw;margin: 0;}

		/* others */
		#storedisplayaboutcontent{margin-bottom: 2vw;}
		#offerscontainer{display: none;}
		#storedisplaytimecaption2{display: none;}
		#timebody{height: 5vw;box-sizing: content-box;overflow: hidden;}
		#storedisplayphotosection{padding-left: 0;padding-right: 0;}
		#storedisplayphotoheading{padding-left: 5vw;padding-right: 5vw;}
		#photosbody{display: flex;padding:2vw;padding-left:5vw;height: 50vw;overflow: scroll;}
		#photosbodyspacer{flex-shrink:0;width: 5vw;height: 5vw;}
		#photosbody::-webkit-scrollbar{display: none;}
		.storedisplayimages{margin-right:3vw;height: 46vw;border-radius: 1vw;}

		#ratingbody{display: block;}
			#ratingtop{display: flex;}
				#ratingleft{margin-right: 10vw;width: 25vw;text-align: center;}
					#ratingsummary{margin-bottom: 2vw;font-size: 15vw;font-weight: 600;line-height: 15vw;}
							#ratingnumber{margin-top: 2vw;}
								#ratingamount{display: inline;}
								#ratingamounttext{display: inline;}
				#ratingright{width: 55vw;}
					.ratingrightitem{display: flex;align-items: center;margin-top: 2vw;line-height: 4vw;}
						.ratingcategory{width: 8vw;}
						.ratingbar{flex-grow: 1;margin-left: 2vw;margin-right: 2vw;height: 2vw;border-radius: 1.5vw;}
							.ratingprogress{width: 0%;height: 2vw;border-radius: 1.5vw;}
						.ratingpercentage{width: 8vw;text-align: right;}
			#ratingbottom{margin-top: 5vw;}
				.ratingitem{margin-bottom: 4vw;}
					.ratingitemname{display: block;}
					.ratingitemrating{display: block;}
					.ratingitemreview{display: block;}
					.ratingitemtime{display: block;}