html,
body {
    height: 100%;
    margin: 0;
    padding: 0;
}

body {
    display: flex;
    font-family: 'Lato', sans-serif;
    -webkit-font-smoothing: antialiased;
    background-color: #eeeeee;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='250' viewBox='0 0 1080 900'%3E%3Cg fill-opacity='0.02'%3E%3Cpolygon fill='%23444' points='90 150 0 300 180 300'/%3E%3Cpolygon points='90 150 180 0 0 0'/%3E%3Cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3E%3Cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3E%3Cpolygon fill='%23999' points='450 150 540 0 360 0'/%3E%3Cpolygon points='630 150 540 300 720 300'/%3E%3Cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3E%3Cpolygon fill='%23444' points='810 150 720 300 900 300'/%3E%3Cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3E%3Cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3E%3Cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3E%3Cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3E%3Cpolygon points='90 450 180 300 0 300'/%3E%3Cpolygon fill='%23666' points='270 450 180 600 360 600'/%3E%3Cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3E%3Cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3E%3Cpolygon fill='%23999' points='450 450 540 300 360 300'/%3E%3Cpolygon fill='%23999' points='630 450 540 600 720 600'/%3E%3Cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3E%3Cpolygon points='810 450 720 600 900 600'/%3E%3Cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3E%3Cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3E%3Cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3E%3Cpolygon fill='%23222' points='90 750 0 900 180 900'/%3E%3Cpolygon points='270 750 180 900 360 900'/%3E%3Cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3E%3Cpolygon points='450 750 540 600 360 600'/%3E%3Cpolygon points='630 750 540 900 720 900'/%3E%3Cpolygon fill='%23444' points='630 750 720 600 540 600'/%3E%3Cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3E%3Cpolygon fill='%23666' points='810 750 900 600 720 600'/%3E%3Cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3E%3Cpolygon fill='%23999' points='180 0 90 150 270 150'/%3E%3Cpolygon fill='%23444' points='360 0 270 150 450 150'/%3E%3Cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3E%3Cpolygon points='900 0 810 150 990 150'/%3E%3Cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3E%3Cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3E%3Cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3E%3Cpolygon fill='%23666' points='180 300 270 150 90 150'/%3E%3Cpolygon fill='%23222' points='360 300 270 450 450 450'/%3E%3Cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3E%3Cpolygon fill='%23444' points='540 300 450 450 630 450'/%3E%3Cpolygon fill='%23222' points='540 300 630 150 450 150'/%3E%3Cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3E%3Cpolygon fill='%23666' points='720 300 810 150 630 150'/%3E%3Cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3E%3Cpolygon fill='%23999' points='900 300 990 150 810 150'/%3E%3Cpolygon points='0 600 -90 750 90 750'/%3E%3Cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3E%3Cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3E%3Cpolygon fill='%23444' points='180 600 270 450 90 450'/%3E%3Cpolygon fill='%23444' points='360 600 270 750 450 750'/%3E%3Cpolygon fill='%23999' points='360 600 450 450 270 450'/%3E%3Cpolygon fill='%23666' points='540 600 630 450 450 450'/%3E%3Cpolygon fill='%23222' points='720 600 630 750 810 750'/%3E%3Cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3E%3Cpolygon fill='%23222' points='900 600 990 450 810 450'/%3E%3Cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3E%3Cpolygon fill='%23444' points='180 900 270 750 90 750'/%3E%3Cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3E%3Cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3E%3Cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3E%3Cpolygon fill='%23222' points='900 900 990 750 810 750'/%3E%3Cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3E%3Cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3E%3Cpolygon points='1080 600 990 750 1170 750'/%3E%3Cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3E%3Cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3E%3C/g%3E%3C/svg%3E");
    color: #474d52;
}

a:link,
a:active,
a:visited,
a:focus {
    color: #474d52;
    text-decoration: none;
    outline: none;
}

a:hover {
    color: #474d52;
    text-decoration: none;
    outline: none;
}

a:link svg,
a:active svg,
a:visited svg,
a:focus svg {
    fill: #474d52;
}

a:hover svg {
    fill: #474d52;
}

a[x-apple-data-detectors] {
    color: inherit !important;
    text-decoration: none !important;
    font-size: inherit !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
}

#container {
    width: 100%;
    max-width: 600px;
    height: fit-content;
    margin: auto;
    font-size: 1.375rem;
    display: flex;
}

@media only screen and (min-width: 600px) {
    #container {
        font-size: 1.5rem;
    }
}

.card {
    width: 100%;
    height: 100%;
    margin: 1em;
    border: 0;
    border-radius: 0.5em;
    background: #fff;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

.card-title,
.card-title2 {
    display: block;
    padding: 1em;
    font-size: 1.1em;
    text-align: center;
    font-weight: bold;
}

.card-title2 {
    padding: 1em 1em 3em 1em;
}

.card-body {
    padding: 1em 0;
    text-align: center;
}

.card-body2 {
    padding: 0em 1em 2em 1em;
}

.card-footer {
    display: block;
}

#logo {
    width: 60%;
    max-width: 300px;
    height: auto;
}

#otsikko {
    display: block;
    padding: 0 1em 3em 1em;
    font-size: 1.2em;
    text-align: center;
}

.seuraava {
    display: block;
    padding: 0 1em 2em 1em;
    text-align: center;
}

.page-progress {
    margin-top: 1em;
    transition: opacity 0.3s ease;
    transition-delay: 0.8s;
}

.page-hidden {
    display: none;
}

.footer-button {
    width: auto;
    display: block;
    opacity: 1;
    border: 1px solid #00000020;
    border-radius: 0.5em;
    padding: 0.6em 1.2em;
    margin-top: 0.5em;
    font-weight: bold;
    font-size: 1em;
    text-shadow: -1px 0 #0000000d, 0 1px #0000000d, 1px 0 #0000000d, 0 -1px #0000000d;
}

