html {
    scroll-behavior: smooth;
    box-sizing: border-box
}

*,
*::before,
*::after {
    box-sizing: inherit
}

html[lang=de] q,
html[lang=de-de] q,
html[lang=de-DE] q {
    quotes: "„""“""’""‚"
}

:focus::-moz-placeholder {
    opacity: 0
}

:focus:-ms-input-placeholder {
    opacity: 0
}

:focus::placeholder {
    opacity: 0
}

::-moz-placeholder {
    -moz-transition: opacity .5s;
    transition: opacity .5s
}

:-ms-input-placeholder {
    -ms-transition: opacity .5s;
    transition: opacity .5s
}

::placeholder {
    transition: opacity .5s
}

[id][tabindex]:target {
    -webkit-animation: highlight-fade 5s;
    animation: highlight-fade 5s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
    outline-offset: 1rem
}

@-webkit-keyframes highlight-fade {
    0% {
        background-color: #ffff80
    }

    100% {
        background-color: rgba(0, 0, 0, 0)
    }
}

@keyframes highlight-fade {
    0% {
        background-color: #ffff80
    }

    100% {
        background-color: rgba(0, 0, 0, 0)
    }
}

*:focus:not(:focus-visible),
*::before:focus:not(:focus-visible),
*::after:focus:not(:focus-visible) {
    outline: none
}

.visually-hidden-focusable:focus,
.visually-hidden-focusable:focus-visible {
    position: fixed !important;
    z-index: 10000;
    width: auto;
    top: 50%;
    left: 50%;
    clip: auto;
    padding: 1.25em !important;
    border: 2px solid currentColor !important;
    color: #b80f22 !important;
    background-color: #fff !important;
    font-weight: bold;
    text-decoration: none;
    transform: translate(-50%, -50%)
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        transition: none !important;
        -webkit-animation: none !important;
        animation: none !important;
        scroll-behavior: auto !important
    }
}