/*
 *  Usage:
 *
      <div class="sk-rotating-plane"></div>
 *
 */
.sk-rotating-plane {
  width: 40px;
  height: 40px;
  background-color: #333;
  margin: 40px auto;
  -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
          animation: sk-rotatePlane 1.2s infinite ease-in-out; }

@-webkit-keyframes sk-rotatePlane {
  0% {
    -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
            transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
  50% {
    -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
            transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
  100% {
    -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
            transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }

@keyframes sk-rotatePlane {
  0% {
    -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
            transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
  50% {
    -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
            transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
  100% {
    -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
            transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }

/*
 *  Usage:
 *
      <div class="sk-double-bounce">
        <div class="sk-child sk-double-bounce1"></div>
        <div class="sk-child sk-double-bounce2"></div>
      </div>
 *
 */
.sk-double-bounce {
  width: 40px;
  height: 40px;
  position: relative;
  margin: 40px auto; }
  .sk-double-bounce .sk-child {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #333;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
            animation: sk-doubleBounce 2s infinite ease-in-out; }
  .sk-double-bounce .sk-double-bounce2 {
    -webkit-animation-delay: -1.0s;
            animation-delay: -1.0s; }

@-webkit-keyframes sk-doubleBounce {
  0%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes sk-doubleBounce {
  0%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 *  Usage:
 *
      <div class="sk-wave">
        <div class="sk-rect sk-rect1"></div>
        <div class="sk-rect sk-rect2"></div>
        <div class="sk-rect sk-rect3"></div>
        <div class="sk-rect sk-rect4"></div>
        <div class="sk-rect sk-rect5"></div>
      </div>
 *
 */
.sk-wave {
  margin: 40px auto;
  width: 50px;
  height: 40px;
  text-align: center;
  font-size: 10px; }
  .sk-wave .sk-rect {
    background-color: #333;
    height: 100%;
    width: 6px;
    display: inline-block;
    -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
            animation: sk-waveStretchDelay 1.2s infinite ease-in-out; }
  .sk-wave .sk-rect1 {
    -webkit-animation-delay: -1.2s;
            animation-delay: -1.2s; }
  .sk-wave .sk-rect2 {
    -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s; }
  .sk-wave .sk-rect3 {
    -webkit-animation-delay: -1s;
            animation-delay: -1s; }
  .sk-wave .sk-rect4 {
    -webkit-animation-delay: -0.9s;
            animation-delay: -0.9s; }
  .sk-wave .sk-rect5 {
    -webkit-animation-delay: -0.8s;
            animation-delay: -0.8s; }

@-webkit-keyframes sk-waveStretchDelay {
  0%, 40%, 100% {
    -webkit-transform: scaleY(0.4);
            transform: scaleY(0.4); }
  20% {
    -webkit-transform: scaleY(1);
            transform: scaleY(1); } }

@keyframes sk-waveStretchDelay {
  0%, 40%, 100% {
    -webkit-transform: scaleY(0.4);
            transform: scaleY(0.4); }
  20% {
    -webkit-transform: scaleY(1);
            transform: scaleY(1); } }

/*
 *  Usage:
 *
      <div class="sk-wandering-cubes">
        <div class="sk-cube sk-cube1"></div>
        <div class="sk-cube sk-cube2"></div>
      </div>
 *
 */
.sk-wandering-cubes {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative; }
  .sk-wandering-cubes .sk-cube {
    background-color: #333;
    width: 10px;
    height: 10px;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both;
            animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both; }
  .sk-wandering-cubes .sk-cube2 {
    -webkit-animation-delay: -0.9s;
            animation-delay: -0.9s; }

@-webkit-keyframes sk-wanderingCube {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  25% {
    -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
            transform: translateX(30px) rotate(-90deg) scale(0.5); }
  50% {
    /* Hack to make FF rotate in the right direction */
    -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
            transform: translateX(30px) translateY(30px) rotate(-179deg); }
  50.1% {
    -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
            transform: translateX(30px) translateY(30px) rotate(-180deg); }
  75% {
    -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
            transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); }
  100% {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

@keyframes sk-wanderingCube {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  25% {
    -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
            transform: translateX(30px) rotate(-90deg) scale(0.5); }
  50% {
    /* Hack to make FF rotate in the right direction */
    -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
            transform: translateX(30px) translateY(30px) rotate(-179deg); }
  50.1% {
    -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
            transform: translateX(30px) translateY(30px) rotate(-180deg); }
  75% {
    -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
            transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5); }
  100% {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

/*
 *  Usage:
 *
      <div class="sk-spinner sk-spinner-pulse"></div>
 *
 */
.sk-spinner-pulse {
  width: 40px;
  height: 40px;
  margin: 40px auto;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
          animation: sk-pulseScaleOut 1s infinite ease-in-out; }

@-webkit-keyframes sk-pulseScaleOut {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

@keyframes sk-pulseScaleOut {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 0; } }

/*
 *  Usage:
 *
      <div class="sk-chasing-dots">
        <div class="sk-child sk-dot1"></div>
        <div class="sk-child sk-dot2"></div>
      </div>
 *
 */
.sk-chasing-dots {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
  text-align: center;
  -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
          animation: sk-chasingDotsRotate 2s infinite linear; }
  .sk-chasing-dots .sk-child {
    width: 60%;
    height: 60%;
    display: inline-block;
    position: absolute;
    top: 0;
    background-color: #333;
    border-radius: 100%;
    -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
            animation: sk-chasingDotsBounce 2s infinite ease-in-out; }
  .sk-chasing-dots .sk-dot2 {
    top: auto;
    bottom: 0;
    -webkit-animation-delay: -1s;
            animation-delay: -1s; }

@-webkit-keyframes sk-chasingDotsRotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes sk-chasingDotsRotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@-webkit-keyframes sk-chasingDotsBounce {
  0%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes sk-chasingDotsBounce {
  0%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 *  Usage:
 *
      <div class="sk-three-bounce">
        <div class="sk-child sk-bounce1"></div>
        <div class="sk-child sk-bounce2"></div>
        <div class="sk-child sk-bounce3"></div>
      </div>
 *
 */
.sk-three-bounce {
  margin: 40px auto;
  width: 80px;
  text-align: center; }
  .sk-three-bounce .sk-child {
    width: 20px;
    height: 20px;
    background-color: #333;
    border-radius: 100%;
    display: inline-block;
    -webkit-animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
            animation: sk-three-bounce 1.4s ease-in-out 0s infinite both; }
  .sk-three-bounce .sk-bounce1 {
    -webkit-animation-delay: -0.32s;
            animation-delay: -0.32s; }
  .sk-three-bounce .sk-bounce2 {
    -webkit-animation-delay: -0.16s;
            animation-delay: -0.16s; }

@-webkit-keyframes sk-three-bounce {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  40% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes sk-three-bounce {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  40% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 *  Usage:
 *
      <div class="sk-circle">
        <div class="sk-circle1 sk-child"></div>
        <div class="sk-circle2 sk-child"></div>
        <div class="sk-circle3 sk-child"></div>
        <div class="sk-circle4 sk-child"></div>
        <div class="sk-circle5 sk-child"></div>
        <div class="sk-circle6 sk-child"></div>
        <div class="sk-circle7 sk-child"></div>
        <div class="sk-circle8 sk-child"></div>
        <div class="sk-circle9 sk-child"></div>
        <div class="sk-circle10 sk-child"></div>
        <div class="sk-circle11 sk-child"></div>
        <div class="sk-circle12 sk-child"></div>
      </div>
 *
 */
.sk-circle {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative; }
  .sk-circle .sk-child {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0; }
  .sk-circle .sk-child:before {
    content: '';
    display: block;
    margin: 0 auto;
    width: 15%;
    height: 15%;
    background-color: #333;
    border-radius: 100%;
    -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
            animation: sk-circleBounceDelay 1.2s infinite ease-in-out both; }
  .sk-circle .sk-circle2 {
    -webkit-transform: rotate(30deg);
        -ms-transform: rotate(30deg);
            transform: rotate(30deg); }
  .sk-circle .sk-circle3 {
    -webkit-transform: rotate(60deg);
        -ms-transform: rotate(60deg);
            transform: rotate(60deg); }
  .sk-circle .sk-circle4 {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg); }
  .sk-circle .sk-circle5 {
    -webkit-transform: rotate(120deg);
        -ms-transform: rotate(120deg);
            transform: rotate(120deg); }
  .sk-circle .sk-circle6 {
    -webkit-transform: rotate(150deg);
        -ms-transform: rotate(150deg);
            transform: rotate(150deg); }
  .sk-circle .sk-circle7 {
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
  .sk-circle .sk-circle8 {
    -webkit-transform: rotate(210deg);
        -ms-transform: rotate(210deg);
            transform: rotate(210deg); }
  .sk-circle .sk-circle9 {
    -webkit-transform: rotate(240deg);
        -ms-transform: rotate(240deg);
            transform: rotate(240deg); }
  .sk-circle .sk-circle10 {
    -webkit-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
            transform: rotate(270deg); }
  .sk-circle .sk-circle11 {
    -webkit-transform: rotate(300deg);
        -ms-transform: rotate(300deg);
            transform: rotate(300deg); }
  .sk-circle .sk-circle12 {
    -webkit-transform: rotate(330deg);
        -ms-transform: rotate(330deg);
            transform: rotate(330deg); }
  .sk-circle .sk-circle2:before {
    -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s; }
  .sk-circle .sk-circle3:before {
    -webkit-animation-delay: -1s;
            animation-delay: -1s; }
  .sk-circle .sk-circle4:before {
    -webkit-animation-delay: -0.9s;
            animation-delay: -0.9s; }
  .sk-circle .sk-circle5:before {
    -webkit-animation-delay: -0.8s;
            animation-delay: -0.8s; }
  .sk-circle .sk-circle6:before {
    -webkit-animation-delay: -0.7s;
            animation-delay: -0.7s; }
  .sk-circle .sk-circle7:before {
    -webkit-animation-delay: -0.6s;
            animation-delay: -0.6s; }
  .sk-circle .sk-circle8:before {
    -webkit-animation-delay: -0.5s;
            animation-delay: -0.5s; }
  .sk-circle .sk-circle9:before {
    -webkit-animation-delay: -0.4s;
            animation-delay: -0.4s; }
  .sk-circle .sk-circle10:before {
    -webkit-animation-delay: -0.3s;
            animation-delay: -0.3s; }
  .sk-circle .sk-circle11:before {
    -webkit-animation-delay: -0.2s;
            animation-delay: -0.2s; }
  .sk-circle .sk-circle12:before {
    -webkit-animation-delay: -0.1s;
            animation-delay: -0.1s; }

@-webkit-keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  40% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  40% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

/*
 *  Usage:
 *
      <div class="sk-cube-grid">
        <div class="sk-cube sk-cube1"></div>
        <div class="sk-cube sk-cube2"></div>
        <div class="sk-cube sk-cube3"></div>
        <div class="sk-cube sk-cube4"></div>
        <div class="sk-cube sk-cube5"></div>
        <div class="sk-cube sk-cube6"></div>
        <div class="sk-cube sk-cube7"></div>
        <div class="sk-cube sk-cube8"></div>
        <div class="sk-cube sk-cube9"></div>
      </div>
 *
 */
.sk-cube-grid {
  width: 40px;
  height: 40px;
  margin: 40px auto;
  /*
   * Spinner positions
   * 1 2 3
   * 4 5 6
   * 7 8 9
   */ }
  .sk-cube-grid .sk-cube {
    width: 33.33%;
    height: 33.33%;
    background-color: #333;
    float: left;
    -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
            animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }
  .sk-cube-grid .sk-cube1 {
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s; }
  .sk-cube-grid .sk-cube2 {
    -webkit-animation-delay: 0.3s;
            animation-delay: 0.3s; }
  .sk-cube-grid .sk-cube3 {
    -webkit-animation-delay: 0.4s;
            animation-delay: 0.4s; }
  .sk-cube-grid .sk-cube4 {
    -webkit-animation-delay: 0.1s;
            animation-delay: 0.1s; }
  .sk-cube-grid .sk-cube5 {
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s; }
  .sk-cube-grid .sk-cube6 {
    -webkit-animation-delay: 0.3s;
            animation-delay: 0.3s; }
  .sk-cube-grid .sk-cube7 {
    -webkit-animation-delay: 0.0s;
            animation-delay: 0.0s; }
  .sk-cube-grid .sk-cube8 {
    -webkit-animation-delay: 0.1s;
            animation-delay: 0.1s; }
  .sk-cube-grid .sk-cube9 {
    -webkit-animation-delay: 0.2s;
            animation-delay: 0.2s; }

@-webkit-keyframes sk-cubeGridScaleDelay {
  0%, 70%, 100% {
    -webkit-transform: scale3D(1, 1, 1);
            transform: scale3D(1, 1, 1); }
  35% {
    -webkit-transform: scale3D(0, 0, 1);
            transform: scale3D(0, 0, 1); } }

@keyframes sk-cubeGridScaleDelay {
  0%, 70%, 100% {
    -webkit-transform: scale3D(1, 1, 1);
            transform: scale3D(1, 1, 1); }
  35% {
    -webkit-transform: scale3D(0, 0, 1);
            transform: scale3D(0, 0, 1); } }

/*
 *  Usage:
 *
      <div class="sk-fading-circle">
        <div class="sk-circle1 sk-circle"></div>
        <div class="sk-circle2 sk-circle"></div>
        <div class="sk-circle3 sk-circle"></div>
        <div class="sk-circle4 sk-circle"></div>
        <div class="sk-circle5 sk-circle"></div>
        <div class="sk-circle6 sk-circle"></div>
        <div class="sk-circle7 sk-circle"></div>
        <div class="sk-circle8 sk-circle"></div>
        <div class="sk-circle9 sk-circle"></div>
        <div class="sk-circle10 sk-circle"></div>
        <div class="sk-circle11 sk-circle"></div>
        <div class="sk-circle12 sk-circle"></div>
      </div>
 *
 */
.sk-fading-circle {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative; }
  .sk-fading-circle .sk-circle {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0; }
  .sk-fading-circle .sk-circle:before {
    content: '';
    display: block;
    margin: 0 auto;
    width: 15%;
    height: 15%;
    background-color: #333;
    border-radius: 100%;
    -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both;
            animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; }
  .sk-fading-circle .sk-circle2 {
    -webkit-transform: rotate(30deg);
        -ms-transform: rotate(30deg);
            transform: rotate(30deg); }
  .sk-fading-circle .sk-circle3 {
    -webkit-transform: rotate(60deg);
        -ms-transform: rotate(60deg);
            transform: rotate(60deg); }
  .sk-fading-circle .sk-circle4 {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg); }
  .sk-fading-circle .sk-circle5 {
    -webkit-transform: rotate(120deg);
        -ms-transform: rotate(120deg);
            transform: rotate(120deg); }
  .sk-fading-circle .sk-circle6 {
    -webkit-transform: rotate(150deg);
        -ms-transform: rotate(150deg);
            transform: rotate(150deg); }
  .sk-fading-circle .sk-circle7 {
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }
  .sk-fading-circle .sk-circle8 {
    -webkit-transform: rotate(210deg);
        -ms-transform: rotate(210deg);
            transform: rotate(210deg); }
  .sk-fading-circle .sk-circle9 {
    -webkit-transform: rotate(240deg);
        -ms-transform: rotate(240deg);
            transform: rotate(240deg); }
  .sk-fading-circle .sk-circle10 {
    -webkit-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
            transform: rotate(270deg); }
  .sk-fading-circle .sk-circle11 {
    -webkit-transform: rotate(300deg);
        -ms-transform: rotate(300deg);
            transform: rotate(300deg); }
  .sk-fading-circle .sk-circle12 {
    -webkit-transform: rotate(330deg);
        -ms-transform: rotate(330deg);
            transform: rotate(330deg); }
  .sk-fading-circle .sk-circle2:before {
    -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s; }
  .sk-fading-circle .sk-circle3:before {
    -webkit-animation-delay: -1s;
            animation-delay: -1s; }
  .sk-fading-circle .sk-circle4:before {
    -webkit-animation-delay: -0.9s;
            animation-delay: -0.9s; }
  .sk-fading-circle .sk-circle5:before {
    -webkit-animation-delay: -0.8s;
            animation-delay: -0.8s; }
  .sk-fading-circle .sk-circle6:before {
    -webkit-animation-delay: -0.7s;
            animation-delay: -0.7s; }
  .sk-fading-circle .sk-circle7:before {
    -webkit-animation-delay: -0.6s;
            animation-delay: -0.6s; }
  .sk-fading-circle .sk-circle8:before {
    -webkit-animation-delay: -0.5s;
            animation-delay: -0.5s; }
  .sk-fading-circle .sk-circle9:before {
    -webkit-animation-delay: -0.4s;
            animation-delay: -0.4s; }
  .sk-fading-circle .sk-circle10:before {
    -webkit-animation-delay: -0.3s;
            animation-delay: -0.3s; }
  .sk-fading-circle .sk-circle11:before {
    -webkit-animation-delay: -0.2s;
            animation-delay: -0.2s; }
  .sk-fading-circle .sk-circle12:before {
    -webkit-animation-delay: -0.1s;
            animation-delay: -0.1s; }

@-webkit-keyframes sk-circleFadeDelay {
  0%, 39%, 100% {
    opacity: 0; }
  40% {
    opacity: 1; } }

@keyframes sk-circleFadeDelay {
  0%, 39%, 100% {
    opacity: 0; }
  40% {
    opacity: 1; } }

/*
 *  Usage:
 *
      <div class="sk-folding-cube">
        <div class="sk-cube1 sk-cube"></div>
        <div class="sk-cube2 sk-cube"></div>
        <div class="sk-cube4 sk-cube"></div>
        <div class="sk-cube3 sk-cube"></div>
      </div>
 *
 */
.sk-folding-cube {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
  -webkit-transform: rotateZ(45deg);
          transform: rotateZ(45deg); }
  .sk-folding-cube .sk-cube {
    float: left;
    width: 50%;
    height: 50%;
    position: relative;
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .sk-folding-cube .sk-cube:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #333;
    -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;
            animation: sk-foldCubeAngle 2.4s infinite linear both;
    -webkit-transform-origin: 100% 100%;
        -ms-transform-origin: 100% 100%;
            transform-origin: 100% 100%; }
  .sk-folding-cube .sk-cube2 {
    -webkit-transform: scale(1.1) rotateZ(90deg);
            transform: scale(1.1) rotateZ(90deg); }
  .sk-folding-cube .sk-cube3 {
    -webkit-transform: scale(1.1) rotateZ(180deg);
            transform: scale(1.1) rotateZ(180deg); }
  .sk-folding-cube .sk-cube4 {
    -webkit-transform: scale(1.1) rotateZ(270deg);
            transform: scale(1.1) rotateZ(270deg); }
  .sk-folding-cube .sk-cube2:before {
    -webkit-animation-delay: 0.3s;
            animation-delay: 0.3s; }
  .sk-folding-cube .sk-cube3:before {
    -webkit-animation-delay: 0.6s;
            animation-delay: 0.6s; }
  .sk-folding-cube .sk-cube4:before {
    -webkit-animation-delay: 0.9s;
            animation-delay: 0.9s; }

@-webkit-keyframes sk-foldCubeAngle {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
            transform: perspective(140px) rotateX(-180deg);
    opacity: 0; }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
            transform: perspective(140px) rotateX(0deg);
    opacity: 1; }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
            transform: perspective(140px) rotateY(180deg);
    opacity: 0; } }

@keyframes sk-foldCubeAngle {
  0%, 10% {
    -webkit-transform: perspective(140px) rotateX(-180deg);
            transform: perspective(140px) rotateX(-180deg);
    opacity: 0; }
  25%, 75% {
    -webkit-transform: perspective(140px) rotateX(0deg);
            transform: perspective(140px) rotateX(0deg);
    opacity: 1; }
  90%, 100% {
    -webkit-transform: perspective(140px) rotateY(180deg);
            transform: perspective(140px) rotateY(180deg);
    opacity: 0; } }
/* products */
html.viewer-open { overflow: hidden; }
.umsg .umsg-alert { z-index: 1040; }
div.product .product-img a { position: relative; display: block; }

/* viewer */
#product-viewer { z-index: 1039; position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; margin: 0; padding: 0; background-color: #ffffff; }
#product-viewer.viewer-hidden { display: none !important; visibility: hidden !important; }
#product-page { margin: 0; padding: 0; background: #ffffff; overflow: hidden; position: relative;}

/* viewer - view */
#product-view { width: calc(100% - 520px); min-height: 470px; height: 100vh; padding: 0; display: flex; align-items: center; }
#product-view.nav-open { height: calc(100vh - 109px) !important; } /* height of nav bar */
#product-view.expand { width: 100% !important; }
#product-view .product-nav { cursor: pointer; font-size: 50px; color: #000000; }
#product-view .product-nav i { text-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff, 1px 0 0 #fff, -1px 0 0 #fff, 0px -1px 0 #fff, 0 1px 0 #fff; margin: 0 20px; color: #000000; }
#product-view .product-expand { position: absolute; bottom: 32px; right: 32px; width: 40px; height: 40px; padding: 8px 9px 10px; background-color: #ffffff; border: 1px solid #81828f; font-size: 19px; color: #81828f; text-align: center; cursor: pointer; }

#product-view .prd-slider { text-align: center; width: calc(100% - 207.16px); user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; }
#product-view .prd-slider-nav { cursor: pointer; font-size: 20px; color: #000000; }
#product-view .prd-slider-gallery-controls { display: flex; text-align: center; flex-direction: column; margin-right: 20px; }
#product-view .prd-slider-gallery-controls.show { display: flex !important; }
#product-view .prd-slider-gallery-controls.hide + .prd-slider { width: calc(100% - 137.16px); } /* -50px when gallery is hidden */
#product-view .prd-slider > div { display: none; }
#product-view .prd-slider > .active { display: inline-block; }
#product-view .prd-slider-gallery { max-height: 440px; overflow: hidden; margin: 10px 0; }
#product-view .prd-slider-gallery .prd-gallery-list { transition-duration: 400ms; transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -webkit-transform: translateY(0); -o-transform: translateY(0); }
#product-view .prd-slider-gallery .prd-gallery-list > div { margin-bottom: 15px; }
#product-view .prd-slider-gallery .prd-gallery-list > div:last-child { margin: 0; }
#product-view .prd-slider-gallery .prd-gallery-list > div.active img { border: 1px solid #e74c3c!important; }

#product-view .tooltip-inner, #product-sidebar .tooltip-inner { color: #000000; background-color: #ecf0f1; font-size: 14px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; }
#product-view .tooltip.top .tooltip-arrow { border-width: 12px 6px 0; border-top-color: #ecf0f1; bottom: -7px; }
#product-view .tooltip.bottom .tooltip-arrow { border-width: 0 6px 12px; border-bottom-color: #ecf0f1; top: -7px; }
#product-view .tooltip.left .tooltip-arrow { border-width: 6px 0 6px 12px; border-left-color: #ecf0f1; right: -7px; }
#product-view .tooltip.right .tooltip-arrow { border-width: 6px 12px 6px 0; border-right-color: #ecf0f1; left: -7px; }
#product-view .tooltip .tooltip-inner { padding: 8px 16px; max-width: 100%; white-space: nowrap; }
#product-view .prd-slider-nav .vertical + .tooltip  { margin-left: 72px; margin-top: -12px; left: 0 !important; }
#product-view .prd-slider-nav .vertical + .tooltip.bottom { margin-top: 12px; }
#product-view .prd-slider-nav .vertical + .tooltip .tooltip-arrow { left: 11% !important; }
#product-view .prd-slider-nav .horizontal + .tooltip.left { margin-left: -15px; }
#product-view .prd-slider-nav .horizontal + .tooltip.right { margin-left: 15px; }
#product-view .product-nav.product-prev + .tooltip.top { margin-top: -18px; margin-left: 20px; left: 0 !important; }
#product-view .product-nav.product-prev + .tooltip.top .tooltip-arrow { left: 11% !important; }
#product-view .product-nav.product-next + .tooltip.top { left: auto !important; right: 0; margin-right: 20px; margin-top: -18px; }
#product-view .product-nav.product-next + .tooltip.top .tooltip-arrow { left: 85% !important; }
#product-viewer .prd-slider-nav .vertical + .tooltip.bottom { margin-top: 7px; }

#product-view .learn-more { position: absolute; bottom: 32px; left: 32px; padding: 12px; color: #fff; background-color: #000; border: 1px solid #fff; cursor: pointer; }
#product-view .learn-more i { margin: 0 0 0 4px; padding: 0; }
#product-view .save-to-folder { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); padding: 12px 26px; border: 1px solid #e74c3c; }

/* viewer - sidebar */
#product-sidebar { position: absolute; top: 0; right: 0; width: 520px; padding: 0; background-color: #fff; transition: right 250ms ease-out; z-index: 3; border-left: solid 1px #bdc3c7; }
#product-sidebar.expand { right: -520px; }
#product-sidebar .tooltip-inner { font-size: 12px; }
#product-sidebar .tooltip-arrow { border-bottom-color: #ecf0f1; }

#product-tabs { position: absolute; width: 100%; top: 0; right: 0; }
#product-tabs ul { height: 46px; margin: 0; padding-left: 0; background-color: #f4f4f4; list-style: none; }
#product-tabs ul li { position: relative; display: inline-block; float: left; width: 50px; height: 46px; padding: 16px 0 15px; border-right: 1px solid #e6e6e6; text-align: center; transition: all 250ms ease-in-out; cursor: pointer; }
#product-tabs ul li.current { cursor: default; background-color: #fff; border-right-color: transparent; box-shadow: 2px -1px 1px rgba(0,0,0,0.08), -2px -1px 1px rgba(0,0,0,0.08); z-index: 1; }
#product-tabs ul li.current::before { content: ""; position: absolute; top: 0; left: 0; height: 3px; width: calc(100% + 1px); background-color: #ff6a5a; }
#product-tabs ul li:first-child { border-left-color: transparent; }
#product-tabs ul li:first-child.current { box-shadow: 2px -1px 2px rgba(0,0,0,0.08); }
#product-tabs ul li:first-child.disabled { cursor: default; }
#product-tabs ul li i { transition: all 250ms ease-in-out; font-size: 18px; color: #666; }
#product-tabs ul li.disabled i { color: #ccc; }
#product-tabs .viewer-close { position: absolute; top: 0; right: 0; width: 46px; height: 46px; padding: 11px; background-color: #fff; font-size: 24px; color: #000; }
#product-tabs .viewer-close i { cursor: pointer; }

#product-info { position: relative; width: 100%; height: calc(100vh - 45px); margin-top: 45px; padding-top: 1px; }
#product-sidebar.nav-open #product-info { height: calc(100vh - 108px) !important; }  /* 45px + height of nav bar */

#product-tabs::after, #product-info::after { content: ""; position: absolute; left: 1px; right: 0; height: 16px; pointer-events: none; }
#product-tabs::after { top: 46px; height: 16px; background: linear-gradient(to bottom, #fff 10%, rgba(255,255,255,0) 100%); z-index: 1; }
#product-info::after { top: calc(100% - 16px); background: linear-gradient(to top, #fff 10%, rgba(255,255,255,0) 100%); }

.product-info-scroll { position: absolute; overflow-x: hidden; overflow-y: scroll; height: 100%; width: 100%; }
.product-info-body { position: relative; min-width: 100%; padding: 25px 0 30px; }
div.product-info { position: relative; padding: 20px 30px 10px; }
.product-info h1 { margin-top: 0; font-size: 24px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; color: #e74c3c; }
.product-info h2 { margin-top: 0; margin-bottom: 6px; font-size: 12px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; color: #e74c3c; text-transform: uppercase; }
.product-info h3 { margin-top: 0; margin-bottom: 12px; font-size: 18px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; color: #e74c3c; }

.product-info.downloads h2 { font-size: 18px; text-transform: capitalize; }
.product-info .product-downloads { background-color: #ecf0f1; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, Arial, sans-serif; padding: 14px 18px 8px 18px; margin-top: 12px; }
.product-info .product-downloads h4 { font-size: 20px; margin-top: 0; margin-bottom: 15px; }
.product-info .product-downloads .row > div { margin-bottom: 10px; padding-left: 0; }
.product-info .product-downloads .row > div:nth-child(4n+1) { padding-left: 15px; }
.product-info .product-download-btns { background-color: #e74c3c; }
.product-info .product-download-btns .modlar-btn { padding: 8px 0; font-size: 12px; }
.product-info .product-download-btns .modlar-btn-dropbox { font-size: 16px; }
.product-info .product-download-btns .btn-divider { border-left: 1px solid #fff; padding: 10px 0; float: left; margin: 14px 0; width: 1px; }
.product-info.spec.downloads button { background: none!important; border: none; padding: 0!important; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; color: #e74c3c; font-size: 18px; }
.product-info.spec.downloads button:hover { color: #c0392c; }

.product-info.overview { padding-top: 0 !important; }
.product-info.overview .product-share { padding: 11px 0; margin-bottom: 10px; text-align: center; }
.product-info.overview .product-share .title, .product-info.overview .product-share .title-like { display: inline-block; padding-right: 6px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, Arial, sans-serif; font-size: 13px; color: #4e4c4e; }
.product-info.overview .product-share .title-like { margin-left: 24px; }
.product-info.overview .product-share a { margin: 0 5px; font-size: 13px; color: #4E4C4E; }
.product-info.overview .product-share a:first-child { margin-left: 8px; }

.product-info.overview .product-share div.product-like { display: inline-block; text-align: right; color: #81828f; }
.product-info.overview .product-share div.product-like.disabled { pointer-events: none; cursor: default; }
.product-info.overview .product-share .p-like { display: inline-block; vertical-align: middle; font-size: 12px; }
.product-info.overview .product-share .bt-heart { cursor: pointer; }
.product-info.overview .product-share div.unlike { color: #81828f; text-align: right; }
.product-info.overview .product-share div.like { color: #e74c3c; }
.product-info.overview .product-share div.p-like { display: inline-block; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 12px; vertical-align: middle; }

.product-info.overview .overview-details { margin: 0; padding: 0; list-style: none; }
.product-info.overview .overview-details .overview-item { margin-bottom: 4px; font-size: 13px; color: #4e4c4e; position: relative;}
.product-info.overview .overview-details .overview-item .item { position: absolute; left: 0; }
.product-info.overview .overview-details .overview-item .item > div { margin-left: 14px; }
.product-info.overview .overview-details .overview-item .glyphicon-stop { position: absolute; font-size: 6px;  color: #e74c3c; top: 7px; }
.product-info.overview .overview-details .overview-item a:hover { color: #c0392c; text-decoration: none; }
.product-info.overview .overview-intro { margin-top: 28px; font-size: 14px; line-height: 20px; }
.product-info.overview .overview-intro p:last-child { margin-bottom: 0; }
.product-info.overview .where-to-buy-btn { margin: 5px 0 0 30px; font-size: 12px; }
.product-info a.morelink:hover { color: #c0392c; text-decoration: none; }

.product-info.formats a, .product-info.materials a, .product-info.csi-divisions a, .product-info.product-tags a { display: inline-block; height: 30px; margin-right: 6px; margin-top: 10px; }
.product-info.formats a:hover, .product-info.materials a:hover, .product-info.csi-divisions a:hover, .product-info.product-tags a:hover, .product-info.formats a:focus, .product-info.materials a:focus, .product-info.csi-divisions a:focus, .product-info.product-tags a:focus { text-decoration: none; }
.product-info.formats span.label, .product-info.materials span.label, .product-info.csi-divisions span.label, .product-info.product-tags span.label { padding: 6px 12px; color: #333; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-weight: normal; font-size: 13px; border-radius: 2px; background-color: #ecf0f1; }
.product-info.formats span.label:hover, .product-info.materials span.label:hover, .product-info.csi-divisions span.label:hover, .product-info.product-tags span.label:hover { background-color: #d4d8d9; }

.product-info.related-photos a { float: left; margin: 0 13px 13px 0; }
.product-info.related-photos a:nth-of-type(5n) { margin-right: 0; }
.product-info.related-photos { padding-bottom: 0 !important; }

.product-info.related-products { padding-bottom: 0 !important; }
.product-info.related-products .related-product { position: relative; clear: both; margin-bottom: 10px; padding: 2px 0 0 74px; min-height: 64px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 14px; }
.product-info.related-products .related-product a { display: block; color: #000; }
.product-info.related-products .related-product a:hover { color: #e74c3c; text-decoration: none; }
.product-info.related-products .related-product a:first-of-type { position: absolute; top: 0; left: 0; }
.product-info.related-products .related-product a.related-product-brand { font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 12px; }

.product-info.manufacturer { padding-bottom: 0 !important; }
.product-info.manufacturer .contact-brand { margin-top: 33px; }
.product-info.manufacturer .contact-brand .modlar-btn { font-size: 12px; }
.product-info.manufacturer .brand-img { max-width: 130px; text-align: center; }
.product-info.manufacturer .brand-img img { margin: 0 auto; padding: 6px; border: 1px solid #bdc3c7; }
.product-info.manufacturer .brand-info { padding-left: 0px; }
.product-info.manufacturer .brand-title h4 { margin: 0 10px 0 0; font-size: 18px; text-decoration: none !important; }
.product-info.manufacturer .brand-title > a:hover { color: #e74c3c; }
.product-info.manufacturer div[itemprop="description"] { font-size: 13px; line-height: 18px; margin: 12px 0 0 0; }
.product-info.manufacturer .brand-follow a { background-color: #e74c3c; border: 1px solid #e74c3c; color: #fff; cursor: pointer; display: inline-block; font-size: 10px; line-height: 10px; margin-top: 3px; min-width: 79px; padding: 7px 8px 6px; text-align: center; text-decoration: none; text-transform: uppercase; }
.product-info.manufacturer .brand-follow a:hover { background-color: #c0392b; border: 1px solid #c0392b; }
.product-info.manufacturer .brand-follow .brand-following { background-color: #47c67f !important; border: 1px solid #47c67f !important; }
.product-info.manufacturer .brand-follow .brand-unfollow:hover { background-color: #fff !important; border: 1px solid #47c67f !important; color: #47c67f !important; }
.product-info.manufacturer .brand-products { margin-top: 30px; }
.product-info.manufacturer .brand-products > div { margin-right: -15px; }
.product-info.manufacturer .brand-products a { margin: 0 10px 10px 0; }

.product-info.questions { padding: 20px 0 10px !important; }
.product-info.questions .ask-product-question { padding: 0 30px; }
.product-info.questions .ask-product-question h3 { margin-top: 9px; margin-bottom: 0; }
.product-info.questions .ask-product-question a.modlar-btn { font-size: 12px; padding: 8px 13px; bottom: 14px; }
.product-info.questions .expand-questions { color: #e74c3c; font-size: 14px; font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; margin-top: 18px; cursor: pointer; }
.product-info.questions .expand-answers { color: #e74c3c; cursor: pointer; }

#product-questions .question { margin-top: 35px; margin-bottom: 25px; padding: 0 30px; }
#product-questions .question-user-avatar { width: 30px; height: 30px; float: left; margin-right: 8px; }
#product-questions .question-content { float: left; width: 420px; }
#product-questions .question-content .question-user { font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 14px; color: #4e4c4e; text-decoration: none !important; }
#product-questions .question-content .question-title { font-family: 'geomanistbook', 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 14px; color: #e74c3c; display: inline; text-decoration: none !important; }
#product-questions .question-content > p { display: inline; color: #4e4c4e; font-size: 13px; font-family: 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; }

#product-questions .question-answers .question-answer-user { font-size: 13px; }
#product-questions .question-answers .question-answer-avatar, #product-questions .question-answers .question-answer-content { margin-top: 25px; }
#product-questions .question-answer-avatar { width: 30px; height: 30px; float: left; margin-right: 8px; }
#product-questions .question-answers .add-answer { padding: 0; background-color: transparent; margin-bottom: 0; }
#product-questions .question-answers .add-answer > .modlar-alert { margin: 10px 0; }
#product-questions .add-answer { padding: 14px 25px 14px 67px; background-color: #ecf0f1; }
#product-questions .add-answer .form-group { margin-bottom: 0; }
#product-questions .add-answer textarea { resize: none; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; }

#product-questions .question-answer-content { float: left; width: 380px; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 13px; }
#product-questions .question-answer-content textarea.discuss { border-bottom: none; }
#product-questions .question-answer-content textarea:focus { border-color: #ccc; outline: 0; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; }
#product-questions .question-answer-content p { margin: 0; }
#product-questions .question-answer-content button { padding: 4px 10px; margin: 0; }

#product-questions .question-answer-content div.answer-edit-menu { position: relative; display: inline-block; }
#product-questions .question-answer-content a.answer-edit, div.question-answers div.add-answer a.answer-delete { cursor: pointer; margin-left: 10px; }
#product-questions .question-answer-content a.answer-edit i, div.question-answers div.add-answer a.answer-delete i  { color: #ff6a5a; font-size: 10px; }
#product-questions .question-answer-content ul.dropdown-menu { left: 30px; font-size: 12px; min-width: 110px; -webkit-box-shadow: none; box-shadow: none; }
#product-questions .question-answer-content ul.dropdown-menu li { text-align: center; }
#product-questions .question-answer-content ul.dropdown-menu li a { padding: 3px 10px; }
#product-questions .question-answer-content .add-answer-details { margin: 0; display: none; padding: 8px; text-align: right; background-color: #fff; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; border-left: 1px solid #ccc; }
#product-questions div.answer-like { color: #81828f; line-height: 14px; }
#product-questions div.answer-like.disabled { pointer-events: none; cursor: default; }
#product-questions .a-like { margin-top: 1px; display: inline-block; vertical-align: middle; font-size: 12px; }
#product-questions .bt-heart { vertical-align: middle; font-size:13px; cursor: pointer; }
#product-questions div.unlike { color: #81828f; }
#product-questions div.like { color: #e74c3c; }
#product-questions div.a-like { display: inline-block; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; font-size: 12px; vertical-align: middle; }

/* product catalog / quote / recommend (bim_object) */
#modlar-product .product-catalog-quote-btn { display: inline-block; margin-top: 15px; margin-bottom: 15px; padding: 6px 10px; text-decoration: none; text-align: center; vertical-align: middle; color: #333; border: 1px solid #979797; cursor: pointer; font-size: 11px; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; text-transform: uppercase; }

/* ask question popup / answer delete */
#ask-question-popup .modal-dialog { width: 470px; margin: 100px auto; }
#questionfrm .modal-header { border-bottom: none; }
#questionfrm .modal-header h4 { font-size: 28px; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; color:#e74c3c; }
#questionfrm .modal-header .modlar-answers-error { background-color: #ddd; color: #333; line-height: 19px; padding: 12px; position: relative; margin-bottom: 5px; font-size: 13px; margin-top: 20px; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; }
#questionfrm .modal-header .modlar-answers-error:after { content: ""; top: 100%; left: 20px; border-top: 12px solid #ddd; position: absolute; border-left: 8px solid transparent; border-right: 8px solid transparent; }
#questionfrm .modal-body { padding: 0 15px; }
#questionfrm .modal-body #question { height: 43px; line-height: 28px; }
#questionfrm .modal-body #questiondetails { height: 165px; }
#questionfrm .modal-body .has-error .form-control { border-color: #a94442 !important; }
#questionfrm .modal-body .form-control { border: 1px solid #9b9b9b; resize: none; }
#questionfrm .modal-body p { font-size: 14px; color: #e74c3c; font-family: 'geomanistregular', 'geomanistlight', 'geomanistextralight', 'geomanistthin', Helvetica, sans-serif; }
#questionfrm .modal-footer { border-top: none; }
#questionfrm .modal-footer .ask-question-cancel { background-color: #ddd; color: #7D7D7D; }

#product-page .popover.left { margin-left: -16px; }
#product-page .popover.left > .arrow { border-left-color: #72d9a0; }

#product-sidebar #prd_affixtop.affix, #prd_affixtop.affix-top, #prd_affixtop.affix-bottom { width: 100%; }
#product-sidebar #prd_affixtop.affix-bottom { position: absolute; }

/* product loader */
.feed-item-content a .product-loading { top: 0px !important; } /* homepage feed */
a .product-loading { display: flex; justify-content: center; align-items: center; position: absolute; width: 100%; height: 100%; }
a .product-loading .spinner { float: left; margin: 0 auto; width: 50px; height: 40px; text-align: center; font-size: 10px; }
a .product-loading .spinner > div { background-color: #fff; height: 100%; width: 6px; margin: 0 3px 0 0; display: inline-block; -webkit-animation: sk-stretchdelay 1.2s infinite ease-in-out; animation: sk-stretchdelay 1.2s infinite ease-in-out; }
a .product-loading .spinner .rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; }
a .product-loading .spinner .rect3 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s; }
a .product-loading .spinner .rect4 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; }
a .product-loading .spinner .rect5 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; }
@-webkit-keyframes sk-stretchdelay {
	0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
	20% { -webkit-transform: scaleY(1.0) }
}

@keyframes sk-stretchdelay {
	0%, 40%, 100% {
		transform: scaleY(0.4);
		-webkit-transform: scaleY(0.4);
	}  20% {
		transform: scaleY(1.0);
		-webkit-transform: scaleY(1.0);
	}
}

/* media queries */
@media (max-width: 320px) { /* iphone 5 */
	#product-view .prd-slider, #product-view .product-nav-parent { position: relative; top: -16%; }
	#product-view .prd-slider-gallery { max-width: 240px; }
}

@media (max-width: 767px) { /* extra small devices (phones, less than 767px) */
	#product-view .prd-slider, #product-view .product-nav-parent { position: relative; top: -14%; }
	#product-view .prd-slider-gallery-controls { bottom: 100px; }
	#product-view .prd-slider-gallery { height: 50px; }
}

@media (min-width: 768px) and (max-width: 1023px) {
	#product-view .prd-slider, #product-view .product-nav-parent { position: relative; top: -10%; }
	#product-view .prd-slider-gallery { max-width: 310px; }
}

@media (max-width: 1023px) {
	#product-viewer { overflow-x: hidden; overflow-y: scroll; }
	#product-view { width: 100% !important; }
	#product-view.nav-open { height: calc(100vh - 86px) !important; } /* height of nav bar */
	#product-view.nav-open .product-image img { max-height: 100vh !important; }
	#product-view .product-nav { font-size: 40px; }
	#product-sidebar { position: relative; width: 100% !important; border-left: none; }
	#product-info { height: calc(100% - 45px) !important; }
	#product-info::after { background: none; }
	div.product-info { padding: 30px 20px 10px; }
	.product-info-scroll { position: relative; overflow-x: visible; overflow-y: visible; padding-right: 0; }
	.product-info.overview .product-share { width: 100%; text-align: left; }
	.product-info.overview .product-share a { margin: 0 12px; }
	.product-info.related-products a { margin: 0 5px 13px 0; }
	.product-info.questions .ask-product-question { padding: 0 20px; }
	#prdrecommend .modal-dialog, #ask-question-popup .modal-dialog { width: calc(100vw - 20px); margin: 12px auto; }
	#product-questions .question-content { width: 100%; }
	#product-questions .question-answer-content { width: 100%; }
	#product-view .save-to-folder { position: absolute; bottom: 32px; right: 32px; left: initial; transform: none; padding: 12px 26px; }
	
	#product-view .prd-slider { width: calc(100% - 125.72px); }
	#product-view .prd-slider-gallery-controls { position: absolute; flex-direction: row; left: 50%; transform: translateX(-50%); bottom: 120px; align-items: center; margin-right: 0; }
	#product-view .prd-slider-gallery { margin: 0 10px; position: relative; }
	#product-view .prd-slider-gallery .prd-gallery-list { height: 100%; transform: none; }
	#product-view .prd-slider-gallery .prd-gallery-list > div { margin-bottom: 0; margin-right: 15px; float: left; }
	#product-view .prd-slider-gallery .prd-gallery-list > div:last-child { margin: 0; }
	.product-info.overview .overview-details .overview-item { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.product-info .product-downloads .radio-inline input { -webkit-appearance : radio; }
	.product-info .product-downloads .row > div:nth-child(2n+1) { padding-left: 15px; }
	#product-view .prd-slider iframe { max-width: 100%; height: auto; }
	#product-view .tooltip .tooltip-inner { white-space: normal; }
}

@media (min-width: 1024px) and (max-width: 1199px) {
	#product-page .popover > .popover-title { font-size: 16px; }
	#product-page .popover > .popover-content { font-size: 12px; padding: 8px 0 0; }
	#product-page .popover > .popover-buttons { padding: 11px 0 0; }
	#product-page .popover.left { padding: 10px; width: 190px; }
	
	#product-view .prd-slider { width: calc(100% - 137.16px); }
	#product-view .prd-slider-gallery-controls { position: absolute; flex-direction: row; left: 50%; transform: translateX(-50%); bottom: 100px; align-items: center; margin-right: 0; }
	#product-view .prd-slider-gallery { max-width: 310px; margin: 0 10px; position: relative; }
	#product-view .prd-slider-gallery .prd-gallery-list { height: 100%; transform: none; }
	#product-view .prd-slider-gallery .prd-gallery-list > div { margin-bottom: 0; margin-right: 15px; float: left; }
	#product-view .prd-slider-gallery .prd-gallery-list > div:last-child { margin: 0; }
	#product-view .prd-slider iframe { max-width: 100%; height: auto; }
	#product-view .tooltip .tooltip-inner { white-space: normal; }
}
