@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap");

/* Verhindert, dass Komponentenstile das native hidden-Attribut übersteuern. */
[hidden] {
    display: none !important;
}
:root {
    --bg: #101311;
    --panel: #191d1a;
    --line: #30362f;
    --text: #f3f5ee;
    --muted: #a1a79e;
    --green: #c5f578;
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 30px;
}
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: "DM Sans", sans-serif;
    font-size: 15px;
}
button,
input,
textarea {
    font: inherit;
}
button,
a {
    -webkit-tap-highlight-color: transparent;
}
button {
    cursor: pointer;
}
a {
    color: inherit;
    text-decoration: none;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: 5px;
}
.header {
    height: 108px;
    padding: 0 6%;
    display: flex;
    align-items: center;
    gap: 48px;
    border-bottom: 1px solid var(--line);
}
.brand {
    display: flex;
    align-items: center;
    font-size: 25px;
    letter-spacing: -1.1px;
    font-weight: 700;
}
.brand-light {
    font-weight: 400;
}
.brand-dot {
    font-size: 12px;
    align-self: flex-start;
    margin: 6px 0 0 4px;
}
.brand-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 39px;
    background: var(--green);
    color: var(--bg);
    border-radius: 10px;
    margin-right: 10px;
    font-size: 31px;
    position: relative;
}
.brand-icon span {
    font-size: 20px;
    margin-left: -4px;
}
nav {
    display: flex;
    gap: 32px;
    margin: auto;
    font-size: 13px;
    color: #c1c6bc;
}
nav a:hover {
    color: var(--green);
}
.login {
    border: 1px solid #535b4c;
    background: transparent;
    color: var(--text);
    border-radius: 6px;
    padding: 12px 18px;
    display: flex;
    gap: 13px;
    font-size: 13px;
}
.login:first-letter {
    color: var(--green);
}
.hero {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    min-height: 643px;
    padding: 70px 6% 54px;
    gap: 30px;
    overflow: hidden;
}
.eyebrow {
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 1.7px;
    display: flex;
    gap: 9px;
    align-items: center;
}
.status-dot {
    width: 6px;
    height: 6px;
    background: var(--green);
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 0 12px #c5f53633;
}
.hero .eyebrow {
    color: #c6d5b7;
}
h1,
h2,
h3,
p {
    margin: 0;
}
h1,
h2,
h3 {
    font-family: Manrope, sans-serif;
}
h1 {
    font-size: clamp(58px, 6.4vw, 96px);
    line-height: 1.06;
    letter-spacing: -5px;
    font-weight: 500;
    margin-top: 29px;
}
h1 > span:first-of-type {
    color: var(--green);
}
.title-arrow {
    font-size: 0.95em;
    margin-left: 26px;
    color: var(--green);
    font-weight: 400;
}
.hero-copy > p {
    font-size: 14px;
    line-height: 1.85;
    color: var(--muted);
    max-width: 420px;
    margin: 26px 0;
}
.hero-actions {
    display: flex;
    gap: 25px;
    align-items: center;
}
.button {
    padding: 16px 21px;
    border: 0;
    border-radius: 5px;
    display: inline-flex;
    gap: 32px;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 650;
}
.primary {
    background: var(--green);
    color: #172012;
}
.button:hover {
    filter: brightness(1.08);
}
.button span {
    font-size: 19px;
}
.text-link {
    font-size: 12px;
    display: flex;
    gap: 22px;
}
.hero-assurances {
    display: flex;
    gap: 24px;
    font-size: 10px;
    color: var(--muted);
    margin-top: 28px;
}
.hero-assurances span:first-letter {
    color: var(--green);
}
.hero-art {
    position: relative;
    min-height: 490px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(ellipse at 52% 55%, #b6e97313, transparent 63%);
}
.art-grid {
    position: absolute;
    inset: 15px -70px -20px 0;
    background-image:
        linear-gradient(#a9c58c09 1px, transparent 1px),
        linear-gradient(90deg, #a9c58c09 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: radial-gradient(ellipse, #000, transparent 70%);
}
.orbit {
    position: absolute;
    border: 1px solid #b8e2771c;
    border-radius: 50%;
    width: 470px;
    height: 240px;
    transform: rotate(-30deg);
}
.orbit-two {
    transform: rotate(35deg);
    width: 400px;
    height: 400px;
    border-style: dashed;
}
.server-stack {
    width: 280px;
    transform: perspective(900px) rotateY(-24deg) rotateX(16deg) rotateZ(-7deg);
    filter: drop-shadow(25px 40px 26px #0009);
    position: relative;
}
.server-top {
    height: 145px;
    border: 1px solid #6c7957;
    background: linear-gradient(145deg, #4e5c40, #242c22 85%);
    border-radius: 15px 15px 5px 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    box-shadow: inset 0 0 40px #d7ffa20b;
}
.server-logo {
    font-size: 65px;
    font-weight: 700;
    color: var(--green);
    letter-spacing: -10px;
}
.server-top > span + span {
    font-size: 9px;
    line-height: 2;
    letter-spacing: 2px;
    color: #dde8cf;
}
.server-top small {
    font-size: 5px;
    letter-spacing: 1.5px;
}
.server-unit {
    height: 64px;
    margin-top: 6px;
    border: 1px solid #4b5741;
    border-radius: 6px;
    background: linear-gradient(110deg, #333e2e, #1a2019);
    display: flex;
    align-items: center;
    padding: 0 17px;
    gap: 5px;
    box-shadow: 6px 9px 0 #0e120d;
}
.server-unit i {
    width: 3px;
    height: 18px;
    background: #788767;
    border-radius: 3px;
}
.server-unit span {
    margin-left: 16px;
    font: 8px monospace;
    letter-spacing: 1.5px;
    color: #9cae8d;
}
.server-unit b {
    color: var(--green);
    margin-left: auto;
    font-size: 9px;
    text-shadow: 0 0 10px var(--green);
}
.floating-tag {
    position: absolute;
    background: #20261eea;
    border: 1px solid #4a553c;
    border-radius: 7px;
    box-shadow: 0 10px 40px #0003;
    z-index: 1;
}
.tag-top {
    top: 35px;
    right: 4px;
    display: flex;
    gap: 9px;
    align-items: center;
    font-size: 8px;
    letter-spacing: 1.2px;
    padding: 14px 17px;
    transform: rotate(4deg);
}
.tag-bottom {
    bottom: 52px;
    left: 5px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 17px 19px;
    font-size: 12px;
    transform: rotate(-4deg);
}
.tag-bottom small {
    display: block;
    font-size: 9px;
    color: var(--muted);
    margin-top: 5px;
}
.tag-bottom > span:last-child {
    margin-left: 20px;
    color: var(--green);
    font-size: 20px;
}
.check-icon {
    border: 1px solid #637e43;
    border-radius: 50%;
    padding: 7px 10px;
    color: var(--green);
}
.art-caption {
    position: absolute;
    bottom: 0;
    font: 7px monospace;
    letter-spacing: 2px;
    color: #89947e;
}
.service-strip {
    margin: 0 6%;
    padding: 25px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #c4c9bd;
}
.service-strip > span {
    font-size: 8px;
    letter-spacing: 1.3px;
    color: #8d9586;
    max-width: 150px;
    line-height: 1.8;
}
.service-strip > div {
    font-size: 15px;
}
.section {
    padding: 83px 6%;
}
.muted {
    color: #98a28c;
}
h2 {
    font-size: clamp(30px, 3.1vw, 44px);
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: -1.5px;
    margin: 20px 0 0;
}
.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 35px;
}
.section-heading > p {
    font-size: 12px;
    line-height: 1.9;
    color: var(--muted);
    margin-bottom: 5px;
}
.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
}
.service-card {
    padding: 26px;
    background: #191d19;
    border: 1px solid var(--line);
    border-radius: 8px;
    position: relative;
}
.featured {
    background: linear-gradient(130deg, #262f20, #1a2118);
    border-color: #536444;
}
.service-icon {
    font-size: 32px;
    color: var(--green);
}
.card-number {
    position: absolute;
    right: 25px;
    top: 30px;
    color: #697161;
    font: 10px monospace;
}
h3 {
    font-size: 19px;
    font-weight: 550;
    letter-spacing: -0.5px;
}
.service-card h3 {
    margin-top: 26px;
}
.service-card p {
    font-size: 12px;
    line-height: 1.9;
    color: var(--muted);
    margin: 13px 0 28px;
}
.card-bottom {
    border-top: 1px solid var(--line);
    padding-top: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 9px;
    color: #b4beaa;
}
.card-bottom button {
    border: 0;
    background: transparent;
    color: var(--green);
    font-size: 21px;
}
.process {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 80px;
    border-top: 1px solid var(--line);
    background: #141814;
}
.process .button {
    margin-top: 30px;
}
.steps article {
    display: flex;
    gap: 24px;
    padding: 23px 0;
    border-bottom: 1px solid var(--line);
}
.steps article:first-child {
    padding-top: 0;
}
.steps article > span {
    font: 12px monospace;
    color: var(--green);
    padding-top: 5px;
}
.steps h3 {
    font-size: 16px;
}
.steps p {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.8;
    margin-top: 10px;
}
.values {
    text-align: center;
    background: radial-gradient(ellipse at center, #c5f57809, transparent 65%);
}
.values .eyebrow {
    justify-content: center;
}
.values p {
    max-width: 570px;
    margin: 25px auto;
    color: var(--muted);
    line-height: 1.9;
    font-size: 14px;
}
.value-tags {
    display: flex;
    justify-content: center;
    gap: 28px;
    color: #c1ccb5;
    font-size: 12px;
}
.faq {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 70px;
    border-top: 1px solid var(--line);
}
details {
    border-bottom: 1px solid var(--line);
    padding: 21px 0;
}
summary {
    cursor: pointer;
    font-size: 14px;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 20px;
}
summary:after {
    content: "+";
    color: var(--green);
}
details[open] summary:after {
    content: "−";
}
details p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;
    padding-top: 16px;
}
.cta {
    margin: 10px 6% 65px;
    padding: 42px;
    border-radius: 8px;
    background: var(--green);
    color: #1b2515;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
}
.cta h2 {
    margin-top: 12px;
    font-size: 38px;
}
.dark {
    background: #182015;
    color: var(--text);
}
footer {
    padding: 32px 6%;
    border-top: 1px solid var(--line);
    display: flex;
    align-items: center;
    gap: 25px;
    color: var(--muted);
    font-size: 10px;
}
footer .brand {
    color: var(--text);
    font-size: 21px;
}
footer > span {
    margin-left: auto;
}
footer button {
    border: 0;
    background: none;
    color: var(--muted);
    font-size: 10px;
}
dialog {
    background: #1a201a;
    color: var(--text);
    border: 1px solid #536444;
    border-radius: 14px;
    width: 620px;
    max-width: 94vw;
    max-height: 90vh;
    padding: 28px;
    box-shadow: 0 40px 150px #000a;
}
dialog::backdrop {
    background: #050905c9;
    backdrop-filter: blur(8px);
}
.dialog-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}
.dialog-top button {
    color: var(--text);
    border: 0;
    background: none;
    font-size: 20px;
}
dialog h2 {
    font-size: 29px;
    margin-bottom: 18px;
}
dialog h3 {
    margin: 24px 0 12px;
    font-size: 17px;
}
dialog label {
    display: block;
    font-size: 12px;
    color: #c0cab7;
    margin: 15px 0;
}
input,
textarea {
    display: block;
    width: 100%;
    background: #101610;
    border: 1px solid #46513e;
    border-radius: 5px;
    color: var(--text);
    padding: 12px;
    margin-top: 7px;
}
textarea {
    min-height: 100px;
    resize: vertical;
}
input:focus,
textarea:focus {
    outline: 2px solid var(--green);
}
.form-hint {
    font-size: 11px;
    line-height: 1.7;
    color: var(--muted);
    margin: 12px 0;
}
#portal-message {
    font-size: 13px;
    line-height: 1.7;
    color: var(--green);
    margin-top: 17px;
}
.switch-mode {
    color: var(--green);
    background: none;
    border: 0;
    padding: 0;
    text-decoration: underline;
}
.file-row {
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    gap: 15px;
    font-size: 12px;
    overflow-wrap: anywhere;
}
.file-row a {
    color: var(--green);
}
.portal-tabs {
    display: flex;
    gap: 15px;
    margin: 15px 0;
}
.portal-tabs button {
    background: transparent;
    color: var(--green);
    border: 1px solid #536444;
    border-radius: 4px;
    padding: 8px 12px;
}
.portal-tabs button[aria-selected="true"] {
    background: var(--green);
    color: #172012;
}
.ticket-status {
    color: var(--green);
    white-space: nowrap;
}
.logout {
    float: right;
    font-size: 11px;
    background: transparent;
    color: var(--muted);
    border: 0;
}
.empty {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.8;
}
.legal-copy {
    font-size: 13px;
    line-height: 1.8;
    color: var(--muted);
}
@media (min-width: 1500px) {
    body {
        max-width: 1600px;
        margin: auto;
    }
    .hero {
        min-height: 730px;
    }
    .hero-art {
        min-height: 550px;
    }
    .server-stack {
        width: 330px;
    }
    .server-top {
        height: 175px;
    }
    .server-unit {
        height: 72px;
    }
}
@media (max-width: 950px) {
    .header {
        gap: 25px;
        padding: 0 5%;
        height: 85px;
    }
    nav {
        gap: 17px;
        font-size: 11px;
    }
    .hero {
        padding: 55px 5% 40px;
        gap: 10px;
    }
    h1 {
        font-size: 70px;
    }
    .hero-art {
        transform: scale(0.85);
        transform-origin: center;
    }
    .hero-copy > p {
        font-size: 13px;
    }
    .hero-actions {
        gap: 15px;
    }
    .service-strip {
        margin: 0 5%;
    }
    .section {
        padding: 65px 5%;
    }
    .hero-assurances {
        gap: 12px;
        font-size: 8px;
    }
    .service-card {
        padding: 22px;
    }
    .process,
    .faq {
        gap: 35px;
    }
    .brand {
        font-size: 21px;
    }
}
@media (max-width: 700px) {
    nav {
        display: none;
    }
    .header .login {
        margin-left: auto;
    }
    .header {
        height: 78px;
    }
    .hero {
        grid-template-columns: 1fr;
        padding-top: 40px;
    }
    .hero h1 {
        font-size: 72px;
        letter-spacing: -4px;
    }
    .hero-copy > p {
        max-width: 480px;
    }
    .hero-art {
        min-height: 410px;
        max-width: 470px;
        width: 100%;
        margin: auto;
        transform: scale(0.9);
    }
    .tag-top {
        top: 10px;
    }
    .tag-bottom {
        bottom: 10px;
    }
    .art-caption {
        bottom: -22px;
    }
    .service-strip {
        flex-wrap: wrap;
        gap: 22px;
        justify-content: flex-start;
    }
    .service-strip > span {
        width: 100%;
        max-width: none;
    }
    .service-strip > div {
        font-size: 12px;
        width: 43%;
    }
    .section-heading {
        display: block;
    }
    .section-heading > p {
        margin-top: 20px;
    }
    .service-grid {
        grid-template-columns: 1fr;
    }
    .service-card p {
        max-width: 450px;
    }
    .process,
    .faq {
        grid-template-columns: 1fr;
    }
    .steps {
        margin-top: 12px;
    }
    .value-tags {
        flex-direction: column;
        gap: 12px;
    }
    .cta {
        padding: 28px;
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 35px;
    }
    .cta h2 {
        font-size: 30px;
    }
    .cta .eyebrow {
        font-size: 8px;
    }
    footer {
        flex-wrap: wrap;
        gap: 18px;
    }
    footer > p {
        display: none;
    }
    footer > span {
        font-size: 9px;
    }
    .section {
        padding-top: 55px;
        padding-bottom: 55px;
    }
    .hero-assurances {
        font-size: 10px;
    }
    .hero .eyebrow {
        font-size: 8px;
    }
}

/* Keep navigation visible and anchor targets clear of the sticky header. */
:root {
    --header-height: 108px;
}
html {
    scroll-padding-top: calc(var(--header-height) + 24px);
}
.header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--bg);
}
@media (max-width: 950px) {
    :root {
        --header-height: 85px;
    }
}
@media (max-width: 700px) {
    :root {
        --header-height: 78px;
    }
}
