.ProductSearch .ContentText {
	margin-bottom: 20px;
}
.ProductSearch .Lazy {position: relative}

/** Control area **/
.ProductSearch .Control h3 {
	font-size: 14px;
	font-weight: bold;
	color: #3f3f3f;
	margin-bottom: 4px;
}
.ProductSearch .Control h3.CatCaption {
	padding: 7px;
	background: rgba(255, 255, 255, 0.55);
	border-radius: 2px;
	width: 100%;
	position: relative;
	padding-right: 30px;
	color: #4a5859;
	box-sizing: border-box;
	font-weight: 600;
	transition: all 150ms;
	user-select: none;
}
.ProductSearch .Control .Open h3.CatCaption,
.ProductSearch .Control h3.CatCaption:hover {
	background: #fff;
}
.ProductSearch .Control .Tree .CatCaption:after {
	content: "(" attr(data-childs-left) ")";
}
.ProductSearch .Control .Tree .CatCaption:before {
	content: '';
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 9px 8px 0 8px;
	border-color: rgb(179, 179, 179) transparent transparent transparent;
	position: absolute;
	right: 5px;
	top: 50%;
	transform: translateY(-50%);
	transition: all 150ms;
}
.ProductSearch .Control .Open h3.CatCaption:before,
.ProductSearch .Control h3.CatCaption:hover:after {
	border-color: #4a5859 transparent transparent transparent;
}
.ProductSearch .Control .Specifier button[type="submit"] {
	background: rgb(25,184,25);
	background: -moz-linear-gradient(-45deg, rgba(25,184,25,1) 0%, rgba(2,141,2,1) 100%);
	background: -webkit-linear-gradient(-45deg, rgba(25,184,25,1) 0%,rgba(2,141,2,1) 100%);
	background: linear-gradient(135deg, rgba(25,184,25,1) 0%,rgba(2,141,2,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#19b819', endColorstr='#028d02',GradientType=1 );
	border: none;
	color: #fff;
	padding: 6px 10px;
	border-radius: 5px;
	cursor: pointer;
	transition: all 150ms;
}
.ProductSearch .Control .Specifier button[type="submit"]:hover {
	background: rgb(25,184,25);
	background: -moz-linear-gradient(-45deg, rgba(25,184,25,1) 0%, rgba(2,141,2,1) 100%);
	background: -webkit-linear-gradient(-45deg, rgba(25,184,25,1) 0%,rgba(2,141,2,1) 100%);
	background: linear-gradient(135deg, rgba(25,184,25,1) 0%,rgba(2,141,2,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#19b819', endColorstr='#028d02',GradientType=1 );
	color: #fff;
	filter: contrast(1.1) saturate(1.1);
}
.ProductSearch .Control .Specifier button[type="submit"] svg {
	height: 1.2em;
	vertical-align: middle;
	fill: #fff;
	margin-left: 10px;
}

.ProductSearch .Control .Specifier .SpecifierItem INPUT[type=text].defNum {
	height: 1.8em;
	padding: 4px;
}
.ProductSearch .Control .Specifier .SpecifierItem svg {
	height: 1.6em;
	height: 2em;
	padding: 5px;
	fill: #717171;
	background: rgba(255, 255, 255, .7);
	border-radius: 2px;
	border: 1px solid #a5b8da;
	box-sizing: border-box;
	transition: all 150ms;
}
.ProductSearch .Control .Specifier .SpecifierItem .staticLEqual svg {
	border-color: #b6b6b6;
	fill: #b6b6b6;
}
.ProductSearch .Control .Specifier .SpecifierItem .toggle:hover svg {
	fill: #1f1f1f;
	background: #fff;
	border-color: #6c84ab;
}
.ProductSearch .Control .Specifier .SpecifierItem .iEqual .GreaterEquals {display: none;}
.ProductSearch .Control .Specifier .SpecifierItem .gEqual .Equals {display: none;}

.layoutMiddle .ProductSearch .Control .Title {
	margin-bottom: 2px;
}
.ProductSearch .Control .Tree {
	margin-bottom: 15px;
	margin-right: 10px;
}
@media all and (min-width: 600px) {
	.ProductSearch .Control .Tree {	width: 49%;}
}
@media all and (min-width: 800px) {
	.ProductSearch .Control .Tree {	width: 32%;}
}
.ProductSearch .Control .Tree.Disabled {
}
.ProductSearch .Control .Tree.Disabled .CatCaption:hover,
.ProductSearch .Control .Tree.Disabled .CatCaption {
	background: #efefef;
	color: #cbcbcb;
	cursor: default;
}
.ProductSearch .Control .Tree .CatList {
	display: none;
	overflow: hidden;
	transition: all 200ms;
	position: absolute;
	border-radius: 2px;
	box-shadow: 8px 14px 38px rgba(39,44,49,.06), 1px 3px 8px rgba(39,44,49,.03);
}
.ProductSearch .Control .Tree.Open .CatList {
	display: block;
	z-index: 200;
}
.ProductSearch .Control .CatFilter,
.ProductSearch .Control .Specifier {
	margin-bottom: 1rem;
}
.ProductSearch .Control .CatFilter .Body,
.ProductSearch .Control .Specifier .Body {
	background-color: #E3E6E7;
	border-radius: 4px 4px 4px 4px;
	padding: 15px 0 0 20px;
	top: -10px;
	box-sizing: border-box;
	width: 100%;
	min-height: 64px;
	transition: all 400ms;
}
.ProductSearch .Control .Specifier .SpecifierItem {
	margin-right: 40px;
}
.ProductSearch .Control .CatFilter button {
	display: block;
	text-align: left;
	width: 100%;
	background: #fff;
	color: #717171;
	border: none;
	padding: 8px 0;
	border-bottom: 1px solid #f1f1f1;
	padding-left: 5px;
	position: relative;
	cursor: pointer;
	transition: all 200ms;
}
.ProductSearch .Control .CatFilter .SelectedCats button.Hidden,
.ProductSearch .Control .CatFilter button.Hidden,
.ProductSearch .Control .CatFilter button.Disabled {
	display: none;
}
.ProductSearch .Control .CatFilter .SelectedCats {
	padding: 4px 0;
}
.ProductSearch .Control .CatFilter .SelectedCats button {
	display: inline;
	padding: 3px 5px;
	width: auto;
	border: none;
	border-radius: 5px;
	margin-right: 3px;
}
.ProductSearch .Control .CatFilter .SelectedCats button:after {
	content: '';
}
.ProductSearch .Control .Specifier button {
	background: rgba(255, 255, 255, .7);
	border: 2px solid #a5b8da;
	margin-bottom: 5px;
	padding: 1px 5px;
	border-radius: 5px;
	color: #717171;
	cursor: pointer;
	transition: all 150ms;
}
.ProductSearch .Control .CatFilter button.Selected,
.ProductSearch .Control .Specifier button.Selected,
.ProductSearch .Control .CatFilter button:hover,
.ProductSearch .Control .Specifier button:hover {
	color: #1f1f1f;
	background: #fff;
	border-color: #6c84ab;
}
.ProductSearch .Control .CatFilter button:hover,
.ProductSearch .Control .Specifier button:hover {
	background: #f1f1f1;
}
.ProductSearch .Control .CatFilter button.Selected,
.ProductSearch .Control .Specifier button.Selected {
	box-shadow: 8px 14px 38px rgba(39,44,49,.07), 1px 3px 8px rgba(39,44,49,.04);
}

/** Product table **/

.ProductSearch .DataTable {
	width: 100%;
	margin-bottom: 20px;
}
.ProductSearch.NoMatch .DataTable .head {
	display: none;
}
.ProductSearch .DataTable .head .cell {
	font-weight: bold;
	font-size: 14px;
}
.ProductSearch .DataTable .body .row .cell {
	background: #f1f1f1;
}
.ProductSearch .DataTable .cell:not(:first-of-type) {
	padding-left: 10px;
}
.ProductSearch .DataTable .body .row:nth-last-of-type(2n+2) .cell {
	background: #fff;
}
.ProductSearch .DataTable .Spinner {}
.ProductSearch .DataTable .Spinner div {
	border-color: #6c84ab transparent transparent transparent;
}

@media all and (max-width: 650px) {
	.table.DataTable, .table.DataTable .head, .table.DataTable .body, .table.DataTable .head .cell, .table.DataTable .body .cell, .table.DataTable .row { 
		display: block; 
	}
	
	/* Hide table headers (but not display: none;, for accessibility) */
	.table.DataTable .head .row { 
		position: absolute;
		top: -9999px;
		left: -9999px;
	}
	
	.table.DataTable .row tr { border: 1px solid #ccc; }
	
	.table.DataTable .body .row .cell {
		border: none;
		border-bottom: 1px solid #eee;
		position: relative;
		padding-left: 50%;
		text-align: left;
	}
	
	.table.DataTable .body .row .cell:before {
		content: attr(data-head);
		position: absolute;
		left: 6px;
		width: 45%; 
		padding-right: 10px; 
		white-space: nowrap;
		font-weight: 600;
	}
}

/** Product detail **/

.ProductSearch .Canvas.DisplayDetail:after {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: rgba(255, 255, 255, .7);
	filter: blur(1.1);
	z-index: 1;
}

.ProductSearch .Canvas .ProductDetail {
	position: absolute;
	top: 20px;
	z-index: 10;
	background: #fff;
	width: 100%;
	box-shadow: 8px 14px 38px rgba(39,44,49,.06), 1px 3px 8px rgba(39,44,49,.03);
	padding: 20px;
	border-radius: 5px;
	box-sizing: border-box;
	animation: bounceInDown 1s;
}
.ProductSearch .Canvas .ProductDetail .Closer {
	position: absolute;
	top: 20px;
	right: 20px;
	transform: rotate(45deg);
	height: 20px;
	width: 20px;
	z-index: 20;
}
.ProductSearch .Canvas .ProductDetail .Closer:before,
.ProductSearch .Canvas .ProductDetail .Closer:after {
	content: '';
	width: 3px;
	height: 17px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	background: #000;
}
.ProductSearch .Canvas .ProductDetail .Closer:after {
	transform: translate(-50%, -50%) rotate(90deg);
}
.ProductDetail .productDefinitions .pdTree {
	background: #e0e6ef;
	padding: 10px;
	border-radius: 5px;
	border: 1px solid #a5b9d2;
}
.ProductDetail .productDefinitions h2 {
	font-size: 16px;
	color: #979da8;
}
.ProductDetail .productDefinitions .pdTree .item .title,
.ProductDetail .productDefinitions .pdTree .item .body {
	display: inline-block;
}
.ProductDetail .productDefinitions .pdTree .item .title {
	font-weight: 600;
	margin-right: 40px;
}

/** Pagination **/

.ProductSearch .modPager {
	margin-bottom: 20px;
}

.ProductSearch .modPager .cssbutton {
	border: 2px solid #a5b8da;
	background: rgba(255, 255, 255, .7);
	cursor: pointer;
	color: #717171;
	padding: 3px 10px;
}
.ProductSearch .modPager .cssbutton.disabled {
	border-color: #717171;
	cursor: not-allowed;
}
.ProductSearch .modPager .cssbutton:not(.disabled):hover {
	color: #1f1f1f;
	background: #fff;
	border-color: #6c84ab;
}

@keyframes bounceInDown {
	from,
	60%,
	75%,
	90%,
	to {
		-webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}

	0% {
		opacity: 0;
		-webkit-transform: translate3d(0, -3000px, 0);
		transform: translate3d(0, -3000px, 0);
	}

	60% {
		opacity: 1;
		-webkit-transform: translate3d(0, 25px, 0);
		transform: translate3d(0, 25px, 0);
	}

	75% {
		-webkit-transform: translate3d(0, -10px, 0);
		transform: translate3d(0, -10px, 0);
	}

	90% {
		-webkit-transform: translate3d(0, 5px, 0);
		transform: translate3d(0, 5px, 0);
	}

	to {
		-webkit-transform: translate3d(0, 0, 0);
		transform: translate3d(0, 0, 0);
	}
}

.bounceInDown {
	-webkit-animation-name: bounceInDown;
	animation-name: bounceInDown;
}

.Spinner {
	display: inline-block;
	position: absolute;
	right: 10px;
	top: 10px;
	width: 48px;
	height: 48px;
}
.Spinner div {
	box-sizing: border-box;
	display: block;
	position: absolute;
	width: 41px;
	height: 41px;
	margin: 6px;
	border: 6px solid #fff;
	border-radius: 50%;
	animation: Spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
	border-color: #fff transparent transparent transparent;
}
.Spinner div:nth-child(1) {
	animation-delay: -0.45s;
}
.Spinner div:nth-child(2) {
	animation-delay: -0.3s;
}
.Spinner div:nth-child(3) {
	animation-delay: -0.15s;
}
@keyframes Spinner {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}
