.ff-container {
  position: relative;
  display: inline-block;
  padding: 0.625em 0;
  box-sizing: border-box; }
  .ff-container-invalid input, .ff-container-invalid select {
    border-color: #c03; }
  .ff-container-full {
    display: block; }
    .ff-container-full input {
      width: 100%; }
  .ff-container-large .ff-input {
    padding: 1em 1.25em;
    height: 4em; }
  .ff-container-large .ff-select-wrapper:after {
    right: 1.25em; }
  .ff-container-large select.ff-input {
    padding-right: 2.5em; }
  .ff-container-large .ff-val-msg {
    padding: 1.25em; }

.ie9 .ff-container-large .ff-select-wrapper:before {
  top: 15px;
  height: 1.9em;
  width: 1.8em; }

.ie9 .ff-container-large .ff-select-wrapper-disabled:before,
.ie9 .ff-container-large .ff-select-wrapper[disabled]:before {
  background: #ddd; }

.ff-label {
  display: inline-block;
  color: #464646;
  margin-bottom: 0.313em;
  font-weight: 600; }

.ff-label-block {
  display: block; }

.ff-select-wrapper {
  display: inline-block;
  position: relative; }
  .ff-select-wrapper-full {
    width: 100%; }
  .ff-select-wrapper-invalid select {
    border-color: #c03; }

.ff-select-wrapper:after {
  content: " ";
  position: absolute;
  width: 0;
  height: 0;
  top: 50%;
  margin-top: -2px;
  border-style: solid;
  border-width: 8px 6px 0;
  border-color: #10549b transparent transparent;
  right: 0.9em;
  z-index: 2;
  /* These hacks make the select behind the arrow clickable in some browsers */
  pointer-events: none; }

.ie9 .ff-select-wrapper:before {
  content: " ";
  position: absolute;
  right: 0.9em;
  top: 12px;
  height: 1.73em;
  width: 1.5em;
  background: white;
  pointer-events: none;
  z-index: 2; }

.ie9 .ff-select-wrapper-disabled:before,
.ie9 .ff-select-wrapper[disabled]:before {
  background: #ddd; }

.ff-input {
  height: 3.5em;
  padding: 0.9em;
  box-sizing: border-box;
  font-size: 1em;
  border: 1px solid #10549b;
  outline: none;
  font-weight: 700;
  color: #10549b;
  border-radius: 0;
  background: white;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  .ff-input option {
    color: #10549b; }
  .ff-input:disabled {
    background-color: #ddd; }
  .ff-input:focus {
    border-color: #00b5cc; }

.ff-placeholder {
  color: #454545; }

.ff-checkbox {
  position: absolute;
  left: -9999px; }
  .ff-checkbox + label {
    position: relative;
    padding: 0 0 0 35px;
    cursor: pointer;
    color: #10549b;
    font-weight: 700; }
  .ff-checkbox:focus + label {
    outline: 3px solid #00b5cb;
    outline-offset: 0; }
  .ff-checkbox + label:before,
  .ff-checkbox + label:after {
    position: absolute;
    display: block;
    content: "";
    width: 24px;
    height: 24px;
    top: 50%;
    left: 0;
    margin-top: -12px;
    box-sizing: border-box; }
  .ff-checkbox + label:before {
    border: 1px solid #10549b;
    background-color: #e1eefc; }
  .ff-checkbox + label:after {
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    background-image: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wgARCAAwADADAREAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAgGBP/EABgBAQEBAQEAAAAAAAAAAAAAAAAGBAII/9oADAMBAAIQAxAAAACH/Xnl8AAAAVVJ0sq1k0NRk0ZfXnueDsuLvmJbmPFvQ1hVMnTStVzUQ3UcANvg14jfkAAAA//EADQQAAACBwUFBgcBAAAAAAAAAAEDAgQFBgcSEwgJFBUiEBEhQkMAJDAxMoMYICMzNGFyov/aAAgBAQABPwDwrMF1G+lo+z824ipLWSMRSoZaNIhZzSZZNVzeuikVTTL5kdW1lwbeRsQ5aL2KzNqu+yaWKWsQUFKoaJSGgUpx3pgIcER2XW11whaFIGI0Re4Q0Z3u5pPilfoHonlU1gsvl1fz53pt6adavXBcpyu4Q4UPSHA3MZ8Md1SEDy5Dyk+bVtuv71Uyy2pA4D9F5pDVb8gmo5ZKKyf0SEzzah5qHNp7EXF8LmzF9XiIpPDPB06beysAt8NxOH+8K1ifygn9P+e16hei/FIeDiOL3GG7N93M58Mf1iEDyqZ5SfMM3yqFoh8WZCFccMhsSOmvyV1HCEDUkPE9H6goVA3GauCX68vC/8QALBEAAQIDBAkFAQAAAAAAAAAAAQQRAgYxAxQhQQAFEBIiMDJRgRYgIyShcf/aAAgBAgEBPwDla0mxMjVwo23oi71DYAjLF9sS2xhthYRHiNAx/uyapqKM3NHjanw1DmGLjSVJVCAXlTjan86hlEQXB2zTKYXG9pcLYftBmQAwGnrtdCnKOKD5+7ju9N3d6dJTla4/aVY2p8N1DIkFwfbFq1OVAVGHjGbns1KU5X//xAAqEQABAgQEBQQDAAAAAAAAAAABBBECAwYxFCFBoQAQIjBRBRIgIyRxgf/aAAgBAwEBPwDtem0xPVpolRLQhmsXzIOuTc4Uc6KSZ4HSLn+typumwqGKVZShvcaFwx4qSpMacOnyljex1ANxzpupcGMMpzlHa50BJc8CjEcU8KoYvp8MfDX9z34qWpMZ+Mmyljex1DhiPjCvnwyCmEXQdGHl/wB37X//2Q==);
    background-size: cover; }
  .ff-checkbox:checked + label:after {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .ff-checkbox:not(:checked) + label:after {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  .ff-checkbox:disabled + label:before {
    box-shadow: none;
    border-color: #bbb;
    background-color: #ddd; }
  .ff-checkbox:disabled:checked + label:after {
    background-image: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAgMDAwMDBAcFBAQEBAkGBwUHCgkLCwoJCgoMDREODAwQDAoKDhQPEBESExMTCw4UFhQSFhESExL/2wBDAQMDAwQEBAgFBQgSDAoMEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhL/wgARCAAwADADAREAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAcFAwb/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAD0AAAAAKMTkGgZ5YDkSQFcKOTgkYANYyQAAAD/xAAvEAABAAgCCQMFAAAAAAAAAAACAQMFBhESEyEEBwAQFBUjMUFCgiIwMggWICQz/9oACAEBAAE/APac3JJrPa6+LbtTZMGpk2f0gs2iKwgLvQkZUj1RfWpYGPXspe0lKiOBw0tVbUFEsxSotGKb25asl8mUPUO/Xs4DvqPKvGoHYaDGUxHpfTOjOk33PdLvcFgqfKvGQ+4EGMDFOvJvOtLmBuR5R2hgLfChCofYCTKJkPW2gfTa7uIboNzDY6LrHH9agt6BJ86lT+l+WmdOc33oW53a4LBUeVeamfeCDGBiXW/4qnqailhLWMqxUGavlqKKQXgc6PVCb5X5+1//xAAUEQEAAAAAAAAAAAAAAAAAAABQ/9oACAECAQE/ABP/xAAUEQEAAAAAAAAAAAAAAAAAAABQ/9oACAEDAQE/ABP/2Q==); }
  .ff-checkbox:disabled + label {
    color: #454545; }

select.ff-input {
  padding-right: 2.5em;
  width: 100%; }
  select.ff-input::-ms-expand {
    display: none; }

.ie9 select.ff-input {
  padding-right: 0.9em; }

.ff-val-msg {
  border-color: #c03;
  color: #c03;
  padding: 1em;
  left: 100%;
  top: 32px;
  min-width: 15em;
  margin-left: 0.9em; }
  .ff-val-msg:before {
    border-right-color: #c03; }

@-moz-document url-prefix() {
  .ff-val-msg {
    top: 33px; } }