.footer-button:not(.wait) {
    cursor: pointer;
}

.footer-button:not(.disabled):not(.wait):hover {
    opacity: 0.92;
    border: 1px solid rgba(0, 0, 0, 0.06);
}

.footer-button.disabled {
    opacity: 0.5;
    cursor: default;
}

.footer-button-orange {
    color: #ffffff;
    background: linear-gradient(60deg, #efa96c, #ffb266);
}

.footer-button-orange:link,
.footer-button-orange:active,
.footer-button-orange:visited,
.footer-button-orange:hover {
    color: #ffffff;
}

.footer-button-grey {
    color: #474d52;
    background-color: rgba(221, 221, 221, 0.2);
}

.footer-button-grey:link,
.footer-button-grey:active,
.footer-button-grey:visited,
.footer-button-grey:hover {
    color: #474d52;
}

#progress-bar {
    display: block;
    height: 0.3em;
    margin: 0 1em;
    border-radius: 0.3em;
    background-color: #eeeeee;
}

@media only screen and (max-width: 375px) {
    .progress-dot {
        font-size: 1.125rem;
    }
}

#progress {
    display: block;
    width: 0;
    height: 0.3em;
    border-radius: 0.3em;
    background-color: #efa96c;
    transition: width 0.6s ease;
}

#progress.back {
    transition-delay: 0.3s;
}

.progress-dots {
    height: 0.3em;
    border-radius: 0.3em;
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 0 1em;
    list-style: none;
    position: relative;
    left: 0;
    top: -0.3em;
}

.progress-segment {
    position: relative;
}

.progress-dot {
    display: block;
    height: 1em;
    width: 1em;
    border-radius: 1em;
    position: relative;
    left: 50%;
    top: 0.15em;
    transform: translate(-50%, -50%);
    background-color: #eeeeee;
    transition: background-color 0.3s ease;
    transition-delay: 0.3s;
}

.progress-dot.checked {
    background-color: #efa96c;
}

.progress-dot.back {
    transition-delay: 0s;
}

.form-title {
    display: block;
    padding: 1.2em 0.5em 0.7em 0.5em;
    font-weight: bold;
}

.form-required {
    display: block;
    padding: 0 0.5em;
    color: #f43325;
    font-size: 0.8em;
}

.form-input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 2.375rem;
    padding: 0.1em 0.5em;
    margin-bottom: 0.5em;
    color: #333333;
    background: #ffffff;
    font-family: inherit;
    font-size: 1.125rem;
    border: 1px solid #dbdbdb;
    border-radius: 0.2em;
    outline: 0;
    vertical-align: text-bottom;
}

.form-input:focus {
    border: 1px solid #efa96c;
}

.form-input.invalid {
    color: #f43325 !important;
    border: 1px solid #f43325;
}

.form-input.input-focused {}

textarea.form-input {
    height: auto;
}

.checkboxgroup {
    display: flex;
    align-items: center;
    margin: 0.2em 0 0.5em 0;
}

input[type="checkbox"],
input[type="radio"] {
    position: absolute;
    opacity: 0;
    z-index: -1;
}

input[type="checkbox"]+label,
input[type="radio"]+label {
    position: relative;
    margin-right: 0.8em;
    padding-left: 1.8em;
    padding-right: 0.8em;
    line-height: 2.25rem;
    font-size: 0.8em;
    cursor: pointer;
    z-index: 1;
    color: #333333;
    transition: .25s all ease;
    user-select: none;
}

input[type="checkbox"]+label::before,
input[type="radio"]+label::before {
    box-sizing: border-box;
    content: " ";
    position: absolute;
    top: 0.4rem;
    left: 0;
    display: block;
    width: 1.3em;
    height: 1.3em;
    border: 2px solid #dbdbdb;
    border-radius: 0.3em;
    z-index: -1;
    transition: .25s all ease;
    user-select: none;
}

input[type="radio"]+label::before {
    border-radius: 1.2em;
}

input[type="checkbox"]:checked+label {
    padding: 0 1.2em 0 1.2em;
    color: #333333;
}

input[type="radio"]:checked+label {
    padding-left: 1.2em;
    padding-right: 1.2em;
    color: #333333;
}

input[type="checkbox"]:checked+label::before,
input[type="radio"]:checked+label::before {
    top: 0;
    width: 100%;
    height: 2.25rem;
    background: #ffffff;
    border: 2px solid #efa96c;
}


/*input[type="checkbox"]:checked:focus + label, 
input[type="radio"]:checked:focus + label {
    color: #ffffff;
}*/

input[type="radio"]:focus+label::before {
    border: 2px solid #efa96c;
}

input[type="checkbox"]:focus+label::before {
    border: 2px solid #dbdbdb;
}

input[type="checkbox"]:checked:focus+label::before {
    border: 2px solid #efa96c;
}

input[type="checkbox"].invalid+label::before,
input[type="radio"].invalid+label::before,
input[type="checkbox"].invalid:focus+label::before {
    border: 2px solid #f43325;
}

input[type="checkbox"].invalid+label {
    color: #f43325;
}


/*input[type="checkbox"]:checked:focus + label::before, 
input[type="radio"]:checked:focus + label::before {
    background: #efa96c;
}*/

.asterisk {
    margin-left: 0.2em;
    color: #efa96c;
    font-size: 1.2em;
    font-weight: bold;
}

.form-visibility {
    display: block;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.form-visibility2 {
    display: block;
    max-height: 0;
    padding-top: 0.5em;
    overflow: hidden;
    transition: max-height 0.2s ease;
}

#kiitos {
    font-size: 1.5em;
    color: #efa96c;
}