:root {
    --primary: #3F6416;
    --secondary: #DFD8D2;
    --tertiary: #99B65C;
    --dark: #000000;
    --light: #FFFFFF;
    --error: #a72f19;
    --primary-disabled: hsl(88, 10%, 50%);
    --font-size: 12px;
    --section-gap: 4rem;
    --gora: 1.618; /* Golden Ratio */
    --nav-height: 5rem;
    --hero-section-image: url("/img/hero.jpg");
}

@media (min-width: 992px) {
    :root {
        --section-gap: 6rem;
    }
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body, input, textarea, button {
    font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

main {
    display: flex;
    flex-direction: column;
}

/*=================================*/
/*           Sections              */
/*=================================*/

header, section, footer {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

section {
    padding: 0 1rem;
}

@media (min-width: 576px) {
    header, section, footer {
        /*max-width: 540px;*/
    }
}

@media (min-width: 768px) {
    :root {
        --font-size: 16px;
    }

    header, section, footer {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    header, section, footer {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    header, section, footer {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    header, section, footer {
        max-width: 1320px;
    }
}

/*=================================*/
/*           Topography            */
/*=================================*/

h1.light, h2.light, h3.light, h4.light, h5.light, h6.light, p.light, span.light, a.light, td.light, label.light {
    color: var(--light);
}

h1.secondary, h2.secondary, h3.secondary, h4.secondary, h5.secondary, h6.secondary, p.secondary, span.secondary, a.secondary {
    color: var(--secondary);
}

h1.tertiary, h2.tertiary, h3.tertiary, h4.tertiary, h5.tertiary, h6.tertiary, p.tertiary, span.tertiary, a.tertiary {
    color: var(--tertiary);
}

h1 {
    font-size: calc(var(--font-size) * var(--gora) * var(--gora));
    text-transform: uppercase;
    font-weight: 600;
    color: var(--primary);
}

h2 {
    font-size: calc(var(--font-size) * var(--gora));
    text-transform: uppercase;
    font-weight: 500;
    color: var(--dark);
}

h3 {
    font-size: var(--font-size);
    text-transform: uppercase;
    font-weight: 600;
    color: var(--dark);
}

h4 {
    font-size: var(--font-size);
    text-transform: uppercase;
    font-weight: normal;
    color: var(--primary);
}

p, td, label, a, li {
    font-size: var(--font-size);
    line-height: calc(var(--font-size) * var(--gora));
}

ul, ol {
    margin-left: 1rem;
}

.trimmed-one-line {
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.trimmed-two-lines {
    word-break: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

    .image {
        display: none;
    }
}

a {
    color: var(--dark);
    text-decoration: none;
}

a.link {
    color: var(--primary);
    text-decoration: underline;
}

a:hover {
    cursor: pointer;
}

a.active {
    font-weight: bold;
    color: var(--tertiary);
}

.unselectable {
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE10+/Edge */
    user-select: none; /* Standard */
}

/*=================================*/
/*             Buttons             */
/*=================================*/

button,
a.button {
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: .03em;
    padding: 1rem 1.5rem;
    border: none;
    cursor: pointer;

    &.primary {
        background: var(--primary);
        color: var(--light);
    }

    &.danger {
        background: var(--error);
        color: var(--light);
    }

    &.outline {
        background-color: transparent;
        color: var(--light);
        border: 2px solid var(--light);
    }

    &.small {
        padding: 0.5rem;
    }

    /* TODO Muss nochmal überprüft werden*/

    &:hover {
        box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--primary);
    }

    &:active {
        filter: brightness(0.9);
    }

    &:disabled {
        background: var(--primary-disabled);
        border-color: var(--primary-disabled);
        box-shadow: none;
        cursor: not-allowed;
    }
}

/*=================================*/
/*             Forms               */
/*=================================*/

input, textarea, select {
    width: 100%;
    padding: 0.5rem;
    border: 0;
    border-bottom: 2px solid var(--primary);
    resize: none;
}

textarea {
    height: 6.4rem;
}

.validation-message {
    padding-top: 0.25rem;
    color: var(--error);
}

/*=================================*/
/*            Common               */
/*=================================*/

/* Formerly provided by MudBlazor */
.rounded {
    border-radius: .5rem;
}

.rounded-l {
    border-radius: .5rem 0 0 .5rem;
}

.rounded-r {
    border-radius: 0 .5rem .5rem 0;
}

.shadow {
    box-shadow: 0 3px 5px 0 black;
}

/*=================================*/
/*            Layout               */
/*=================================*/

.gap-s {
    gap: .5rem;
}

.gap-m {
    gap: 1rem;
}

.gap-l {
    gap: 2rem;
}

.gap-xl {
    gap: 4rem;
}

.gap-xxl {
    gap: var(--section-gap);
}

/*=================================*/
/*             Icons               */
/*=================================*/

.fa-regular,
.fa-solid,
.fa-brands {
    color: var(--light);
}

.fa-regular.primary,
.fa-solid.primary,
.fa-brands.primary {
    color: var(--primary);
}

