@font-face {
    font-family: 'CoFoGothic';
    font-style: normal;
    font-display: swap;
    src: url(/fonts/CoFo-Gothic-Variable.woff2) format('woff2');
}

@font-face {
    font-family: 'Casa';
    font-style: normal;
    font-display: swap;
    src: url(/fonts/CASA-Bold.woff2) format('woff2');
}

:root {
    --black: #000;
    --white: #fff;
    --antracite: #2A2A2A;
    --grey-500: #2A2A2A;
    --grey-400: #7A7A7A;
    --grey-300: #949494;
    --grey-200: #CACACA;
    --grey-100: #EEEEEE;
    --brown: #683C11;
    --green: #056734;
    --pink: #F6B9BD;
    --purple: #941C80;
    --red: #E30613;
    --yellow: #FBEA1C;
    --yellow-warm: #FFD900;
    --fontbody: 'CoFoGothic', sans-serif;
    --fontheader: 'Casa', sans-serif;
    --fontsize-header-xl: 4.8rem;
    --fontsize-header-lg: 3.2rem;
    --fontsize-header-md: 2.2rem;
    --fontsize-header-sm: 2.2rem;
    --fontsize-body-xl: 3rem;
    --fontsize-body-lg: 2.2rem;
    --fontsize-body-md: 1.8rem;
    --fontsize-body-sm: 1.4rem;
    --nav-height: 11.7rem;
    --mainwidth: 1440px;
    --desktop-container: 1296px;
    --padding: 2rem;
    --padding-grid: 4rem;
    --padding-section: 4.8rem;
    --transition-default: all .3s linear;
}

@media(min-width: 1024px) {
    :root {
        --fontsize-header-xl: 10.4rem;
        --fontsize-header-lg: 5.6rem;
        --fontsize-header-md: 3.2rem;
        --fontsize-header-sm: 2.2rem;
        --nav-height: 14rem;
        --padding-section: 4.8rem;
    }

    body:has(>.navbar .navbar__logo h1),
    body:has(>.navbar .navbar__logo .logo--type) {
        --nav-height: 18.3rem;
    }
}

html {
    font-size: 62.5%;
    height: 100%;
}

body {
    font-family: var(--fontbody);
    font-size: var(--fontsize-body-md);
    line-height: 100%;
    font-weight: 400;
    letter-spacing: .036rem;
    color: var(--antracite);
    -webkit-backface-visibility: visible !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    margin: 0;
    padding-top: var(--nav-height);
}

    body.is--scrolllock {
        overflow: hidden;
    }

    body:has( > main > .block__hero) {
        padding-top: 0;
    }

@media(max-width: 1023px) {
    body {
        padding-top: calc(var(--nav-height) + 2.4rem)
    }
}

*,
*::before,
*::after {
    margin-block: 0;
    box-sizing: border-box;
}

@media (prefers-reduced-motion: no-preference) {
    :root {
        scroll-behavior: smooth;
    }
}

button, a, input, textarea, select {
    outline: .2rem solid transparent;
    outline-offset: .4rem;
}

*:focus {
    outline: none;
}

*:focus-visible {
    outline: .2rem solid var(--antracite);
}

main,
footer {
    max-width: var(--mainwidth);
    margin: 0 auto;
    overflow: hidden;
    background-color: var(--white);
    position: relative;
}

.body--home main {
    margin-top: calc(100dvh - var(--nav-height) - 10rem);
}

.body--production main {
    margin-top: calc(100dvh - var(--nav-height) - 15rem);
}

@media(max-width: 1023px) {
    .body--home main,
    .body--production main {
        margin-top: calc(100dvh - var(--nav-height) - 2.4rem);
    }
}

img {
    width: 100%;
    height: auto;
    object-fit: cover;
    object-position: 50% 50%;
}

a, button {
    text-decoration: none;
    transition: var(--transition-default);
}

a {
    color: var(--antracite);
}

.richtext a:not(.button) {
    background-image: linear-gradient(var(--purple), var(--purple));
    background-position: 100% 100%;
    background-repeat: no-repeat;
    background-size: 100% .1rem;
    color: var(--purple);
    font-weight: 500;
}

@media (pointer: fine) {
    .richtext a:hover {
        background-size: 0% .1rem;
    }
}

.container {
    width: 100%;
    max-width: calc(100% - calc(2 * var(--padding)));
    margin: 0 auto;
}

@media(min-width: 1300px) {
    .container {
        max-width: var(--desktop-container);
    }
}

.container .col {
    margin: 0 auto;
}

@media(min-width: 992px) {
    .container .col--text {
        max-width: 75rem;
        margin-left: 0;
    }
}

section {
    margin: 0;
}

.block--padding {
    padding: var(--padding-section) 0;
}

.block--notopmargin {
    padding-top: 0 !important;
}

.block--nobottommargin {
    padding-bottom: 0 !important;
}

@media(max-width: 1023px) {
    .d--onlydesktop {
        display: none !important;
    }
}

@media(min-width: 1024px) {
    .d--onlymobile {
        display: none !important;
    }
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--fontbody);
    line-height: 100%;
    font-weight: 400;
    letter-spacing: .064rem;
    margin-bottom: 0;
}

h1, .h1 {
    font-size: var(--fontsize-header-xl);
}

h2, .h2 {
    font-size: var(--fontsize-header-lg);
}

h3, .h3 {
    font-size: var(--fontsize-header-md);
}

h4, .h4 {
    font-size: var(--fontsize-header-sm);
}

h5, .h5 {
    font-size: var(--fontsize-header-sm);
}

h6, .h6 {
    font-size: var(--fontsize-header-sm);
}

strong {
    font-weight: 500;
}

.intro {
    font-size: var(--fontsize-body-lg);
    font-weight: 500;
    line-height: 150%;
}

.richtext p,
.richtext ol,
.richtext ul {
    line-height: 2.8rem;
}

    .richtext h2:has(+*),
    .richtext h3:has(+*),
    .richtext h4:has(+*),
    .richtext h5:has(+*),
    .richtext p:has(+*),
    .richtext ol:has(+*),
    .richtext ul:has(+*) {
        margin-bottom: 2.4rem;
    }

.richtext ol,
.richtext ul {
    padding-left: 2rem;
}

.richtext ul {
    list-style: none;
}

    .richtext ul li {
        position: relative;
    }

        .richtext ul li:has(+li) {
            margin-bottom: 1.6rem;
        }

        .richtext ul li:before {
            content: "";
            width: .8rem;
            height: .8rem;
            border-radius: 50%;
            background-color: var(--antracite);
            position: absolute;
            top: .9rem;
            left: -2rem;
        }

.richtext table {
    padding: 0;
    border-spacing: 0;
}

    .richtext table td {
        padding: 1.6rem 0;
        border-bottom: .1rem solid rgba(42, 42, 42, .2);
        vertical-align: top;
    }

.richtext td:first-of-type {
    padding-right: 4.8rem;
    font-weight: 500;
}

.richtext tr:last-of-type td {
    border-bottom: none;
}

.clippaths {
    width: 0;
    height: 0;
    overflow: hidden;
}

.backdrop {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, .5);
    opacity: 0;
    transition: var(--transition-default);
    z-index: 99;
}

body.is--scrolllock .backdrop {
    top: 0;
    opacity: 1;
}

body.is--scrolllock .navbar:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .5);
    z-index: 1;
}

body.is--scrolllock .navbar .navbar__layer,
body.is--scrolllock .navbar .search__layer {
    z-index: 2;
}

#CookiebotWidget {
    display: none;
}