@-webkit-keyframes fromtop {
    0% {
        transform: translateY(-50px);
        opacity: 0
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes fromtop {
    0% {
        transform: translateY(-50px);
        opacity: 0
    }

    to {
        transform: translateY(0);
        opacity: 1
    }
}

@keyframes mousemovehover {
    0% {
        border-radius: 50%;
        transform: rotate(0deg)
    }

    50% {
        border-radius: 0;
        transform: rotate(180deg)
    }

    to {
        border-radius: 50%;
        transform: rotate(360deg)
    }
}

@keyframes goin {
    0% {
        transform: translateX(0)
    }

    80%,
    to {
        transform: translateX(-80%)
    }
}

@keyframes posX {
    0% {
        transform: translateX(0)
    }

    80%,
    to {
        transform: translateX(-42.85%)
    }
}

@keyframes scale {
    0% {
        transform: scaleX(1)
    }

    80%,
    to {
        transform: scaleX(.1298)
    }
}

@keyframes posY {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(-8.5%)
    }
}

@keyframes posYp {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(-23.6%)
    }
}

@keyframes posYd {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(32%)
    }
}

@keyframes posYdR {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(32%)
    }
}

@keyframes goinR {
    0% {
        transform: translateX(0)
    }

    80%,
    to {
        transform: translateX(-80%)
    }
}

@keyframes posXR {
    0% {
        transform: translateX(0)
    }

    80%,
    to {
        transform: translateX(-42.85%)
    }
}

@keyframes scaleR {
    0% {
        transform: scaleX(1)
    }

    80%,
    to {
        transform: scaleX(.1298)
    }
}

@keyframes posYR {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(-8.5%)
    }
}

@keyframes posYpR {

    0%,
    80% {
        transform: translateY(0)
    }

    to {
        transform: translateY(-23.6%)
    }
}

@keyframes pulse-border {
    0% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
        opacity: 1
    }

    to {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
        opacity: 0
    }
}

@keyframes moveLeftToRight {
    0% {
        transform: translateX(0)
    }

    to {
        transform: translateX(100%)
    }
}

@keyframes moveRightToLeft {
    0% {
        transform: translateX(0)
    }

    to {
        transform: translateX(-100%)
    }
}

@keyframes scrollarrow {
    0% {
        transform: translateY(-15px);
        opacity: 0
    }

    50% {
        transform: translateY(0);
        opacity: 1
    }

    to {
        transform: translateY(15px);
        opacity: 0
    }
}

@keyframes scrollarrowup {
    0% {
        transform: translateY(15px) rotate(180deg);
        opacity: 0
    }

    50% {
        transform: translateY(0) rotate(180deg);
        opacity: 1
    }

    to {
        transform: translateY(-15px) rotate(180deg);
        opacity: 0
    }
}

@-webkit-keyframes fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@-webkit-keyframes zoomIn {
    0% {
        opacity: 0;
        -webkit-transform: scale3d(.3, .3, .3);
        transform: scale3d(.3, .3, .3)
    }

    50% {
        opacity: 1
    }
}

@keyframes zoomIn {
    0% {
        opacity: 0;
        -webkit-transform: scale3d(.3, .3, .3);
        transform: scale3d(.3, .3, .3)
    }

    50% {
        opacity: 1
    }
}

@font-face {
    font-family: "UnytourDisplay";
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/Unytour/UnytourDisplayRegular/font.woff2)format("woff2")
}

@font-face {
    font-family: "UnytourDisplay";
    font-weight: 500;
    font-display: swap;
    src: url(../fonts/Unytour/UnytourDisplayMedium/font.woff2)format("woff2")
}

@font-face {
    font-family: "UnytourDisplay";
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/Unytour/UnytourDisplaySemiBold/font.woff2)format("woff2")
}

@font-face {
    font-family: "PPMori";
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/PPMori/PPMori-Regular.woff2)format("woff2")
}

@font-face {
    font-family: "PPMori";
    font-weight: 600;
    font-display: swap;
    src: url(../fonts/PPMori/PPMori-Bold.woff2)format("woff2")
}

:root {
    --primary-color: #ff0032;
    --secondary-color: #000000;
    --body-text-color: var(--secondary-color);
    --light-gray: #efefef;
    --swiper-theme-color: var(--primary-color) !important
}

body,
html {
    font-family: "PPMori", sans-serif;
    font-style: normal;
    font-weight: 400;
    text-rendering: optimizeLegibility;
    font-variant-ligatures: no-common-ligatures;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    min-width: 300px;
    -webkit-tap-highlight-color: transparent;
    -webkit-text-size-adjust: 100%;
    font-size: 1.1vw;
    line-height: 1.5;
    color: var(--body-text-color);
    scroll-behavior: smooth;
    width: 100%
}

body.canvas-menu-open {
    overflow: hidden
}

body.bg-dark #main {
    background-color: var(--body-text-color)
}

#canvas-nav nav ul li,
#page {
    position: relative;
    box-sizing: border-box
}

#page,
.footer {
    width: 100%;
    margin-left: auto;
    margin-right: auto
}

.footer {
    box-sizing: border-box
}

#main {
    position: relative
}

header,
header .header-wrapper {
    width: 100%;
    margin: 0 auto
}

header .header-wrapper {
    padding-left: 45px;
    padding-right: 45px;
    padding-top: 40px;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 98
}

header .header-wrapper-inner {
    padding-left: 150px;
    padding-right: 75px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

header #branding {
    z-index: 103;
    position: fixed;
    top: 40px;
    left: 60px;
    transition: left .3s ease-in-out .5s, top .3s ease-in-out
}

header #branding .logo svg {
    height: 56px;
    width: auto;
    display: inline-block;
    vertical-align: middle
}

header .get-in-touch {
    position: absolute;
    right: 120px;
    top: 41px;
    z-index: 103;
    -webkit-transition: 500ms all ease-in-out;
    transition: 500ms all ease-in-out;
    transform: translateY(0);
    opacity: 1
}

header .button {
    background-color: var(--body-text-color);
    color: #fff;
    font-size: 16px;
    padding: 12px 20px 10px 24px
}

header .button .button-icon {
    width: 20px;
    height: 15px;
    transform: none !important
}

header .button .button-text,
header .button .button-text-clone {
    display: block;
    -webkit-transition: transform .55s cubic-bezier(.25, 1, .33, 1);
    transition: transform .55s cubic-bezier(.25, 1, .33, 1)
}

header .button .button-text-clone {
    position: absolute;
    top: 100%
}

.vc_desktop header .button:hover .button-text,
.vc_desktop header .button:hover .button-text-clone {
    transform: translateY(-151%)
}

body.bg-dark header .button.border {
    box-shadow: inset 0 0 0 2px #fff;
    color: #fff
}

.page-transition {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    transform: translateY(-100%);
    transition: transform .3s ease-in-out
}

.page-transition.active {
    transform: translateY(0)
}

.canvas-navi-bar div,
.page-transition,
.preloader {
    background-color: var(--secondary-color)
}

.preloader {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100svh;
    z-index: 9999999999;
    overflow: hidden
}

.preloader .preloader-wrapper {
    position: fixed;
    width: 100vw;
    height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center
}

.preloader img {
    width: 200px;
    height: auto
}

.cmp-visible svg {
    margin-bottom: 270px
}

.vc_mobile .mouse-move {
    display: none !important
}

.mouse-move {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    border-radius: 50%
}

.mouse-move span {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--primary-color);
    transition: border .3s ease-in-out, background-color .3s ease-in-out, width .3s ease-in-out, height .3s ease-in-out
}

.mouse-move.linkhover span {
    width: 80px;
    height: 80px;
    background-color: transparent;
    border: 2px solid var(--primary-color);
    transform-origin: center;
    animation: mousemovehover 2s infinite cubic-bezier(.4, .1, 0, 1)
}

.mouse-move.slider-hover span {
    width: 70px;
    height: 70px
}

.mouse-move span img {
    padding: 25px 5px;
    height: 20px;
    width: 60px
}

#branding circle,
#branding path,
#branding rect,
.light .social-icons a svg {
    fill: var(--secondary-color)
}

#branding #art {
    clip-path: url(#art-mask_0)
}

#branding #esigner {
    clip-path: url(#esigner-mask_0)
}

.animate #art path,
.animate #esigner g {
    animation: goin 1s forwards
}

.animate #part {
    animation: posX 1s forwards
}

.animate #line {
    animation: scale 1s forwards
}

#d,
#line,
#p,
#secondline {
    transform-box: content-box;
    transform-origin: left
}

#d,
#p,
#secondline {
    transform-origin: top
}

.animate #secondline {
    animation: posY 1s forwards
}

.animate #p {
    animation: posYp 1s forwards
}

.animate #d {
    animation: posYd 1s forwards
}

.reverse #art path,
.reverse #esigner g {
    animation: goinR reverse 1s forwards
}

.reverse #part {
    animation: posXR reverse 1s forwards
}

.reverse #line {
    animation: scaleR reverse 1s forwards
}

.reverse #secondline {
    animation: posYR reverse 1s forwards
}

.reverse #p {
    animation: posYpR reverse 1s forwards
}

.reverse #d {
    animation: posYdR reverse 1s forwards
}

.mouse-move,
header.sticky .header-wrapper {
    pointer-events: none
}

.page-studio header #branding circle,
.page-studio header #branding path,
.page-studio header #branding rect,
body.bg-dark header #branding circle,
body.bg-dark header #branding path,
body.bg-dark header #branding rect,
header.sticky #branding circle,
header.sticky #branding path,
header.sticky #branding rect {
    fill: #fff
}

.page-studio .canvas-navi-bar div,
body,
body.bg-dark header .canvas-navi-bar div,
header.sticky .canvas-navi-bar div,
html {
    background-color: #fff
}

header.sticky .get-in-touch {
    transform: translateY(-100px);
    opacity: 0
}

body.bg-dark header #branding,
body.bg-dark header .canvas-navi-icon,
header.sticky #branding,
header.sticky .canvas-navi-icon {
    mix-blend-mode: difference;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

header.sticky #branding {
    top: 30px;
    left: 25px
}

header.sticky .canvas-navi-icon {
    top: 40px;
    right: 30px
}

.canvas-navi-icon {
    position: fixed;
    top: 45px;
    right: 60px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 36px;
    height: 36px;
    pointer-events: auto;
    z-index: 103;
    transition: .3s right ease-in-out
}

.canvas-navi-bar {
    cursor: pointer;
    padding: 0;
    transition: transform .3s ease
}

.canvas-navi-bar div {
    display: block;
    width: 36px;
    height: 2px;
    margin: 0 0 0 auto;
    transition: .3s transform ease-in-out, .3s width ease-in-out;
    position: relative
}

.canvas-navi-bar .bar2 {
    margin: 5px 0 5px auto
}

.canvas-navi-bar .bar3 {
    width: 24px
}

.canvas-menu-open .canvas-navi-bar .bar2,
.vc_desktop .canvas-navi-bar:hover .bar2 {
    width: 30px
}

.canvas-menu-open .canvas-navi-bar .bar1,
.vc_desktop .canvas-navi-bar:hover .bar1 {
    transform: translateY(7px) rotate(90deg);
    width: 30px
}

.canvas-menu-open .canvas-navi-bar .bar3,
.vc_desktop .canvas-navi-bar:hover .bar3 {
    width: 0
}

#canvas-nav::before,
.canvas-nav-overlay {
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: top center
}

#canvas-nav,
.canvas-nav-overlay {
    clip-path: polygon(0 0, 100%0, 100%0, 0 0);
    position: fixed
}

.canvas-nav-overlay {
    z-index: 101;
    background-color: var(--secondary-color);
    transition: all .5s cubic-bezier(.4, .1, 0, 1)
}

#canvas-nav {
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    padding: 10vw 15vw 5vw;
    box-sizing: border-box;
    overflow: hidden;
    z-index: 102;
    text-align: left;
    opacity: 1;
    transition: clip-path 1s cubic-bezier(.4, .1, 0, 1);
    transition-delay: .3s
}

#canvas-nav::before {
    content: "";
    position: absolute;
    background-color: #fff;
    transform: scale(1, 0);
    transition: transform 1s cubic-bezier(.4, .1, 0, 1);
    z-index: -1
}

#canvas-nav a,
strong {
    font-weight: 600
}

#canvas-nav .text-link {
    font-size: 1vw;
    margin-right: 1vw
}

#canvas-nav .nav-image-preview {
    position: absolute;
    top: 12vw;
    right: 5vw;
    width: 22vw;
    opacity: 0;
    pointer-events: none;
    transform: scale(.97);
    overflow: hidden;
    z-index: -1;
    will-change: transform, opacity;
    aspect-ratio: 34/49
}

#canvas-nav .nav-image-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

#canvas-nav .canvas-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    width: 70%
}

#canvas-nav nav ul,
body,
html {
    margin: 0;
    padding: 0
}

#canvas-nav nav .canvas-menu {
    width: 100%;
    position: relative
}

#canvas-nav nav ul li {
    list-style: none;
    display: block
}

#canvas-nav nav ul li:after,
#canvas-nav nav ul li:before {
    position: absolute;
    left: 0;
    width: 100%;
    content: "";
    display: block;
    background-color: var(--body-text-color);
    z-index: -1
}

#canvas-nav nav ul li:before {
    top: 0;
    height: 100%;
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform .6s cubic-bezier(.1, .75, .5, 1)
}

#canvas-nav nav ul li:after {
    bottom: 0;
    height: 1px
}

#canvas-nav nav ul li a {
    display: block;
    text-decoration: none;
    line-height: 1;
    font-size: 4vw;
    padding: 1.2vw 0 .5vw;
    position: relative;
    transition: color .6s cubic-bezier(.1, .75, .5, 1), padding .6s cubic-bezier(.1, .75, .5, 1)
}

#canvas-nav nav ul li a:after {
    content: "";
    background-image: url(../img/icons/icon-arrow-right.svg);
    position: absolute;
    top: 50%;
    right: 0;
    width: 1.24vw;
    height: 1vw;
    transform: translateY(-50%) rotate(-45deg);
    transition: filter .6s cubic-bezier(.1, .75, .5, 1), transform .6s cubic-bezier(.1, .75, .5, 1)
}

.vc_desktop #canvas-nav nav ul li:hover a:after {
    filter: invert(1);
    transform: translateY(-50%) translateX(-1.2vw) rotate(-45deg)
}

.vc_desktop #canvas-nav nav ul li:hover:before {
    transform: scaleY(1)
}

.vc_desktop #canvas-nav nav ul li:hover a {
    padding-left: 1.2vw;
    color: #fff
}

#canvas-nav .canvas-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 3vw
}

#canvas-nav .social-icons a {
    background-color: transparent;
    margin: 0 0 0 .3vw;
    padding: .1vw
}

#canvas-nav .social-icons span {
    display: none
}

#canvas-nav .social-icons a svg {
    fill: var(--body-text-color);
    transition: fill .6s cubic-bezier(.1, .75, .5, 1)
}

.vc_desktop #canvas-nav .social-icons a:hover svg {
    fill: var(--primary-color)
}

.canvas-menu-open #canvas-nav::before {
    transform: scale(1, 1)
}

.canvas-menu-open #canvas-nav .text-link,
.canvas-menu-open #canvas-nav nav>ul>li {
    -webkit-animation: fromtop .5s .2s backwards;
    -moz-animation: fromtop .5s .2s backwards;
    animation: fromtop .5s .2s backwards
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(1) {
    animation-delay: .7s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(2) {
    animation-delay: .75s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(3) {
    animation-delay: .8s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(4) {
    animation-delay: .85s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(5) {
    animation-delay: .9s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(6) {
    animation-delay: .95s
}

.canvas-menu-open #canvas-nav nav>ul>li:nth-child(7) {
    animation-delay: .1s
}

.canvas-menu-open #canvas-nav,
.canvas-menu-open .canvas-nav-overlay {
    clip-path: polygon(0 0, 100%0, 100% 100%, 0 100%)
}

.close #canvas-nav,
.close .canvas-nav-overlay {
    clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%)
}

.close #canvas-nav {
    transition-duration: .5s
}

.close .canvas-nav-overlay {
    transition-delay: .4s;
    transform-origin: bottom center
}

.close #canvas-nav .canvas-left .mesh:after,
.close #canvas-nav .canvas-left .mesh:before,
.close #canvas-nav::before {
    transform-origin: bottom
}

.canvas-menu-open .canvas-navi-bar {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transition-delay: .7s
}

.canvas-menu-open.close .canvas-navi-bar,
.close #canvas-nav {
    transition-delay: 0s
}

.pt0 {
    padding-top: 0 !important
}

.pt25 {
    padding-top: 25px !important
}

.pt30 {
    padding-top: 30px !important
}

.pt40 {
    padding-top: 40px !important
}

.pt50 {
    padding-top: 50px !important
}

.pt70 {
    padding-top: 70px !important
}

.pt100 {
    padding-top: 100px !important
}

.pb0 {
    padding-bottom: 0 !important
}

.pb5 {
    padding-bottom: 5px !important
}

.pb30 {
    padding-bottom: 30px !important
}

.pb50 {
    padding-bottom: 50px !important
}

.pb70 {
    padding-bottom: 70px !important
}

.pb100 {
    padding-bottom: 100px !important
}

.pb200 {
    padding-bottom: 200px !important
}

.pt-0 {
    padding-top: 0 !important
}

.pt-1 {
    padding-top: 1vw !important
}

.pt-2 {
    padding-top: 2vw !important
}

.pt-3 {
    padding-top: 3vw !important
}

.pt-4 {
    padding-top: 4vw !important
}

.pt-5 {
    padding-top: 5vw !important
}

.pr-0 {
    padding-right: 0 !important
}

.pr-1 {
    padding-right: 1vw !important
}

.pr-2 {
    padding-right: 2vw !important
}

.pr-3 {
    padding-right: 3vw !important
}

.pr-4 {
    padding-right: 4vw !important
}

.pr-5 {
    padding-right: 5vw !important
}

.pb-0 {
    padding-bottom: 0 !important
}

.pb-1 {
    padding-bottom: 1vw !important
}

.pb-2 {
    padding-bottom: 2vw !important
}

