/*--------------------------------------------------------------
Reset CSS
--------------------------------------------------------------*/
html {
    -webkit-text-size-adjust: 100%
}

html, body {
    width: 100%;
    height: 100%;
    background: #ffff
}

html, html a {
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .004);
    -webkit-font-smoothing: antialiased;
    font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-smooth: always
}

body, html, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, input, button, textarea, select, p, xmp {
    margin: 0;
    padding: 0
}

img, button, input, textarea, fieldset {
    border: 0
}

button {
    background: none;
    cursor: pointer
}

button, input, option, select, textarea {
    font: inherit
}

li {
    list-style: none
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%
}

a, xmp {
    display: inline-block;
    text-decoration: none
}

textarea, button, input {
    outline: none
}

img {
    image-rendering: -webkit-optimize-contrast
}

* {
    font: normal 13px 'Montserrat', sans-serif;
    color: #fff
}

*, *::before, *::after {
    box-sizing: border-box
}

b {
    font-weight: bold
}

img {
    max-width: 100%;
    height: auto;
    min-height: 100%
}


/*--------------------------------------------------------------
Animations
--------------------------------------------------------------*/
.arrow-jump {
    -webkit-animation: arrow-jump 1s infinite; /* Safari 4+ */
    -moz-animation: arrow-jump 1s infinite; /* Fx 5+ */
    animation: arrow-jump 1s infinite; /* IE 10+, Fx 29+ */
}

@keyframes arrow-jump {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        -webkit-transform: translateX(10px);
        -moz-transform: translateX(10px);
        transform: translateX(10px);
    }
}

@-webkit-keyframes arrow-jump {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        -webkit-transform: translateX(10px);
        -moz-transform: translateX(10px);
        transform: translateX(10px);
    }
}

.quiz-progress-bg {
    width: 0;
    overflow: hidden;
    position: relative
}

.quiz-progress-bg:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;

    background-image: linear-gradient(
            -45deg,
            rgba(255, 255, 255, .2) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255, 255, 255, .2) 50%,
            rgba(255, 255, 255, .2) 75%,
            transparent 75%,
            transparent
    );

    z-index: 1;
    background-size: 50px 50px;
    animation: move 2s linear infinite;
    overflow: hidden;
}

@keyframes move {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 50px 50px;
    }
}


/*--------------------------------------------------------------
Preloader
--------------------------------------------------------------*/
.preloader {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    z-index: 100;
    opacity: 1 !important
}

.loader-circle {
    border: 5px solid #fff;
    border-top-color: #00A4B7;
    height: 40px;
    width: 40px;
    border-radius: 100%;
    -webkit-animation: spin 1.5s linear infinite;
    -o-animation: spin 1.5s linear infinite;
    animation: spin 1.5s linear infinite;
    z-index: 101
}

.preloader span {
    margin-top: 20px;
    color: #888
}

@keyframes spin {
    from {
        transform: rotate(0deg)
    }
    to {
        transform: rotate(360deg)
    }
}


/*--------------------------------------------------------------
SweetAlert2
--------------------------------------------------------------*/
html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown),
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
    overflow-y: initial !important
}

html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown):not(.kt-sweetalert2--nopadding),
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown):not(.kt-sweetalert2--nopadding) {
    padding-right: 0 !important
}

@media screen\0 {
    html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown),
    body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
        overflow: visible
    }
}

.swal2-popup {
    border-radius: 4px;
    padding: 3rem
}

.swal2-popup .swal2-title {
    font-weight: 700;
    font-size: 1.2rem;
    margin: 0 0 1rem
}

.swal2-popup #swal2-content {
    font-weight: 500;
    font-size: 1.1rem;
    color: #888 !important;
}

.swal2-popup #swal2-content b {
    color: #888
}

.swal2-popup .btn {
    margin: 15px 5px 0
}

.swal2-popup .swal2-styled:focus {
    -webkit-box-shadow: none;
    box-shadow: none
}

.swal2-container {
    overflow-y: hidden !important
}

body.swal2-height-auto {
    height: 100% !important
}

.swal2-container.swal2-shown {
    background-color: rgba(0, 0, 0, 0.2)
}

.swal2-popup .swal2-title {
    color: #464457
}

.swal2-popup .swal2-content {
    color: #a7abc3
}

.swal-wide {
    width: 525px
}

