.wrap_search_widget {
    position: relative;
}

#search-widget {
	position: relative;
}

#search_popup {
    position: absolute;
    left: 0;
    top: 47px;
	width: 400px;
	min-height: 72px;
	max-height: 70vh;
    overflow-y: auto;
    background: #fff;
    z-index: 999;
	opacity: 0;
	transition: opacity .2s ease;
	visibility: hidden;
}

#search_popup.show {
	visibility: visible;
	opacity: 1;
}

.search_results_container {
	position: relative;
	z-index: 1;
}

.search_results_container .product {
    margin-bottom: 10px;
	display: block !important;
	transition: background .2s ease;
	background: rgba(0, 0, 0, .03);
}

#search_popup .search_results_container .product {
    padding: 10px;
	background: initial;
}

.search_results_container .product:hover {
	background: rgba(0, 0, 0, .05);
}
#search_popup .search_results_container .product:hover {
	background: rgba(0, 0, 0, .03);
}

.search_results_container .product:last-child {
    margin-bottom: 0;
}

.search_results_container .product .search_img {
    /* border: 1px solid #ddd; */
    float: left;
    margin-right: 5%;
    width: 30%;
}

.search_results_container .product .search_img img {
	width: 100%;
    height: auto;
}

.search_results_container .search_info {
    float: left;
    width: 65%;
}

#search_popup .search_results_container .search_info {
	padding: 10px;
}

.search_results_container .search_info .product_name {
    font-size: 1rem;
    color: #555;
}

.search_results_container .search_info .price {
    display: block;
    font-size: .875rem;
    color: #232323;
    font-weight: 700;
    margin-top: 4px;
}

#search-panel-mobile {
	visibility: hidden;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background: #FFF;
	/* transition: opacity .2s ease; */
	z-index: 999;
	opacity: 0;
	overflow-y: scroll;
	padding: 20px;
}

#search-panel-mobile.show {
	animation: search-panel-fullscreen-show .2s ease forwards;
}

@keyframes search-panel-fullscreen-show {
	0%   {
		opacity: 0;
		visibility: visible;
		transform: translate(0px, -10px);
	}
	100% {
		opacity: 1;
		visibility: visible;
		transform: translate(0px, 0px);
	}
}

#search-panel-mobile.hide {
	animation: search-panel-fullscreen-hide .2s ease forwards;
}

@keyframes search-panel-fullscreen-hide {
	0%   {
		opacity: 1;
		visibility: visible;
		transform: translate(0px, 0px);
	}
	99% {
		opacity: 0;
		visibility: visible;
		transform: translate(0px, -10px);
	}
	100% {
		opacity: 0;
		visibility: hidden;
	}
}

#search-panel-mobile-close-btn {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
    border: none;
    font-size: 1.2rem;
	transition: opacity .2s ease;
	opacity: 1;
	z-index: 1;
}

#search-panel-mobile-close-btn:hover {
	opacity: .7;
}

#search-panel-mobile-close-btn:focus {
	outline: 0;
}

#search-panel-mobile form input[type=text] {
	width: 100%;
}

#search-panel-mobile form input[type=text]::placeholder {
}

#search-popup-results,
#search-panel-mobile-results {
	opacity: 0;
	transition: opacity .2s ease;
    padding-right: 4px;
}

#search-popup-results.show,
#search-panel-mobile-results.show {
	opacity: 1;
}

#search-popup-loading,
#search-panel-mobile-loading {
    text-align: center;
    font-size: 2rem;
    color: #CCC;
    margin: 2rem 0;
	opacity: 0;
	position: absolute;
    left: 0;
    right: 0;
	transition: opacity .2s ease;
}

#search-popup-loading {
    margin: 1rem 0;
	top: 0;
	bottom: 0;
	justify-content: center;
    display: flex;
    align-items: center;
}

#search-popup-loading.show,
#search-panel-mobile-loading.show {
	opacity: 1;
}

.search-panel-no-results {
	margin: 24px 0;
	text-align: center;
}

.search-panel-no-results .search-panel-no-results-icon {
	font-size: 3rem;
    color: #CCC;
    margin: 10px 0;
}

.search-panel-no-results p {
	color: #AAA;
    font-size: 1.0rem;
}

@media (min-width: 768px) {
	#search-panel-mobile {
		position: absolute;
		top: initial;
		left: initial;
		bottom: initial;
		overflow-y: hidden;
		box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
		border: solid 1px #EEE;
		border-top: solid 3px #DDD;
		width: 340px;
		min-height: 140px;
	}
	
	#search-popup-results,
	#search-panel-mobile-results {
		overflow-y: scroll;
		max-height: 460px;
	}
}