.pb-3 {
    padding-bottom: 3vw !important
}

.pb-4 {
    padding-bottom: 4vw !important
}

.pb-5 {
    padding-bottom: 5vw !important
}

.pl-0 {
    padding-left: 0 !important
}

.pl-1 {
    padding-left: 1vw !important
}

.pl-2 {
    padding-left: 2vw !important
}

.pl-3 {
    padding-left: 3vw !important
}

.pl-4 {
    padding-left: 4vw !important
}

.pl-5 {
    padding-left: 5vw !important
}

.more-pt {
    padding-top: 15vw !important
}

.more-pb {
    padding-bottom: 15vw !important
}

.mt-0 {
    margin-top: 0 !important
}

.mt-1 {
    margin-top: 1vw !important
}

.mt-2 {
    margin-top: 2vw !important
}

.mt-3 {
    margin-top: 3vw !important
}

.mt-4 {
    margin-top: 4vw !important
}

.mt-5 {
    margin-top: 5vw !important
}

.mb-0 {
    margin-bottom: 0 !important
}

.mb-1 {
    margin-bottom: 1vw !important
}

.mb-2 {
    margin-bottom: 2vw !important
}

.mb-3 {
    margin-bottom: 3vw !important
}

.mb-4 {
    margin-bottom: 4vw !important
}

.mb-5 {
    margin-bottom: 5vw !important
}

[class*=pb-],
[class*=pl-],
[class*=pr-],
[class*=pt-] {
    box-sizing: border-box
}

.ptb50 {
    padding-top: 50px !important;
    padding-bottom: 50px !important
}

.ptb70 {
    padding-top: 70px !important;
    padding-bottom: 70px !important
}

.ptb100 {
    padding-top: 100px !important;
    padding-bottom: 100px !important
}

.plr15 {
    padding-left: 15px;
    padding-right: 15px
}

.plr30 {
    padding-left: 30px;
    padding-right: 30px
}

.mt0 {
    margin-top: 0 !important
}

.mt15 {
    margin-top: 15px !important
}

.mt30 {
    margin-top: 30px !important
}

.mt50 {
    margin-top: 50px !important
}

.mt70 {
    margin-top: 70px !important
}

.mt100 {
    margin-top: 100px !important
}

.mt-30 {
    margin-top: -30px !important
}

.mt-50 {
    margin-top: -50px !important
}

.mt-70 {
    margin-top: -70px !important
}

.mt-100 {
    margin-top: -100px !important
}

.mb0 {
    margin-bottom: 0 !important
}

.mb10 {
    margin-bottom: 10px !important
}

.mb15 {
    margin-bottom: 15px !important
}

.mb20 {
    margin-bottom: 20px !important
}

.mb30 {
    margin-bottom: 30px !important
}

.mb50 {
    margin-bottom: 50px !important
}

.mb70 {
    margin-bottom: 70px !important
}

.mb100 {
    margin-bottom: 100px !important
}

.mw-640 .wpb_text_column,
.mw-640.wpb_text_column,
p.mw-640 {
    max-width: 640px
}

.center .mw-1200,
.center .mw-720,
.mw-1200.center .wpb_text_column,
.mw-1200.center.wpb_text_column,
.mw-640.center .wpb_text_column,
.mw-640.center.wpb_text_column,
.mw-720.center .wpb_text_column,
.mw-720.center.wpb_text_column,
.svg-icon.align-center img {
    margin: 0 auto
}

.mw-720 .wpb_text_column,
.mw-720.wpb_text_column,
p.mw-720 {
    max-width: 720px
}

.mw-1200 .wpb_text_column,
.mw-1200.wpb_text_column,
p.mw-1200 {
    max-width: 1200px
}

.center.mw-1200.wpb_text_column:last-child,
.center.mw-640.wpb_text_column:last-child,
.center.mw-720.wpb_text_column:last-child,
.mw-1200.wpb_text_column:last-child,
.mw-640.wpb_text_column:last-child,
.mw-720.wpb_text_column:last-child {
    margin-bottom: 0
}

#canvas-nav .close>div,
#canvas-nav nav ul li,
#canvas-nav nav ul li:after,
.contact-infos .iconbox.fullbox-link .subheadline,
.cta-box img,
.cta-box.has-link:after,
.cta-box.has-link:hover .cta-box-content *,
.cta-box:after,
.iconbox,
.iconbox.fullbox-link .like-h3,
.imagebanner,
.imagebanner .content .more,
.imagebanner h3,
.job:after,
.page-numbers a,
.servicebox a>*,
.swiper-button-next,
.swiper-button-prev,
.vc_desktop .wpb_single_image a:after,
.wpb_single_image a img,
footer .main-nav ul li:after,
header #navigation a:after {
    -webkit-transition: 300ms all ease-in-out;
    transition: 300ms all ease-in-out
}

.button,
.button i:after,
.button i:before,
.text-link,
.text-link *,
.text-link:after,
.text-link:before {
    -webkit-transition: 300ms background-color ease-in-out, 300ms border-color ease-in-out, 300ms box-shadow ease-in-out, 300ms transform ease-in-out, 300ms color ease-in-out;
    transition: 300ms background-color ease-in-out, 300ms border-color ease-in-out, 300ms box-shadow ease-in-out, 300ms transform ease-in-out, 300ms color ease-in-out
}

.servicebox a {
    transition: 200ms background-color ease-in-out, 200ms border ease-in-out, 200ms transform ease-in-out
}

.like-h1,
.like-h2,
h1,
h2 {
    font-family: "UnytourDisplay", sans-serif;
    font-weight: 500;
    line-height: .92;
    letter-spacing: -.04vw;
    color: var(--secondary-color);
    margin-left: -.3vw
}

.like-h2,
h1,
h2 {
    font-size: 11vw;
    margin-top: 0;
    margin-bottom: 0;
    hyphens: manual
}

.like-h2,
h2 {
    font-size: 6.4vw
}

.smaller .like-h2,
.smaller h2 {
    font-size: 4.2vw
}

.like-h3,
h3 {
    font-size: 2vw;
    line-height: 1.2;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: .5vw
}

.smaller .like-h3,
.smaller h3 {
    font-size: 1.6vw
}

h4,
small {
    line-height: 1.4
}

small {
    font-size: .85vw;
    display: block
}

.primary-text-color h1,
.primary-text-color h2,
.primary-text-color h3,
.primary-text-color h4,
.primary-text-color h5,
.primary-text-color h6,
.vc_desktop #main .gform_wrapper a:hover,
.vc_desktop #main .wpb_text_column>.wpb_wrapper>p>a:hover,
.vc_desktop .iconbox .iconbox-content a:hover,
.vc_desktop .wpb_text_column ul li a:hover,
.vc_desktop p a:hover {
    color: var(--primary-color)
}

h4 {
    font-size: 1.2vw;
    margin-top: 0;
    margin-bottom: 10px
}

.like-p,
h5 {
    font-size: 1vw
}

h6 {
    font-size: .9vw
}

#main .gform_wrapper .gform_validation_errors>h2,
.light .like-h1,
.light .like-h2,
.light .like-h3,
.light .p-large p,
.light a,
.light h1,
.light h2,
.light h3,
.light h4,
.light h5,
.light h6,
.light label,
.light li,
.light p,
.light span,
h1.light,
h2.light,
h3.light {
    color: #fff
}

.heading h2,
h2.heading {
    font-size: 4vw
}

.heading h3,
h3.heading {
    font-size: 2.8vw;
    margin-bottom: 30px
}

.display p,
p.display {
    font-size: 1.6vw;
    line-height: 1.2;
    font-weight: 600;
    opacity: .5
}

#main .gform_wrapper li.hidden_label input,
p {
    margin: 0
}

.wpb_text_column p+p {
    margin-top: 1em
}

.p-large p,
p.p-large {
    font-size: 2.1vw;
    font-weight: 600;
    line-height: 1.15;
    opacity: .7
}

.p-large p+h2 {
    margin-top: 10px
}

.p-medium p,
p.p-medium {
    font-size: 1.5vw;
    font-weight: 600;
    line-height: 1.15
}

.p-small p {
    font-size: .85vw;
    line-height: 1.6
}

.justify-text li,
.justify-text p {
    text-align: justify;
    hyphens: auto
}

.wpb_button,
.wpb_content_element,
ul.wpb_thumbnails-fluid>li {
    margin-bottom: 30px
}

.iconbox ul,
.wpb_text_column ul {
    padding-left: 25px;
    position: relative
}

.legal h2:first-child,
.wpb_text_column ul:first-child {
    margin-top: 0
}

.iconbox ul li,
.wpb_text_column ul li {
    list-style-type: none
}

.iconbox ul li::before,
.wpb_text_column ul li::before {
    content: "—";
    display: inline-block;
    position: absolute;
    left: 0
}

.button.large i,
.iconbox ul li::before {
    margin-top: -1px
}

.wpb_text_column ol li+li,
.wpb_text_column ul li+li {
    margin-top: 5px
}

.wpb_text_column.col-2 ul {
    columns: 2
}

.wpb_text_column.col-3 ul {
    columns: 3
}

sup {
    font-size: .75vw
}

a,
p a {
    color: var(--body-text-color);
    text-decoration: underline;
    cursor: pointer
}

p a {
    word-break: break-all
}

.align-right {
    text-align: right
}

.legal {
    line-height: 1.4
}

.legal h2 {
    font-size: 2vw;
    margin-top: 4vw;
    margin-left: 0;
    margin-bottom: .7vw;
    font-family: "PPMori", sans-serif;
    font-style: normal;
    font-weight: 600
}

.legal h3 {
    font-size: 1.2vw;
    margin-top: 2vw;
    margin-bottom: .7vw
}

.legal h4 {
    font-size: 1vw
}

.legal h5 {
    font-size: .9vw
}

.legal p {
    font-size: .85vw;
    text-align: justify
}

.legal ol {
    counter-reset: item;
    padding-left: 20px
}

.legal ol li {
    display: block;
    position: relative;
    padding-left: 15px;
    margin-bottom: 20px
}

.legal ol ol {
    margin-top: 15px
}

.legal .wpb_wrapper>ol>li:before {
    font-weight: 700
}

.legal ol>li>ol>li {
    padding-left: 30px;
    margin-bottom: 10px
}

.legal ol>li:before {
    content: counters(item, ".")". ";
    counter-increment: item;
    position: absolute;
    left: -5px
}

.legal img {
    display: inline-block
}

fieldset {
    padding: 0;
    margin: 0;
    border: 0
}

.gform_wrapper input[type=date],
.gform_wrapper input[type=email],
.gform_wrapper input[type=number],
.gform_wrapper input[type=password],
.gform_wrapper input[type=tel],
.gform_wrapper input[type=text],
.gform_wrapper select,
.select2-selection {
    height: 50px
}

input[type=date],
input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text],
select,
textarea {
    font-family: "PPMori", sans-serif;
    font-size: 1vw;
    line-height: 1.2 !important;
    margin: 0;
    background-image: none;
    border: 2px solid #ddd;
    border-radius: 7px;
    background-color: #fff;
    outline: 0;
    color: var(--body-text-color);
    width: 100%;
    box-sizing: border-box;
    -webkit-transition: 300ms all ease-in-out;
    -o-transition: 300ms all ease-in-out;
    transition: 300ms all ease-in-out;
    -moz-appearance: none;
    -webkit-appearance: none;
    padding: 14px 12px 12px !important
}

textarea {
    padding: 18px !important
}

input::placeholder,
select::placeholder,
textarea::placeholder {
    overflow: visible;
    color: rgba(0, 0, 0, .3) !important
}

input:focus,
select:focus,
textarea:focus {
    box-shadow: 0 0 0 4px rgba(255, 0, 50, .2);
    border-color: var(--primary-color)
}

select {
    background: url(../img/icons/icon-arrow-down.svg)#fff no-repeat right 14px center;
    background-size: 10px;
    color: rgba(0, 0, 0, .6);
    padding-right: 36px !important
}

body .gform_wrapper.gravity-theme .ginput_complex .ginput_container_date select {
    min-width: 100px
}

input[type=submit] {
    outline: 0;
    -moz-appearance: none;
    -webkit-appearance: none
}

.gform_wrapper hr {
    margin: 30px 0;
    border: 0;
    border-top: 1px solid #ddd
}

.gform_wrapper hr+h3 {
    margin-top: 50px
}

.hidden_label .gfield_label {
    display: none !important
}

#main .gform_wrapper .gsection {
    margin-top: 30px;
    margin-bottom: 30px
}

#main .gform_wrapper .gsection h3 {
    margin-bottom: 0;
    font-style: normal;
    font-weight: 700;
    font-size: 1.4vw
}

#main .gform_wrapper .gchoice,
#main .gform_wrapper .ginput_container_consent,
#main .gform_wrapper fieldset {
    position: relative
}

#main .gform_wrapper .gfield>.gfield_label {
    width: auto;
    max-width: max-content;
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 0;
    z-index: 2;
    position: relative
}

#main .gform_wrapper.gravity-theme .gfield_header_item,
.single-pack.primary .features li {
    font-weight: 600
}

#main .gform_wrapper .gfield_description {
    font-size: .8vw;
    line-height: 1.3;
    border: 0;
    padding: 0;
    margin-top: 6px;
    color: var(--body-text-color)
}

#main .gform_wrapper .gform_fileupload_rules {
    font-size: .75vw;
    opacity: .6
}

.ginput_container_fileupload input {
    background: rgba(0, 0, 0, .02);
    border: 1px dashed #ddd;
    border-radius: 7px;
    padding: 12px;
    text-align: center
}

.ginput_container_fileupload input[type=file]::file-selector-button {
    font-family: "PPMori", sans-serif;
    position: relative;
    display: inline-block;
    border: 0;
    text-decoration: none !important;
    padding: 12px 24px;
    font-size: 1vw;
    font-weight: 700;
    vertical-align: middle;
    text-align: center;
    line-height: 1.3;
    box-sizing: border-box;
    cursor: pointer;
    z-index: 1;
    overflow: hidden
}

.ginput_container_fileupload * {
    z-index: 2
}

.gform_wrapper.gravity-theme .gfield--type-fileupload .ginput_preview_list>div {
    display: flex;
    background-color: var(--light-gray);
    padding: 10px;
    margin: 4px 0;
    font-size: .9vw
}

#main #gform_3 .gform_page_footer .button.gform_next_button,
.gfield--type-fileupload .ginput_preview_list .gfield_fileupload_filesize {
    margin-left: auto
}

.gfield--type-fileupload .ginput_preview_list .gfield_fileupload_progress_complete {
    margin: 0 10px
}

.gfield--type-fileupload .ginput_preview_list .gform_delete_file {
    margin-top: -3px
}

#main .gform_wrapper .gfield_checkbox label,
#main .gform_wrapper .gfield_radio label {
    line-height: 1.5
}

#main .gform_wrapper .gfield--type-checkbox .gfield_description,
#main .gform_wrapper .gfield_checkbox .gchoice {
    padding-left: 25px
}

#main .gform_wrapper .gfield_checkbox input,
#main .gform_wrapper .ginput_container_consent input {
    position: absolute;
    left: 0;
    top: 1px;
    margin: 0
}

#main .gform_wrapper .gfield--type-consent {
    margin-top: 30px
}

#main .gform_wrapper .ginput_container_consent {
    line-height: 1.4;
    padding-left: 25px
}

#main .gform_wrapper .gform_footer,
#page-title h1+p {
    margin-top: 20px
}

#main .gform_wrapper .gform_page_footer {
    display: flex;
    justify-content: space-between
}

#main .gform_page_footer .button,
#main .gform_wrapper .gform_button {
    font-size: .9vw;
    border: 0;
    box-sizing: border-box;
    background-color: var(--secondary-color);
    color: #fff;
    cursor: pointer;
    display: block;
    padding: 16px 26px 17px;
    border-radius: 7px;
    transition: .3s all ease-in-out;
    min-width: 180px;
    font-weight: 600;
    text-transform: uppercase;
    text-align: center
}

#main .gform_page_footer .button {
    display: inline-block
}

#main .gform_page_footer .button.gform_previous_button {
    background-color: #f1f3f4;
    color: #222
}

.vc_desktop #main .gform_page_footer .button:hover,
.vc_desktop #main .gform_wrapper .gform_button:hover {
    background-color: var(--primary-color);
    color: #fff
}

#main .gform_wrapper .gfield_checkbox input {
    vertical-align: top;
    margin-top: 4px
}

#main .gform_wrapper.gravity-theme .ginput_complex .address_country {
    flex: 0 0 100%
}

#main .gform_required_legend {
    font-size: .8vw;
    text-align: right;
    display: none !important
}

#main .gform_wrapper .boxed .gfield_radio {
    display: grid;
    grid-column-gap: 2%;
    grid-row-gap: 16px;
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 20px
}

#main .gform_wrapper .boxed .gfield_radio .gchoice {
    grid-column: span 1;
    padding: 0
}

#main .gform_wrapper .boxed label {
    background-color: #fff;
    border: 2px solid #ddd;
    padding: 16px 20px 19px;
    -webkit-border-radius: 7px;
    border-radius: 7px;
    text-align: center;
    width: 100%;
    max-width: 100%;
    cursor: pointer;
    -webkit-transition: 300ms all ease-in-out;
    -o-transition: 300ms all ease-in-out;
    transition: 300ms all ease-in-out
}

#main .gform_wrapper .boxed input,
#main .gform_wrapper .gform_validation_errors>h2 .gform-icon {
    display: none
}

.vc_desktop #main .gform_wrapper .boxed label:hover {
    border-color: var(--primary-color)
}

#main .gform_wrapper .boxed input[type=radio]:checked+label {
    border-color: var(--primary-color);
    color: var(--primary-color);
    font-weight: 600
}

#main .gform_wrapper .gform_validation_errors {
    background-color: #f35555;
    border: 0;
    box-shadow: none;
    margin-bottom: 20px;
    margin-top: 0;
    padding: 15px 20px
}

#main .gform_wrapper .gfield_error [aria-invalid=true] {
    border: 2px solid #f35555
}

#main .gform_wrapper .gfield_error,
#main .gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
    padding: 0;
    color: #f35555;
    background-color: transparent
}

#main .gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
    margin-top: 4px
}

