@import url("css/fonts.css");
@import url("css/variables.css");

@import url("css/templates/header.css");
@import url("css/templates/footer.css");

@import url("css/modules/akkordeonblock.css");
@import url("css/modules/ankerblock.css");
@import url("css/modules/blockoptions.css");
@import url("css/modules/bildblock.css");
@import url("css/modules/introblock.css");
@import url("css/modules/textblock.css");


/* Basics ------------------------------------------------------ */

* {
    box-sizing: border-box;
}

html {
    font-size: var(--fontsize-base);
}

body {
    font-family: var(--fontfamily-base);
    font-weight: var(--fontweight-base);
    color: var(--color-black);
    background-color: var(--bg-body);
    margin: 0;
}

body i,
body em {
    font-family: var(--fontfamily-italic);
}

.screen-reader-text {
    clip: rect(1px,1px,1px,1px);
    word-wrap: normal !important;
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    overflow-wrap: normal !important;
    padding: 0;
    position: absolute !important;
    width: 1px;
}

.maxwidth,
.maxwidth-s,
.maxwidth-m,
.maxwidth-l,
.maxwidth-xl {
    position: relative;
    width: 100%;
    max-width: var(--maxwidth-l);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-sizing: border-box;
}

.maxwidth-s {
    max-width: var(--maxwidth-s);
}
.maxwidth-m {
    max-width: var(--maxwidth-m);
}
.maxwidth-l {
    max-width: var(--maxwidth-l);
}
.maxwidth-xl {
    max-width: var(--maxwidth-xl);
}

main {
    min-height: calc(100vh - 16rem);
    line-height: 1.4;
    margin-top: 2rem;
    padding-top: 1px;
}

@media (min-width: 768px) {
    .columns {
        display: flex;
        justify-content: space-between;
        gap: 5rem;
    }
}

/* Backgrounds ------------------------------------------------------ */

.bg-light {
    background-color: var(--bg-light);
}
.bg-lightest {
    background-color: var(--bg-lightest);
}

/* Links and Buttons ------------------------------------------------------ */

a:not(.btn) {
    color: inherit;
    text-decoration: none;
}
a:not(.btn):hover {
    text-decoration: underline;
}

main a:not(.btn):not([href^="tel:"]) {
    color: var(--color-primary);
    font-weight: var(--fontweight-bold);
}

.btn {
    position: relative;
    display: inline-block;
    color: var(--btn-color);
    font-size: var(--fontsize-small);
    font-weight: var(--fontweight-bold);
    text-decoration: none;
    text-transform: uppercase;
    padding: 0.75rem 2rem;
    background-color: var(--btn-bg-color);
    border: 1px solid var(--btn-border-color);
    border-radius: var(--btn-border-radius);
    transition: background, color 0.3s;
    transform: translateZ(0);
}

.btn:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--btn-bg-hover);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform 0.3s ease;
}
.btn:hover {
    color: var(--btn-color-hover);
}
.btn:hover:before {
    transform: scaleX(1);
}

.btn-center {
    display: block;
    text-align: center;
}

.btn-secondary {
    background-color: var(--color-secondary);
}
.btn-secondary:hover {
    background-color: var(--color-primary);
}
.btn[download="file"] {
    position: relative;
    color: var(--color-secondary);
    text-transform: none;
    background: transparent;
    padding-left: 3rem;
}
.btn[download="file"]:before {
    content: '';
    position: absolute;
    top: 0.35rem;
    left: 0;
    width: 2rem;
    height: 2rem;
    background: url(var(--icon-download-button));
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
}

.btn + .btn {
    margin-top: 1rem;
}

main a {
    color: inherit;
}

@media (min-width: 768px) {
    .btn + .btn {
        margin-top: 0;
        margin-left: 1rem;
    }
}

/* Text and Headlines ------------------------------------------------------ */

main p {
    margin-top: 0;
    margin-bottom: 1.5rem;
}

main strong {
    font-weight: var(--fontweight-bold);
}

main h1, main .h1,
main h2, main .h2,
main h3, main .h3
main h4, main .h4 {
    color: var(--headline-color);
    font-family: var(--fontfamily-headline);
    font-weight: var(--fontweight-headline);
}
main h1, main .h1 {
    color: var(--color-tertiary);
    font-size: 2.4rem;
    line-height: 1.3;
    margin-top: 0;
}
main h2, main .h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
}
main h3, main .h3 {
    font-size: 1.5rem;
}