@charset "utf-8";
/* CSS Document */
.formContainer { position: relative; margin: 1em auto; width: 100%; max-width: 650px; font-weight: 400; pointer-events: all; text-align: left; }
.formContainer .field { position: relative; margin: 20px 0; box-sizing: border-box; }
.formContainer .field .inputContainer {position: relative;}

.formContainer .submitContainer {margin: 20px 0; }
.formContainer .submitContainer button {background: #000; color: #fff; font-size: 1.2em; font-weight: 700; padding: 10px 30px; border: none; outline:none; cursor:pointer;}

.formContainer .focused {box-shadow: 0 0 2px 2px gold; }

.formContainer input[type="text"] { display: block; width: 100%; box-sizing: border-box; color: #333; background: #fff; font-size: 1em; padding: 10px; line-height: 1; border: none; outline: none; border-radius: 0; -webkit-appearance: none; }
.formContainer textarea { display: block; width: 100%; height: 150px; box-sizing: border-box; color: #333; background: #fff; font-size: 1em; padding: 10px; border: none; outline: none; border-radius: 0;-webkit-appearance: none;}
.formContainer select { display: block; cursor: pointer; width: 100%; box-sizing: border-box; color: #333; font-size: 1em; background: #fff; padding: 10px; border: none; outline: none; border-radius: 0; -webkit-appearance: none;  }
.formContainer label {position: relative; display: block; margin-bottom: 5px; padding-right: 25px;  }
.formContainer label .description {font-size: 0.6em;}
.formContainer label .mandatory {}
.formContainer .label {position: relative; display: block; margin-bottom: 5px; padding-right: 25px;  }
.formContainer .label .description {font-size: 0.6em;}
.formContainer .label .mandatory {}

.formContainer .floatingLabel label { position: absolute; top: 0; left: 0; color: #333; pointer-events: none; width: 100%; padding: 10px 10px 0 10px; box-sizing: border-box; z-index: 1; transition: all 0.2s ease;  }
.formContainer .floatingLabel input[type=text], .formContainer .floatingLabel textarea,
.formContainer .floatingLabel select {padding-top: 13px; padding-bottom: 5px;} 
.formContainer .floatingLabel.active > label {font-size: 0.6em; opacity: 0.8; padding-top: 3px;  }
.formContainer .floatingLabel.active > .label {font-size: 0.6em; opacity: 0.8; padding-top: 3px;  }

.formContainer .error { color: red; margin-top: 3px; display: none; }
.formContainer .error.active {display:block; }

.formContainer .field .validationChecks i { position: absolute; display:none; top: -3px; right: 0; width: 20px; height: 20px; border-radius: 50%; background: green;}
.formContainer .field .validationChecks i:before{content: ""; position: absolute; top: 50%; left: 50%; height: 6px; width: 14px; margin-top: -5px; margin-left: -8px; transform: rotate(-45deg); border-style: solid; border-color: #fff; border-width: 0 0 2px 2px; }
.formContainer .field .validationChecks b { position: absolute; display:none; top: -3px; right: 0; width: 20px; height: 20px; border-radius: 50%; background: red;}
.formContainer .field .validationChecks b:before{content: ""; position: absolute; top: 50%; left: 50%; height: 2px; width: 16px; margin-top: -1px; margin-left: -8px; transform: rotate(45deg); background: #fff; background: #fff;}
.formContainer .field .validationChecks b:after{content: ""; position: absolute; top: 50%; left: 50%; height: 2px; width: 16px; margin-top: -1px; margin-left: -8px; transform: rotate(-45deg); background: #fff; background: #fff;}
.formContainer .field.field_valid .validationChecks i {display:block;}
.formContainer .field.field_invalid .validationChecks b {display:block;}

.formContainer .field .floatingLabel .validationChecks i {top:10px; right: 8px; } 
.formContainer .field .floatingLabel .validationChecks b {top:10px; right: 8px; } 

.formContainer.waiting { opacity: 0.5; }
.formContainer.waiting .buttonContainer button { color: transparent; }
.formContainer.waiting .buttonContainer button:hover { color: transparent;  }
.formContainer.waiting .buttonContainer button:after { content: ""; position: absolute; display: block; left: 50%; top: 50%; margin-top: -12px; margin-left: -12px; border: 4px solid rgba(255,255,255, 0.5); border-top: 4px solid #fff; border-radius: 50%; width: 24px; height: 24px; animation: spin 1.5s linear infinite; box-sizing: border-box; }
.formContainer.waiting:after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.formContainer .selectContainer { position: relative; }
.formContainer .selectContainer i.arrow {position: absolute; top: 0; right: 0; width: 40px; height: 100%; text-align: center; font-size: 18px; padding-top: 17px; box-sizing: border-box; color: #333; pointer-events: none; }

.formContainer .dateContainer {position: relative; margin: 0 -5px;}
.formContainer .dateContainer > div {width: 33.3%; float: left; padding: 0 5px; box-sizing: border-box; }
.formContainer .dateContainer > div .selectContainer .arrow {right: 5px;}

.formContainer .checkboxContainer { display: block; position: relative; outline: none; padding: 4px 0 0 35px; min-height: 28px; box-sizing: border-box; }
.formContainer .checkboxContainer > a {position: absolute; left: 0; top: 0; border: none; outline: none; text-decoration: none; font-size: 10px; line-height: 0; width: 25px; height: 25px; color: transparent; overflow: hidden; background: #fff; margin-right: 15px;}
.formContainer .checkboxContainer > a i {position: absolute; left: 0; top: 50%; width: 100%; line-height: 0; text-align:center; font-size: 20px; }
.formContainer .checkboxContainer label {cursor:pointer;} 
.formContainer .checkboxContainer.checked > a i { color: #000; }

.formContainer .radioContainer {}
.formContainer .radioContainer .radio {display: block; position: relative; cursor:pointer; outline: none; padding: 3px 0 0 30px; margin: 3px 0; min-height: 28px; box-sizing: border-box; }
.formContainer .radioContainer .radio .label {}
.formContainer .radioContainer .radio > a {position: absolute; top: 0; left: 0; cursor: pointer; width: 24px; outline: none; height: 24px; background: #fff; border-radius: 50%; border: none; }
.formContainer .radioContainer .radio.checked > a:after {content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; margin-top: -6px; margin-left: -6px; background: #000; border-radius: 50%;  }
.formContainer .radioContainer .radio .label a {text-decoration: none; }

.uploadForm {display: none;}
.formContainer .uploaderContainer .uploaderInner { position: relative; padding: 0 0 40px 110px; min-height: 100px; box-sizing: border-box; }
.formContainer .uploaderContainer .thumb {position: absolute; display: flex; align-items: center; justify-content: center; left: 0; top: 0;width: 100px;height: 100px; cursor: pointer; box-sizing: border-box; background-color: #fff; overflow: hidden; }
.formContainer .uploaderContainer .thumb img {position: relative; max-width: 100%; max-height: 100%; }
.formContainer .uploaderContainer .thumb i {position: absolute; top: 50%; left: 0; width: 100%; line-height: 0; color: #ccc; text-align: center; font-size: 30px;}
.formContainer .uploaderContainer .thumb a {display: none;}
.formContainer .uploaderContainer .thumb .progress {position: absolute;left: 0;bottom: 0;width: 100%; border: 1px solid #fff; height: 6px; background: #fff; box-sizing: border-box;}
.formContainer .uploaderContainer .thumb .progress div {position: absolute; left: 0; top: 0;height: 100%; background: red;}
.formContainer .uploaderContainer .thumb.thumbActive i {display: none;}
.formContainer .uploaderContainer .thumb.thumbActive a {position: absolute; display: block; top: 0; right: 0; width: 20px; padding: 10px 0; color: #fff; background: rgba(0, 0, 0, 0.4); text-align: center; text-decoration: none; font-size: 14px; line-height: 0;}
.formContainer .uploaderContainer .thumb.thumbActive a:hover {background: red;}
.formContainer .uploaderContainer .instructions {font-size: 0.6em;} 
.formContainer .uploaderContainer a.uploadLink {position: absolute; padding: 8px; color: #fff; background: #000; outline: none; left: 110px; bottom: 0; font-size: 0.8em; text-decoration: none; }
.formContainer .uploaderContainer a.uploadLink i {margin-left: 5px; }

.formContainer .multiUploaderContainer {position: relative; padding-bottom: 1px;  }
.formContainer .multiUploaderContainer .thumbs {position: relative; margin: 10px 0; background: #fff; padding: 3px; min-height: 106px; box-sizing: border-box; }
.formContainer .multiUploaderContainer .thumbs .empty {position: absolute; top:50%; left: 0; width: 100%; margin-top: -25px; text-align: center; color: #ccc; padding: 0; }
.formContainer .multiUploaderContainer .thumbs .empty i {display: block; font-size: 30px; }
.formContainer .multiUploaderContainer .thumbs:after {content: ""; display: block; clear: both;}
.formContainer .multiUploaderContainer .thumbs .thumb {position: relative; float: left; width: 20%; padding: 3px; box-sizing: border-box; }
.formContainer .multiUploaderContainer .thumbs .thumb > div {position: relative; display: block; display: flex; height: 100px;  align-items: center; justify-content: center; box-sizing: border-box; background-color: #fff; background-position: center; background-size: cover; border: 1px solid #ccc; overflow: hidden; }
.formContainer .multiUploaderContainer .thumbs .thumb > div img {position: relative; max-width: 100%; max-height: 100%; }
.formContainer .multiUploaderContainer .thumbs .thumb > div > div.progress {position: absolute; left: 2px; bottom: 2px; right: 2px; height: 5px; background: #fff; }
.formContainer .multiUploaderContainer .thumbs .thumb > div > div.progress div {position: absolute; left: 0; bottom: 0; height: 100%; background: red; }
.formContainer .multiUploaderContainer .thumbs .thumb > div > a {position: absolute; display: block; top: 0; right: 0; width: 16px; height: 16px; background: red; }
.formContainer .multiUploaderContainer .thumbs .thumb > div > a:after {content: ""; position: absolute; top: 50%; left: 10%; width: 80%; height: 2px; margin-top: -1px; background: white; transform: rotate(45deg); }
.formContainer .multiUploaderContainer .thumbs .thumb > div > a:before {content: ""; position: absolute; top: 50%; left: 10%; width: 80%; height: 2px; margin-top: -1px; background: white; transform: rotate(-45deg); }
.formContainer .multiUploaderContainer .thumbs .thumb > div > i {position: absolute; top: 50%; left: 0; width: 100%; line-height: 0; color: #ccc; text-align: center; font-size: 30px;}
.formContainer .multiUploaderContainer .thumbs .thumb.uploadError > div {border-color: red; }
.formContainer .multiUploaderContainer .thumbs .thumb.uploadError > div > i {color: red;}
.formContainer .multiUploaderContainer .progress {position: absolute; left: 3px; bottom: 3px; right: 3px; height: 4px; background: #fff; box-sizing: border-box;}
.formContainer .multiUploaderContainer .progress div {position: absolute; left: 0; top: 0;height: 100%; background: red;}
.formContainer .multiUploaderContainer a.uploadLink {position: relative; display:inline-block; padding: 8px; color: #fff; background: #000; outline: none; font-size: 0.8em; text-decoration: none; }
.formContainer .multiUploaderContainer a.uploadLink i {margin-left: 5px; }
@media screen and (max-width: 650px) {
	.formContainer .multiUploaderContainer .thumbs .thumb {width: 25%;}
}
@media screen and (max-width: 550px) {
	.formContainer .multiUploaderContainer .thumbs .thumb {width: 33.33%;}
}
@media screen and (max-width: 450px) {
	.formContainer .multiUploaderContainer .thumbs .thumb {width: 50%;}
}
@media screen and (max-width: 350px) {
	.formContainer .multiUploaderContainer .thumbs .thumb {width: 100%; float: none;}
}

.formContainer .postcodeLookupContainer {}
.formContainer .postcodeLookupContainer .pclInner {position: relative; margin: 5px 0;}
.formContainer .postcodeLookupContainer .pclButton { position: absolute; right: 0; top: 0; background: #000; text-decoration: none; padding: 12px 10px 0 10px; font-size: 0.8em; height: 100%; box-sizing: border-box; }
.formContainer .postcodeLookupContainer .pclButton i {margin-left: 5px; }
.formContainer .postcodeLookupContainer .pclButton:hover { color: #fff; }
.formContainer .postcodeLookupContainer .pclManualLink {display: block; font-size: 0.8em; margin: 5px 0; }
.formContainer .postcodeLookupContainer.waiting .pclButton {color: transparent;}
.formContainer .postcodeLookupContainer.waiting .pclButton:after {content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; margin-top: -10px; margin-left: -10px; border: 4px solid #fff; border-right: 4px solid rgba(255,255,255,0.5); border-radius: 50%; box-sizing: border-box; animation: spin 1.5s linear infinite;  }

.formContainer .searchListContainer {position: relative; }		

.formContainer .searchListContainer .display {position: relative; outline: none; }
.formContainer .searchListContainer .display > div {position: relative; border: none; background: #fff; color: #333; outline: none; padding: 10px 40px 10px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer}
.formContainer .floatingLabel .searchListContainer .display > div {padding-top: 13px; padding-bottom: 5px; }
.formContainer .searchListContainer .display i.arrow {position: absolute; top: 0; right: 0; width: 40px; height: 100%; text-align: center; font-size: 18px; padding-top: 13px; box-sizing: border-box; color: #333; pointer-events: none; border-radius: 0 4px 4px 0;}
.formContainer .searchListContainer .opener {display:none;}
.formContainer .searchListContainer.active { }
.formContainer .searchListContainer.active .cover {position: fixed; width: 100%; height: 100%; top: 0; left: 0; z-index: 6; }
.formContainer .searchListContainer.active .opener {z-index: 8; border-top: 1px solid #ccc;border-bottom: 1px solid #ccc; } 
.formContainer .searchListContainer.active .opener {display: block; position: absolute; top: 100%; left: 0; width: 100%; background: #fff; font-size: 14px; overflow: hidden; }
.formContainer .searchListContainer.active .opener .search {padding: 10px; position: relative;  }
.formContainer .searchListContainer.active .opener .search label {display: none;}
.formContainer .searchListContainer.active .opener .search input[type=text] { border: 1px solid #c5c2b9; padding: 5px 10px; font-size: 14px; background: #fff;   }
.formContainer .searchListContainer.active .opener .search i {position: absolute; top: 50%; right: 20px; line-height: 0; pointer-events: none; color:#333; }
.formContainer .searchListContainer.active .opener .searchResult {position: relative; max-height: 220px; overflow: auto; }
.formContainer .searchListContainer.active .opener .searchResult ul { margin: 0; padding: 0; list-style: none; text-align: left; }
.formContainer .searchListContainer.active .opener .searchResult ul li { border-top: 1px solid #ccc;}
.formContainer .searchListContainer.active .opener .searchResult ul li a {display: block; position: relative; padding: 8px 15px 5px 15px; text-decoration: none; color: #333;  }
.formContainer .formContainer.formContainer.searchListContainer.active .opener .searchResult ul li a i {position: absolute; top: 50%; right: 10px; line-height: 0; }
.formContainer .searchListContainer.active .opener .searchResult ul li a:hover {background: #000; color: #fff;}
.formContainer .searchListContainer.active .opener .searchResult ul li a::after {content: ""; position: absolute; box-sizing: border-box;  right: 10px; top: 50%; margin-top: -3px; width: 6px; height: 6px; border-top: 1px solid #333; border-right: 1px solid #333; transform: rotate(45deg);}
.formContainer .searchListContainer.active .opener .searchResult ul li.active a {background: #000; color: #fff;}
.formContainer .searchListContainer.active .opener .searchResult ul li:nth-child(odd){background: #eee;}
.formContainer .searchListContainer.active .opener .searchResult ul li a b {display: block; }
.formContainer .formContainer.searchListContainer.active .opener .searchResult.waiting ul {opacity: 0.5;}
.formContainer .searchListContainer.active .opener .searchResult.waiting:after {content: ""; position: absolute; top: 50%; left: 50%; width: 26px; height: 26px; margin-top: -13px; margin-left: -13px; border: 5px solid #fff; border-right: 5px solid rgba(255,255,255,0.5); border-radius: 50%; box-sizing: border-box; animation: spin 1.5s linear infinite;  }
.formContainer .searchListContainer.active .opener .searchResult .empty {padding: 20px 0; color: #333; font-size: 0.8em; text-align: center;}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