#main .gform_wrapper .gfield_error label {
    color: #444a52
}

.grecaptcha-badge {
    z-index: 2000;
    bottom: 100px !important
}

#main #gform_3 .gfield_label {
    font-size: 1vw;
    line-height: 1.5;
    display: block;
    margin-bottom: 5px;
    margin-top: 10px
}

.svg-icon.inline {
    display: inline-block;
    margin-right: 10px
}

.svg-icon.align-right img {
    margin: 0 0 0 auto
}

.icon-shadow .svg-icon img {
    -webkit-filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .4));
    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .4))
}

.button {
    font-family: "PPMori", sans-serif;
    font-weight: 600;
    position: relative;
    display: inline-block;
    border: 0;
    background-color: transparent;
    text-decoration: none !important;
    padding: .75vw 1.2vw .65vw 1.4vw;
    font-size: .95vw;
    text-align: left;
    line-height: 1.3;
    box-sizing: border-box;
    cursor: pointer;
    z-index: 1;
    overflow: hidden;
    border-radius: 50px
}

.button.medium {
    padding: .8vw 1.1vw .7vw
}

.button,
.text-link,
button {
    vertical-align: middle
}

.button:disabled {
    background: #ccc !important;
    color: #aaa !important;
    cursor: default
}

.button .bg-anim {
    position: absolute;
    background: var(--primary-color);
    transform: translate(-50%, -50%);
    pointer-events: none;
    border-radius: 50%;
    display: block;
    width: 0;
    height: 0;
    transition: height .5s ease-in-out, width .5s ease-in-out;
    opacity: 1;
    z-index: -1
}

.vc_desktop .button:hover .bg-anim {
    width: 600px;
    height: 600px
}

.button.border {
    box-shadow: inset 0 0 0 .08vw var(--secondary-color)
}

.vc_desktop .button.border:hover {
    background-color: var(--body-text-color);
    color: #fff
}

.center .button,
.center .text-link {
    margin-left: 10px;
    margin-right: 10px
}

.button.dark,
.button.primary,
.vc_desktop .iconbox.fullbox-link:hover .iconbox-content * {
    color: #fff
}

.vc_desktop .button:hover:after {
    width: 120%;
    left: -10%
}

.button.large,
.contact-infos .iconbox p+p>a {
    font-size: 1vw
}

.button.lightgray,
.vc_desktop .button.secondary:hover {
    color: var(--secondary-color);
    background-color: var(--light-gray)
}

.button.dark,
.button.secondary,
.vc_desktop .button.lightgray:hover {
    color: var(--light-gray);
    background-color: var(--secondary-color)
}

.light .button.secondary {
    background-color: var(--light-gray);
    color: var(--secondary-color)
}

.light .button.border {
    box-shadow: inset 0 0 0 2px #fff
}

.vc_desktop .light .text-link:hover {
    color: var(--light-gray)
}

.button-box.full-width .button {
    width: 100%;
    border-radius: 0;
    padding: .9vw;
    display: flex;
    align-items: center;
    justify-content: space-between
}

.button.center {
    margin: 0 auto;
    display: table
}

.text-link {
    font-size: .95vw;
    font-weight: 600;
    line-height: 1.2;
    padding: .75vw 0 .7vw;
    text-decoration: none;
    display: inline-block;
    width: fit-content
}

.text-link:after {
    content: "";
    width: 0;
    height: 0;
    border-top: 2px solid var(--body-text-color);
    display: block;
    right: 0;
    transition: width .75s cubic-bezier(.25, .8, .25, 1)
}

.vc_desktop .post.blog:hover .text-link:after,
.vc_desktop .post.landingpage:hover .text-link:after,
.vc_desktop .text-link:hover:after {
    width: 100%;
    right: auto;
    left: 0
}

.cta-box.primary .cta-box-content .text-link i:after,
.cta-box.primary .cta-box-content .text-link i:before,
.light .text-link:after {
    border-color: var(--light-gray)
}

.btn-icon * {
    stroke: currentColor;
    stroke-miterlimit: 10;
    stroke-width: 2.5px;
    fill: none
}

.button .button-icon,
.text-link .button-icon {
    display: inline-block;
    width: 1.2vw;
    height: .9vw;
    line-height: 1;
    margin-bottom: 0;
    overflow: hidden;
    position: relative;
    text-align: left;
    margin-left: 3px;
    padding-right: 3px;
    vertical-align: text-bottom;
    transition: transform .2s ease-in-out
}

.vc_desktop .button:hover .button-icon,
.vc_desktop .text-link:hover .button-icon {
    transform: translateX(4px)
}

.no-break {
    white-space: nowrap
}

.topline {
    font-size: 1.3vw;
    line-height: 1.05;
    font-weight: 600;
    margin-bottom: .5em;
    display: inline-block
}

.center .topline {
    margin-left: auto;
    margin-right: auto
}

.iconbox {
    box-sizing: border-box;
    position: relative
}

.iconbox:last-child {
    margin-bottom: 0
}

.iconbox.primary {
    background-color: var(--primary-color);
    border-radius: 16px
}

.iconbox.bordered {
    padding: 1.5vw;
    border: 2px solid var(--body-text-color)
}

.iconbox.bordered.small {
    padding: 20px
}

.iconbox.bordered.small p.like-h3 {
    font-size: 1vw;
    margin-bottom: 5px
}

.iconbox.bordered.small .subheadline {
    font-size: .85vw
}

.iconbox.align-center.bordered.small img,
.iconbox.icon-top-center.bordered.small img {
    margin-bottom: 7px
}

.iconbox.fullbox-link {
    cursor: pointer
}

.iconbox.fullbox-link>a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3
}

.vc_desktop .iconbox.fullbox-link:hover {
    background-color: var(--body-text-color)
}

.iconbox .iconbox-content {
    padding: 0;
    margin-top: 3px
}

.iconbox .iconbox-content p {
    font-size: 1vw;
    hyphens: auto
}

.iconbox .iconbox-content span.text-link {
    font-size: .8vw;
    line-height: 1.3;
    position: absolute;
    bottom: 1vw;
    left: 1.8vw
}

.vc_desktop .iconbox.fullbox-link:hover img {
    filter: invert(1)
}

.vc_desktop .iconbox.fullbox-link:hover .iconbox-content span.text-link:after {
    width: 100%;
    border-color: #fff
}

.iconbox.align-center {
    text-align: center
}

.iconbox.align-center img,
.iconbox.align-center video,
.iconbox.icon-top-center img,
.iconbox.icon-top-center video {
    margin: 0 auto 20px
}

.iconbox img,
.iconbox video {
    margin-bottom: 1vw;
    height: auto
}

.iconbox video {
    display: block;
    max-width: 100%
}

.iconbox ul li+li {
    margin-top: 5px
}

.iconbox h3 {
    font-size: 1.3vw;
    margin-bottom: .5em
}

.iconbox p:last-child {
    margin-bottom: 0
}

.iconbox p+p,
.iconbox.no-img h3 {
    margin-top: 0
}

.iconbox h4 {
    margin-top: 10px;
    font-size: 1.1vw;
    line-height: 1.3
}

.iconbox h4>a {
    text-decoration: underline
}

.iconbox .subheadline {
    font-size: 1vw;
    line-height: 1.4;
    margin: 7px 0
}

.iconbox .button,
.iconbox .text-link {
    margin: 0 !important
}

.iconbox .button:after {
    content: "";
    display: block;
    width: 0;
    height: 2px;
    -webkit-transition: .3s all ease-in-out !important;
    -o-transition: .3s all ease-in-out !important;
    transition: .3s all ease-in-out !important
}

.vc_desktop .iconbox .button:hover:after {
    width: 100%
}

.iconbox.icon-left {
    display: flex;
    align-items: flex-start
}

.iconbox.icon-left img {
    flex: none;
    margin-right: .7vw;
    margin-bottom: 0
}

.iconbox.gray {
    padding: 1.8vw;
    background-color: var(--light-gray)
}

.iconbox.white {
    padding: 1.8vw;
    background-color: #fff
}

.iconbox.show-btn,
.iconbox.text-link-box.gray {
    padding-bottom: 4vw
}

.siegel .iconbox.gray img {
    height: 120px;
    width: 240px;
    object-fit: contain;
    object-position: left center
}

.iconbox .text-link {
    font-size: .8vw;
    position: absolute;
    bottom: 1.2vw;
    left: 1.8vw
}

.iconbox h4>a,
.vc_desktop .iconbox.gray .iconbox-content .text-link:hover {
    color: var(--secondary-color)
}

.dp-crosslink .text-link i:after,
.dp-crosslink .text-link i:before,
.iconbox.gray .text-link i:after,
.iconbox.gray .text-link i:before {
    border-color: var(--secondary-color) !important
}

.iconbox.gray.werberat img {
    padding: 20px 0;
    box-sizing: border-box
}

.iconbox.bg-green {
    padding: 2vw;
    background-color: #2fcc6e
}

.iconbox.bg-green h3 {
    font-size: 2vw
}

.iconbox .text-link .button-icon {
    width: 1vw;
    height: .8vw
}

.contact-infos .iconbox {
    margin-bottom: .7vw;
    padding: 0;
    align-items: center;
    width: fit-content
}

.contact-infos .iconbox h3 {
    margin-bottom: 0;
    font-size: .7vw;
    line-height: 1.5;
    font-weight: 400
}

.contact-infos .iconbox img {
    width: 2.2vw;
    align-self: flex-start
}

.contact-infos .iconbox .subheadline {
    font-size: 1vw;
    line-height: 1.1;
    font-weight: 600;
    margin-top: 0
}

.vc_desktop .contact-infos .iconbox.fullbox-link:hover {
    transform: none;
    background-color: transparent
}

.vc_desktop .contact-infos .iconbox.fullbox-link:hover img {
    filter: none
}

.vc_desktop .contact-infos .iconbox.fullbox-link:hover .iconbox-content * {
    color: inherit
}

.vc_desktop .contact-infos .iconbox.fullbox-link:hover .subheadline {
    color: var(--primary-color)
}

.social-icons {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0
}

.social-icons a {
    width: 2vw;
    height: 2vw;
    box-sizing: border-box;
    padding: .25vw;
    border-radius: 6px;
    text-align: center;
    margin: 0 .5vw 0 0;
    transition: background-color .3s ease-in-out
}

.social-icons a svg,
.social-share a svg {
    fill: var(--secondary-color);
    z-index: 1;
    padding: 0;
    margin: 0;
    position: relative
}

.iconbox .button:after,
.vc_desktop .social-icons a:hover,
.vc_desktop .social-share a:hover {
    background-color: var(--primary-color)
}

.footer .social-icons a svg,
.vc_desktop .social-icons a:hover svg,
.vc_desktop .social-share a:hover svg {
    fill: var(--light-gray)
}

.light .social-icons a {
    background-color: var(--light-gray)
}

.post-date,
.social-icons a,
.social-share {
    display: inline-block
}

.single .social-share {
    width: 100%;
    display: flex;
    align-items: center
}

.single div+.social-share {
    margin-top: 40px;
    border-top: 1px solid #ddd;
    padding-top: 40px
}

.social-share span {
    margin-right: 10px;
    line-height: 1
}

.imagebanner,
.social-icons a,
.social-share a {
    position: relative;
    overflow: hidden
}

.social-share a {
    display: flex;
    align-items: center;
    width: 36px;
    height: 36px;
    box-sizing: border-box;
    padding: 8px;
    border: 2px solid var(--secondary-color);
    text-align: center;
    margin: 0 10px 0 0
}

.vc_desktop .social-share a:hover {
    border-color: var(--primary-color)
}

.imagebanner {
    height: 100%;
    border-radius: 16px
}

.imagebanner.has-link {
    transition: .3s box-shadow ease-in
}

.imagebanner>* {
    -webkit-transition: .3s all ease;
    transition: .3s all ease-in
}

.cta-box,
.imagebanner .image-holder {
    position: relative;
    overflow: hidden
}

.imagebanner .image-holder img {
    height: 400px;
    width: 100%;
    object-fit: cover
}

.imagebanner .image-holder:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    background: #afaaaa;
    background: linear-gradient(0deg, rgba(20, 20, 20, .95) 10%, rgba(50, 50, 50, .7) 60%, #d7d3c800 100%)
}

.cta-box.fullbox-link a,
.imagebanner>a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 6
}

.imagebanner .content {
    padding: 0 30px 30px;
    box-sizing: border-box;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0
}

.imagebanner .content * {
    color: #fff
}

.imagebanner h3 {
    font-size: 1.4vw;
    word-break: break-word;
    hyphens: auto;
    margin-bottom: 0
}

.imagebanner .content p {
    font-size: .95vw;
    line-height: 1.4;
    margin-top: 10px;
    text-align: justify;
    hyphens: auto
}

.imagebanner .content h4.subline {
    border: 1px solid var(--light-gray);
    display: inline-block;
    text-transform: uppercase;
    font-size: .75vw;
    line-height: 1.4;
    margin-top: 10px;
    margin-bottom: 0;
    padding: 5px 8px 4px
}

.imagebanner .content img {
    width: 100px;
    height: auto;
    margin-bottom: 20px
}

.imagebanner.has-link .more {
    position: absolute;
    right: -30px;
    top: 20px;
    z-index: 3;
    width: 50px;
    height: 50px;
    margin: 0;
    padding: 14px;
    box-sizing: border-box;
    opacity: 0
}

.cta-box:after,
.imagebanner.has-link .more:before {
    content: "";
    position: absolute;
    display: block;
    pointer-events: none
}

.imagebanner.has-link .more:before {
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, #ccb1a4 10%, #aebcad 90%);
    border-radius: 100%;
    -webkit-animation: 10s rotate linear infinite;
    animation: 10s rotate linear infinite
}

.imagebanner.has-link .more img {
    width: 22px;
    height: 22px;
    display: block;
    margin: 0;
    position: relative
}

.vc_desktop .imagebanner.has-link:hover .more {
    opacity: 1;
    right: 15px
}

.vc_desktop .imagebanner:hover .image-holder img {
    transform: scale(1.05)
}

.imagebanner.no-hover .content,
.vc_mobile .imagebanner .content {
    bottom: 0
}

.vc_mobile .imagebanner .content .text-link {
    opacity: 1
}

.cta-box {
    padding: 2vw;
    box-sizing: border-box;
    background-color: var(--light-gray);
    display: block;
    transition: all .4s ease-in-out
}

.cta-box.primary {
    background-color: var(--primary-color)
}

.cta-box.secondary {
    background-color: var(--secondary-color);
    border-color: var(--secondary-color)
}

.cta-box.bg-green {
    background-color: #2fcc6e;
    border-color: #2fcc6e
}

.cta-box .cta-box-content * {
    transition: all .3s ease-in-out
}

.cta-box.fullbox-link:hover .cta-box-content *,
.cta-box.primary .cta-box-content *,
.cta-box.secondary .cta-box-content * {
    color: #fff
}

.cta-box.fullbox-link:hover .cta-box-content .button.border,
.cta-box.primary .cta-box-content .button.border,
.cta-box.secondary .cta-box-content .button.border {
    box-shadow: inset 0 0 0 2px var(--light-gray)
}

.cta-box.fullbox-link:hover .cta-box-content .button.border {
    background-color: var(--light-gray);
    color: var(--secondary-color)
}

.vc_row-o-equal-height .cta-box {
    height: 100%;
    margin-bottom: 0
}

.cta-box .visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0
}

.cta-box.fullbox-link a {
    z-index: 3
}

.cta-box-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: space-between;
    height: 100%
}

.cta-box-content h2 {
    font-size: 7vw;
    margin-top: 10vw
}

.cta-box-content h2+p,
.quicklink-content h2+p {
    margin-top: 1.5vw
}

.cta-box-content h3 {
    margin-top: 100px
}

.cta-box-content .eyebrow {
    font-size: 1.8vw;
    line-height: 1;
    font-weight: 600
}

.cta-box:after {
    top: 1vw;
    right: -.5vw;
    transform: rotate(-45deg);
    width: 10vw;
    height: 10vw;
    background-image: url(../icons/icon-arrow-right-lg-white.svg);
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain
}

.cta-box.fullbox-link:hover,
.cta-box.secondary.fullbox-link:hover {
    background: var(--primary-color);
    border-color: var(--primary-color)
}

.cta-box.primary.fullbox-link:hover {
    background-color: var(--body-text-color);
    border-color: var(--body-text-color)
}

.cta-box.img-left {
    display: flex;
    align-items: flex-start
}

.cta-box.img-left .cta-box-content {
    padding: 0 30px;
    box-sizing: border-box
}

.cta-box.img-left .cta-box-content h2 {
    margin-top: 0;
    margin-bottom: 100px;
    font-size: 3.4vw
}

.cta-box.img-left.bg-green img {
    max-width: 200px
}

.cta-box-content h2.heading-sm {
    font-size: 4vw
}

.single-image,
.wpb_single_image .vc_single_image-wrapper {
    position: relative
}

.ai-generated-badge {
    position: absolute;
    bottom: 1vw;
    right: 1vw;
    font-size: .55vw;
    line-height: 1;
    border-radius: 10vw;
    border: .06vw solid #fff;
    padding: .25vw .5vw .15vw;
    color: #fff;
    opacity: .85;
    text-transform: uppercase
}

.single-video img,
.single-video video {
    transition: opacity .3s ease
}

.single-video {
    width: 100%;
    height: auto;
    overflow: hidden
}

.single-video .video-wrapper {
    position: relative;
    width: 100%;
    height: auto;
    cursor: pointer
}

.single-video img {
    width: 100%;
    height: 100%;
    cursor: pointer;
    object-fit: cover
}

.single-video video {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 3
}

.single-video .play-button,
.single-video .play-button:after,
.single-video .play-button:before {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    display: block;
    border-radius: 50%
}

.single-video .play-button {
    z-index: 1;
    box-sizing: content-box;
    width: 23px;
    height: 25px;
    padding: 18px 20px 18px 28px;
    transition: .7s all ease;
    cursor: pointer;
    pointer-events: none
}

.single-video .play-button:after,
.single-video .play-button:before {
    content: "";
    width: 60px;
    height: 60px;
    background: rgba(0, 0, 0, .4)
}

