body {
    margin: 0;
    font-family: Arial, sans-serif;
    font-size: 15px;
    max-width: 1300px;
}

body.impressum {
    margin: 8px;
    max-width: 960px;
}

#logo {
    width: 50%;
    max-width: 480px;
    margin: 2vw 4vw 2vw 2vw;
    float: left;
}
#logo-picture {
    width: 100%
}
#logo-text {
    color: #004B7C;
    font-size: 20px;
    margin-left: 20vw;
    margin-top: -5vw;
}
@media (min-width: 960px) {
    #logo-text {
        margin-left: 190px;
        margin-top: -48px;
    }
}

.clear {
    clear: both;
}

div.column {
    width: 600px;
    max-width: 100%;
    display: inline-block;
    vertical-align: text-top;
}

h3 {
    padding-top: 10px;
}

h3.indent {
    padding-left: 5px;
}

.step svg.icon {
    width: 50px;
    height: 50px;
    margin: 5px 14px 8px 20px;
    float: left;
}

.step p {
    padding-top: 9px;
}

.step p span.btn {
    background-color: #ee7f00;
    color: #fff;
    padding: .3rem;
}

.step {
    overflow: auto;
}

ul.checklist {
    list-style: none;
    padding-inline-start: 1em;
    list-style-position: outside;
}

ul.checklist li::before {
    content: "\00a0";
    border: 3px solid #004B7C;
    border-radius: 1em;
    display: inline-block;
    width: 1em;
    height: 1em;
    margin: 0.1em 0.5em 0.1em 0;
}

form {
    clear: both;
    padding-top: 3vw;
    display: flex;
    flex-wrap: wrap;
    max-width: 960px;
    align-items: baseline;
}
form h2 {
    padding: 0 10px;
    flex-basis: 100%;
}

.input-text,
.input-check,
.input-date {
    padding: 3px;
}
.input-text {
    flex-grow: 2;
    width: 300px;
}
.input-text.narrow,
.input-date {
    flex-grow: 0.5;
    width: 120px;
}
.input-check {
    width: 120px;
}

.input-text label,
.input-date label,
.input-check label {
    display: block;
    margin-top: 0.6vw;
    margin-bottom: 2px;
}
label.required:before {
    color: red;
    content: "* ";
}
.input-text > input,
.input-date > input,
.input-text select {
    border-width: 2px;
    margin: 0 auto;
    box-sizing: content-box; /* nedeed for FF */
}
.input-text > input,
.input-date > input {
    width: calc(100% - 6px); /* minus padding and border */
    height: 28px;
}
.input-text .combobox {
    width: 100%; /* has no padding or border */
    height: 34px;
}
.input-text .combobox select {
    width: calc(100% - 4px); /* minus border, has no padding */
    height: 30px;
}
.input-text .combobox input {
    width: calc(100% - 26px);
    margin: 3px 1px 1px 2px;
    height: 26px;
    border: none;
    text-overflow: ellipsis;
}
@-moz-document url-prefix() { /* Firefox */
    .input-text select {
        background-image: url("../img/drop-down-arrow.gif");
        -moz-appearance: none;
        background-position: right center;
        padding-right: 16px;
    }
    .input-text .combobox select {
        width: calc(100% - 20px); /* leave space for down arrow image */
    }
    .input-text .combobox input {
        width: calc(100% - 36px);
        height: 27px;
    }
}
.input-check input {
    display: block;
    margin: 8px auto;
}
.validation-msg {
    margin: 5px 0 5px 0;
    font-size: 12px;
    font-style: italic;
    color: red;
}
.combobox + .select-info {
    margin-top: 27px;
}
.combobox {
    position: relative;
}
.combobox > * {
    position: absolute;
    top: 0;
    left: 0;
    outline: none;
}


form .break {
    flex-basis: 100%;
    height: 0;
}
form .break.divider {
    margin-bottom: 10px;
}

form button { /* ADFC style */
    border: none;
    border-radius: 0;
    margin: 2vw 3px 5px;
    background-color: #ee7f00;
    color: #fff;
    padding: .5rem;
    cursor: pointer;
}
form button[disabled] {
    background-color: rgba(238,127,0,0.5);
    cursor: not-allowed;
}

div.bottom {
    width: 100%;
    max-width: 960px;
    margin: 5px;
}

table.ein-data {
    float: right;
    margin: 0 0 20px 20px;
    background-color: #004B7C;
    color: white;
    border: 3px solid #ee7f00;
    border-collapse: collapse;
}
table.ein-data th,
table.ein-data td {
    text-align: center;
    font-weight: normal;
    padding: 8px;
    border: 1px solid white;
}

table.ein-data td {
    font-size: 24px;
}

p.price {
    margin: 20px;
}
