@import 'help.css';
@import 'matrix.css';
@import 'jumps.css';
@import 'matrix-ie11.css';

/* ///////////////////////////////////////////////////////////////////////// */
/* Allgemeine Definitionen                                                   */

@font-face {
    font-family: 'DINNext';
    src: url('../fonts/DINNext-Regular.woff') format('woff');
}

* {
    font-family: 'DINNext', 'Arial', sans-serif;
    box-sizing: border-box;
}

html, body {
    margin: 0px;
    padding: 0px;
}

ul, li {
    list-style: none;
    display: inline;
    margin: 0px;
    padding: 0px;
}
  
a {
    text-decoration: none;
    display: inline;
    color: #fff;
}

a:hover {
    text-decoration: underline;
}

input[type=text], input[type=submit], select, textarea {
    border-radius: 0; 
    -webkit-border-radius: 0; 
}

button, .submit-buttons input {
    background-color: #1269B0;
    border: none;
    color: white;
    text-align: left;
    text-decoration: none;
    display: inline-block;
    font-size: 19px;
    cursor: pointer;
    padding: 5px;
}

.hidden {
    display: none;
}

em {
    font-weight: 600;
    font-style: normal;
}

i {
    color: #222;
}

div.arrow {
    background-size: 0.9em;
    display: inline-block;
    font-size: 0.8em;
    height: 0.9em;
    width: 0.9em;
    margin: 0 0 0 0.5em;
    background-image: url("../images/arrow-link.svg");
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Header, Container, Main, Footer                                           */

.header, .footer {
    color: #fff;
    background-color: #222222;
}

/* @scale: Header */
.header {
    height: 32px;
    font-size: 14px;
    padding-top: 8px;
    margin-bottom: 48px;
}

.header .breadcrumb > a {
    float: right;
    margin-right: 10px;
    font-size: 16px;
}

/* @scale: Logos */
.kof-header img {
    height: 68px;
    margin-right: 40px;
}

/* @scale: Hamburger-Menu */
.kof-header img:nth-of-type(3) {
    display: none;
}

.container {
    min-height: calc(100vh - 23em);
}

/* @scale: Normale Schrift */
.main {
    max-width: 100%;
    font-size: 19px;
}

.main a {
    color: #1269B0;
}

/* @scale: Seitenüberschrift */
.main h3 {
    margin: 90px 0px 75px 0px;
    font-size: 28px;
}

.footer {
    min-height: 23em;
    padding-bottom: 10px;
}

/* @scale Alignierung Inhalt header, container, footer */
.header .breadcrumb, .container, .footer .content {
    margin: 0px auto;
    max-width: 80%;
}

.footer .content span, .footer .content a {
    display: block;
    margin: 3px auto;
}

/* Footer und Link */
.footer .content h3, .footer .content a, .footer .copyright {
    margin: 20px 0px 30px 0px;
    padding: 0px;
    font-size: 20px;
    font-weight: normal;
}

.copyright span:nth-of-type(2) {
    margin-top: 32px;
}

/* @scale Normaler Text */
.footer .content span {
    font-size: 16px;
}

/* Die vier Spalten des Footers */
.footer .content > div {
    display: inline-block;
    width: 25%;
    vertical-align: top;
    margin-bottom: 15px;
    padding: 20px 10px 20px 0px;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Breakpoints                                                               */

@media only screen and (max-width: 1240px) {

    /* @scale: Header */
    .header {
        margin-bottom: 42px;
    }

    /* @scale: Logos */
    .kof-header img {
        height: 50px;
        margin-right: 30px;
    }

    /* @scale: Normale Schrift */
    .main {
        font-size: 17px;
    }

    /* @scale: Seitenüberschrift */
    .main h3 {
        margin: 35px 0px 45px 0px;
        font-size: 24px;
    }

    /* @scale Alignierung Inhalt header, container, footer */
    .header .breadcrumb, .container, .footer .content {
        max-width: 90%;
    }

    /* Footer */

    .footer .content {
        padding-top: 10px;
    }

    .footer .content div {
        display: block;
        width: 100%;
        padding: 0px;
    }

    .footer .content h3 {
        margin-bottom: 0px;
    }

    /* @scale Normaler Text */
    .footer .content span {
        font-size: 16px;
    }

    /* copyright */
    .footer .content .copyright span {
        margin-top: 25px;
    }
}

@media only screen and (max-width: 670px) {

    /* @scale: Header */
    .header {
        margin-bottom: 24px;
    }

    /* @scale: Logos */
    .kof-header img {
        height: 38px;
        margin-right: 20px;
    }

    /* @scale: Hamburger-Menu */
    .kof-header img:nth-of-type(3) {
        display: inline;
        float: right;
        margin: 0px;
        cursor: pointer;
    }

    /* @scale: Seitenüberschrift */
    .main h3 {
        margin: 20px 0px 40px 0px;
        font-size: 20px;
    }

    /* @scale: Übersicht Anzahl Questionnaires */
    .number-of-questionnaires {
        font-size: 16px;
    }
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Login, new Password und Reset Password                                                                     */

div.login {
    box-shadow: 1px 1px 5px #A1B5CF;
    max-width: 380px;
    padding: 30px 50px;
    background-color: #F3F3F3;
    border: 16px solid white;
    margin-bottom: 40px;
}

@media only screen and (max-width: 670px) {
    div.login {
        padding: 20px 30px;
    }

}

div.login .password-management {
    margin: 32px 0px 14px 0px;
}

div.login form input, div.login form select, .login button {
    display: block;
    border: 2px solid #1269B0;
    width: 100%;
    max-width: 240px;
    font-size: 19px;
    padding: 5px;
    margin: 25px 0px;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Set Password   */

.new-password {
    margin-bottom: 20px;
}

.new-password form {
    margin-top: 18px;
}

.new-password ul {
    list-style: none;
    padding-left: 2px;
}

.new-password ul li {
    display: block;
    margin-bottom: 10px;
}

.new-password svg {
    width: 1.3em;
    height: 1.3em;
    vertical-align: middle;
    margin-right: 5px;
}

.new-password svg path {
    fill: #bdc3c7;
}

.new-password em > svg path {
    fill: #2ecc71;
}


/* ///////////////////////////////////////////////////////////////////////// */
/* List                                                                      */

div.list h3 {
    font-weight: normal;
    margin-bottom: 5px;;
}

div.list .menu {
    display: none;
}

div.list .list-content {
    margin-top: 50px;
}

.list-content .profile {
    vertical-align: top;
    display: inline-block;
    background-color: #f3f3f3;
    width: 304px;
    padding: 24px;
    font-size: 16px;
    margin-bottom: 32px;
}

.list-content .profile img {
    width: 50px;
    margin-bottom: 24px;
}

.list-content .profile > div > div {
    margin-bottom: 24px;
}

.list-content .profile span {
    display: block;
}

.waves {
    vertical-align: top;
    display: inline-block;
    padding: 0px;
    width: 876px;
    margin: 0px 16px 48px 16px; 
}

.waves .separator {
    width: calc(100% - 32px);
    border-top: 2px solid lightgray;
    margin: 24px auto;
    padding-top: 16px;
}

.waves .no-survey {
    margin: auto 16px;
}

div.list form {
    position: relative;
    vertical-align: top;
    display: inline-block;
    box-shadow: 0px 1px 4px #A1B5CF;
    width: 260px;
    height: 220px;
    border: 1px solid white;
    padding: 20px;
    margin: 0px 16px 32px 16px;
}

.past {
    margin-bottom: 32px;       
}

/* Container für Kacheln muss jeweils um ein Vielfaches der Kacheln angepasst werden. */
@media only screen and (max-width: 1977px) {
    .waves {
        width: 584px;
    }
}

@media only screen and (max-width: 1600px) {
    .waves {
        width: 292px;
    }
}

@media only screen and (max-width: 1240px) {
    div.list .menu {
        display: block;
    }
    div.list .menu div {
        font-size: 17px;
        margin: 30px 24px 30px 0px;
    }
    .list h3 {
        margin: 0px 0px 40px 0px;
    }
    .waves {
        width: 876px;
        margin: 0px;
    }
    .waves form {
        font-size: 20px;
    }
    div.list form {
        margin: 0px 16px 16px 0px;
    }
    .waves .separator {
        margin: 42px 0px;
    }
    .list-content .profile, .list-content div.reporting {
        display: none;
    }
}

@media only screen and (max-width: 950px) {
    .waves {
        width: 584px;
    }
}

@media only screen and (max-width: 670px) {
    div.list .menu {
        display: none;
    }
    .main {
        font-size: 16px;
    }
    .main h3 {
        margin: 20px 0px 40px 0px;
    }
    .waves {
        width: 100%;
    }
    .waves form {
        font-size: 24px;
    }
    div.list form {
        margin: 0px 16px 32px 0px;
        width: 100%;
        height: 304px;
    }
}

div.list form .month {
    margin-top: 20px;
}

div.list form span {
    display: block;
    margin: 5px;
}

div.list .button > input {
    cursor: pointer;
    border: none;
    width: 60px;
    height: 60px;
}

div.list .button.not-done > input {
    background: url('../images/edit.png') no-repeat;
    background-size: 32px;
}

div.list .button.done > input {
    background: url('../images/done.png') no-repeat;
    background-size: 52px;
}

div.list .button {
    position: absolute;   
}

div.list .button.done {
    bottom: -15px;
    right: 5px;
}

div.list .button.not-done {
    bottom: -10px;
    right: -10px;
}

.list-content .reporting {
    box-shadow: 0px 1px 4px #A1B5CF;
    vertical-align: top;
    display: inline-block;
    width: 304px;
    padding: 24px;
    margin-bottom: 72px;
}

.list-content .reporting h3 {
    margin: 0px
}

.list-content .reporting a {
    display: block;
    margin: 24px 0px 24px 0px;
}

.list-content .reporting video {
    width: 100%;
    margin-top: 24px;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Reporting                                                                 */

.reporting div iframe {
    width: 100%;
    min-height: 1150px;
    border: none;
    margin-bottom: 64px;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Menu                                                                      */

.menu div {
    display: inline-block;
    font-size: 20px;
    margin: 30px 32px 30px 0px;
}

@media only screen and (max-width: 1240px) {
    .menu div {
        font-size: 17px;
    }
}

.menu div a:hover {
    text-decoration: none;
}

.menu div:hover {
    border-bottom: 1px solid #222;
}

.menu div a {
    color: #222222;
}

.menu .active {
    border-bottom: 1px solid #222;
}

.hamburger-navigation {
    position: absolute;
    top: 120px;
    width: 100%;
    border-top: 1px solid #222;
}

.hamburger-navigation a {
    display: block;
    float: left;
    clear: left;
    margin: 30px 0px 10px 20px;
    font-size: 20px;
    color: #222;
}

.hamburger-navigation img {
    float: right;
    width: 20px;
    margin: 25px;
    cursor: pointer;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Profile                                                                   */

.profile input, .profile textarea {
    -webkit-appearance: none;
}

.profile input:hover {
    -webkit-appearance: none;
}

.profile .content {
    margin-bottom: 64px;
}

.profile .menu form {
    display: inline-block;
    margin: 2px 32px 16px 0px;
}

.profile .menu form input[type=submit] {
    padding: 0px;
    color: #222;
    background-color: white;
    border: none;
    cursor: pointer;
}

.profile .menu.entity {
    margin-bottom: 16px;
}

.profile .menu.entity form input[type=submit] {   
    font-size: 28px;
}

.profile .menu.item form input[type=submit] {
    color: #1269B0;
    font-size: 19px;
}

.profile .tile {
    padding: 16px;
    max-width: 880px;
    box-shadow: 0px 1px 4px #A1B5CF;
    border: 1px solid white;
}

.profile .details form {
    background-color: #F3F3F3;
    padding: 18px;
}

.profile .details form div {
    margin-bottom: 12px;
}

.profile .details form div label {
    display: inline-block;
    width: 33%;
}

.profile .details form div input, 
.profile .details form div select, 
.profile .details form div textarea {
    width: 66%;
    font-size: 19px;
    border: 1px solid #222;
    background-color: white;
    color: #222;
    cursor: inherit;
}

.profile .details form div select {
    background-color:#F3F3F3;
    padding: 5px;
}

.profile .details form div textarea {
    height: 150px;
    vertical-align: top;
}

.profile .details input[type=submit], .profile .details input[type=reset] {
    position: relative;
    bottom: -24px;
    left: -24px;
    margin: 24px 12px 22px 22px;
    padding: 8px;
    min-width: 144px;
}

.profile .details input[type=reset] {
    color: #1269B0;
    background-color: white;
    border: 2px solid #1269B0;
}

.profile .menu.entity form input[type=submit], .profile .menu.item form input[type=submit] {
    /* Because of active border on hover */
    border-bottom: 1px solid white;
}

.profile .menu form input[type=submit].active {
    cursor: default;
}

.profile .menu.entity form input[type=submit].active,
.profile .menu.entity form input[type=submit]:hover {
    border-bottom: 1px solid #222;  
}

.profile .menu.item form input[type=submit]:hover {
    border-bottom: 1px solid #1269B0;
}

.profile .menu.item form input[type=submit].active, 
.profile .menu.item form input[type=submit].active:hover {
    color: #222;
    border-bottom: 1px solid white;
}

.profile .details.changes {
    min-height: 400px;
    padding: 18px;
    background-color: #f3f3f3;
}

.profile .details .thanks {
    margin-bottom: 40px;
}

.profile .details .summary div > div {
    display: inline-block;
    width: 30%;
    padding: 8px 10px 10px 0px;
    vertical-align: top;
}

.profile .details .summary div > div:nth-of-type(2) {
    width: 70%;
}

.profile .details .summary div > div br {
    line-height: 4px;
}

.profile .details .summary .entry {
    margin-bottom: 8px;
}

.profile .details .summary .header {
    font-weight: bold;
    background-color: inherit;
    color: inherit;
    font-size: inherit;
    margin-bottom: 16px;
}

@media only screen and (max-width: 1240px) {
    .profile .menu.entity form input[type="submit"] {
        font-size: 24px;
    }
    .profile .menu.item form input[type="submit"],
    .profile .details input[type="submit"], 
    .profile .details input[type="reset"],
    .profile .details form div input, 
    .profile .details form div select, 
    .profile .details form div textarea {
        font-size: 17px;
    }
}

@media only screen and (max-width: 670px) {

    .profile .menu form {
        margin: 2px 16px 16px 0px;
    }

    .profile .menu.entity {
        display: block;
        margin: 32px 0px 8px 0px;
    }

    .profile .menu.entity form input[type="submit"] {
        font-size: 20px;
    }

    .profile .menu.item form input[type="submit"],
    .profile .details input[type="submit"], 
    .profile .details input[type="reset"],
    .profile .details form div input, 
    .profile .details form div select, 
    .profile .details form div textarea {
        font-size: 16px;
    }

    .profile .menu.item {
        display: block;
        margin: 2px 16px 8px 0px;
    }
    
    .profile .details form div label, 
    .profile .details .entry div:nth-of-type(1) {
        display: block;
        margin-bottom: 2px;
        width: 100%;
    }

    .profile .details form div input, 
    .profile .details form div select,
    .profile .details form div textarea,
    .profile .details .entry div:nth-of-type(2) {
        width: 100%;
        margin-bottom: 8px;
    }

    .profile .details.submit-buttons form input[type="submit"],
    .profile .details.submit-buttons form input[type="reset"] {
        margin: 0px 0px 32px 28px;
    }
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Questionnaire                                                             */

/* Header */

.questionnaire-header h3 {
    margin: 12px 0px 0px 0px;
    font-weight: normal;
}

.questionnaire-header .header-subtitle {
    margin: 0px 0px 4px 0px;
    font-size: 18px;
}

.questionnaire-header .header-company {
    font-size: 16px;
}

/* General stuff */

.questionnaire {
    margin-right: 1.5vw;
    margin-bottom: 48px;
    font-size: 18px;
}

.questionnaire .submit-buttons input {
    -webkit-appearance: none;
    padding: 8px;
    margin: 1.5vw;
}

.questionnaire .submit-buttons input:nth-of-type(1), .questionnaire .pagination-buttons input {
    color: #1269B0;
    background-color: white;
    border: 2px solid #1269B0;
    cursor: pointer;
    font-size: 18px;
}

.questionnaire li {
    display: block;
}   

.questionnaire .title {
    font-size: 20px;
}

/* @scale: Padding */
.questionnaire > fieldset:nth-of-type(1) {
    margin-top: 32px;
    box-shadow: 0px 1px 4px #A1B5CF;
    border: none;
}

.questionnaire > fieldset {
    padding: 0;
    margin: 0;
}

.questionnaire .submit-buttons {
    text-align: right;
}

.questionnaire fieldset {
    border: none;
}

.questionnaire form {
    width: 100%;
    text-align: left;
}

.questionnaire form[name=post4get-form] {
    display: inline;
    margin-left:16px;
}

.questionnaire form input[name=post4get-submit] {
    padding: 0px;
    font-size: 18px;
    border: none;
    color: #1269B0;
    background-color: white;
    -webkit-appearance: none;
    cursor: pointer;
}

.questionnaire form input[name=post4get-submit]::-moz-focus-inner {
    margin: 0px;
    padding: 0px;
}

.questionnaire .question .mandatory-asterix {
    display: inline-block;
    margin-left: 5px;
}

.questionnaire.check_mandatory .mandatory {
    border: solid 2px #e74c3c;
    border-radius: 4px;
    display: inline-block;
}

.questionnaire.check_mandatory input[type=checkbox].mandatory {
    outline: solid 2px #e74c3c;
}

.questionnaire .mandatory-information {
    color: #e74c3c;
}

.questionnaire .validation-display {
    font-weight: 600;
    display: inline-block;
    padding: 10px;
    border: 1px solid #bdc3c7;
    border-radius: 4px;
}

.questionnaire .constraint-violated, .questionnaire .constraint-violated em, .questionnaire .constraint-violated i {
    color: #e74c3c;
}

.questionnaire .constraint-violated .validation-display {
    border-color: #e74c3c;
}

.questionnaire .constraint-resolved {
    color: inherit;
}

.questionnaire .constraint-resolved .validation-display {
    border-color: #2ecc71;
}

.questionnaire #jumps {
    display: none;
}

@media only screen and (max-width: 670px) {
    .menu {
        display: none;
    }
    .questionnaire {
        font-size: 16px;
    }
    .questionnaire-header h3 {
        font-size: 20px;
    }
    .questionnaire-header .header-subtitle, .questionnaire-header .header-subtitle input[name="post4get-submit"] {
        font-size: 16px;
    }
    .questionnaire-header .header-company {
        font-size: 14px;
    }
    .questionnaire .title {
        font-size: 18px;
    }
    .questionnaire > fieldset:nth-of-type(1) {
        padding: 0px;
        margin-right: 0px;
    }
}

.questionnaire fieldset.single_choice_matrix_table table {
    width: 100%;
}

.questionnaire fieldset.single_choice_matrix_table table td.question_column {
    width: 200px;
}

.questionnaire .group.matrix_table fieldset.single_choice_matrix_table table td label {
    visibility: hidden; /* hidden instead of display none, so that cell width remains the same in entire group. requires label text. */
    display: block;
    height: 0;
}

.questionnaire .group.matrix_table fieldset.single_choice_matrix_table:nth-of-type(1) table td label {
    visibility: initial;
    display: initial;
    height: initial;
}

/* Change language */

.change-language select {
    display: block;

    font-size: inherit;
    width: 208px;

    margin-top: 20px;
}

.change-language ~ input {
    margin: 1.5vw;
    padding: 8px;
    background-color: #1269B0;
    border: none;
    color: white;
    text-align: left;
    text-decoration: none;
    display: inline-block;
    font-size: inherit;
    cursor: pointer;
}

/* Group */

.group {
    padding: 1vw 1vw;
    margin: 1.5vw;

    border: 1px solid #bdc3c7;
    border-radius: 4px;
}

.parent-of-atom {
    background-color: #f3f3f3;
}

/* First group is collabsed into main tile */
fieldset > form > .group:nth-of-type(1) {
    padding: 0px;
    border: none;
}

/* Pagination */

.page, .pagination .submit-buttons, .progress {
    display: none;
}

.page.showpage {
    display: block;
}

.pagination-buttons {
    text-align: right;
}

span.hide-prev > .pagination-buttons > input[name=previous], 
span.hide-save > .pagination-buttons > input[name=save-temp],
span.hide-save > .pagination-buttons > input[name=save-final],
span.hide-next > .pagination-buttons > input[name=next] {
    display: none;
}

.pagination-buttons input {
    display: inline-block;
    padding: 0.7vw;
}

.pagination .progress {
    display: block;

    margin: 1.5vw;
    margin-bottom: 1px;

    border: 1px solid #bdc3c7;
    border-radius: 4px;

    height: 20px;
}

.pagination .progress > div {
    background-color: #ffb249;

    border: 1px solid #ffb249;
    border-radius: 4px;

    height: 60%;
    margin: 3px;
}

.pagination .progress > div > div {
    font-size: 11px;
    font-weight: 800;
    left: 50%;
    position: absolute;
}

fieldset[disabled] .submit-buttons, fieldset[disabled] .progress, fieldset[disabled] .pagination-buttons {
    display: none;
}

fieldset[disabled] .page {
    display: block;
}

/* Single choice answer type */

.answers.single_choice input[type=radio] {
    margin: 8px 15px;
}

.answers.single_choice li {
    list-style: none;
    border-radius: 4px;
}

.answers.single_choice li:hover, .checkbox:hover {
    background-color: white;
}

ul.answers.single_choice {
    padding-left: 15px;
    margin-top: 7px;
}

.answers.single_choice label, .checkbox label {
    display: inline-block;
    width: 75%;
    vertical-align: text-top;
    padding: 0px 0px 4px;
}

/* Comments (multiple_line) type*/

.multiple_line textarea {
    width: 100%;
    height: 150px;
}

/* Checkbox answer type */

.atom.checkbox input {
    margin: 8px 15px;
}

fieldset.checkbox {
    border-radius: 4px;
}

/* Single_line_text and number answer type */

fieldset[class*="single_line_"] label.question {
    display: block;
    margin-bottom: 3px;
}

fieldset[class*="single_line_"] input {
    color: inherit;
    font-size: 16px;
    width: 200px;
}

input.numeric {
    text-align: right;
}

/* Dropdown type */

.atom.dropdown label.question {
    display: block;
    margin-bottom: 10px;
}

.atom.dropdown select, .atom.dropdown option {
    color: inherit;
    font-size: 16px;
}

.atom.dropdown select {
    width: 210px;
}

/* Image type */

.image {
    max-width: 800px;
}

.image img {
    max-width: 100%;
    height: auto;
}

.image.center {
    text-align: center;
}

.image.right {
    text-align: right;
}

/* Plugin type */

.plugin.center {
    text-align: center;
}

.plugin.right {
    text-align: right;
}

.plugin iframe {
    border: none;
}

/* ///////////////////////////////////////////////////////////////////////// */
/* Explanation, Notes                                                        */

.explanation {
    margin-bottom: 64px;
}

.explanation h3 {
    margin: 64px 0px 32px 0px;
}

.explanation h2 {
    padding: 0px;
    margin: 0px;
}

.explanation p {
    margin-top: 0px;
}

.explanation h2 {
    font-size: inherit;
}

.explanation li {
    list-style: disc;
    display: list-item;
    margin: 16px;
}

.explanation li:nth-of-type(1) {
    margin-top: 0px;
}

.explanation p span {
    display: block;
}

.explanation h4 {
    margin: 38px 0px 16px 0px;
    font-weight: inherit;
}

/* ---------------------------------------------------
   Print Settings
   --------------------------------------------------- */
   
@media print {

    .header {
        margin: 0px;
    }

    .header .breadcrumb {
        margin: 0px;
    }

    .container {
        margin: 0px;
        max-width: 100%;
    }

    .parent-of-atom {
        background-color: white;
    }

    .group {
        padding: 5px;
        margin: 5px;

    }

    .breadcrumb > a, .menu, .container a, .container input[type=submit], div.arrow, .footer {
        display: none;
    }

    input[type=radio], input[type=checkbox] {
        -webkit-transform: scale(1.8);
    }
}

/* Thank you box */
.thankyou-box {
  padding: 1vw 1vw;
  margin-top: 1.5vw;

  border: 1px solid #bdc3c7;
  border-radius: 4px;
  font-weight: bold;
}