.vc_desktop .single-video:hover .play-button:before {
    z-index: 1;
    animation: pulse-border 1500ms ease-out infinite
}

.single-video .play-button:after {
    z-index: 2;
    transition: all 200ms
}

.single-video .play-button span {
    display: block;
    position: relative;
    z-index: 3;
    width: 0;
    height: 0;
    border-left: 22px solid #fff;
    border-top: 13px solid transparent;
    border-bottom: 13px solid transparent
}

.single .single-video {
    margin-bottom: 30px
}

.single-video.align-center>* {
    margin-left: auto;
    margin-right: auto
}

.single-video.align-right>* {
    margin-left: auto;
    margin-right: 0
}

.dp-crosslink {
    border: 2px solid var(--secondary-color);
    background: #fff;
    border-radius: 30px;
    padding: 36px;
    margin: 0 auto
}

.dp-crosslink-row {
    display: flex;
    gap: 35px;
    align-items: stretch;
    max-height: none
}

.dp-crosslink-media,
.dp-crosslink-media-inner {
    display: flex;
    justify-content: center;
    height: 380px
}

.dp-crosslink-media {
    flex: 0 0 auto;
    border: 1px solid var(--secondary-color);
    border-radius: 16px;
    overflow: hidden;
    background: 0 0;
    width: 380px
}

.dp-crosslink-media-inner {
    align-items: center;
    width: auto;
    display: block
}

.dp-crosslink-media .dp-crosslink-thumb,
.dp-crosslink-media img {
    border-radius: 10px;
    transition: none;
    transform: none;
    width: 380px;
    height: 380px;
    object-fit: cover;
    object-position: center;
    display: block
}

.dp-crosslink-head {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start
}

.dp-crosslink .dp-crosslink-pretitle {
    color: var(--secondary-color) !important;
    font-size: 2.6vw;
    margin: 0 0 18px
}

.dp-crosslink .divider {
    margin-top: 0;
    padding-bottom: 30px
}

.dp-crosslink.light .divider,
.light .dp-crosslink .divider {
    border-color: #000 !important
}

.dp-crosslink .dp-crosslink-title {
    color: var(--secondary-color) !important;
    font-size: 1.4vw;
    margin: 0 0 10px
}

.dp-crosslink .dp-crosslink-excerpt {
    color: var(--secondary-color) !important;
    margin: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden
}

.dp-crosslink-link-wrap {
    margin-top: auto;
    padding-top: 30px;
    flex: 0 0 auto
}

.dp-crosslink-link-wrap .text-link {
    color: var(--secondary-color) !important;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content
}

.dp-crosslink .text-link:after {
    border-color: var(--primary-color) !important
}

.referenzen-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11vw, 1fr));
    gap: 1px;
    background-color: var(--light-gray)
}

.referenz-item {
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1vw;
    min-width: 0
}

.referenz-item img {
    max-width: 100%;
    height: auto
}

.section.bg-dark .referenzen-grid {
    background-color: #222
}

.section.bg-dark .referenz-item {
    background-color: var(--body-text-color)
}

.section.bg-dark .referenz-item img,
.vc_desktop .go-to-all a:hover:after {
    filter: invert(1)
}

.wpb_wrapper:has(.quicklink) {
    display: flex;
    flex-wrap: wrap;
    gap: 2vw
}

.wpb_wrapper .quicklink {
    flex: 1 1 0;
    min-width: 0;
    transition: flex-grow .7s cubic-bezier(.25, .1, .25, 1)
}

.vc_desktop .wpb_wrapper .quicklink:hover {
    flex-grow: 7
}

.wpb_wrapper .quicklink:only-child {
    flex: 1 1 100%
}

.vc_desktop .wpb_wrapper .quicklink:has(~.quicklink:hover),
.vc_desktop .wpb_wrapper .quicklink:hover~.quicklink {
    flex-grow: 3
}

.quicklink {
    padding: 2vw;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
    background-color: var(--body-text-color);
    display: block
}

.quicklink-fade {
    position: absolute;
    top: 0;
    right: 0;
    width: 4vw;
    height: 100%;
    z-index: 3;
    background: linear-gradient(to right, transparent, rgba(0, 0, 0, .85));
    opacity: 0;
    transition: opacity .4s ease;
    pointer-events: none
}

.vc_desktop .quicklink:has(~.quicklink:hover) .quicklink-fade,
.vc_desktop .quicklink:hover~.quicklink .quicklink-fade {
    opacity: 1
}

.quicklink .quicklink-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1
}

.quicklink .quicklink-image::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 0 0;
    background: linear-gradient(0deg, #000 30%, transparent 100%);
    opacity: .7
}

.quicklink .quicklink-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left
}

.quicklink .quicklink-content {
    z-index: 2;
    position: relative
}

.quicklink .quicklink-content * {
    transition: all .3s ease-in-out;
    color: #fff
}

.quicklink:after,
.quicklink>a {
    position: absolute;
    display: block
}

.quicklink>a {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3
}

.quicklink-content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    width: 35vw
}

.quicklink-content h2 {
    font-size: 7vw;
    margin-top: 0
}

.quicklink .quicklink-content p {
    font-size: 1.4vw;
    font-weight: 600;
    line-height: 1.15;
    margin-top: auto
}

.quicklink .quicklink-content .eyebrow {
    margin-top: 0;
    margin-bottom: 15vw
}

.quicklink .quicklink-content .button-box {
    margin-top: .5vw
}

.quicklink:after {
    content: "";
    top: 1.6vw;
    right: .2vw;
    transform: rotate(-45deg) translate(-50%);
    width: 7vw;
    height: 7vw;
    background-image: url(../icons/icon-arrow-right-lg-white.svg);
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    z-index: 2;
    opacity: 0;
    transition: all .3s ease-in-out
}

.vc_desktop .quicklink:hover:after {
    transform: rotate(-45deg) translate(0);
    opacity: 1
}

.vc_desktop .quicklink:hover .text-link:after {
    width: 100%;
    left: 0;
    opacity: 0
}

.vc_desktop .quicklink:hover .text-link .button-icon {
    transform: translateX(4px)
}

.team-member {
    width: 20vw;
    position: relative;
    margin-right: 2vw
}

.team-member img {
    width: 100%;
    height: auto
}

.team-member .team-member-content {
    padding-top: .5vw
}

.team-member .team-member-content .name {
    font-weight: 600;
    font-size: 1.2vw
}

.team-member .team-member-content p:not(.name) {
    font-size: .75vw;
    line-height: 1.3;
    margin-top: .2vw;
    opacity: .5
}

#main>.vc_row,
#main>article>.vc_row,
footer>.vc_row {
    position: relative;
    width: 100%;
    left: auto !important;
    right: auto !important;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    overflow: visible
}

#main>.vc_row[data-vc-full-width],
#main>article>.vc_row[data-vc-full-width],
footer>.vc_row[data-vc-full-width] {
    width: 100% !important;
    max-width: 100%;
    padding-left: 0 !important;
    padding-right: 0 !important
}

#main>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
#main>article>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
footer>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div {
    width: 100%;
    margin: 0 auto;
    float: unset
}

#main>.vc_row,
#main>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
#main>article>.vc_row,
#main>article>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
footer>.vc_row,
footer>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div {
    max-width: 100%;
    padding-left: 14vw;
    padding-right: 5vw
}

#main>.vc_row[data-vc-full-width].vc_row-no-padding,
#main>article>.vc_row[data-vc-full-width].vc_row-no-padding {
    padding-left: 0;
    padding-right: 0
}

#main>.vc_row-fluid.no-padding,
#main>article>.vc_row-fluid.no-padding {
    padding: 0
}

#main>.vc_row,
#main>article>.vc_row {
    overflow: clip
}

#main>.vc_row.section {
    padding-top: 10vw;
    padding-bottom: 10vw
}

#main>.vc_row.section.error404 {
    padding: 15vw;
    text-align: center
}

#main>article>.vc_row {
    padding-top: 5vw;
    padding-bottom: 5vw
}

body.error404 #main {
    height: 100vh
}

body.error404 #main:before {
    content: "";
    background-image: url(../img/404.gif);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 100vh;
    width: 100%;
    opacity: .5;
    position: absolute;
    top: 0;
    left: 0
}

body.error404 #main>.vc_row.section {
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center
}

body.error404 h1 {
    font-size: 7vw
}

.vc_row-flex.col-2 {
    flex-wrap: nowrap;
    flex-direction: row
}

.vc_row-flex.col-2>* {
    width: 50%
}

.vc_row-fluid>.vc_column_container>.vc_column-inner,
.vc_row-has-fill+.vc_row-full-width+.vc_row>.vc_column_container>.vc_column-inner,
.vc_row-has-fill>.vc_column_container>.vc_column-inner {
    padding-top: 0 !important
}

.single .post-area .wpb_content_element:last-child,
.vc_row-has-fill>.vc_column_container>.vc_column-inner .wpb_content_element:last-child,
.wpb_content_element:last-child {
    margin-bottom: 0
}

a.button+.wpb_content_element {
    margin-top: 50px;
    margin-bottom: 50px
}

.center,
.center h2,
.center h3,
.center h4,
.center p {
    text-align: center
}

.wpb_text_column table {
    background-color: var(--light-gray);
    -webkit-border-radius: 10px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #ddd;
    margin: 30px 0
}

.wpb_text_column table thead tr {
    background-color: #000;
    color: var(--light-gray)
}

.wpb_text_column table tbody tr:nth-child(odd) {
    background-color: #f3f3f3
}

.wpb_text_column table tr td {
    padding: 5px 10px
}

iframe,
img {
    display: block
}

.img-responsive,
figure.wp-caption {
    max-width: 100%
}

.wpb_single_image .attachment-full,
.wpb_single_image .vc_figure,
.wpb_single_image .vc_single_image-wrapper {
    min-width: 100%
}

.wpb_single_image .vc_figure-caption {
    margin-top: 15px;
    font-size: .8vw;
    line-height: 1.4;
    display: block;
    color: #666
}

.single-video.w-75>*,
.wpb_single_image.w-75>* {
    width: 75%;
    max-width: 75%;
    min-width: unset
}

.single-video.w-50>*,
.wpb_single_image.w-50>* {
    width: 50%;
    max-width: 50%;
    min-width: unset
}

.wpb_single_image a {
    position: relative;
    overflow: hidden;
    display: block
}

.wpb_single_image.bordered figure>a {
    border: 1px solid var(--light-gray)
}

.vc_desktop .post.blog:hover .post-image img,
.vc_desktop .post.landingpage:hover .post-image img,
.vc_desktop .post.projekt:hover .post-image img,
.vc_desktop .wpb_single_image a:hover img {
    transform: scale(1.1)
}

figure.wp-caption.alignnone {
    margin-left: 0;
    margin-right: 0
}

figure.wp-caption.alignleft {
    float: left
}

.wpb_single_image.vc_align_right img,
figure.wp-caption.alignright {
    float: right
}

.wp-caption img {
    max-width: 100%;
    height: auto
}

.wp-caption .wp-caption-text {
    margin-top: 15px;
    font-size: .75vw;
    line-height: 1.6;
    display: block;
    color: #666
}

.wpb_single_image.shadow .wpb_wrapper img {
    -webkit-box-shadow: 0 20px 40px rgba(0, 0, 0, .25);
    box-shadow: 0 20px 40px rgba(0, 0, 0, .25)
}

.wpb_single_image .vc_single_image-wrapper.vc_box_rounded,
.wpb_single_image .vc_single_image-wrapper.vc_box_rounded img {
    -webkit-border-radius: 16px !important;
    border-radius: 16px !important
}

.wpb_single_image .attachment-full {
    width: 100%;
    max-width: 100%;
    height: auto
}

.wpb_singleimage_heading {
    font-size: .9vw;
    color: #555;
    margin-bottom: 15px
}

.content-box>.vc_column-inner>.wpb_wrapper {
    padding: 3vw
}

.content-box>.vc_column-inner>.wpb_wrapper h3 {
    hyphens: auto
}

.bg-lightgray .content-box>.vc_column-inner>.wpb_wrapper {
    background-color: #fff
}

.vc_row.content-box,
.wpb_text_column.content-box {
    padding: 3vw 2vw;
    box-sizing: border-box
}

.vc_row.content-box {
    margin: 30px 0
}

.content-box .medium>.vc_column-inner>.wpb_wrapper,
.vc_row.content-box.medium,
.wpb_text_column.content-box.medium {
    padding: 2vw 1.5vw;
    box-sizing: border-box
}

.content-box.small>.vc_column-inner>.wpb_wrapper,
.wpb_text_column.content-box.small {
    padding: 1.5vw
}

.content-box.small p,
.wpb_text_column.content-box.small p {
    font-size: .85vw
}

.content-box .content-slider.swiper {
    max-width: 100%
}

.content-box.rounded>.vc_column-inner>.wpb_wrapper,
.wpb_text_column.content-box.rounded {
    -webkit-border-radius: 15px;
    border-radius: 15px
}

.content-box.bordered>.vc_column-inner>.wpb_wrapper,
.vc_row.content-box.bordered,
.wpb_text_column.content-box.bordered {
    border: 2px solid var(--secondary-color)
}

.content-box.gray>.vc_column-inner>.wpb_wrapper,
.vc_row.content-box.gray,
.wpb_text_column.content-box.gray {
    background-color: var(--light-gray)
}

.content-box.dark-gray>.vc_column-inner>.wpb_wrapper,
.vc_row.content-box.dark-gray,
.wpb_text_column.content-box.dark-gray {
    background-color: #595959
}

.content-box.primary>.vc_column-inner>.wpb_wrapper,
.vc_row.content-box.primary,
.wpb_text_column.content-box.primary {
    background-color: var(--primary-color)
}

.content-box.bg-dark>.vc_column-inner>.wpb_wrapper {
    background-color: #222
}

.content-box .social-icons li a {
    width: 44px;
    height: 44px;
    padding: 6px
}

.z-index-1 {
    z-index: 1
}

.vc_row .vc_column_container[class*=vc_col-md-push-],
.z-index-2 {
    z-index: 2
}

.visuallyhidden {
    position: absolute;
    clip: rect(1px 1px 1px 1px);
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(0 0 99.9% 99.9%);
    overflow: hidden;
    height: 1px;
    width: 1px;
    padding: 0;
    border: 0
}

.display-inline>.vc_column-inner>.wpb_wrapper>* {
    display: inline-block;
    margin-right: 20px
}

.arrow-list ul,
.check-list ul,
ul.arrow-list,
ul.servicelist {
    padding-left: 28px
}

.arrow-list ul>li,
.check-list ul>li,
ul.arrow-list>li,
ul.servicelist>li {
    list-style: none;
    position: relative;
    padding-bottom: 8px;
    padding-right: 15px;
    color: var(--body-text-color)
}

ul.servicelist>li {
    color: #fff
}

.arrow-list ul>li:last-of-type,
.check-list ul>li:last-of-type,
ul.arrow-list>li:last-of-type {
    padding-bottom: 0
}

.arrow-list ul li:before,
.check-list ul li:before,
ul.arrow-list li:before,
ul.servicelist li:before {
    position: absolute;
    width: 15px;
    height: auto;
    left: -25px;
    top: 0
}

.arrow-list ul li:before,
ul.arrow-list li:before {
    content: url(../img/icons/icon-arrow-right-primary.svg)
}

.check-list ul li:before {
    content: url(../img/icons/icon-check.svg)
}

.check-list.primary ul li:before {
    content: url(../img/icons/icon-check-primary.svg)
}

ul.servicelist li:before {
    content: url(../img/icons/icon-arrow-right-white.svg)
}

.arrow-list.p-large ul,
.check-list.p-large ul {
    padding-left: 30px
}

.arrow-list.p-large li,
.check-list.p-large li {
    font-size: 1.15vw;
    margin-bottom: 10px
}

.divider-list ul {
    padding: 0
}

.divider-list ul li {
    list-style: none
}

.divider-list ol li,
.divider-list ul li {
    display: block;
    padding-bottom: 3vw;
    margin-bottom: 3vw;
    box-sizing: border-box;
    position: relative;
    border-bottom: 1px solid var(--body-text-color)
}

.divider-list ul li:before {
    display: none
}

.divider-list ol li:last-of-type,
.divider-list ul li:last-of-type {
    margin-bottom: 0
}

.divider-content .wpb_text_column {
    padding-bottom: 2vw;
    margin-bottom: 2vw;
    border-bottom: 1px solid var(--body-text-color)
}

.divider-content .wpb_text_column:last-child {
    margin-bottom: 0
}

.leading-zero ol {
    counter-reset: item;
    list-style: none;
    padding-left: 0
}

.leading-zero ol>li {
    counter-increment: item;
    position: relative;
    padding-left: 3.5vw
}

.leading-zero ol>li::before {
    content: counter(item, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: -.2vw;
    width: 1.5vw;
    font-size: 1.2vw;
    line-height: 1;
    font-weight: 600;
    padding: .6vw .5vw .5vw;
    color: #fff;
    background-color: var(--body-text-color)
}

ul.col-2 {
    columns: 2
}

ul.col-3 {
    columns: 3
}

img.rounded {
    -webkit-border-radius: 10px;
    border-radius: 10px
}

.grow-image {
    display: inline-block;
    overflow: hidden
}

img.square {
    object-fit: cover;
    aspect-ratio: 1/1;
    width: 100%;
    height: auto
}

.zoom-image img {
    margin: 0 auto;
    width: 1300px
}

.full-width-image img {
    width: 100%;
    max-width: 100%
}

.wpb_animate_when_almost_visible.is-leaving {
    transition: opacity .4s ease, transform .4s ease;
    opacity: 0
}

.bg-primary {
    background-color: var(--primary-color)
}

.bg-lightgray {
    background-color: var(--light-gray)
}

.bg-dark {
    background-color: var(--secondary-color)
}

.bg-white {
    background-color: #fff
}

#page-title,
#page-title .page-title-inner {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    text-align: left
}

#page-title {
    padding-top: 15vw;
    padding-bottom: 2vw
}

#page-title .page-title-inner {
    display: flex;
    max-width: 1540px;
    margin: 0 auto;
    padding: 0 105px;
    z-index: 2
}

