.impressum-page {
    padding: 4rem 0 5rem;
}

.impressum-page > .shell {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

@media (min-width: 960px) {
    .impressum-page > .shell {
        padding: 0;
    }
}

.impressum {
    display: grid;
    gap: 2.5rem;
}

.impressum-header {
    display: grid;
    gap: 1rem;
}

.impressum-header h1 {
    margin: 0;
    font-size: clamp(2.4rem, 2.8rem, 3rem);
}

.impressum-intro {
    color: var(--color-text-muted);
    line-height: 1.7;
}

.impressum-intro p:last-child {
    margin-bottom: 0;
}

.impressum-content {
    display: grid;
    gap: 2rem;
}

.impressum-section {
    display: grid;
    gap: 1rem;
    border-top: 1px solid rgba(var(--color-primary-rgb), 0.15);
    padding-top: 1.5rem;
}

.impressum-section:first-child {
    border-top: none;
    padding-top: 0;
}

.impressum-section > h2 {
    margin: 0;
    font-size: clamp(1.3rem, 1.1rem + 0.5vw, 1.7rem);
}

.impressum-block {
    display: grid;
    gap: 1.2rem;
}

.impressum-block h2 {
    margin-bottom: 0.35rem;
    font-size: clamp(1.2rem, 1rem + 0.4vw, 1.5rem);
}

.impressum-block p {
    margin: 0;
    color: var(--color-text-muted);
}

.impressum-section address {
    font-style: normal;
    line-height: 1.7;
    color: var(--color-text-muted);
}

.impressum-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.impressum-list li {
    display: grid;
    gap: 0.25rem;
    color: var(--color-text-muted);
}

.impressum-list strong {
    color: var(--color-text);
    font-weight: 600;
}

.impressum-list a {
    color: var(--color-primary);
    font-weight: 500;
}

.impressum-text {
    color: var(--color-text-muted);
    line-height: 1.7;
    display: grid;
    gap: 1rem;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.impressum-text > * {
    margin: 0;
}

.impressum-text h1,
.impressum-text h2,
.impressum-text h3 {
    color: var(--color-text);
    font-weight: 600;
    line-height: 1.4;
}

.impressum-text h1 {
    font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem);
    margin-top: 2rem;
}

.impressum-text h1:first-child {
    margin-top: 0;
}

.impressum-text h2 {
    font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem);
    margin-top: 1.5rem;
}

.impressum-text h2:first-child {
    margin-top: 0;
}

.impressum-text h3 {
    font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.25rem);
    margin-top: 1rem;
}

.impressum-section h1[id],
.impressum-section h2[id],
.impressum-section h3[id] {
    scroll-margin-top: 110px;
}

.impressum-text ul,
.impressum-text ol {
    padding-left: 1.25rem;
    margin: 0;
}

.impressum-text li + li {
    margin-top: 0.4rem;
}

@media (max-width: 720px) {
    .impressum-page {
        padding-top: 3rem;
    }

    .impressum {
        gap: 2rem;
    }

    .impressum-section {
        padding-top: 1.25rem;
    }

    .impressum-text h1 {
        font-size: 1.35rem;
        margin-top: 1.5rem;
    }

    .impressum-text h2 {
        font-size: 1.2rem;
        margin-top: 1.25rem;
    }

    .impressum-text h3 {
        font-size: 1.05rem;
    }

    .impressum-section h1[id],
    .impressum-section h2[id],
    .impressum-section h3[id] {
        scroll-margin-top: 85px;
    }

    .impressum-text h1:first-child,
    .impressum-text h2:first-child {
        margin-top: 0;
    }
}

@media (max-width: 480px) {
    .impressum-section > h2 {
        font-size: 1.15rem;
    }
}
