*{box-sizing:border-box}

html{
    font-size:100%;
    -webkit-text-size-adjust:100% !important;
    text-size-adjust:100% !important;
}

body{
    display:flex;
    flex-direction:column;
    min-height:100dvh;
    margin:0;
    font-family:'Roboto Condensed','Helvetica Neue',Arial,sans-serif;
    font-weight:400;
    font-size:clamp(14px,2.5vw + 0.5rem,18px);
    line-height:1.5;
    background-color:#323232;
}

a{text-decoration:none}
a:hover{opacity:0.8}
img{display:block;margin:0;padding:0;max-width:100%}
small{font-size:0.80em}

/* Layout containers */
div#header,div.farbbalken,div#nav,div#navalt,div#imagine,div#main,div#prefooter,div#footer{
    width:640px;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
}

div#header{
    flex:0 0 auto;
    background-color:#dd0000;
    padding:0;
}

div.farbbalken{
    flex:0 0 auto;
    height:10px;
    line-height:10px;
    background-color:#e0e0e0;
}

div#nav{
    flex:0 0 auto;
}

/* 2-column button grid */
.grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-auto-rows:1fr;
    gap:1px;
    background-color:transparent;
    padding:0;
    margin:1px 0;
}

.grid>*{
    line-height:1.2em;
    display:grid;
    place-items:center;
    min-height:100%;
    text-align:center;
    margin-top:0;
    padding:15px 6px;
}

.grid a{border-radius:0}
.grid i{font-size:1.6em;margin-bottom:5px;display:block}

/* Main content */
div#main{
    flex:1 1 auto;
    padding-bottom:0;
}

.textcontent{
    text-align:left;
    padding:12px 20px 12px 20px;
}

.textcontent h2{
    font-size:1.50em;
    font-weight:400;
    line-height:1.2;
    margin:10px 0;
}

.textcontent h3{
    font-size:1.25em;
    font-weight:700;
    line-height:1.2;
    margin:10px 0;
}

.textcontent h4{
    font-size:1.1em;
    font-weight:700;
    line-height:1.2;
    margin:10px 0;
}

.textcontent hr{
    border:0;
    height:1px;
    margin:1em 0;
}

.textcontent p{
    text-align:left;
    margin:4px 0;
    line-height:1.3;
}

.textcontent p.small{
    font-size:0.9em;
    line-height:1.25em;
}

.textcontent p.intro{
    margin:10px 0 18px;
    line-height:1.4;
}

.textcontent ul{
    list-style:square;
    padding-left:20px;
    margin-bottom:20px;
}

.textcontent ul li{
    line-height:1.35em;
    margin-bottom:8px;
}

.textcontent ul li h4{
    display:inline;
}

/* Prefooter spacer */
div#prefooter{
    flex:0 0 auto;
    padding-bottom:50px;
}

/* Fixed footer */
div#footer{
    font-size:0.75em;
    position:fixed;
    bottom:0;
    left:50%;
    transform:translateX(-50%);
    width:640px;
    max-width:100%;
    height:40px;
    background-color:#121212;
    text-align:center;
    line-height:40px;
    color:#ffffff;
    z-index:100;
}

div#footer img{
    display:inline;
    width:72px;
    vertical-align:middle;
}

div#footer a{color:#ffffff}

/* Impressum link */
div#footer .impressum-link{
    margin-left:12px;
    color:#888;
    cursor:pointer;
    font-size:0.9em;
}

div#footer .impressum-link:hover{color:#fff}

/* Impressum modal */
.impressum-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.85);
    z-index:200;
    overflow-y:auto;
}

.impressum-overlay.active{display:flex;align-items:flex-start;justify-content:center;padding:20px}

.impressum-box{
    background:#1a1a1a;
    color:#e0e0e0;
    max-width:600px;
    width:100%;
    border-radius:8px;
    padding:24px;
    margin-top:40px;
    position:relative;
}

.impressum-box h3{
    font-size:1.2em;
    margin-bottom:16px;
    color:#fff;
}

.impressum-box p,.impressum-box address{
    font-size:0.9em;
    line-height:1.5;
    margin-bottom:8px;
    font-style:normal;
}

.impressum-close{
    position:absolute;
    top:12px;
    right:16px;
    font-size:1.5em;
    cursor:pointer;
    color:#888;
    background:none;
    border:none;
    line-height:1;
}

.impressum-close:hover{color:#fff}

/* Lead-Capture Formular */
.lead-field{
    width:100%;
    background:#0d0d0d;
    border:1px solid #333;
    border-radius:6px;
    padding:11px 13px;
    color:#fff;
    font-family:'Roboto Condensed',sans-serif;
    font-size:1em;
    margin-bottom:10px;
    outline:none;
}
.impressum-box .lead-field:focus{border-color:#888}
.lead-field::placeholder{color:#777}
textarea.lead-field{resize:vertical}
.lead-submit{
    width:100%;
    border:none;
    border-radius:6px;
    padding:13px;
    font-family:'Roboto Condensed',sans-serif;
    font-size:1.05em;
    font-weight:700;
    color:#fff;
    background:#333;
    cursor:pointer;
    text-transform:uppercase;
    letter-spacing:.5px;
}
.lead-submit:hover{opacity:.9}
.lead-submit:disabled{opacity:.6;cursor:default}
.lead-status{margin-top:10px;font-size:.92em;text-align:center}
.lead-status.ok{color:#4caf50}
.lead-status.err{color:#ff6b6b}