#page-title .page-title-inner .page-title-content {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
    max-width: 800px;
    box-sizing: border-box;
    z-index: 3
}

#page-title .title,
#page-title h1 {
    font-size: 4.6vw;
    margin-left: -.3vw
}

#main>article>.vc_row #page-title {
    padding-top: 10vw;
    padding-bottom: 0
}

.swiper-button-next,
.swiper-button-prev {
    top: calc(-50px - 1vw);
    width: 2vw;
    height: 2vw;
    color: var(--secondary-color)
}

.swiper-button-prev {
    left: auto;
    right: 50px
}

.swiper-button-next {
    right: 0
}

.light .swiper-button-next,
.light .swiper-button-prev {
    color: #fff
}

.swiper-button-next::after,
.swiper-button-prev::after {
    content: none
}

.swiper-button-next::before,
.swiper-button-prev::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: currentColor;
    mask: url(../img/icons/icon-arrow-left-lg.svg)center/contain no-repeat;
    -webkit-mask: url(../img/icons/icon-arrow-left-lg.svg)center/contain no-repeat
}

.swiper-button-next::before {
    transform: rotate(180deg)
}

.vc_desktop .post-grid .post .post-content a:hover h3,
.vc_desktop .post.projekt:hover .post-content h2,
.vc_desktop .swiper-button-next:hover,
.vc_desktop .swiper-button-prev:hover {
    color: var(--primary-color)
}

.swiper-initialized {
    position: relative
}

.image-carousel .swiper-button-next,
.image-carousel .swiper-button-prev {
    bottom: 20px;
    top: auto
}

.image-carousel .swiper-wrapper,
.image-carousel img {
    height: auto
}

.image-carousel img {
    transition: .3s ease-in-out all;
    max-height: 424px;
    width: auto !important;
    object-fit: cover;
    object-position: center
}

.image-carousel .slide-move {
    transform: scale(.9)
}

.image-slider[data-autoplay=true] .swiper-wrapper {
    transition-timing-function: linear !important
}

.image-slider .swiper-slide {
    width: fit-content;
    margin-right: 2.5vw
}

.image-slider .swiper-slide img {
    width: auto;
    height: 38vw
}

.image-slider.format-small .swiper-slide img {
    height: 30vw
}

.image-slider.format-large .swiper-slide img {
    height: 50vw
}

.image-slider .single-video {
    margin-bottom: 0
}

.image-slider .single-video .video-wrapper {
    height: 100%
}

.image-slider .single-video video {
    object-fit: cover;
    height: 100%
}

.image-slider.rounded .swiper-slide {
    border-radius: 1vw;
    overflow: hidden
}

#main .swiper-pagination {
    position: relative;
    bottom: 0;
    margin: 20px 0
}

#main>#hero {
    padding-top: 10vw;
    padding-bottom: 10vw;
    height: 100vh;
    z-index: 2
}

#hero h1 {
    line-height: .85;
    transition: transform 1s cubic-bezier(.22, 1, .6, 1);
    transform: translateY(5.5vw);
    margin-left: -.5vw
}

#hero.landingpage h1 {
    font-size: 5.5vw;
    line-height: .9
}

#hero p {
    font-weight: 600;
    font-size: 1.1vw;
    line-height: 1.2
}

#hero .button-box {
    display: inline-block;
    margin-right: 1vw
}

#hero .button-box,
#hero .wpb_text_column {
    opacity: 0;
    transition: opacity 1s ease-in-out
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap
}

.brand-headline {
    display: flex;
    flex-direction: column
}

.brand-line1,
.brand-line2 {
    position: relative;
    overflow: hidden
}

.brand-line2 {
    height: 11vw;
    display: block
}

.brand-line1::after,
.brand-line2::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #fff;
    transform: translateY(0);
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
    pointer-events: none;
    z-index: 1
}

.brand-words-inner {
    display: flex;
    flex-direction: column
}

.brand-words-inner.is-entering {
    transition: transform 1s cubic-bezier(.22, 1, .36, 1)
}

.brand-words-inner.is-leaving {
    transition: transform .3s cubic-bezier(.55, 0, 1, .45)
}

.brand-word {
    flex-shrink: 0;
    height: 11vw;
    line-height: .8
}

.hero-ready #hero h1 {
    transform: translateY(0)
}

.hero-ready #hero .button-box,
.hero-ready #hero .wpb_text_column {
    opacity: 1
}

.hero-ready #hero .wpb_text_column {
    transition-delay: .3s
}

.hero-ready #hero .button-box:nth-child(3) {
    transition-delay: .5s
}

.hero-ready #hero .button-box:nth-child(4) {
    transition-delay: .8s
}

.loaded .brand-line1::after {
    transform: translateY(-101%);
    transition-delay: .2s
}

.loaded .brand-line2::after {
    transform: translateY(-101%);
    transition-delay: .6s
}

.image-stack {
    position: relative;
    width: 100%;
    height: 60vh
}

.stack-item {
    position: absolute;
    width: 20vw;
    height: auto;
    opacity: 0;
    overflow: hidden
}

.stack-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    aspect-ratio: 34/49
}

.stack-item:nth-child(1) {
    bottom: -6vw;
    left: -6vw;
    z-index: 5
}

.stack-item:nth-child(2) {
    bottom: -3vw;
    left: -3vw;
    z-index: 4
}

.stack-item:nth-child(3) {
    bottom: 0;
    left: 0;
    z-index: 3
}

.stack-item:nth-child(4) {
    bottom: 3vw;
    left: 3vw;
    z-index: 2
}

.stack-item:nth-child(5) {
    bottom: 6vw;
    left: 6vw;
    z-index: 1
}

.vc_desktop .stack-item:hover {
    z-index: 999
}

.project-fact.animated p,
.stack-item.is-visible {
    opacity: 1
}

.image-stack.is-moving .stack-item {
    transition: transform .06s linear
}

.home #main>#about {
    padding-top: 15vw
}

#about::before {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 0 0;
    background: linear-gradient(0deg, #000 30%, transparent 100%);
    opacity: .7
}

#about h2 {
    font-family: "PPMori", sans-serif;
    font-weight: 600;
    font-size: 4.4vw
}

#about .like-h2 {
    font-size: 5.4vw
}

#about .p-small p {
    font-size: .75vw;
    text-align: justify
}

.about-box .content-box .p-large p {
    font-size: 1.8vw;
    opacity: 1
}

.about-box .wpb_single_image,
.about-box .wpb_single_image * {
    height: 100%
}

.about-box .wpb_single_image img {
    object-fit: cover
}

.home .post-grid .post:last-child {
    display: none
}

.parallax-section {
    position: relative;
    height: 100vh;
    max-height: 800px;
    overflow: hidden !important;
    display: block
}

.parallax-image-wrapper,
.text-ticker {
    position: absolute;
    left: 0;
    width: 100%;
    overflow: hidden
}

.parallax-image-wrapper {
    top: 0;
    max-width: 100% !important;
    height: 150%;
    padding: 0 !important;
    z-index: 0
}

.parallax-image-wrapper img,
.post.blog .post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.text-ticker {
    bottom: 50px;
    z-index: 3;
    pointer-events: none
}

.text-ticker .swiper-slide .like-h2 {
    white-space: nowrap;
    font-size: 2.4vw;
    font-weight: 600;
    color: #fff
}

.text-ticker .swiper-slide .like-h2:after {
    content: "";
    margin: 0 30px;
    width: 50px;
    height: 2px;
    background-color: #fff;
    display: inline-block;
    vertical-align: middle
}

.tag-cloud,
.tag-cloud .stripe {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center
}

.tag-cloud {
    flex-direction: column;
    padding-top: 100px
}

.tag-cloud .stripe {
    width: 200%;
    white-space: nowrap;
    font-size: 8vw;
    line-height: 1.8;
    text-transform: uppercase;
    color: #fff;
    background: var(--secondary-color);
    mix-blend-mode: soft-light;
    overflow: hidden;
    transition: .3s background ease-in-out
}

.stripe-1 {
    top: 20%;
    left: -25%;
    transform: rotate(-3deg)
}

.stripe-2 {
    top: 50%;
    right: -25%;
    transform: rotate(5deg)
}

.stripe-3 {
    top: 70%;
    left: -25%;
    transform: rotate(-2deg)
}

.stripe span {
    animation-duration: 300s;
    animation-timing-function: linear;
    animation-iteration-count: infinite
}

.animate .stripe .lefttoright {
    display: inline-block;
    animation-name: moveLeftToRight
}

.animate .stripe .righttoleft {
    display: inline-block;
    animation-name: moveRightToLeft
}

.tag-cloud.tag-primary .stripe,
.vc_desktop .footer .social-icons a:hover {
    background-color: var(--primary-color)
}

.services-cta .cta-box.primary h2 {
    font-size: 3vw
}

.services-cta .cta-box.primary .cta-box-content {
    max-width: 670px
}

.packages {
    display: flex;
    align-items: center
}

.single-pack {
    background-color: #222;
    border-radius: 20px;
    padding: 30px;
    box-sizing: border-box;
    margin: 5px;
    text-align: center
}

.scroll-hint,
.single-pack.primary {
    background-color: var(--primary-color)
}

.single-pack.primary,
.single-pack.primary *,
.tarif ul li {
    color: var(--light-gray)
}

.single-pack .name,
.single-pack .price {
    font-family: "UnytourDisplay", sans-serif;
    font-weight: 600
}

.single-pack .name {
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: 20px
}

.single-pack .price {
    font-size: 4vw;
    line-height: .7
}

.single-pack .price small {
    display: inline;
    font-size: 3vw
}

.single-pack .price span {
    font-size: .9vw;
    display: block
}

.single-pack .features {
    list-style-type: none;
    margin: 0;
    padding: 0
}

.single-pack .features li {
    padding: 15px 0;
    font-size: .8vw;
    line-height: 1.3;
    text-align: center;
    opacity: .8
}

.single-pack .features li+li {
    border-top: 1px solid rgba(255, 255, 255, .3)
}

.scroll-hint {
    position: absolute;
    left: 50%;
    top: calc(100% + 30px);
    z-index: 10;
    opacity: 0;
    padding: 10px 20px 8px;
    border-radius: 30px;
    color: #fff;
    transform: translateX(-50%) translateY(6px) scale(0);
    transition: opacity .25s ease, transform .7s ease;
    pointer-events: none
}

.scroll-hint.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1)
}

.scroll-hint .icon {
    width: 13px;
    display: inline-block;
    margin-left: 5px;
    animation: scrollarrow 2000ms ease-in-out infinite
}

.scroll-hint.up .icon {
    animation: scrollarrowup 2000ms ease-in-out infinite
}

.vc_row-o-equal-height .tarif {
    height: 100%
}

.tarif {
    background-color: #222;
    border-radius: 20px;
    padding: 30px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column
}

.tarif svg {
    display: block;
    width: 80px;
    height: auto;
    fill: none;
    stroke: #ff0032;
    stroke-miterlimit: 10;
    stroke-width: 2px;
    margin-top: 20px;
    margin-bottom: 30px
}

.tarif h3 {
    font-size: 1.8vw
}

.tarif h3+p {
    margin-bottom: 50px
}

.tarif li,
.tarif p {
    font-size: .9vw;
    line-height: 1.5
}

.tarif .features {
    margin-top: auto
}

.tarif h4 {
    font-size: 1vw
}

.tarif a {
    margin-top: 30px
}

#pricing .pricing-wrapper {
    background-color: var(--light-gray);
    padding: 1vw;
    box-sizing: border-box
}

#pricing .single-price {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px
}

#pricing .single-price p {
    margin: 0
}

#pricing .total {
    border-top: 2px solid var(--secondary-color);
    margin-top: 10px;
    padding-top: 10px;
    text-align: right
}

#pricing .total p {
    font-size: 1.5vw;
    color: var(--primary-color);
    font-family: "UnytourDisplay", sans-serif;
    font-weight: 600
}

#pricing .total span {
    font-size: .8vw;
    line-height: 1.2;
    display: block
}

@media (min-width:991px) {
    .content-box.has-order-layout.bg-white {
        background-color: transparent
    }

    .content-box.has-order-layout>.vc_column-inner>.wpb_wrapper {
        background: 0 0;
        padding: 0
    }

    #order-layout {
        display: flex;
        align-items: flex-start;
        gap: 3vw
    }

    #order-layout .gform_wrapper {
        background-color: #fff;
        box-sizing: border-box;
        padding: 3vw;
        flex: 1 1 auto;
        min-width: 0;
        max-width: 65%
    }

    #order-pricing-col {
        flex: 0 0 26vw;
        min-width: 300px;
        max-width: 26vw;
        position: sticky;
        top: 3vw;
        align-self: flex-start
    }
}

#gform_confirmation_wrapper_1 {
    margin-top: 50px;
    text-align: left !important
}

#gform_confirmation_wrapper_1 * {
    text-align: left !important
}

.striped-bg {
    overflow: visible !important;
    min-height: 100vh
}

.striped-bg .stripes-overlay {
    padding: 0 !important
}

.striped-bg .wpb_column {
    position: sticky;
    top: 0;
    height: 100vh;
    z-index: 20
}

.striped-bg .stripe {
    transform-origin: bottom !important
}

.striped-bg h2 {
    line-height: .95
}

.post-grid {
    display: grid;
    grid-column-gap: 2vw;
    grid-row-gap: 4vw;
    grid-template-columns: repeat(3, 1fr)
}

.post-grid .post,
.post-grid .post a {
    position: relative;
    box-sizing: border-box
}

.post-grid .post {
    width: 100%
}

.post-grid .post a {
    height: 100%;
    flex-direction: column;
    display: flex;
    -webkit-transition: all 1s cubic-bezier(.19, 1, .22, 1);
    transition: all 1s cubic-bezier(.19, 1, .22, 1)
}

.post-grid .post .post-content * {
    -webkit-transition: all .7s cubic-bezier(.19, 1, .22, 1);
    transition: all .7s cubic-bezier(.19, 1, .22, 1)
}

.post-grid .post .post-content h3,
.post.blog .post-content h3 {
    font-size: 1.3vw
}

.post .post-image {
    overflow: hidden;
    aspect-ratio: 3/2;
    background-color: #fafafa
}

.post .post-image img {
    width: 100%;
    height: auto
}

.post .category {
    position: absolute;
    top: 1vw;
    left: 1vw;
    background-color: var(--light-gray);
    padding: .5vw .8vw .3vw;
    border-radius: 30px;
    font-size: .8vw;
    line-height: 1;
    text-transform: uppercase;
    z-index: 2
}

.post a {
    text-decoration: none
}

.post-slider .post.blog {
    height: auto
}

.post.blog .post-image {
    margin-bottom: 1vw;
    overflow: hidden
}

.post.blog .post-image img {
    aspect-ratio: 3/2;
    transition: transform 1s cubic-bezier(.19, 1, .22, 1)
}

.post.blog .post-content p {
    font-size: .8vw;
    line-height: 1.5;
    opacity: .5
}

.post.blog .text-link {
    position: absolute;
    bottom: 0;
    left: 0
}

.post-slider .swiper-slide {
    width: auto
}

.post-slider .post {
    width: 24vw;
    margin-right: 3vw
}

.post-slider .post:last-child {
    margin-right: 0
}

.go-to-all {
    width: 15vw
}

.go-to-all a {
    aspect-ratio: 1/1;
    padding: 1vw;
    display: flex;
    align-items: flex-end;
    font-size: 2vw;
    line-height: .9;
    font-weight: 600;
    color: #fff;
    background-color: var(--body-text-color);
    text-decoration: none;
    position: relative;
    box-sizing: border-box;
    transition: all .3s ease-in-out
}

.go-to-all a:after {
    content: "";
    position: absolute;
    top: -0.1vw;
    right: -0.1vw;
    display: block;
    width: 5vw;
    height: 5vw;
    background-image: url(../icons/icon-arrow-right-lg-white.svg);
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    z-index: 2;
    transition: all .3s ease-in-out
}

.vc_desktop .go-to-all a:hover {
    background-color: var(--light-gray);
    color: var(--body-text-color)
}

.post.landingpage {
    background-color: #212121;
    position: relative
}

.post.landingpage .post-image {
    overflow: hidden
}

.post.landingpage .post-image img {
    aspect-ratio: 5/3;
    object-fit: cover
}

.post.landingpage .post-content {
    padding: 25px 25px 70px
}

.post.landingpage .post-content h3 {
    font-size: 1.2vw;
    margin-bottom: 20px
}

.post.landingpage .post-content p {
    font-size: .9vw;
    line-height: 1.5
}

.post.landingpage .post-content .text-link {
    position: absolute;
    right: 25px;
    bottom: 25px;
    transform: scale(.85);
    transform-origin: right
}

.vc_desktop .post.landingpage .text-link:after {
    border-color: var(--primary-color)
}

.projekte-slider .projekt {
    max-width: 20vw;
    margin-right: 4vw
}

.post.projekt {
    position: relative;
    overflow: clip
}

.post.projekt:not(.large-box) .post-image {
    aspect-ratio: 1/1
}

.post.projekt .post-image img {
    aspect-ratio: 1/1;
    object-fit: cover;
    -webkit-transition: transform .55s cubic-bezier(.25, 1, .33, 1);
    transition: transform .55s cubic-bezier(.25, 1, .33, 1)
}

.post.projekt .post-content {
    margin-top: 1vw
}

.post.projekt .title::after {
    content: "";
    position: absolute;
    inset: 0
}

.post.projekt .post-content h2,
.projekte-slider .post.projekt .post-content h3 {
    font-family: "PPMori", sans-serif;
    font-style: normal;
    font-size: 1.2vw;
    font-weight: 600
}

.post.projekt .post-content h2 {
    line-height: 1.2;
    margin-left: 0;
    letter-spacing: normal;
    margin-bottom: 10px;
    transition: color .3s ease-in-out
}

.post.projekt .post-content h3 {
    font-size: .9vw;
    font-weight: 400;
    line-height: 1.3
}

.projekte-slider .post.projekt .post-content h3 {
    margin-bottom: .2vw
}

.projekte-slider .projekt.large-box {
    max-width: 40vw
}

