
.clear-fix:after, .ClearFix:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

#tdws-header { position: relative; z-index: 9999999; }
#tdws-header * { font-family: arial; }
#tdws-footer * { font-family: arial; }

body { font-family: 'Montserrat', sans-serif; margin: 0; padding: 0; background: #ffffff; }
	
ul, li { list-style: none; padding: 0; margin: 0; }
	
p, h1, h2, h3, h4 { margin: 0; padding: 0; font-weight: normal; }

a { text-decoration: none; }

.js-loading { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #ffffff; z-index: 999; text-transform: uppercase; }
.js-loading span { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); display: block; text-align: center; }
.js-loading span img { height: 140px; display: block; margin: 20px auto;  }
.js-loading span strong { font-size: 30px; color: #888888; display: block; }

.wrapper { max-width: 1200px; margin: 0 auto; padding: 0 40px 40px 40px; }
	
	@media screen and (max-width:1000px){
		.wrapper { padding: 0 30px 30px 30px; }
	}

	@media screen and (max-width:600px){
		.wrapper { padding: 0 20px 20px 20px; }
	}

/* Header */

h1 { text-align: center; }
h1 span { font-size: 24px; line-height: 20px; font-weight: normal; text-transform: uppercase; border-bottom: 2px solid #ffffff; }
h1 strong { font-size: 40px; line-height: 40px; display: block; margin-top: 5px; }

.cl-header { width: 100%; height: 260px;  overflow: hidden; position: relative; margin-bottom: 40px; }
.cl-header h1 { position: relative; z-index: 2; position: absolute; top: 50%; left: 40px; right: 40px; transform: translateY(-50%); color: #ffffff; }
.cl-header:after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: #004477; opacity:0.8; }
.js-cl-header { display: flex; width: 1800px; background: #ffffff; filter: grayscale(100%); position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.cl-header-pattern { display: flex; flex-wrap: wrap; width: 600px; }
.cl-header-pattern .image { width: 150px; height: 150px; position: relative; }
.cl-header-pattern .image span { display: block; position: absolute; top: 50%; left: 50%; transform: rotate(-15deg) translate(-50%,-50%); width: 90%; height: 90%; background-size: contain; background-repeat: no-repeat; background-position: center; }
.cl-header-pattern .image:nth-child(2n+2) img,
.cl-header-pattern .image:nth-child(2n+4) img { margin-top: -50%; }

	@media screen and (max-width:1000px){
		h1 span { font-size: 20px; line-height: 18px; }
		h1 strong { font-size: 34px; line-height: 34px; }
		.cl-header { margin-bottom: 30px; }
		.js-cl-header { width: 1200px; }
		.cl-header-pattern { width: 400px; }
		.cl-header-pattern .image { width: 100px; height: 100px; }
	}

	@media screen and (max-width:600px){
		h1 span { font-size: 16px; line-height: 16px; }
		h1 strong { font-size: 24px; line-height: 24px; }
		.cl-header { height: 180px; margin-bottom: 20px; }
		.js-cl-header { width: 630px; }
		.cl-header-pattern { width: 210px; }
		.cl-header-pattern .image { width: 70px; height: 70px; }

	}

/* Filters */

.select-wrapper { display: flex; margin-bottom: 40px; }

	@media screen and (max-width:1000px){
		.select-wrapper { margin-bottom: 30px; }
	}

	@media screen and (max-width:600px){
		.select-wrapper { margin-bottom: 20px; display: block; }
	}

.select-wrapper span { font-size: 16px; }

.js-order { display: flex; }
.js-order span { display: block; padding: 0 15px; height: 40px; line-height: 40px; text-align: center; border: 2px solid #004477; cursor: pointer; }
.js-order span.js-active { background: #004477; color: #ffffff; }
.js-order span:hover:not(.js-active) { background: #f5f5f5; }

.select-group { margin-left: auto; position: relative; }
.select-group .option-title { cursor: pointer; display: flex; position: relative; z-index: 2; height: 40px; padding: 0 15px; border: 2px solid #888888; align-items: center; }
.select-group .option-title span { margin-right: 10px; color: #444444; }
.select-group .option-title svg { height: 24px; margin-left: auto; stroke: #444444; transition: 0.3s; }
.select-group .js-filter-cancel { cursor: pointer; display: none; background: #dd4400; position: relative; z-index: 2; height: 40px; padding: 0 15px; border: 2px solid #dd4400; align-items: center; }
.select-group .js-filter-cancel span { margin-right: 10px; color: #ffffff; }
.select-group .js-filter-cancel svg { height: 24px; margin-left: auto; stroke: #ffffff; }

.select-group .option-title.js-active svg { transform: rotate(-180deg); }
.select-group .option-title.js-active + .js-filter-by { display: block; }
.select-group .js-filter-by { background: #888888; position: absolute; top: 42px; right: 0; width: 300px; z-index: 5; padding: 15px; border: 2px solid #888888; display: none; }
.select-group .js-filter-by span:after { content: '(' attr(data-count) ')'; color: #ffffff; position: absolute; top: 50%; transform: translateY(-50%); right: 0; }
.select-group .js-filter-by span { cursor: pointer; position: relative; display: block; padding: 10px 0; color: #ffffff; }
.select-group .js-filter-by span:not(:last-child) { border-bottom: 1px solid #ffffff; }

.select-group .js-filter-cancel.js-active { display: flex; }
.select-group .js-filter-cancel.js-active + .option-title { display: none; }

	@media screen and (max-width:600px){
		.select-wrapper span { font-size: 14px; }
		.js-order { margin-bottom: 10px; width: 100%; }
		.js-order span { padding: 0 15px; width: calc(50% - 30px); }
	}

/* Grid & Cards */

	@media screen and (min-width:1001px){
		.grid { display: flex; flex-wrap: wrap; }
		.grid > * { width: calc(25% - 30px); margin-right: 40px; background: #ffffff; }
		.grid > *:nth-child(4n+4) { margin-right: 0; }
		.grid > *:nth-child(n+5) { margin-top: 40px; }
	}

	@media screen and (min-width:701px) and (max-width:1000px){
		.grid { display: flex; flex-wrap: wrap; }
		.grid > * { width: calc(33.33% - 20px); margin-right: 30px; background: #ffffff; }
		.grid > *:nth-child(3n+3) { margin-right: 0; }
		.grid > *:nth-child(n+4) { margin-top: 30px; }
	}

	@media screen and (max-width:700px) {
		.grid > * { margin-bottom: 30px; }
	}

.card { position: relative; }

.card .product-info { display: flex; align-items: center; margin-bottom: 12px; }
.card .product-info svg { height: 18px; margin-right: 5px; }
.card .info { display: flex; align-items: center; font-size: 14px; color: #888888; }
.card .info:nth-child(2) { margin-left: auto; }

.card .title { font-size: 20px; line-height: 26px; font-weight: bold; color: #dd4400; margin-bottom: 16px; }
.card .title a { color: #dd4400; text-decoration: none; display: block; }
.card .title a:after { content: ''; display: block; position: absolute; width: 100%; height: 100%; left: 0; top: 0; z-index: 2; }

.card .card-image { width: calc(100% - 4px); transition: 0.3s; padding-bottom: calc(100% - 4px); border: 2px solid #efefef; z-index: 1;  position: relative; display: block; margin-bottom: 14px; overflow: hidden; }
.card:hover .card-image { border: 2px solid #888888; }
.card .card-image img { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); opacity: 0; }
.card .card-image.js-loaded img.img-width { width: calc(100% - 20px); height: auto; display: block; }
.card .card-image.js-loaded img.img-height { height: calc(100% - 20px); width: auto; display: block; }
.card .card-image:before { content: ''; z-index: 3; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 100%; height: 100%; background: #efefef; transition: opacity 1s; }
.card .card-image.js-loaded:before { opacity: 0; }
.card .card-image:after { content: ''; background: url(loader.svg) no-repeat center / auto 50% ;z-index: 3; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 100%; height: 100%;  transition: opacity 1s; }
.card .card-image.js-loaded:after { opacity: 0; }
.card .card-image.js-loaded img { opacity: 1; }
/*
animation: flickerAnimation 6s infinite linear; 
@keyframes flickerAnimation {
  0%   { transform: translate(-50%,-50%) rotate(0deg); }
  100% { transform: translate(-50%,-50%) rotate(360deg); }
}
*/
.card .links { position: relative; z-index: 3; }
.card:hover .links { }
.card .links strong { color: #888888; font-size: 14px; font-weight: normal; }
.card .links a { font-weight: bold; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; position: relative; display: block; transition: 0.3s; color: #888888; font-size: 14px; text-decoration: none; padding-left: 15px; height: 24px; line-height: 24px; }
.card .links a:before { transition: 0.3s; content: ''; background: #888888; height: 6px; width: 6px; display: block; position: absolute; top: 50%; left: 0; transform: translateY(-50%); }
.card .links a:hover { color: #dd4400; font-size: 14px; text-decoration: none; padding-left: 15px; }
.card .links a:hover:before { background: #dd4400; }

	@media screen and (max-width:700px) {
		.card { display: flex; } 
		.card:not(:last-child) { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #cccccc; } 
		.card .card-image { width: 200px; padding-bottom: 200px; margin-right: 20px; margin-bottom: 0; height: 0px; }
		.card .details { width: calc(100% - 220px); }
	}
	@media screen and (max-width:600px) {
		.card .card-image { width: 120px; padding-bottom: 120px; margin-right: 10px; }
		.card .details { width: calc(100% - 130px); }
		.card .product-info { display: block; }
		.card .product-info .info:first-child { margin-bottom: 6px; }
		.card .title { margin-bottom: 8px; font-size: 16px; line-height: 20px; margin-bottom: 8px; }
	}

