/* Box sizing rules */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Prevent font size inflation */
html {
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
    margin-block-end: 0;
    margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
    list-style: none;
}

/* Set core body defaults */
body {
    min-height: 100vh;
    line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
    line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
    text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
    text-decoration-skip-ink: auto;
    color: currentColor;
}

/* Make images easier to work with */
img,
picture {
    max-width: 100%;
    display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
    font-family: inherit;
    font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
    min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
    scroll-margin-block: 5ex;
}

address{
    text-transform: none;
    font-style: normal;
}
ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
a{
    text-decoration: none;
    color: var(--color-black);
    cursor: pointer;
}

body {

    font-family: var(--klavika-regular);
    font-size: var(--copy-font-size);
    color: var(--color-black);
    overflow-x: hidden;
}
p{
    line-height: var(--copy-font-line-height);
    font-family: var(--klavika-regular);
    font-size: var(--copy-font-size);
    color: var(--color-black)


}
.text-align-end{
    justify-content: flex-end;
}

.container{
    max-width: var(--max-container-width);
    margin: 0 auto;
    width: 100%;
}
.full-container{
    width: var(--full-container-width);
    max-width: var(--full-container-max-width);
    margin: 0 auto;
}

.ultrawide-container{
    width: 100%;
    max-width: var(--medium-container-max-width);
    margin: 0 auto;
}

.narrow-container{
    width: var(--narrow-container-width);
    max-width: var(--narrow-container-max-width);
    margin: 0 auto;
}

.line-divider{
    /*margin: var(--divider-l) auto;*/
    height: 2px;
    background-color: var(--color-silver);
    width: 100%;
}

.hide-all{
    display: none;
}

.show_in_desktop,
.show_in_tablet,
.show_in_mobile{
    display: none;
}
#loading img {
    width: 50px;
    height: 50px;
    /*-webkit-animation: rotate-center 1.5s ease-in-out infinite;*/
    /*animation: rotate-center 1.5s ease-in-out infinite;*/
    margin: 0 auto;
}


.loader {
    width: 50px;
    aspect-ratio: 1;
    display:grid;
    -webkit-mask: conic-gradient(from 15deg,#0000,#000);
    animation: l26 1s infinite steps(12);
}
.loader,
.loader:before,
.loader:after{
    background:
        radial-gradient(closest-side at 50% 12.5%,
        #f03355 96%,#0000) 50% 0/20% 80% repeat-y,
        radial-gradient(closest-side at 12.5% 50%,
        #f03355 96%,#0000) 0 50%/80% 20% repeat-x;
}
.loader:before,
.loader:after {
    content: "";
    grid-area: 1/1;
    transform: rotate(30deg);
}
.loader:after {
    transform: rotate(60deg);
}

.page-load-status {
    display: none; /* hidden by default */
    padding-top: 20px;
    text-align: center;
}

.project-pagination{
    display: none;
}

.social-share {
    cursor: pointer;
}

.jssocials-share-xing .jssocials-share-link {
    background: #ECF0F5;
}
.jssocials-share-instagram .jssocials-share-link {
    background: #ECF0F5;
}
.jssocials-share-linkedin .jssocials-share-link {
    background: #ECF0F5 !important;
}
.jssocials-share.jssocials-share-copy{
    position: relative;
}
.jssocials-share-copy .jssocials-share-link {
    background: #ECF0F5 !important;
}

#shareIcons{
    display: none;
    margin-top: 15px;
}

.copy-link-container {
    background-color: #21313C;
    padding: 3px 16px;
    /* border-radius: 10px; */
    position: absolute;
    top: 0;
    left: 48px;
    color: var(--color-off-white);
    width: 294px;
}

@keyframes l26 {
    100% {transform:rotate(1turn)}
}


.content-with-header-default{
    margin-top: var(--spacing-m);

}

.mobile-navigation nav {
    display: block;
}

.mobile-navigation .action-menu-mobile {
    position: absolute;
    bottom: 100px;
    width: 100%;
    align-items: center;
    justify-content: center;
    display: block;
}

.mobile-navigation .cta-box-wrapper{
    visibility: hidden;
}

.mobile-navigation .hidden-mobile{
    display: none;
    transition: height 0.25s ease-in;
}

.mobile-navigation nav ul.main-navigation-top {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    /* padding-left: 80px; */
    position: fixed;
    top: 73px;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #ffffff;
    text-align: center;
    align-items: center;
    padding-top: 60px;
}
.mobile-navigation nav ul.main-navigation-top a {
    padding: 10px;
    font-size: 23px;
    padding: 10px 18px;
    display: block;
    font-weight: normal;
    color: var(--color-black);
    line-height: 28px;
}
.mobile-navigation nav ul li {
    margin-bottom: 24px;
    margin-right: 0;
    width: calc(100% - 72px);
    text-align: center;
    display: flex;
    justify-content: center;
}
.mobile-menu-contact-cta{
    display: none !important;
}
.mobile-navigation nav .mobile-menu-contact-cta {
    display: block !important;
    height: unset !important;
    line-height: 21px !important;
    padding-bottom: 7px !important;
    width: 100% !important;
    max-width: 318px !important;
    color: var(--color-red) !important;
}

.disable-scroll{
    overflow: hidden;
}

.cat-filter-form input {
    display: none;
}
.cat-filter-form label {
    cursor: pointer;
}
#site-loading-animation {
     display: none;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 99999;
    top: 0;
    background: rgba(255, 255, 255, 0.7);
    vertical-align: middle;
}#site-loading-animation .dot-spinner {
     position: absolute;
     left: 0;
     right: 0;
     bottom: 0;
     top: 50%;
     transform: translateY(-50%);
 }


 .page-header-type-default main{

     margin-top: var(--main-top-spacing);

 }