/*--------------------------------------------------------------
Global classes
--------------------------------------------------------------*/
.page {
    width: 100%;
    min-height: 100%;
    display: flex;
    background-size: contain
}

.page-content {
    position: relative;
    width: 750px;
    min-height: 100%;
    z-index: 10;
    margin: 0 auto
}

.overflow-hidden {
    overflow: hidden
}

.btn {
    width: 60%;
    border-radius: 60px;
    height: 60px;
    position: relative;
    box-shadow: 0 0 24px 0 rgba(0, 0, 0, .15)
}

.btn > span {
    font-size: 20px;
    font-weight: 500;
    text-shadow: 0 0 12px rgba(0, 0, 0, .15)
}

.btn-bg-red {
    background-image: -moz-linear-gradient(-90deg, rgb(212, 13, 59) 1%, rgb(186, 10, 60) 100%);
    background-image: -webkit-linear-gradient(-90deg, rgb(212, 13, 59) 1%, rgb(186, 10, 60) 100%);
    background-image: -ms-linear-gradient(-90deg, rgb(212, 13, 59) 1%, rgb(186, 10, 60) 100%);

    background: linear-gradient(90deg, #24353F, #00A4B7);
}

.btn-bg-white {
    background: #fff
}

.btn-bg-white > span, .btn-bg-white i {
    color: #cc0c3b
}

.btn-icon > div {
    position: absolute;
    top: 50%;
    transform: translateY(-50%)
}

.btn-icon > div > i {
    font-size: 30px
}

.btn-icon-right > div {
    right: 20px
}

.btn-icon-left > div {
    left: 20px
}

a.btn {
    display: flex;
    align-items: center;
    justify-content: center
}


/*--------------------------------------------------------------
HOME PAGE
--------------------------------------------------------------*/
.home-page {
    background-size: contain;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center
}

.home-page-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    width: 100%;
    text-align: center;
    padding: 40px 30px
}

.home-page-content {
    margin: 60px 0
}

.home-page-content h1 {
    font-weight: bold;
    font-size: 40px;
    color: #2e313c
}

.home-page-content p {
    font-weight: 800;
    font-size: 35px;
    color: #e4003a;
    margin-top: 50px
}

.home-page-content + img {
    border-radius: 20px;
    box-shadow: 0 0 12px 0 rgba(0, 0, 0, .15);
    border: 1px solid #e5e5e5;
}


/*--------------------------------------------------------------
Quiz
--------------------------------------------------------------*/
.quiz-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    background: #fff
}

.quiz-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    width: 100%;
    height: 100%
}

/* TOP */
.quiz-top {
    position: relative
}

.quiz-top img {
    margin-top: -170px;
    border-radius: 0 0 35px 35px;
}

.quiz-top .btn-prev-question {
    position: absolute;
    top: 20px;
    left: 25px;
    z-index: 10;
    padding: 10px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .2)
}

.quiz-top .btn-prev-question > span {
    font-weight: 500
}

.quiz-top-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    text-align: center;
    margin: 0 auto;
    padding: 40px 30px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    flex-direction: column
}

/* -HEADER */
.quiz-top-header {
    margin-top: 15px
}

.quiz-top-header h1 {
    font-size: 28px;
    font-weight: 700
}

.quiz-top-header div {
    margin-top: 15px
}

.quiz-top-header div > * {
    font-size: 20px;
    font-weight: 300
}

/* -QUESTION */
.quiz-top-question p {
    font-weight: 500;
    font-size: 24px;
    text-shadow: 0 0 6px rgba(0,0,0,.3);
    max-width: 500px;
}


/* CENTER */
.quiz-center {
    width: 100%;
    height: 100%;
    margin: 30px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.quiz-center > div {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%
}

input.radio {
    display: none
}

.quiz-center label.radio:not(:first-child) {
    margin-top: 15px
}

label.radio {
    border: 1px solid #e5e5e5;
    background: #fff;
    border-radius: 10px;
    width: 80%;
    padding: 20px;
    text-align: center;
    cursor: pointer
}

label.radio span {
    font-weight: 400;
    font-size: 18px;
    color: #2e313c
}

label.radio:hover, input.radio:checked + label {
    background: #ebebeb
}

input.radio:checked + label {
    border: 3px solid #094fa8
}


.quiz-center > .btn {
    margin: 50px 0 20px
}


/* BOTTOM */
.quiz-bottom {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 15px;

    background: rgba(255, 255, 255, 1);
    background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 51%, rgba(248, 248, 249, 1) 52%, rgba(248, 248, 249, 1) 100%);
    background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255, 255, 255, 1)), color-stop(51%, rgba(255, 255, 255, 1)), color-stop(52%, rgba(248, 248, 249, 1)), color-stop(100%, rgba(248, 248, 249, 1)));
    background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 51%, rgba(248, 248, 249, 1) 52%, rgba(248, 248, 249, 1) 100%);
    background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 51%, rgba(248, 248, 249, 1) 52%, rgba(248, 248, 249, 1) 100%);
    background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 51%, rgba(248, 248, 249, 1) 52%, rgba(248, 248, 249, 1) 100%);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 51%, rgba(248, 248, 249, 1) 52%, rgba(248, 248, 249, 1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f8f8f9', GradientType=0);
}