.post.projekt.large-box .post-image img {
    aspect-ratio: 6/4
}

.projekte-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 60px
}

.projekte-grid .projekt {
    grid-column: span 1
}

.projekte-grid .projekt.large-box {
    grid-column: span 2
}

.projekte-grid .projekt .post-image img {
    aspect-ratio: 1/1
}

.projekte-filter {
    margin-bottom: 1vw
}

.projekte-filter .button {
    font-size: .8vw;
    padding: .7vw 1vw .6vw;
    margin-right: .4vw;
    color: var(--body-text-color);
    -moz-appearance: none;
    -webkit-appearance: none
}

.projekte-filter .button.mixitup-control-active,
.vc_desktop .projekte-filter .button:hover {
    background-color: var(--body-text-color);
    color: #fff
}

.project-fact {
    position: relative;
    padding: .8vw 0 .6vw;
    display: block
}

.project-fact:before,
.project-fact:last-child::after {
    content: "";
    display: block;
    width: 0;
    height: 1px;
    background-color: #ddd;
    position: absolute;
    top: 0;
    left: 0;
    transition: width 1.2s cubic-bezier(.25, .8, .25, 1)
}

.project-fact:last-child::after {
    bottom: 0;
    top: auto
}

.project-fact.animated:after,
.project-fact.animated:before {
    width: 100%
}

.project-fact.wpb_fadeIn.animated {
    animation: none;
    opacity: 1
}

.project-fact p {
    opacity: 0;
    transition: opacity 1s ease-in-out
}

.single article .heading-wrapper .like-h2,
.single article .heading-wrapper h2 {
    font-family: "PPMori", sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: 2.2vw;
    line-height: 1.2;
    margin-bottom: 1vw
}

.single article .heading-wrapper .like-h3,
.single article .heading-wrapper h3 {
    font-size: 1.8vw;
    margin-bottom: 1vw
}

.single p {
    font-size: 1.1vw;
    line-height: 1.5
}

.single .p-large p,
.single p.p-large {
    font-size: 1.6vw;
    line-height: 1.15
}

.single .p-small p {
    font-size: .85vw;
    line-height: 1.6
}

.project-fact:nth-child(1):before {
    transition-delay: 0s
}

.project-fact:nth-child(1).animated p {
    transition-delay: .3s
}

.project-fact:nth-child(2):before {
    transition-delay: .5s
}

.project-fact:nth-child(2).animated p {
    transition-delay: .7s
}

.project-fact:nth-child(3):before {
    transition-delay: 1s
}

.project-fact:nth-child(3).animated p {
    transition-delay: 1.1s
}

.project-fact:last-child::after {
    transition-delay: 1.5s
}

.project-fact p {
    margin: 0
}

.project-fact .project-fact-label {
    font-weight: 600;
    font-size: .9vw;
    line-height: 1;
    text-transform: uppercase;
    color: #ccc
}

.project-fact .project-fact-value {
    font-size: 1.1vw;
    font-weight: 600
}

.jobs-list .job {
    position: relative;
    padding: 30px 40px 30px 0;
    border-top: 2px solid var(--secondary-color)
}

.jobs-list .job:after {
    content: url(../img/icons/icon-arrow-right.svg);
    display: inline-block;
    position: absolute;
    top: 50%;
    right: 0;
    width: 1.6vw;
    height: 1.6vw;
    transform: translateY(-50%)
}

.vc_desktop .jobs-list .job:hover:after {
    transform: translateY(-50%) rotate(-45deg)
}

.jobs-list .job h3 {
    font-size: 1.4vw;
    margin-bottom: .1em
}

.jobs-list .job p {
    font-size: 1vw;
    line-height: 1.4
}

.vc_desktop .footer ul li a:hover,
.vc_desktop .footer ul#menu-services li a:hover,
.vc_desktop .jobs-list .job:hover h3 {
    color: var(--primary-color)
}

.jobs-list .job:last-child {
    border-bottom: 2px solid var(--secondary-color)
}

.single-jobs .wpb_text_column h2 {
    font-family: "PPMori", sans-serif;
    font-style: normal;
    font-weight: 600;
    line-height: 1;
    letter-spacing: normal;
    margin: 2.5vw 0 1vw;
    font-size: 1.8vw
}

.single-jobs .wpb_text_column h3 {
    font-size: 1.6vw
}

.single-jobs .desc {
    margin-bottom: 2vw;
    padding-bottom: 2vw;
    border-bottom: 2px solid var(--secondary-color);
    font-size: 1.1vw;
    font-weight: 600
}

.dp-ai-widget-container {
    display: none;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 10vh;
    left: 10vw;
    width: 80vw;
    height: 80vh;
    z-index: 100
}

.dp-ai-widget-container.is-visible {
    display: flex
}

.dp-ai-widget-container .dp-ai-widget-inner {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    backdrop-filter: blur(40px);
    background-color: rgba(255, 255, 255, .4);
    box-shadow: 0 0 80px rgb(60 46 46/20%);
    padding: 0 4vw 4vw;
    box-sizing: border-box;
    border-radius: 50%;
    transform: scale(.05);
    opacity: 0;
    border: 2px solid #fff;
    transform-origin: center center;
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1), border-radius .7s cubic-bezier(.22, 1, .36, 1), opacity .3s ease
}

.dp-ai-widget-container.is-open .dp-ai-widget-inner {
    transform: scale(1);
    border-radius: 2vw;
    opacity: 1
}

.dp-ai-widget-container.is-closing .dp-ai-widget-inner {
    transform: scale(1);
    border-radius: 2vw;
    opacity: 0;
    transition: opacity .3s ease
}

.dp-ai-widget-container .dp-ai-widget-inner>:not(.dp-ai-widget-close) {
    opacity: 0;
    transition: opacity .4s ease
}

.dp-ai-widget-container.is-open .dp-ai-widget-inner>:not(.dp-ai-widget-close) {
    opacity: 1;
    transition-delay: .4s
}

.dp-ai-widget-container h3 {
    font-size: 3.2vw
}

.dp-ai-widget-container .wpb_text_column p {
    font-size: 1.1vw;
    line-height: 1.4
}

.dp-ai-widget-close {
    position: absolute;
    top: 1vw;
    right: 1vw;
    z-index: 2;
    cursor: pointer
}

.dp-ai-widget-close img {
    width: 1.5vw;
    height: auto;
    background-color: #fff;
    border-radius: 5vw;
    padding: .6vw;
    border: 1px solid #ddd;
    transition: all .3s ease-in-out
}

.vc_desktop .dp-ai-widget-close:hover img {
    filter: invert(1)
}

.dp-ai-widget-container .dpai-widget {
    padding: 0 10px;
    border: 0;
    height: 100%;
    justify-content: flex-end
}

.dp-ai-widget-container .dpai-widget .dpai-input,
.dp-ai-widget-container .dpai-widget .dpai-suggestion-btn {
    box-shadow: 0 0 10px rgb(210 210 210/52%)
}

.dp-ai-widget-container .dpai-widget .p-small {
    opacity: .4
}

.dp-ai-widget-container .dpai-widget .dpai-send-btn:disabled {
    background-color: #ccc
}

.dp-ai-widget-container .dpai-widget .dpai-message-list {
    max-height: unset;
    height: 100%;
    padding-top: 4vw;
    justify-content: flex-end
}

.dp-ai-widget-container .dpai-widget .dpai-message-list>div:first-child {
    margin-bottom: auto
}

.display h1 {
    font-family: "PPMori", sans-serif;
    font-weight: 600;
    font-size: 4vw
}

.display .title.like-h2 {
    font-size: 6vw
}

.servicebox {
    background-color: var(--light-gray);
    padding: 4vw 3vw 3vw;
    margin-bottom: 30px;
    position: relative;
    transition: background-color .2s ease-in-out
}

.servicebox h2,
.servicebox h2 span,
.servicebox li,
.servicebox p {
    transition: color .2s ease-in-out
}

.servicebox .text-link:before,
.servicebox:after {
    content: "";
    display: block;
    position: absolute;
    z-index: 2
}

.servicebox:after {
    top: 1.8vw;
    right: 1.1vw;
    width: 3vw;
    height: 3vw;
    background-image: url(../icons/icon-arrow-right-lg-white.svg);
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    opacity: 0;
    transition: all .3s ease-in-out
}

.servicebox-content {
    display: flex;
    justify-content: space-between;
    gap: 5%
}

.servicebox h2 {
    font-family: "PPMori", sans-serif;
    font-size: 5vw;
    font-weight: 600;
    width: 35%
}

.servicebox h2 span {
    font-size: 3.5vw;
    line-height: 1;
    display: block
}

.servicebox .subheadline {
    font-size: 1.3vw;
    line-height: 1.05;
    font-weight: 600;
    width: 30%;
    margin-top: 5%
}

.servicebox .content {
    width: 30%;
    margin-top: 5%
}

.servicebox .content ul {
    padding-left: 0;
    margin: 0
}

.servicebox .content ul li {
    list-style-type: none;
    display: block;
    position: relative;
    margin: 0;
    padding-left: 20px;
    font-size: .95vw;
    font-weight: 600
}

.servicebox .content ul li:before {
    content: "—";
    display: inline-block;
    font-weight: 400;
    margin-right: 5px;
    position: absolute;
    top: 0;
    left: 0
}

.servicebox .line {
    width: 15%;
    height: 2px;
    margin-bottom: 3%
}

.servicebox .text-link:before {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%
}

.servicebox .text-link:after {
    border-color: #fff
}

.servicebox .line,
.vc_desktop .servicebox:hover {
    background-color: var(--body-text-color)
}

.vc_desktop .servicebox:hover .line {
    background-color: #fff
}

.vc_desktop .servicebox:hover * {
    color: #fff
}

.vc_desktop .servicebox:hover:after {
    width: 5vw;
    height: 5vw;
    opacity: 1
}

.vc_desktop .servicebox:hover .text-link:after {
    width: 100%;
    right: auto;
    left: 0
}

.home .servicebox:first-child {
    animation-delay: .3s
}

.services-grid .iconbox img {
    width: 5.5vw
}

.servicebox.digitale-praesenz h2 {
    transition: color .2s ease-in-out, text-shadow .2s ease-in-out;
    text-shadow: -.1vw -.1vw 0 var(--light-gray), .1vw -.1vw 0 var(--light-gray), -.1vw .1vw 0 var(--light-gray), .1vw .1vw 0 var(--light-gray)
}

.vc_desktop .servicebox.digitale-praesenz:hover h2 {
    text-shadow: -.1vw -.1vw 0 var(--body-text-color), .1vw -.1vw 0 var(--body-text-color), -.1vw .1vw 0 var(--body-text-color), .1vw .1vw 0 var(--body-text-color)
}

.testimonial {
    position: relative;
    padding-top: 4vw;
    z-index: 1;
    margin: 0
}

.testimonials-slider .testimonial {
    width: 100%;
    max-width: 33vw;
    height: auto;
    margin-right: 6vw;
    margin-left: 0;
    box-sizing: border-box;
    position: relative
}

.testimonial::before {
    content: url(../img/icons/icon-quote.svg);
    position: absolute;
    top: .5vw;
    left: -2vw;
    width: 5.5vw;
    height: 5vw;
    z-index: -1;
    pointer-events: none
}

.bg-lightgray .testimonial::before {
    content: url(../img/icons/icon-quote-white.svg)
}

.testimonial .testimonial-inner {
    padding-right: 4vw;
    box-sizing: border-box;
    position: relative;
    border-right: 1px solid var(--secondary-color);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%
}

.testimonial .testimonial-content {
    font-size: 1.6vw;
    line-height: 1.8vw;
    font-weight: 600;
    margin-bottom: 4vw
}

.testimonial cite {
    font-style: normal
}

.testimonial cite span {
    display: block
}

.testimonial .testimonial-author .name {
    font-weight: 600
}

.testimonial .testimonial-author .company,
.testimonial .testimonial-author .position {
    margin: 0;
    font-size: .8vw;
    line-height: 1.1vw
}

.single-testimonial p {
    font-size: 1.1vw;
    line-height: 1.5
}

.single-testimonial .testimonial-content {
    margin-bottom: 2vw
}

.footer,
.footer .social-icons a {
    background-color: var(--secondary-color)
}

.footer {
    z-index: 0;
    position: relative
}

.footer .footer-logo {
    display: block;
    width: 101vw;
    margin-left: -1vw
}

.footer .social-icons {
    margin-top: 20px
}

.footer .social-icons a {
    width: 32px;
    height: 32px
}

.footer .main-footer {
    padding-top: 8vw;
    padding-bottom: 5vw
}

.footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper {
    display: flex;
    justify-content: space-between
}

.footer .main-footer .button {
    font-size: 1.2vw
}

.footer ul {
    -webkit-padding-start: 0;
    -moz-padding-start: 0;
    padding-left: 0;
    margin: 0
}

.footer ul>li {
    list-style-type: none;
    display: block;
    position: relative;
    margin: 0;
    text-decoration: none
}

.footer ul>li a {
    font-family: "PPMori", sans-serif;
    font-weight: 600;
    display: inline-block;
    padding: 5px 0;
    font-size: 2.4vw;
    line-height: 1;
    text-decoration: none;
    text-align: left;
    transition: color .3s ease-in-out
}

.footer ul#menu-services>li a {
    font-size: 1.6vw;
    font-weight: 400;
    color: #777
}

.footer .copyright {
    padding-left: 5.5vw;
    position: absolute;
    left: 0;
    bottom: 2vw;
    width: 50%
}

.footer .copyright p {
    font-size: .7vw;
    line-height: 1.3
}

.footer .copyright a,
.footer .copyright p {
    margin: 0;
    color: #777;
    display: inline-block
}

.footer .copyright p a:first-of-type {
    margin-left: 2vw
}

.footer .copyright p a {
    text-decoration: none;
    margin: 0
}

.vc_desktop .footer .copyright p>a:hover {
    text-decoration: underline
}

.footer .p-small {
    padding-left: 5.5vw;
    position: absolute;
    left: 0;
    bottom: 2.5vw;
    width: 50%
}

.footer .p-small p {
    font-size: .7vw;
    line-height: 1.4;
    opacity: .5
}

@media (min-width:768px) {

    .vc_row-o-equal-height .content-box>.vc_column-inner>.wpb_wrapper,
    .vc_row-o-equal-height .cta-box,
    .vc_row-o-equal-height .iconbox,
    .vc_row-o-equal-height .post,
    .vc_row-o-equal-height .vc_column-inner,
    .vc_row-o-equal-height>.vc_column_container>.vc_column-inner>.wpb_wrapper,
    .vc_row-o-equal-height>.vc_column_container>.vc_column-inner>.wpb_wrapper>.wpb_text_column.content-box {
        height: 100%
    }

    .vc_row-o-equal-height:not(.service)>.vc_column_container>.vc_column-inner>.wpb_wrapper:has(.iconbox) {
        margin-bottom: 30px
    }

    .delay-2 {
        animation-delay: .5s
    }

    .delay-3 {
        animation-delay: 1s
    }

    .delay-4 {
        animation-delay: 1.5s
    }
}

@media (min-width:992px) {
    #main .sticky {
        position: -webkit-sticky;
        position: sticky;
        top: 3vw
    }
}

@media (min-width:992px) and (max-width:1199px) {

    #main>.vc_row,
    #main>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    #main>article>.vc_row,
    #main>article>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    footer>.vc_row,
    footer>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div {
        padding-left: 10vw;
        padding-right: 6vw
    }

    header #branding,
    header.sticky #branding {
        top: 20px;
        left: 20px
    }

    header #branding .logo svg {
        height: 44px
    }

    header .button {
        font-size: 14px;
        padding: 10px 12px 8px 15px
    }

    header .button .button-icon {
        width: 18px;
        height: 14px
    }

    header .get-in-touch {
        right: 80px;
        top: 20px
    }

    .canvas-navi-icon {
        top: 20px;
        right: 30px
    }

    header.sticky .canvas-navi-icon {
        top: 20px;
        right: 20px
    }

    #canvas-nav nav ul li a {
        font-size: 5vw
    }

    #canvas-nav .text-link {
        font-size: 1.4vw
    }

    #main>#hero {
        padding-bottom: 6vw
    }

    .image-stack {
        height: 50vh
    }

    .like-h2,
    h2 {
        font-size: 7vw
    }

    .swiper-button-next,
    .swiper-button-prev {
        top: calc(-10px - 1vw)
    }

    .swiper-button-prev {
        right: 35px
    }
}

