body {
    -webkit-font-smoothing: subpixel-antialiased;
    width: 100%;
    margin: 0;
    padding: 0;
    color: #000;
    background-color: #ffffff;
    font-weight: 200;
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}
body, input, button, textarea {
    font-size: 14px;
    font-family: 'Open Sans', sans-serif;
}

/* Kopfzeile mit Logo, Fußzeile mit Links */
h1 {
    margin:0;
}
.headline, .footline {
    padding:.5ex .5ex .5ex 0;
}
.footline {
    border-top:1px dotted gray;
    display:flex;
    flex-flow: nowrap row;
    justify-content: space-around;
}
.headline {
    border-bottom:1px dotted gray;
}
.headline > img {
    float:right;
    height:5.25ex;
}
.headline::after {
    content: "";
    display: block;
    clear: both;
}

/* Navigationsleiste und Content-Bereich */
.navcon {
    display: flex;
    flex-grow:1;
    box-sizing: border-box;
}
.navcon > .nav {
    width: 20%;
}
.navcon > .nav a {
    display:block;
}
.navcon > iframe {
    width: 80%;
    border:none;
    border-left: 1px dotted gray;
    padding: 0 .5em .5ex;
    box-sizing: border-box;
}

.wrapper {
    margin: 0 auto;
    padding: 0 10px;
    width: 988px;
    flex: 1 1 auto;
    min-height: calc(100vh - 80px);
}
.section {
    clear: both;
    margin: 0 0 20px;
    padding: 0;
}
.logorow.wbreadcrump {
    margin-bottom: 5px;
}
.section {
    clear: both;
    margin: 0 0 20px;
    padding: 0;
}
.logorow {
    text-align: right;
}
.headnav, .logorow, .menuerow {
    width: 100%;
}
a {
    color: #000;
    text-decoration: none;
}
.logorow img {
    display: inline-block;
}
.portallogo {
    float: left;
    height: 4.333em;
}
a img {
    border: 0 none;
}
a.logoadd {
    float: left;
}
img {
    display: block;
}
.nlqlogo {
    float: right;
    height: 4.833em;
}
.clear {
    clear: both;
}
.group::before, .group::after {
    content: "";
    display: table;
}
.group::after {
    clear: both;
}
.group::before, .group::after {
    content: "";
    display: table;
}
.section.breadcrumb {
    margin-bottom: 5px;
}
.group {
}
.breadcrumb ul {
    color: #878787;
    font-size: 0.7em;
    list-style: outside none none;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
}        
.breadcrumb li {
    display: inline-block;
    float: left;
    margin-right: 1.6em;
}
.menuerow {
    border-top: 1px dotted #000;
    position: relative;
    z-index: 1000;
}
div.content h1 {
    font-size:1.25em;
    font-weight:bold;
    margin:.5em 0 .2em 0;
}
div.content h2 {
    font-size:1.1em;    
    font-weight:600;
    margin:.5em 0;
}
div.content h3 {
    font-size: 0.8em;
    font-weight: 600;
    margin: 0;
    text-transform: uppercase;
} 
div.sidebar h2 {
    font-size: 1em;
    font-weight: bold;
    margin: 0.6em 0;
}       
div.sidebar strong {
    font-weight: 600;
}
hr {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    border-color: #878787 -moz-use-text-color -moz-use-text-color;
    border-image: none;
    border-style: dotted none none;
    border-width: 1px 0 0;
    color: #ffffff;
    height: 1px;
    margin-bottom: 0.5em;
    margin-left: 0;
    margin-top: 0.5em;
    width: 100%;
}
div.main, div.footer {
    font-weight: 300;
}
.group {
}
.footer {
    border-top: 1px dotted #878787;
    clear: both;
    margin-top: 60px;
    padding: 20px 0;
    position: relative;
    z-index: 500;
}
.seitenende {
    background-color: #878787;
    clear: both;
    padding: 0;   
    width: 100%;
    height: 80px;
    margin-top: 2em;
}
.seitenende .content {
    margin: 1em auto;
}
div.wrap3of4, div.wrap1of4 {
    display: inline-block;
}
.span4of4 {
    width: 988px;
}
div.content {
    position: relative;            
}
.wrap3of4 {
    width: 736px;
}
.span3of4 {
    width: 706px;
}        
.wrap1of4 {
    width: 232px;
}
.span1of4 {
    width: 202px;
}
.main, .complementary {
    float: left;
}
.seitenende .content a {
    color: #fff;
    margin-right: 20px;
}
.beitrag {
    margin: 0;
}
div.sidebar {            
    float: right;
    margin: 15px 0;
    font-weight: 400;
    
}
div.sidebar div.section {
    background: #f2f2f2;
    padding: 0 15px;
    position: relative;
}
div.sidebar ul.linkliste {
    margin: 0;
    padding: 0;
    list-style: none;
    margin-top: 1em;
}
div.sidebar ul.linkliste li {
    margin-bottom: 1em;
    position: relative;
}
div.sidebar ul.linkliste li a {
    margin: 15px 0;
}
div.sidebar ul.linkliste li span.clip {            
    left: -18px;
    top: -5px;
    float: left;
    -webkit-border-radius: 0 5px 5px 0;
    -moz-border-radius: 0 5px 5px 0;
    border-radius: 0 5px 5px 0;                        
    width: 30px;
    height: 30px;
    display: block;
    position: absolute;
    background-color: #ccc;                          
    background-repeat: no-repeat;
    background-position: center center;
}
div.sidebar ul.linkliste li.video span.clip {
    background-image: url(../img/video.svg);
    background-size: 1.5em;
}
div.sidebar ul.linkliste li.pdf span.clip {
    background-image: url(../img/file-pdf.svg);
    background-size: 1.2em;
}
div.sidebar ul.linkliste li.phone span.clip {
    background-image: url(../img/phone.svg);
    background-size: 1.4em;
}
div.sidebar ul.linkliste li.html span.clip {
    background-image: url(../img/external-link.svg);
    background-size: 1.5em;
}
div.sidebar ul.linkliste li.logout span.clip {
    background-image: url(../img/sign-out.svg);
    background-size: 1.5em;
}
div.sidebar ul.linkliste li span.clip:before {
    content: '';
    bottom: -5px;
    border-style: solid;
    border-color: #90908f transparent;
    border-width: 5px 0 0 3px;
    position: absolute;
}             
div.sidebar ul.linkliste li span.link {
    display: block;
    margin-left: 1.5em;
    min-height: 1.5em;
}
div.sidebar ul.linkliste li span.link span.fileinfo {
    font-size: 0.75em;
    font-style: italic;
}
/* form */
div.form {              
    position: relative;    
    width: 50%; 
    padding: 1em 1em 2em 1em;
    background: #f2f2f2; 
}
div.form label {    
    font-weight: 400;
}
div.row {
    display: flex;
    align-items: flex-start;
    flex-flow: row nowrap;    
    margin: 0.5em auto;
    width: 100%;    
}
div.adress {
    background: #f2f2f2; 
    margin-bottom: 1em;
}
div.adress div.form {
    background: transparent;
    padding: 1em;
}
div.adress div.row {
    margin: 0;
}
.col-1, 
.col-3,
.col-4,
.col-5,
.col-7,
.col-9 {
    padding: 0 0.5rem;
}

