/*
|--------------------------------------------------------------------------
| Global
|--------------------------------------------------------------------------
| Globale Grundlage für alle Frontend-Seiten.
|--------------------------------------------------------------------------
*/

:root {
    --header-height: 80px;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    display: flex;
    flex-direction: column;

    min-height: 100vh;

    font-family: var(--font-body);

    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;

    background: var(--color-background);
    color: var(--color-text);

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


.has-sticky-header [id] {
    scroll-margin-top: var(--header-height);
}

/*
|--------------------------------------------------------------------------
| Seitenstruktur
|--------------------------------------------------------------------------
*/

.main-content {
    z-index:99;
    flex: 1 0 auto;
}


/*
|--------------------------------------------------------------------------
| Container
|--------------------------------------------------------------------------
*/

.container {
    width: min(100% - 40px, 1400px);
    margin-inline: auto;
}


/*
|--------------------------------------------------------------------------
| Typografie
|--------------------------------------------------------------------------
*/

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    color: var(--color-text);
    font-weight: 700;
    line-height: 1.15;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2.25rem, 5vw, 4.5rem);
}

h2 {
    font-size: clamp(1.9rem, 3.5vw, 3.25rem);
}

h3 {
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
}

h4 {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
}

h5 {
    font-size: clamp(1.1rem, 1.5vw, 1.35rem);
}

h6 {
    font-size: 1rem;
}


/*
|--------------------------------------------------------------------------
| Fließtext
|--------------------------------------------------------------------------
*/

p {
    line-height: 1.7;
}

strong,
b {
    font-weight: 700;
}


/*
|--------------------------------------------------------------------------
| Links
|--------------------------------------------------------------------------
*/

a {
    color: var(--color-link);

    transition:
        color 0.2s ease,
        opacity 0.2s ease;
}

a:hover {
    color: var(--color-link-hover);
}


/*
|--------------------------------------------------------------------------
| Medien
|--------------------------------------------------------------------------
*/

img {
    max-width: 100%;
    height: auto;
}


/*
|--------------------------------------------------------------------------
| Formulare
|--------------------------------------------------------------------------
*/

input,
textarea,
select,
button {
    font: inherit;
}

input,
textarea,
select {
    color: var(--color-text);
}

textarea {
    resize: vertical;
}


/*
|--------------------------------------------------------------------------
| Accessibility
|--------------------------------------------------------------------------
*/

:focus-visible {
    outline: 3px solid var(--color-accent);
    outline-offset: 3px;
}


/*
|--------------------------------------------------------------------------
| Sprungmarken
|--------------------------------------------------------------------------
*/

[id] {
    scroll-margin-top: 100px;
}


/*
|--------------------------------------------------------------------------
| Auswahl
|--------------------------------------------------------------------------
*/

::selection {
    background: var(--color-primary);
    color: var(--color-button-text);
}