@media (min-width:600px) and (max-width:991px) {

    body,
    html {
        font-size: 2vw
    }

    #main>.vc_row,
    #main>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    #main>article>.vc_row,
    #main>article>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    footer>.vc_row,
    footer>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div {
        padding-left: 8vw;
        padding-right: 8vw
    }

    #main>.vc_row.section {
        padding-top: 15vw;
        padding-bottom: 15vw
    }

    #main>article>.vc_row {
        padding-top: 6vw;
        padding-bottom: 6vw
    }

    #main>article>.vc_row:first-child {
        padding-top: 30vw
    }

    .single .vc_column_container:has(#page-title),
    .vc_col-sm-6:has(.wpb_content_element) {
        width: 100%
    }

    .preloader img {
        width: 140px
    }

    header #branding,
    header.sticky #branding {
        top: 20px;
        left: 20px
    }

    header #branding .logo svg {
        height: 44px
    }

    header .button {
        font-size: 14px;
        padding: 10px 12px 8px 15px
    }

    header .button .button-icon {
        width: 18px;
        height: 14px
    }

    header .get-in-touch {
        right: 80px;
        top: 20px
    }

    .canvas-navi-icon {
        top: 20px;
        right: 30px
    }

    header.sticky .canvas-navi-icon {
        top: 20px;
        right: 20px
    }

    #canvas-nav {
        padding: 13vw 5vw 5vw
    }

    #canvas-nav .canvas-inner {
        width: 100%
    }

    #canvas-nav .canvas-menu {
        margin: auto 0
    }

    #canvas-nav .nav-image-preview,
    h2 br {
        display: none
    }

    #canvas-nav nav ul li a {
        font-size: 6vw;
        padding: 2.6vw 0 1.4vw
    }

    #canvas-nav nav ul li a:after {
        width: 2.6vw;
        height: 2.2vw;
        background-repeat: no-repeat
    }

    #canvas-nav .canvas-footer {
        margin-top: 5vw
    }

    #canvas-nav .text-link {
        font-size: 2.2vw;
        margin-right: 3vw
    }

    #canvas-nav .social-icons a {
        width: 5vw;
        height: 7vw
    }

    .striped-bg h2 {
        font-size: 11.4vw
    }

    .dp-ai-widget-container {
        top: 10vh;
        left: calc(1vw + 15px);
        width: calc(100% - 1vw - 30px);
        height: 80vh
    }

    .dp-ai-widget-container.is-open .dp-ai-widget-inner {
        border-radius: 5vw
    }

    .dp-ai-widget-container .dpai-widget .dpai-message-list {
        padding-top: 6vw
    }

    .dp-ai-widget-close {
        top: 2vw;
        right: 2vw
    }

    .dp-ai-widget-close img {
        width: 4vw;
        padding: 1.4vw
    }

    body .dpai-message-list .like-h3 {
        max-width: 72vw;
        font-size: 8vw
    }

    .dpai-suggestions {
        flex-wrap: wrap
    }

    .dpai-suggestions .dpai-suggestion-btn {
        border-width: 1px;
        border-radius: 10px;
        font-size: .8em;
        padding: 10px;
        width: calc(50% - 4px)
    }

    body .dpai-msg-assistant-text,
    body .dpai-msg-user-bubble {
        font-size: .85em;
        line-height: 1.4
    }

    #about .like-h2,
    .like-h2,
    h2 {
        font-size: 10vw;
        max-width: 90%
    }

    .servicebox h2 br {
        display: block
    }

    .smaller .like-h2,
    .smaller h2 {
        font-size: 7.8vw
    }

    .smaller .like-h3,
    .smaller h3 {
        font-size: 2.8vw;
        margin-bottom: .5vw
    }

    .p-large p,
    .single .p-large p,
    .single p.p-large,
    h4,
    p.p-large {
        font-size: 4vw
    }

    .like-h3,
    .single p,
    h3 {
        font-size: 3vw
    }

    .single article .heading-wrapper .like-h2,
    .single article .heading-wrapper h2 {
        font-size: 6vw;
        line-height: 1.2
    }

    .p-medium p,
    p.p-medium {
        font-size: 2.8vw
    }

    #hero p br,
    #page-title .title br,
    #page-title h1 br,
    .p-medium p br,
    p.p-medium br {
        display: none
    }

    .p-small p,
    .single .p-small p,
    small {
        font-size: 1.6vw
    }

    .mt-4 {
        margin-top: 3vw !important
    }

    .mb-1 {
        margin-bottom: 2vw !important
    }

    .mb-2 {
        margin-bottom: 2.5vw !important
    }

    .mb30 {
        margin-bottom: 2vw !important
    }

    .more-pt {
        padding-top: 20vw !important
    }

    .iconbox ul {
        padding-left: 27px
    }

    .wpb_text_column.divider-list ul {
        padding-left: 0
    }

    .wpb_button,
    .wpb_content_element,
    ul.wpb_thumbnails-fluid>li {
        margin-bottom: 5vw
    }

    .sticky.vc_column_container {
        margin-bottom: 7vw
    }

    .divider-content .wpb_text_column {
        padding-bottom: 5vw;
        margin-bottom: 5vw
    }

    .wpb_text_column.col-3 ul {
        columns: 2
    }

    .wpb_text_column ul {
        padding-left: 18px
    }

    .arrow-list ul>li,
    .check-list ul>li,
    ul.arrow-list>li,
    ul.servicelist>li {
        padding-bottom: 4px
    }

    .arrow-list ul li:before,
    .check-list ul li:before,
    ul.arrow-list li:before,
    ul.servicelist li:before {
        width: 12px;
        left: -18px
    }

    #hero p,
    .about-box .content-box .p-large p,
    .topline {
        font-size: 3vw
    }

    #page-title {
        padding-bottom: 4vw
    }

    #page-title .title,
    #page-title h1 {
        font-size: 9.4vw;
        hyphens: auto
    }

    #main>#about,
    #page-title {
        padding-top: 25vw
    }

    #about h2 {
        font-size: 6.2vw
    }

    #about .heading-wrapper.line-reveal {
        margin-bottom: 1.2vw
    }

    #about.more-pt {
        padding-top: 30vw !important
    }

    .content-box>.vc_column-inner>.wpb_wrapper {
        padding: 4vw
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper,
    .servicebox-content {
        flex-wrap: wrap
    }

    .servicebox h2 {
        width: 100%;
        font-size: 6.5vw
    }

    .servicebox .subheadline {
        font-size: 1.6vw;
        width: 40%;
        margin-top: 4%
    }

    .servicebox .content {
        width: 40%;
        margin-top: 4%
    }

    .servicebox .content ul li {
        padding-left: 12px;
        font-size: 1.4vw
    }

    .button,
    .text-link {
        font-size: 1.6vw;
        padding: .95vw 1.3vw .65vw 1.5vw
    }

    .button.border {
        box-shadow: inset 0 0 0 .2vw var(--body-text-color)
    }

    .text-link {
        padding: .95vw 0 .65vw
    }

    .button .button-icon,
    .text-link .button-icon {
        width: 2.2vw;
        height: 1.6vw
    }

    #main>#hero {
        padding-top: 20vw;
        height: auto
    }

    #hero h1 {
        transform: translateY(9vw);
        font-size: 18vw
    }

    #hero.landingpage h1 {
        font-size: 9vw
    }

    .brand-line2,
    .brand-word {
        height: 18vw
    }

    #hero .wpb_text_column {
        margin-bottom: 3vw
    }

    #hero p {
        line-height: 1.1;
        width: 85%
    }

    #hero .button-box {
        margin-right: 3vw
    }

    .image-stack {
        height: 80vw
    }

    .stack-item {
        width: 44vw
    }

    .stack-item:nth-child(1) {
        left: 0
    }

    .stack-item:nth-child(2) {
        left: 8vw
    }

    .stack-item:nth-child(1) {
        bottom: -16vw;
        left: -13vw
    }

    .stack-item:nth-child(2) {
        bottom: -7vw;
        left: 0
    }

    .stack-item:nth-child(3) {
        bottom: 2vw;
        left: 13vw
    }

    .stack-item:nth-child(4) {
        bottom: 11vw;
        left: 26vw
    }

    .stack-item:nth-child(5) {
        bottom: 20vw;
        left: 39vw
    }

    .your-brand {
        min-height: 80vh
    }

    .your-brand .mt-4 {
        margin-top: 8vw !important
    }

    .iconbox img,
    .iconbox video {
        margin-bottom: 2vw
    }

    .iconbox h3 {
        font-size: 2.6vw
    }

    #main .gform_wrapper .gfield>.gfield_label,
    .iconbox .iconbox-content p,
    .legal p {
        font-size: 2vw
    }

    .iconbox.gray {
        padding: 3vw
    }

    .iconbox.show-btn {
        padding-bottom: 8vw
    }

    .iconbox .iconbox-content span.text-link {
        font-size: 1.6vw;
        bottom: 2vw;
        left: 3vw
    }

    .iconbox .iconbox-content span.text-link .button-icon {
        width: 2vw;
        height: 1.6vw
    }

    .services-grid .iconbox img {
        width: 8vw
    }

    .iconbox.white {
        padding: 3vw
    }

    .iconbox.white h3 {
        margin-bottom: .2em
    }

    .leading-zero ol>li {
        padding-left: 7vw
    }

    .leading-zero ol>li::before {
        top: -.7vw;
        width: 3.7vw;
        font-size: 3vw;
        padding: 1vw 1vw .7vw
    }

    .projekte-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 3vw;
        grid-auto-flow: dense
    }

    .post.projekt .post-content {
        margin-top: 1.5vw
    }

    .post.projekt .post-content h2,
    .projekte-slider .post.projekt .post-content h3 {
        font-size: 2.4vw;
        margin-bottom: .5vw
    }

    .post.projekt .post-content h3 {
        margin-bottom: .5vw;
        font-size: 1.7vw
    }

    .post.blog .post-content p,
    .post.projekt .post-content p {
        font-size: 1.7vw
    }

    .single-projekte #main>article>.vc_row.vc_row-flex:has(.wpb_single_image):not(:has(.vc_row.vc_inner)) .vc_column_container>.vc_column-inner,
    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(.vc_row-flex):not(:has(.vc_row.vc_inner)) .vc_column_container>.vc_column-inner,
    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(:has(.vc_row.vc_inner)) {
        padding-left: 0;
        padding-right: 0
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(:has(.vc_row.vc_inner))>.vc_col-sm-6 {
        width: 50%
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(.vc_row-flex):not(:has(.vc_row.vc_inner))>.vc_col-sm-6 {
        display: inline-block;
        padding: 1vw
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image) .mb-5 {
        margin-bottom: 3vw !important
    }

    .single-projekte #main>article>.vc_row .vc_col-sm-6+.vc_col-sm-6 {
        margin-top: 4vw
    }

    .image-slider .swiper-slide img {
        height: 55vw
    }

    .image-slider.format-small .swiper-slide img {
        height: 40vw
    }

    .ai-generated-badge {
        border: .1vw solid #fff;
        font-size: 1.1vw;
        padding: .4vw .7vw .3vw
    }

    .contact-infos .iconbox {
        margin-bottom: 2.5vw
    }

    .contact-infos .iconbox img {
        width: 6vw
    }

    .contact-infos .iconbox h3,
    .go-to-all a {
        font-size: 2vw;
        line-height: 1
    }

    .contact-infos .iconbox .subheadline,
    .footer ul#menu-services>li a {
        font-size: 3.2vw
    }

    .projekte-slider .projekt {
        max-width: 40vw
    }

    .projekte-slider .projekt.large-box {
        max-width: 80vw
    }



    .projekte-filter .button {
        font-size: 1.4vw;
        padding: 1vw 2vw .7vw;
        margin-right: 0
    }

    .projekte-filter {
        display: flex;
        flex-wrap: nowrap;
        margin-right: -80px;
        margin-bottom: 3vw;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none
    }

    .projekte-filter::-webkit-scrollbar {
        display: none
    }

    .filter-group {
        display: flex;
        flex-wrap: nowrap
    }

    .filter-btn {
        flex: 0 0 auto;
        white-space: nowrap
    }

    .filter-btn:last-child {
        margin-right: 80px
    }

    .post-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .post.blog .post-image {
        margin-bottom: 1.6vw
    }

    .project-fact {
        padding: 2.5vw 0 1vw
    }

    .project-fact:first-of-type {
        margin-top: 5vw
    }

    .project-fact .project-fact-label {
        font-size: 2.5vw
    }

    #pricing .total p,
    .project-fact .project-fact-value {
        font-size: 3.5vw
    }

    .referenzen-grid {
        grid-template-columns: repeat(auto-fit, minmax(20vw, 1fr))
    }

    .testimonials-slider .testimonial {
        max-width: 46vw
    }

    .testimonial .testimonial-content {
        font-size: 2.4vw;
        line-height: 1.1
    }

    .testimonial .testimonial-author .name {
        font-size: 1.6vw
    }

    .testimonial .testimonial-author .company,
    .testimonial .testimonial-author .position {
        font-size: 1.4vw;
        line-height: 1.2
    }

    .jobs-list .job {
        padding: 12px 40px 9px 0
    }

    .jobs-list .job:after {
        width: 3vw;
        height: 5vw
    }

    .jobs-list .job h3,
    .single-jobs .wpb_text_column h3 {
        font-size: 4vw
    }

    .jobs-list .job p {
        font-size: 3vw
    }

    .swiper-button-next,
    .swiper-button-prev {
        top: -2vw;
        width: 3vw;
        height: 3vw
    }

    .swiper-button-prev {
        right: 40px
    }

    .cta-box {
        padding: 4vw
    }

    .cta-box:after {
        top: 2vw;
        right: .5vw;
        width: 14vw;
        height: 14vw
    }

    .cta-box-content .eyebrow {
        font-size: 3.5vw;
        max-width: 80%
    }

    .cta-box-content h2 {
        font-size: 10vw;
        margin-top: 30vw
    }

    .cta-box-content h2.heading-sm,
    .footer ul>li a {
        font-size: 5vw
    }

    .cta-box-content h2+p {
        margin-top: 1.6vw;
        font-size: 2vw
    }

    .wpb_wrapper:has(.quicklink) {
        flex-direction: column
    }

    .wpb_wrapper .quicklink {
        flex: auto
    }

    .quicklink {
        padding: 4vw 4vw 3vw
    }

    .quicklink-content {
        width: 100%
    }

    .quicklink-content h2 {
        margin-top: 17vw
    }

    .quicklink .quicklink-content p {
        font-size: 3.4vw
    }

    .post-slider {
        margin-top: 3vw
    }

    .post-slider .post {
        width: 38.5vw
    }

    .post .category {
        top: 1vw;
        left: 1vw;
        padding: 1vw 1.5vw .7vw;
        font-size: 1.2vw
    }

    .post.blog .post-content h3 {
        font-size: 2.2vw;
        margin-bottom: .7vw
    }

    .team-slider {
        margin-top: 6vw
    }

    .team-member {
        width: 31vw;
        margin-right: 3vw
    }

    .team-member .team-member-content {
        padding-top: 1.5vw
    }

    .team-member .team-member-content .name {
        font-size: 2.4vw;
        margin-bottom: .3vw
    }

    .team-member .team-member-content p:not(.name) {
        font-size: 1.6vw
    }

    .single-testimonial {
        margin: 2vw 0
    }

    .single-testimonial::before {
        top: 1.5vw;
        left: -2vw;
        width: 8vw;
        height: 8vw
    }

    .service-section .p-medium {
        margin-bottom: 5vw
    }

    .service-section .p-small {
        display: none
    }

    .vc_row-o-equal-height:not(.service)>.vc_column_container>.vc_column-inner>.wpb_wrapper:has(.iconbox) {
        margin-bottom: 3vw
    }

    .content-box.small>.vc_column-inner>.wpb_wrapper,
    .wpb_text_column.content-box.small {
        padding: 3vw
    }

    .content-box.small p,
    .wpb_text_column.content-box.small p {
        font-size: 3vw
    }

    .content-box.small .mb-1 {
        margin-bottom: 2vw !important
    }

    .packages {
        flex-direction: column
    }

    .single-pack {
        padding: 3vw;
        max-width: 90%
    }

    .single-pack .price {
        font-size: 7vw;
        line-height: 1
    }

    #pricing .total span,
    .single-pack .price span {
        font-size: 1.5vw
    }

    .footer .copyright p .links a,
    .single-pack .features li {
        font-size: 1.8vw
    }

    #main .gform_page_footer .button,
    #main .gform_wrapper .gform_button {
        font-size: 1.8vw;
        padding: 1.5vw 2vw
    }

    #pricing .pricing-wrapper {
        padding: 2vw
    }

    .legal h2 {
        font-size: 3.5vw;
        line-height: 1.1;
        margin-top: 10vw;
        margin-bottom: 2vw
    }

    .legal h3,
    .legal h4 {
        font-size: 2.6vw;
        margin-top: 3vw;
        margin-bottom: 1vw
    }

    .legal h4 {
        font-size: 2vw;
        margin-bottom: .5vw
    }

    .footer .main-footer {
        padding-top: 10vw;
        padding-bottom: 7vw
    }

    .footer .main-footer .vc_wp_custommenu {
        width: 50%
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div {
        margin: 0
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div:last-child {
        order: -1;
        margin-bottom: 6vw
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div:last-child .vc_column-inner {
        padding: 0
    }

    .footer .main-footer h3 {
        font-size: 12.5vw
    }

    .footer .main-footer .button {
        font-size: 3vw;
        padding: 1.3vw 3vw 1.2vw;
        box-shadow: inset 0 0 0 .3vw #fff
    }

    .footer .copyright,
    .footer .p-small {
        position: relative;
        left: unset;
        bottom: unset;
        width: 90%;
        margin-bottom: 4vw
    }

    .footer .copyright {
        margin-top: 1vw
    }

    .footer .p-small {
        margin-top: 3vw
    }

    .footer .copyright p,
    .footer .p-small p {
        font-size: 1.4vw
    }

    .footer .copyright p .links {
        display: block;
        margin-top: 2vw
    }

    .footer .copyright p .links a:first-of-type {
        margin: 0
    }
}

@media (max-width:599px) {

    body,
    html {
        font-size: 3vw
    }

    #main>.vc_row,
    #main>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    #main>article>.vc_row,
    #main>article>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div,
    footer>.vc_row,
    footer>.vc_row[data-vc-full-width]:not([data-vc-stretch-content]):not(.vc_row-no-padding)>div {
        padding-left: 1vw;
        padding-right: 1vw
    }

    #main>.vc_row.section {
        padding-top: 15vw;
        padding-bottom: 15vw
    }

    #main>article>.vc_row {
        padding-top: 6vw;
        padding-bottom: 6vw
    }

    #main>article>.vc_row:first-child {
        padding-top: 30vw
    }

    .preloader img {
        width: 140px
    }

    .canvas-navi-icon,
    header #branding,
    header .header-wrapper {
        position: absolute
    }

    header #branding {
        left: calc(1vw + 15px);
        top: 16px
    }

    header #branding .logo svg {
        height: 38px
    }

    header .get-in-touch {
        right: 70px;
        top: 19px
    }

    header .button {
        font-size: 12px;
        padding: 8px 10px 6px 13px
    }

    header .button .button-icon {
        width: 16px;
        height: 12px
    }

    .canvas-navi-icon {
        right: calc(1vw + 15px);
        top: 16px
    }

    .dp-ai-widget-container {
        top: 10vh;
        left: calc(1vw + 15px);
        width: calc(100% - 1vw - 30px);
        height: 80vh
    }

    .dp-ai-widget-container.is-open .dp-ai-widget-inner {
        border-radius: 5vw
    }

    .dp-ai-widget-container .dpai-widget .dpai-message-list {
        padding-top: 6vw
    }

    .dp-ai-widget-close {
        top: 2vw;
        right: 2vw
    }

    .dp-ai-widget-close img {
        width: 4vw;
        padding: 1.4vw
    }

    body .dpai-message-list .like-h3 {
        max-width: 72vw;
        font-size: 8vw
    }

    .dpai-suggestions {
        flex-wrap: wrap
    }

    .dpai-suggestions .dpai-suggestion-btn {
        border-width: 1px;
        border-radius: 10px;
        font-size: .8em;
        padding: 10px;
        width: calc(50% - 4px)
    }

    body .dpai-msg-assistant-text,
    body .dpai-msg-user-bubble {
        font-size: .85em;
        line-height: 1.4
    }

    #about .like-h2,
    .like-h2,
    h2 {
        font-size: 12vw
    }

    #about .like-h2 {
        max-width: 93%
    }

    .servicebox h2 br {
        display: block
    }

    .smaller .like-h2,
    .smaller h2 {
        font-size: 7.8vw
    }

    .like-h3,
    h3 {
        font-size: 5vw
    }

    .smaller .like-h3,
    .smaller h3 {
        font-size: 5vw;
        margin-bottom: 1vw
    }

    h4 {
        font-size: 4vw
    }

    .p-large p,
    .single .p-large p,
    .single p.p-large,
    p.p-large {
        font-size: 4.7vw
    }

    .single p {
        font-size: 3.2vw
    }

    .single article .heading-wrapper .like-h2,
    .single article .heading-wrapper h2 {
        font-size: 6vw;
        line-height: 1.2
    }

    .p-medium p,
    p.p-medium {
        font-size: 4vw
    }

    .p-medium p br,
    h2 br,
    p.p-medium br {
        display: none
    }

    .p-small p,
    .single .p-small p,
    small {
        font-size: 2.5vw
    }

    .mt-4 {
        margin-top: 6vw !important
    }

    .mb-1 {
        margin-bottom: 4vw !important
    }

    .mb-2 {
        margin-bottom: 5vw !important
    }

    .mb30 {
        margin-bottom: 4vw !important
    }

    .more-pt {
        padding-top: 30vw !important
    }

    .iconbox ul {
        padding-left: 27px
    }

    .wpb_text_column.divider-list ul {
        padding-left: 0
    }

    .wpb_button,
    .wpb_content_element,
    ul.wpb_thumbnails-fluid>li {
        margin-bottom: 5vw
    }

    #canvas-nav {
        padding: 13vw 5vw 5vw
    }

    #canvas-nav .canvas-inner {
        width: 100%
    }

    #canvas-nav .canvas-menu {
        margin: auto 0
    }

    #canvas-nav .nav-image-preview,
    #hero p br,
    #page-title .title br,
    #page-title h1 br {
        display: none
    }

    #canvas-nav nav ul li a {
        font-size: 10vw;
        padding: 2.6vw 0 1.4vw
    }

    #canvas-nav nav ul li a:after {
        width: 3.2vw;
        height: 2.6vw;
        background-repeat: no-repeat
    }

    #canvas-nav .canvas-footer {
        margin-top: 5vw
    }

    #canvas-nav .text-link {
        font-size: 4vw;
        margin-right: 4vw
    }

    #canvas-nav .social-icons a {
        width: 7vw;
        height: 7vw
    }

    .sticky.vc_column_container {
        margin-bottom: 7vw
    }

    .divider-content .wpb_text_column {
        padding-bottom: 5vw;
        margin-bottom: 5vw
    }

    .wpb_text_column.col-3 ul {
        columns: 2
    }

    .wpb_text_column ul {
        padding-left: 18px
    }

    .arrow-list ul>li,
    .check-list ul>li,
    ul.arrow-list>li,
    ul.servicelist>li {
        padding-bottom: 4px
    }

    .arrow-list ul li:before,
    .check-list ul li:before,
    ul.arrow-list li:before,
    ul.servicelist li:before {
        width: 12px;
        left: -18px
    }

    #hero p,
    .iconbox.bg-green h3,
    .topline {
        font-size: 4vw
    }

    #page-title {
        padding-top: 30vw;
        padding-bottom: 6vw
    }

    #page-title .title,
    #page-title h1 {
        font-size: 10.8vw;
        hyphens: auto
    }

    #main>#about {
        padding-top: 50vw
    }

    #about h2 {
        font-size: 6.2vw
    }

    #about .heading-wrapper.line-reveal {
        margin-bottom: 1.2vw
    }

    #about.more-pt {
        padding-top: 30vw !important
    }

    .about-box .content-box .p-large p,
    .iconbox h3 {
        font-size: 4.5vw
    }

    .content-box>.vc_column-inner>.wpb_wrapper {
        padding: 4vw
    }

    .button,
    .text-link {
        font-size: 3vw;
        padding: 1.8vw 3vw 1.5vw
    }

    .button.border {
        box-shadow: inset 0 0 0 .3vw var(--body-text-color)
    }

    .text-link {
        padding: 2.2vw 0 1.5vw
    }

    .button .button-icon,
    .iconbox .iconbox-content span.text-link .button-icon,
    .text-link .button-icon {
        width: 3.2vw;
        height: 2.9vw
    }

    #main>#hero {
        padding-top: 26vw
    }

    #hero h1 {
        transform: translateY(20vw);
        font-size: 24vw
    }

    #hero.landingpage h1 {
        font-size: 11vw
    }

    .brand-line2,
    .brand-word {
        height: 24vw
    }

    #hero .wpb_text_column,
    .iconbox img,
    .iconbox video {
        margin-bottom: 3vw
    }

    #hero p {
        line-height: 1.1;
        width: 85%
    }

    #hero .button-box,
    .iconbox.icon-left img {
        margin-right: 3vw
    }

    .stack-item {
        width: 60vw
    }

    .stack-item:nth-child(1) {
        left: 0
    }

    .stack-item:nth-child(2) {
        left: 8vw
    }

    .stack-item:nth-child(1) {
        bottom: -16vw;
        left: -13vw
    }

    .stack-item:nth-child(2) {
        bottom: -7vw;
        left: 0
    }

    .stack-item:nth-child(3) {
        bottom: 2vw;
        left: 13vw
    }

    .stack-item:nth-child(4) {
        bottom: 11vw;
        left: 26vw
    }

    .stack-item:nth-child(5) {
        bottom: 20vw;
        left: 39vw
    }

    .your-brand {
        min-height: 80vh
    }

    .your-brand .mt-4 {
        margin-top: 8vw !important
    }

    .servicebox {
        padding: 12vw 6vw 5vw
    }

    .servicebox-content {
        gap: 0;
        flex-direction: column
    }

    .servicebox h2 {
        font-size: 14vw;
        width: 100%
    }

    .servicebox h2:after {
        content: "";
        width: 20vw;
        height: 2px;
        background-color: var(--body-text-color);
        display: block;
        margin: 5vw 0 2vw
    }

    .servicebox h2 span {
        font-size: 9.4vw
    }

    .servicebox .content,
    .servicebox .subheadline {
        width: 80%;
        margin-top: 3vw;
        font-size: 3.6vw;
        line-height: 1.1
    }

    .servicebox .content ul li {
        font-size: 2.8vw;
        margin-bottom: .7vw
    }

    .servicebox .line {
        display: none
    }

    .servicebox a {
        margin-top: 13vw
    }

    .iconbox .iconbox-content p,
    .jobs-list .job p {
        font-size: 3vw
    }

    .iconbox.gray {
        padding: 4vw
    }

    .iconbox.show-btn {
        padding-bottom: 14vw
    }

    .iconbox .iconbox-content span.text-link {
        font-size: 3vw;
        padding: 2.2vw 0 1.5vw;
        bottom: 3vw;
        left: 4vw
    }

    .iconbox.bg-green .iconbox-content p {
        font-size: 2.4vw
    }

    .content-box .medium>.vc_column-inner>.wpb_wrapper,
    .vc_row.content-box.medium,
    .wpb_text_column.content-box.medium {
        padding: 4vw 3vw
    }

    .services-grid .iconbox img {
        width: 15vw
    }

    .iconbox.white {
        padding: 3.5vw
    }

    .iconbox.white h3 {
        margin-bottom: .2em
    }

    .leading-zero ol>li {
        padding-left: 10vw
    }

    .leading-zero ol>li::before {
        top: -.7vw;
        width: 6.2vw;
        font-size: 5vw;
        padding: 1vw 1vw .4vw
    }

    .projekte-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 5vw;
        grid-auto-flow: dense
    }

    .post.projekt .post-content {
        margin-top: 3vw
    }

    .post.projekt .post-content h2,
    .projekte-slider .post.projekt .post-content h3 {
        font-size: 3.2vw;
        margin-bottom: 1vw
    }

    .post.projekt .post-content h3 {
        margin-bottom: 1vw
    }

    .post.projekt .post-content h3,
    .post.projekt .post-content p {
        font-size: 2.7vw;
        line-height: 1.5
    }

    .single-projekte #main>article>.vc_row.vc_row-flex:has(.wpb_single_image):not(:has(.vc_row.vc_inner)) .vc_column_container>.vc_column-inner,
    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(.vc_row-flex):not(:has(.vc_row.vc_inner)) .vc_column_container>.vc_column-inner,
    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(:has(.vc_row.vc_inner)) {
        padding-left: 0;
        padding-right: 0
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(:has(.vc_row.vc_inner))>.vc_col-sm-6 {
        width: 50%
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image):not(.vc_row-flex):not(:has(.vc_row.vc_inner))>.vc_col-sm-6 {
        display: inline-block;
        padding: 1vw
    }

    .single-projekte #main>article>.vc_row:has(.wpb_single_image) .mb-5 {
        margin-bottom: 3vw !important
    }

    .single article .vc_row .vc_col-sm-6+.vc_col-sm-6,
    .single-projekte #main>article>.vc_row .vc_col-sm-6+.vc_col-sm-6 {
        margin-top: 4vw
    }

    .single-projekte .project-fact {
        display: none
    }

    .footer ul#menu-services>li a,
    .single article .heading-wrapper .like-h3,
    .single article .heading-wrapper h3 {
        font-size: 5vw
    }

    .image-slider .swiper-slide img {
        height: 55vw
    }

    .image-slider.format-small .swiper-slide img {
        height: 40vw
    }

    .ai-generated-badge {
        font-size: 1.5vw;
        padding: .7vw 1vw .3vw;
        border: .01vw solid #fff
    }

    .contact-infos .iconbox {
        margin-bottom: 2.5vw
    }

    .contact-infos .iconbox img {
        width: 6vw
    }

    .contact-infos .iconbox h3,
    .go-to-all a {
        font-size: 2vw;
        line-height: 1
    }

    .contact-infos .iconbox .subheadline {
        font-size: 3.2vw
    }

    .projekte-slider .projekt {
        max-width: 40vw
    }

    .projekte-slider .projekt.large-box {
        max-width: 80vw
    }

    .go-to-all {
        width: 30vw
    }

    .go-to-all a {
        font-size: 3.6vw;
        padding: 2vw
    }


    .projekte-filter .button {
        font-size: 2.9vw;
        padding: 1vw 2vw .5vw;
        margin-right: .4vw
    }

    .projekte-filter {
        margin-right: -30px;
        margin-bottom: 3vw
    }

    .projekte-filter::-webkit-scrollbar {
        display: none
    }

    .filter-group {
        display: flex;
        flex-wrap: nowrap
    }

    .filter-btn {
        flex: 0 0 auto;
        white-space: nowrap
    }

    .filter-btn:last-child {
        margin-right: 30px
    }

    .post-grid {
        grid-template-columns: repeat(1, 1fr);
        grid-row-gap: 6vw
    }

    .post.blog .post-image {
        margin-bottom: 3vw
    }

    .project-fact {
        padding: 2.5vw 0 1vw
    }

    .project-fact:first-of-type {
        margin-top: 5vw
    }

    #main .gform_wrapper .gfield>.gfield_label,
    .project-fact .project-fact-label,
    .single-pack .price span {
        font-size: 2.5vw
    }

    .project-fact .project-fact-value {
        font-size: 3.5vw
    }

    .referenzen-grid {
        grid-template-columns: repeat(auto-fit, minmax(24vw, 1fr))
    }

    .testimonials-slider .testimonial {
        max-width: 54vw
    }

    .testimonial .testimonial-content {
        font-size: 3.4vw;
        line-height: 1.1
    }

    .testimonial .testimonial-author .name {
        font-size: 2.6vw
    }

    .testimonial .testimonial-author .company,
    .testimonial .testimonial-author .position {
        font-size: 2vw;
        line-height: 1.2
    }

    .jobs-list .job {
        padding: 12px 40px 9px 0
    }

    .jobs-list .job:after {
        width: 3vw;
        height: 5vw
    }

    .jobs-list .job h3,
    .single-jobs .wpb_text_column h3 {
        font-size: 4vw
    }

    .swiper-button-next,
    .swiper-button-prev {
        top: -3vw;
        width: 4vw;
        height: 4vw
    }

    .swiper-button-prev {
        right: 30px
    }

    #pricing .pricing-wrapper,
    .cta-box {
        padding: 4vw
    }

    .cta-box:after {
        top: 2vw;
        right: .5vw;
        width: 14vw;
        height: 14vw
    }

    .cta-box-content .eyebrow {
        font-size: 5vw;
        max-width: 80%
    }

    .cta-box-content h2 {
        font-size: 12vw;
        margin-top: 40vw
    }

    .cta-box-content h2.heading-sm {
        font-size: 8vw
    }

    .cta-box-content h2+p {
        margin-top: 3vw;
        font-size: 3.6vw;
        line-height: 1.3
    }

    .wpb_wrapper:has(.quicklink) {
        flex-direction: column
    }

    .wpb_wrapper .quicklink {
        flex: auto
    }

    .quicklink {
        padding: 4vw 4vw 3vw
    }

    .quicklink-content {
        width: 100%
    }

    .quicklink-content h2 {
        margin-top: 20vw
    }

    #pricing .total p,
    .quicklink .quicklink-content p {
        font-size: 4.5vw
    }

    .post-slider {
        margin-top: 3vw
    }

    .post-slider .post {
        width: 60vw
    }

    .post .category {
        top: 2vw;
        left: 2vw;
        padding: 1vw 1.5vw .7vw;
        font-size: 1.8vw
    }

    .post.blog .post-content h3 {
        font-size: 3.8vw;
        margin-bottom: 1vw
    }

    .footer .copyright p .links a,
    .post.blog .post-content p {
        font-size: 2.8vw
    }

    .team-slider {
        margin-top: 6vw
    }

    .team-member {
        width: 31vw;
        margin-right: 3vw
    }

    .team-member .team-member-content {
        padding-top: 1.5vw
    }

    .team-member .team-member-content .name {
        font-size: 3.3vw;
        margin-bottom: .8vw
    }

    .team-member .team-member-content p:not(.name) {
        font-size: 2vw
    }

    .single-testimonial {
        margin: 2vw 0
    }

    .single-testimonial::before {
        top: 1.5vw;
        left: -2vw;
        width: 8vw;
        height: 8vw
    }

    .service-section .p-medium {
        margin-bottom: 5vw
    }

    .service-section .p-small {
        display: none
    }

    .vc_row-o-equal-height:not(.service)>.vc_column_container>.vc_column-inner>.wpb_wrapper:has(.iconbox) {
        margin-bottom: 3vw
    }

    .content-box.small>.vc_column-inner>.wpb_wrapper,
    .wpb_text_column.content-box.small {
        padding: 3vw
    }

    .content-box.small p,
    .legal p,
    .wpb_text_column.content-box.small p {
        font-size: 3vw
    }

    .content-box.small .mb-1 {
        margin-bottom: 2vw !important
    }

    #main .gform_page_footer .button,
    #main .gform_wrapper .gform_button {
        font-size: 2.8vw;
        padding: 1.5vw 2vw
    }

    #pricing .total span {
        font-size: 2vw
    }

    .packages {
        flex-direction: column
    }

    .single-pack {
        border-radius: 10px;
        padding: 4vw 3vw;
        margin: 1vw;
        max-width: 90%
    }

    .single-pack .name {
        margin-bottom: 1vw
    }

    .single-pack .price {
        font-size: 10vw;
        line-height: 1
    }

    .single-pack .features li {
        padding: 2vw 0;
        font-size: 2.8vw
    }

    .legal h2 {
        font-size: 5vw;
        line-height: 1.1;
        margin-top: 10vw;
        margin-bottom: 2vw
    }

    .legal h3,
    .legal h4 {
        font-size: 3.6vw;
        margin-top: 5vw;
        margin-bottom: 1vw
    }

    .legal h4 {
        font-size: 3vw;
        margin-top: 3vw
    }

    .footer .main-footer {
        padding-top: 10vw;
        padding-bottom: 7vw
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper {
        flex-direction: column;
        gap: 7vw
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div {
        margin: 0
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div:last-child {
        order: -1;
        margin-bottom: 5vw
    }

    .footer .main-footer>.vc_column_container>.vc_column-inner>.wpb_wrapper>div:last-child .vc_column-inner {
        padding: 0
    }

    .footer .main-footer h3 {
        font-size: 16vw
    }

    .footer .main-footer .button {
        font-size: 4vw;
        padding: 1.3vw 3vw 1.2vw;
        box-shadow: inset 0 0 0 .3vw #fff
    }

    .footer ul>li a {
        font-size: 7vw
    }

    .footer .copyright,
    .footer .p-small {
        position: relative;
        left: unset;
        bottom: unset;
        width: 90%;
        margin-bottom: 4vw
    }

    .footer .copyright {
        margin-top: 1vw
    }

    .footer .p-small {
        margin-top: 3vw
    }

    .footer .copyright p,
    .footer .p-small p {
        font-size: 1.9vw
    }

    .footer .copyright p .links {
        display: block;
        margin-top: 2vw
    }

    .footer .copyright p .links a:first-of-type {
        margin: 0
    }
}

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both
}

.wpb_animate_when_almost_visible {
    opacity: 0
}

.wpb_animate_when_almost_visible.wpb_start_animation {
    opacity: 1
}

.wpb_animate_when_almost_visible:not(.wpb_start_animation) {
    animation: none
}

.fadeIn {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn
}

.zoomIn {
    -webkit-animation-name: zoomIn;
    animation-name: zoomIn
}