.back-to-top {
    display: none;
    content: '';
    width: 50px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: unset;
    height: 50px;
    position: fixed;
    bottom: 45px;
    right: 50px;
    z-index: 9999;
    cursor: pointer;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="51.531" height="28.955" viewBox="0 0 51.531 28.955"><g transform="translate(11.06 40.903) rotate(-90)"><path d="M2.868,48.7,24.277,27.294a1.991,1.991,0,0,0,0-2.876L2.839,2.818" transform="translate(11.948 -11.06)" fill="none" stroke="%23c3d0d9" stroke-miterlimit="10" stroke-width="8"/></g></svg>');
}

.slide-label span{
    font-family: var(--klavika-bold);
    font-size: 25px;
    line-height: 34px;
}

.project-card{

    position: relative;

}
.project-card:after{
    width: 100%;
    height: 100%;
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,0.5);
    opacity: 0;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="110" height="110" viewBox="0 0 110 110"><g fill="none" stroke="%23ffffff" stroke-width="2"><circle cx="55" cy="55" r="55" stroke="none"/><circle cx="55" cy="55" r="54" fill="none"/></g><g transform="translate(32.051 40.799)"><path d="M0,0H39.755" transform="translate(0 14.523)" fill="none" stroke="%23ffffff" stroke-width="8"/><path d="M2.858,32.219,16.576,18.5a1.276,1.276,0,0,0,0-1.843L2.839,2.818" transform="translate(24.913 -2.818)" fill="none" stroke="%23ffffff" stroke-miterlimit="10" stroke-width="8"/></g></svg>');
    background-repeat: no-repeat;
    background-position: center;
    transition: opacity 100ms ease-in;
}
.project-card:hover:after {
    display: block;
    content: '';
    opacity: 1;
}

html {
    scroll-behavior: smooth;
}

.block.block_type_text {
    word-break: break-word;
}

.position-relative{
    position: relative !important;
}

.form-success p{
    max-width: 500px;
    font-size: 20px;
    line-height: 34px;
}
.form-success p .font-bold {
    margin-bottom: var(--spacing-xs);
    font-family: var(--klavika-bold);
    font-size: 20px;
    line-height: 34px;
}

.timeline_desktop{
    display: block;
}
.timeline_mobile{
    display: none;
}

@media (min-width: 1199px) {

    .only-left-margin{
        margin-left: calc((100% - 1320px) / 2);
    }
}


@media (min-width: 481px) and (max-width: 850px)  {

    .show_in_tablet{
        display: unset;
        visibility: visible;
    }
}
@media (min-width: 850px)  {

    .show_in_desktop{
        display: unset;
        visibility: visible;
    }
}

@media screen and (max-width: 480px) {

    .show_in_mobile{
        display: unset;
        visibility: visible;
    }

    .slide-label span{
        font-family: var(--klavika-bold);
        font-size: 15px;
        line-height: 17px;
    }

    .back-to-top {
        display: none;
        content: '';
        width: 25px;
        background-repeat: no-repeat;
        background-position: center;
        height: 25px;
        position: fixed;
        bottom: 20px;
        right: 20px;
        z-index: 9999;
        cursor: pointer;
        background-size: 26px;
    }

    .timeline_desktop{
        display: none;
    }
    .timeline_mobile{
        display: block;
    }

}
@media screen and (max-width: 660px) {


    .timeline_desktop{
        display: none;
    }
    .timeline_mobile{
        display: block;
    }

}