/* -PROGRESS */
.progress {
    width: 115px;
    height: 115px;
    background: #fff;
    border-radius: 100%
}

.progress .track, .progress .fill {
    fill: rgba(0, 0, 0, 0);
    stroke-width: 10;
    transform: rotate(90deg) translate(0px, -80px);
}

.progress .track {
    stroke: #f8f8f9
}

.progress .fill {
    stroke: rgb(255, 255, 255);
    stroke-dasharray: 219.99078369140625;
    stroke-dashoffset: -219.99078369140625;
    transition: stroke-dashoffset 1s;
}

.progress.blue .fill {
    stroke: #00A4B7;
}

.progress .value {
    font: 700 18px 'Montserrat';
    fill: #2e313c;
    text-anchor: middle;
}


/*--------------------------------------------------------------
Form
--------------------------------------------------------------*/
.quiz-contact-form .quiz-top-question {
    margin: 85px 0 40px
}

.quiz-contact-form .quiz-top-question > span {
    font-size: 20px;
    font-weight: 300
}

.quiz-contact-form .quiz-top-question p {
    margin-bottom: 35px
}

.quiz-contact-form form {
    width: 60%
}

.quiz-contact-form .input-container {
    width: 100%
}

.quiz-contact-form .input-container label {
    position: relative;
    display: block;
    margin-bottom: 15px
}

.quiz-contact-form .input-container input {
    width: 100%;
    text-align: left;
    padding: 28px 0;
    border-bottom: 1px solid #e5e5e5;
    font-size: 16px;
    color: #2e313c;
    transition: all 0.2s ease-in-out;
}

.quiz-contact-form .input-container input::placeholder {
    transition: all 0.2s ease-in-out;
    color: #575962;
    font-weight: 400
}

.quiz-contact-form .input-container input:focus {
    padding-top: 28px 0;
    padding-bottom: 12px;
}

.quiz-contact-form .input-container input:focus::placeholder {
    color: transparent
}

.quiz-contact-form .input-container input:focus + span {
    opacity: 1;
    top: 10px
}

.quiz-contact-form .input-container span {
    font-size: .8rem;
    color: #575962;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: all 0.2s ease-in-out;
}

.checkbox-container {
    width: 100%;
    margin-top: 25px
}

.quiz-contact-form .checkbox-container > div {
    display: flex;
    margin-bottom: 15px
}

.quiz-contact-form .checkbox-container label {
    color: #4d4d4d;
    z-index: 10;
    padding-left: 40px;
    cursor: pointer;
    position: absolute
}

.quiz-contact-form .checkbox-container label > * {
    font-size: 13px;
    font-weight: 500
}

.quiz-contact-form .checkbox-container label > b {
    color: #000
}

.quiz-contact-form .checkbox-container label > a {
    color: #7a7a7a;
    text-decoration: underline;
    margin-left: 10px
}

.quiz-contact-form .checkbox-container input {
    opacity: 0;
    visibility: hidden;
    position: absolute;
}

.quiz-contact-form .checkbox-container input:checked ~ .check {
    border-color: #e4003a;
    box-shadow: 0px 0px 0px 15px #e4003a inset;
}

.quiz-contact-form .checkbox-container input:checked ~ .check::after {
    opacity: 1;
    transform: scale(1);
}

.quiz-contact-form .checkbox-container .check {
    width: 20px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    border-radius: 100px;
    background-color: #fff;
    border: 2px solid #e4003a;
    box-shadow: 0px 0px 0px 0px #e4003a inset;
    transition: all 0.15s cubic-bezier(0, 1.05, 0.72, 1.07);
}

