* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;    
}

.qf {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

.page {
    z-index: 0;
    background: #fff;
}

body {
    font-size: 18px;
    font-family: 'Open Sans', sans-serif;
    font-weight: normal;
    background: #fff;
    line-height: 1.4rem;
}

.container-fluid, .container {
    margin-right: auto;
    margin-left: auto;
}

.row {
    display: flex;
    flex: 0 1 auto;
    flex-direction: row;
    flex-wrap: wrap;
}

.column {
    text-align: center;
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 1;
    
    margin: 10px;
    padding: 10px;
}

@media screen and (max-width: 768px) {
    .container {
        overflow: auto;
    }
    .column {
        min-width: 100%;
        width: 100%;
        margin: 10px 0;
    }
}

.wrap {
    max-width: 1200px;
    margin: 0 auto;
}


.logo {
    overflow: hidden;
    margin: 0 auto;
    padding: 1em;
    max-width: 18.75rem;
    line-height: 1.5;
    display: flex;
    justify-content: center;    
}

.logo img{
    max-width: 100%;
    height: auto;
    max-height: 100px;
}

.logo h2 {
    text-align: center;
    margin-bottom: 0;
}

.tile, .answer {
    overflow: hidden;
    margin: 0 auto;
    margin-top: 2rem;
    padding: 1em;
    border: solid 1px #e5e5e5;
    border-radius: 2px;
    background-color: #fcfcfc;
    box-shadow: inset 0 1px #fff;
    text-shadow: 0 1px #fff;
    line-height: 1.5;    
}

h1,h2,h3,h4,h5,h6 {margin-bottom: 1rem;}
p {margin-bottom: 0.5rem;}


/* steps */
.step {display: none;}
.step1 {display: block;}
.step-header {margin-bottom: 1rem;}
.step-header h4{margin-bottom: 0.5rem;}
.step-header p{font-size:16px;font-weight:300;}
.step-header .step-progress {
    display: flex;
    justify-content: center;
}
.step-progress div{
    height: 5px;
    background-color:#e5e5e5;
    width: 100px;
    margin: 0;
}
.step-progress div.done {
    background-color:#000000;
}
.step-progress div.active {
    background-color:#000000;
}

.step .answer {
    margin-top: 1rem;
    max-width: 760px;
    cursor: pointer;    
}
.step .answer p {
    margin-bottom: 0;
}
.step .stars {
    display: flex;
    justify-content: center;
}
.step .star{
    font-size: 30px;
    line-height: 30px;
    color: #ccc;
}
.step .star-full{
    color:#deb217;
}
.products-review {
    max-width: 800px;
    margin: 0 auto;    
}
.step .products {
    display: flex;
    min-height: 420px;
    position:relative;
    justify-content: center;
    overflow: hidden;
    position: relative;
    width: 100%;    
}
.step .products .next,
.step .products .prev{
    font-size: 4rem;
    font-weight: 600;
    cursor: pointer;
    position: absolute;
    top:30%;
    transform: translate(0, -50%);
    left:0;
    z-index: 1;
}
.step .products .next{right:0;left:inherit;}
.step .products .next:hover,
.step .products .prev:hover{
    color:#b3b3b3;
}
.step .products .no-photo {
    width: 100%;
    height: 50%;
    max-width:200px;
    max-height:200px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 10px;
    border: 1px solid #000;
    border-radius: 5px;        
}
.step .products .legend {
    display: flex;
    justify-content: center;
}
.legend .dot{
    height: 4px;
    width: 4px;
    background-color:#b3b3b3;
    margin: 1px;
}
.legend .dot.active{
    background-color:#000000;
}

.singleSlide {
    background-size: cover;
    height: 300px;
    position: absolute;
    left: 100%;
    width: 100%;
    top: 0px;
}

@-webkit-keyframes slideIn {
    100% {
      left: 0;
    }
  }
  
  @keyframes slideIn {
    100% {
      left: 0;
    }
  }
  
  .slideInRight {
    left: -100%;
    -webkit-animation: slideIn 1s forwards;
    animation: slideIn 1s forwards;
  }
  
  .slideInLeft {
    left: 100%;
    -webkit-animation: slideIn 1s forwards;
    animation: slideIn 1s forwards;
  }
  
  @-webkit-keyframes slideOutLeft {
    100% {
      left: -100%;
    }
  }
  
  @keyframes slideOutLeft {
    100% {
      left: -100%;
    }
  }
  
  .slideOutLeft {
    -webkit-animation: slideOutLeft 1s forwards;
    animation: slideOutLeft 1s forwards;
  }
  
  @-webkit-keyframes slideOutRight {
    100% {
      left: 100%;
    }
  }
  
  @keyframes slideOutRight {
    100% {
      left: 100%;
    }
  }
  
  .slideOutRight {
    -webkit-animation: slideOutRight 1s forwards;
    animation: slideOutRight 1s forwards;
  }



.rate {
    height: 46px;
    padding: 0 10px;
    display: flex;
    justify-content: center; 
    flex-direction: row-reverse;   
}
.rate:not(:checked) > input {
    position:absolute;
    top:-9999px;
}
.rate:not(:checked) > label {
    float:right;
    width:1em;
    overflow:hidden;
    white-space:nowrap;
    cursor:pointer;
    font-size:30px;
    color:#ccc;
}
.rate:not(:checked) > label:before {
    content: '★ ';
}
.rate > input:checked ~ label {
    color: #ffc700;    
}
.rate:not(:checked) > label:hover,
.rate:not(:checked) > label:hover ~ label {
    color: #deb217;  
}
.rate > input:checked + label:hover,
.rate > input:checked + label:hover ~ label,
.rate > input:checked ~ label:hover,
.rate > input:checked ~ label:hover ~ label,
.rate > label:hover ~ input:checked ~ label {
    color: #c59b08;
}

.product-info{
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;    
    margin-bottom: 20px;
}
.product-info img{
    margin-right: 10px;
    max-width: 100%;
    height: auto;
    max-height: 60px;    
}
.product-info h4,.message-header h4{
    display: inline-block;
    margin: 0;
    margin-left: 5px;    
}
.step2 .push-star {font-size: 1rem;}

.step2 .product-photo img {
    max-width: 100%;
    height: auto;
    max-height: 240px;
}

.step3 .photos-container {
    min-height: 350px;
    width: 100%;
    border: 1px solid #000;
    border-radius: 4px;
    position: relative;
    max-width: 800px;
    margin: 0 auto;
    display: flex;
}

.step3 .photos-container .init {
    width:100%;
    min-height:350px;
    display: flex;
    position: relative;
    justify-content: center;
    align-content: center;
    align-items: center;   
}

.step3 .photos-container .init .max-photos,
.step3 .photos-container .init .coupon-available {
    position: absolute;
    top: 5px;
    left: 5px;
    font-size: 14px;
    color: #ababab;  
}

.step3 .photos-container .init .coupon-available {
    top: initial;
    bottom: 5px;
}

.step3 .photos-container .preview {
    display:none;
    width:100%;
}

.step3 .uploaded-photo {
    width: calc(50% - 10px);
    height: calc(50% - 10px);
    min-height: 160px;
    background: #f5f5f5;
    float: left;
    margin: 5px;
    border-radius: 5px;

    display: none;

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;    
}

.step3 .uploaded-photo.add-photo {
    display: block;
    border: 1px solid #ccc;
}

.step3 .upload-data {
    display: none;
}

.step3 .pm{
    position: relative;
    width: 40px;
    height: 40px;
    margin: 0 auto;
    top: calc( 50% - 20px );  
}

.step3 .pm:before,
.step3 .pm:after{
    content: "";
    position: absolute;
    background-color: white;
    transition: all 0.25s ease-out; 
    opacity: 0.5;
}
.step3 .pm.minus:after,
.step3 .pm.plus:after {
    top: 50%;
    left: 0;
    width: 100%;
    height: 4px;
    margin-top: -2px;  
}
.step3 .pm.plus:before {
    top: 0;
    left: 50%;
    width: 4px;
    height: 100%;
    margin-left: -2px;
}
.step3 .pm:hover{
    cursor: pointer;
}
.step3 .pm:hover:before,
.step3 .pm:hover:after {
    opacity: 1;
}

.step4 .message-container {
    max-width: 800px;
    margin: 0 auto;    
}

.step4 .message-header {
    display: flex;
    align-content: center;
    align-items: center;    
    margin-bottom: 0px;
    border: 1px solid #000;
    border-radius: 5px 5px 0px 0px;
    padding: 5px;   
}
.step4 .message-bottom {
    margin-bottom: 0px;
    margin-top: 0;
    border: 1px solid #000;
    border-top: 0;
    border-radius: 0px 0px 5px 5px;
    padding: 5px;
    position: relative;
    top: -4px;
    transition: all 0.25s ease-out; 
}
.step4 .user-seo-helper {
    text-align: left;
    font-size: 0.8rem;
}
.step4 .user-seo-helper p {
    margin-bottom: 0.2rem;
}
.step4 .message-bottom .question {
    display:none;
    font-weight: bold;
}
.step4 .message-bottom .user-seo-keywords {
    display: none;
}
.message-header img{margin-right: 5px;}
.message-header h4 {
    display: inline-block;
    font-size: 1rem;
    font-weight: normal;    
}
.step4 textarea {
    width: 100%;
    min-height: 150px;
    resize: vertical;
    border: 1px solid #000;
    border-top: 0;
    border-bottom: 0;
    background: transparent;
    padding: 5px;
}
.step4 .seo-helper {

}
.step4 .seo-helper p{
    font-size: 1rem;
}
.step4 .seo-tags {
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;   
}

.step4 .seo-tags .tag{
    margin: 5px;
    font-size: 0.9rem;
    padding: 2px 5px;
    border: 1px solid #000;
    border-radius: 4px;
    display: inline-block;
}

.step4 .seo-tags .tag-mark {
    border-color: #338e46;
    background-color:#338e46;
    color:#fff;
}

.step4 .message-container .bottom{
    max-width: 500px;
    margin: 20px auto 0;
}
.step4 .message-container .bottom .author{
    width:100%;
    padding: 5px;
    border: 1px solid #000;
    border-radius: 5px;    
    background: transparent;
    margin-bottom: 10px;
}


.step4 .message-container .bottom .submit, .btn-submit {
    padding: 5px 20px;
    border-radius: 5px;
    border: 1px solid #223dff;
    color: #223dff;
    cursor: pointer;
    display: inline-block;
}

.step4 .message-container .bottom .submit:hover, .btn-submit:hover {
    background-color:#223dff;
    color: #fff;
}

.btn-submit {
    background-color:#223dff;
    color: #fff;
    font-weight: bold;    
}

.btn-submit:hover {
    border: 1px solid #223dff;
    color: #223dff;
    background-color: transparent;    
}

.options .option {
    position: relative;
    margin-bottom: 10px;
}
.options .option input[type="checkbox"] {
    display: none;
}
.options .option label {
    display: block;
    padding-left: 35px;
    cursor:pointer;
    line-height: 27px;
}
.options .option label .check {
    display: block;
    position: absolute;
    left: 0;
    top: 2px;
    background-color: #f7f8ff;
    border: 1px solid #1f2227;
    border-radius: 5px;
    width: 25px;
    height: 25px;
}
.options .option label .name {
    display: block;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
}
.options .option label .desc {
    display: block;
    color: #1f2227;;
    font-size: 12px;
    font-weight: 300;
}
.options .option input[type="checkbox"]:checked + label::before, .options .option input[type="checkbox"]:checked + label::after {
    content: '';
    display: block;
    position: absolute;
    z-index: 3;
    background-color: #223dff;
    height: 3px;
}
.options .option input[type="checkbox"]:checked + label::before {
    width: 15px;
    left: 2px;
    top: 17px;
    margin: auto;
    transform: rotate(45deg);
}
.options .option input[type="checkbox"]:checked + label::after {
    width: 25px;
    left: 10px;
    top: 11px;
    margin: auto;
    transform: rotate(-50deg);
}



.nav-buttons {
    display: flex;
    justify-content: space-between;
    max-width: 800px;
    margin: 10px auto 0;
}
.nav-buttons div {
    padding: 5px 20px;
    border-radius: 5px;
    border: 1px solid #223dff;
    color: #223dff;
    cursor: pointer;
}

.nav-buttons div:hover {
    background-color:#223dff;
    color: #fff;
}

.thankyoupage .step-header h4 {
    margin-bottom: 0.8rem;
    font-size: 1.3rem;    
}

.thankyoupage .div-section {
    border-bottom: 2px solid #efefef;
}

.thankyoupage .rate {
    height: 30px;
}

/* update */
body, .page {
    background-color: #f8f8f8;
}

.wrap {
    max-width: 500px;
    background: #fff;
    border-radius: 25px;
    margin-top: 100px;
}

.step .answer {
    margin-top: 0.5rem;
}

.tile, .answer {
    border: solid 1px #353433;
    border-radius: 10px;
    background-color: #fff;
    padding: 0.2em;
}   

.column {
    margin-top: 0;
}

#newsletter {margin-bottom: 0;}
#newsletter h4 {margin-bottom: 0;}

html body.qf .page .step .input-group-error input {
    margin-bottom: 0;
}
.input-group-error {margin-bottom: 10px;}


.validate-error{
    transition:height .3s ease-out;
    height:0;
    overflow:hidden;
    color:red;
    font-weight: bold;
    text-align: center;
    font-size: 14px;
}

.loader {
    display: inline-block;
    border: 5px solid #f3f3f3;
    border-top: 5px solid #3498db;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 2s linear infinite;
    vertical-align: bottom;
    opacity: 0;
    transition: all 0.3s ease;
}

.loader.active {opacity: 1;}

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

@media (max-height: 900px) {
    .wrap {
        margin-top: 5px;
    }
}