div.row .col-1 {
    flex: 0 0 10%;
}
div.row .col-3 {
    flex: 0 0 30%;
}
div.row .col-4 {
    flex: 0 0 40%;
}
div.row .col-5 {
    flex: 0 0 50%;
}
div.row .col-7 {
    flex: 0 0 70%;
}
div.row .col-9 {
    flex: 0 0 90%;
}
div.form input[type="text"],
div.form input[type="password"],
div.form select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    border-radius: 0;
    font-size: 1em;
    padding: 4px;
    margin-bottom: 10px;
}
div.adress div.form input[type="text"],
ddiv.adress div.form input[type="password"],
div.adress div.form select {
    margin-bottom: 5px;    
}
div.row input[type="checkbox"] {
    transform: scale(1.2);
}
.button {
    position: absolute;
    padding: 0.5em 1.5em;
    cursor: pointer;
    background: #ccc;
    border: none;
    font-weight: 600;
    white-space: nowrap;
}
.button.right {
    right: -3px;      
    bottom: 8px;
    -webkit-border-radius: 5px 0 0 5px;
    -moz-border-radius: 5px 0 0 5px;
    border-radius: 5px 0 0 5px;
}
.button.bottom {
    -webkit-border-radius: 5px 5px 0 0;
    -moz-border-radius: 5px 5px 0 0;
    border-radius: 5px 5px 0 0;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
}
.button.small {
    padding: 0.25em 1em;    
}
.button.single {
    position: relative;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}
.button.single:after {
    content: none;
}
.button:after {
    content: '';    
    border-style: solid;    
    position: absolute;
}
.button.right:after {    
    bottom: -5px;
    right: 0;
    border-color: transparent #90908f;    
    border-width: 0 0 5px 3px;    
}  
.button.bottom:after {    
    bottom: 0;
    right: -5px;
    border-color: transparent #90908f;    
    border-width: 0 0 3px 5px;  
} 
.button i {
    padding-right: 1em;
}
table.eingabe td {
    padding: 0.25em;
    background: #f2f2f2;
}
table.eingabe th {
    background: #CCCCCC;
    text-align: left;
    padding: 0.25em 0.5em;
}
table.eingabe input,
label input,
textarea.fragen {
    border: 1px solid #ccc;
    font-size: 1em;
    padding: 4px;    
}
table.eingabe input[type="text"]:read-only,
div.form input[type="text"]:read-only {
    border: 1px solid #f2f2f2;    
    background: #f2f2f2;
    font-weight: 600;
    color: #000000;
}
table.eingabe input[type="text"].anzahl:read-only {
    font-weight: 400;
}
table.eingabe input.number {
    width: 4em;
}
table.eingabe input.klasse,
table.eingabe input.anzahl {
    width: calc(100% - 0.5em);
}
textarea.fragen {
    width: 100%;
    resize: vertical;
}
table.eingabe .button-cell {
    position: relative;
    width: 3em;
    padding: 0.25em 0.5em;
}
div.submit {
    position: relative;
    border-bottom: 1px solid #CCCCCC;
    height: 2em;
}
.alert {   
    font-weight: 400;
    font-style: italic;   
}
.alert i {
    padding-right: 0.5em;
}
.error {
     color: #e50046;
}
.success {
    color: forestgreen;  
    margin: 2em 0;
}
.center {
     text-align: center;
     margin-left: auto;
     margin-right: auto;
}
table.admin {
    font-size: 1em;
    font-weight: 400;
    border-collapse: collapse;
    width: 100%;
}
table.admin tr:nth-child(2n+1) td {
    background: #f2f2f2;
}
table.admin th {
    vertical-align: bottom;
    text-align: left;
    font-weight: 600;
    background: #CCCCCC;
}
table.admin td {
    vertical-align: top;    
}
table.admin td,
table.admin th {
    border-bottom: 1px solid #CCCCCC;
    padding: 0.25em 0.5em;
}
table.admin td.small {
    font-size: 0.8em;
    line-height: 2em;
}
table.admin span.nobreak {
    display: block;
    white-space: nowrap;
}