.quiz-contact-form .checkbox-container .check::after {
    content: '\F12C';
    font: normal normal normal 13px/1 "Material Design Icons";
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 4;
    transition: all 0.25s cubic-bezier(0, 1.05, 0.72, 1.07);
    display: flex;
    align-items: center;
    justify-content: center
}

.quiz-contact-form .btn {
    margin: 26px 0 20px
}


/*--------------------------------------------------------------
Scores
--------------------------------------------------------------*/
.quiz-scores {
    width: 100%;
    min-height: 100%;
    background: linear-gradient(90deg, #24353F, #00A4B7);
    display: flex;
    align-items: center;
    justify-content: center
}

.quiz-scores-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
    width: 100%;
    height: 80%;
    padding: 40px 20px
}

.quiz-scores-wrapper > img {
    max-width: 50%
}

.quiz-scores-content {
    text-align: center;
    margin: 60px 0
}

.quiz-scores-content h1 {
    font-weight: 700;
    font-size: 50px;
    margin-bottom: 20px
}

.quiz-scores-content p {
    font-weight: 400;
    font-size: 22px;
    margin-top: 12px
}

.quiz-scores-buttons {
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column
}

.quiz-scores-buttons button:first-child {
    margin-bottom: 20px
}

.quiz-scores-buttons img {
    height: 20px
}


@media screen and (max-width: 750px) {
    .btn {
        width: 400px;
        height: 50px
    }

    .btn > span {
        font-size: 18px
    }

    .page-content {
        width: 100%;
        box-shadow: none
    }

    .home-page-wrapper {
        padding: 30px 0;
        height: auto
    }

    .home-page-content {
        margin: 40px 0
    }

    .home-page-content h1 {
        font-size: 35px
    }

    .home-page-content p {
        font-size: 30px
    }

    /* QUIZ */
    .quiz-top img {
        margin-top: 0
    }

    .quiz-top-header {
        margin-top: 30px
    }

    .quiz-top-question {
        margin-top: 40px
    }

    .quiz-top-question p {
        font-size: 27px
    }

    label.radio {
        width: 90%
    }

    label.radio span {
        font-size: 16px
    }

    .progress {
        width: 100px;
        height: 100px
    }

    .quiz-contact-form form {
        width: 80%
    }

    .quiz-contact-form .quiz-top-question {
        margin-top: 60px
    }

    .quiz-scores-content {
        margin: 45px 0
    }

    .quiz-scores-content h1 {
        font-size: 45px
    }
}


@media only screen and (max-device-width: 499px) {
    .page-content, .quiz-top {
        width: 100%
    }

    .btn {
        width: 80%
    }

    .btn > span {
        font-size: 16px
    }

    .home-page {
        background-size: contain
    }

    .home-page-content h1 {
        font-size: 35px
    }

    .home-page-content p {
        font-size: 30px;
        margin-top: 35px
    }

    .quiz-top img {
        display: none
    }

    .quiz-top-wrapper {
        position: relative;
        background-image: url('../images/bg-formularz.png');
        background-size: cover;
    }

    .quiz-top-header {
        margin-top: 40px
    }

    .quiz-top-question {
        margin-top: 35px
    }

    .quiz-contact-form .quiz-top-wrapper {
        background-image: url('../images/bg-formularz.png') !important
    }

    .quiz-top-header h1, .quiz-top-question p {
        font-size: 17px
    }

    .quiz-top-header div > * {
        font-size: 17px
    }

    label.radio span {
        font-size: 14px
    }

    .quiz-contact-form .quiz-top-question {
        margin: 55px 0 0
    }

    .quiz-contact-form .quiz-top-question > span {
        font-size: 15px
    }

    .quiz-contact-form .input-container input {
        padding: 16px 0;
        font-size: 14px
    }

    .quiz-contact-form .input-container input:focus {
        padding-bottom: 16px
    }

    .quiz-contact-form .input-container span {
        display: none
    }

    .quiz-scores-buttons > * {
        width: 100%
    }

    .quiz-scores-buttons span {
        font-size: 15px
    }

    .quiz-scores-buttons .btn-share-quiz span {
        margin-left: 30px
    }

    .quiz-scores-content h1 {
        font-size: 33px
    }

    .quiz-scores-content p {
        font-size: 18px;
        margin-top: 8px
    }
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    img {
        max-height: 100%
    }

    .page {
        height: 100%
    }
}
