*, *::before, *::after { box-sizing: border-box; }

html { background: #000; }

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: linear-gradient(to top right, #000, #444) fixed;
    color: #fff;
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
    font-size: 18px;
    line-height: 1.5;
}

a:link, a:visited { color: orange; text-decoration: none; }
a:hover { text-decoration: underline; }

.container {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

header { border-bottom: 1px solid rgba(255, 255, 255, 0.15); }
header .container { display: flex; align-items: center; height: 80px; }
header img { height: 40px; display: block; }

main { flex: 1; padding: 30px 0 20px; }

.hero {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0 120px;
    margin-bottom: 20px;
}
.hero > img { height: 300px; max-width: 100%; object-fit: contain; }

.hero-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    text-align: center;
}
.hero-title img { height: 70px; }
.hero-title h1 { font-size: 3.2rem; font-weight: 500; margin: 0.6em 0 0.4em; line-height: 1.1; }
.hero-title p { text-transform: uppercase; margin: 0; }

.cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 30px 0;
}
.card {
    background: rgba(76, 76, 76, 0.3);
    padding: 5px 15px 15px;
    color: #ccc;
}
.card h2 { color: #fff; font-size: 1.4rem; font-weight: 500; margin: 0.8em 0 0.4em; }
.card p { margin: 0; }

footer { background: rgba(255, 255, 255, 0.05); padding: 20px 0; }
footer .container { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
footer p { margin: 0; }
footer a:link, footer a:visited { color: #adb3c1; }

.impressum { color: lightgrey; font-size: 14px; }
.impressum h1 { font-size: 1.3rem; color: #fff; }
.impressum h2 { font-size: 1rem; color: #fff; margin: 1.6em 0 0.4em; }
.impressum p { margin: 0 0 0.8em; }

@media (min-width: 700px) {
    .cards { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 600px) {
    body { font-size: 16px; }
    .hero-title { min-height: 0; margin-top: 30px; }
    .hero-title h1 { font-size: 2.4rem; }
}
