@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300; font-display: swap; src: url("assets/open-sans-300.ttf") format("truetype"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/open-sans-400.ttf") format("truetype"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/open-sans-500.ttf") format("truetype"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/open-sans-600.ttf") format("truetype"); }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/open-sans-700.ttf") format("truetype"); }

body, h1, h2, h3, h4, h5, h6, p, a, input, textarea, select, button,
.elementor-widget-text-editor, .elementor-heading-title,
.qodef-horizontal-portfolio-showcase .qodef-e-info-category a {
    font-family: "Open Sans", sans-serif !important;
    letter-spacing: 0;
}

.qodef-horizontal-portfolio-showcase .qodef-e-content-top { min-height: 52px; }
.qodef-horizontal-portfolio-showcase .qodef-e-inner { padding-left: 24px; padding-right: 24px; }
.modulus-sidebar-phone { white-space: nowrap; margin: 10px 0 0; }
:is(#qodef-page-wrapper, #qodef-page-footer) :is(a, button, [role="button"]):focus:not(:focus-visible),
.modulus-pointer-focus :is(#qodef-page-wrapper, #qodef-page-footer) :is(a, button, [role="button"]):focus {
    outline: none !important;
    box-shadow: none !important;
}
#qodef-page-header .qodef-widget-holder { flex-direction: column; gap: 8px; align-items: center; }
#qodef-page-header .qodef-widget-holder .widget,
#qodef-page-header .qodef-custom-link-vertical,
#qodef-page-header .modulus-sidebar-phone { margin: 0 !important; }
#qodef-page-header .modulus-sidebar-phone a { color: #acacac; font-size: 15px; }
#qodef-page-header #qodef-page-header-inner .qodef-header-logo-link img,
#qodef-page-header #qodef-page-header-inner .qodef-header-logo-link .modulus-animated-mark {
    width: 60px;
    height: 60px;
    max-height: none;
    object-fit: contain;
}
.modulus-award { margin: 32px 0; }
.modulus-award img { display: block; width: 240px; max-width: 100%; height: auto; background: #fff; }
.qodef-e-portfolio-image > .modulus-award-project { position: relative; isolation: isolate; }
.qodef-e-portfolio-image > .modulus-award-project::after {
    content: "";
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: min(148px, 60%);
    aspect-ratio: 425.2 / 283.46;
    background: #fff url("assets/german-design-award-2027.svg") center / contain no-repeat;
    filter: invert(1);
    mix-blend-mode: screen;
    pointer-events: none;
}

#qodef-page-footer-top-area-inner { padding-top: 88px !important; padding-bottom: 40px; }
#qodef-page-footer-top-area .qodef-grid > .qodef-grid-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 1.2fr) minmax(80px, .6fr) 120px;
    gap: 24px;
    align-items: start;
}
#qodef-page-footer-top-area .qodef-grid-item { width: auto; min-width: 0; padding: 0; border: 0; }
#qodef-page-footer-top-area .qodef-grid > .qodef-grid-inner::before,
#qodef-page-footer-top-area .qodef-grid > .qodef-grid-inner::after { display: none; }
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:first-child { display: contents; }
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:last-child { display: contents; }
.modulus-footer-partner { justify-self: end; align-self: start; }
.modulus-footer-partner img { display: block; width: 120px; max-width: 100%; height: auto; }
#qodef-page-footer-top-area #block-33 { position: static; grid-column: 1 / -1; }
#qodef-page-footer-top-area #block-33 h4 { white-space: nowrap; font-size: 24px; line-height: 1.4; }
#qodef-page-footer .wp-block-columns, #qodef-page-footer .wp-block-column { margin: 0; flex-basis: auto !important; }
#qodef-page-footer a { overflow-wrap: anywhere; }
#qodef-page-footer #block-12 { white-space: nowrap; }
#qodef-page-footer-top-area .widget p { margin-top: 0; }
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item::before { display: none; }

@media (min-width: 1025px) {
    .page-id-6136 .modulus-about-grid > .elementor {
        width: calc(100% + 30px);
        max-width: none;
        margin: 0 -15px;
    }
    body.home {
        --modulus-showcase-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
        --modulus-content-baseline: 24px;
    }
    .home .elementor .elementor-section.elementor-section-height-full,
    .home .elementor-section-height-full > .elementor-container,
    .home .elementor-section-height-full .qodef-horizontal-portfolio-showcase {
        height: var(--modulus-showcase-height);
    }
    .home .elementor .elementor-element.elementor-widget-archicon_core_horizontal_portfolio_showcase > .elementor-widget-container {
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: 0;
    }
    .home .elementor .elementor-column:has(.qodef-horizontal-portfolio-showcase) > .elementor-widget-wrap {
        margin-bottom: 0;
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-intro,
    .home .qodef-horizontal-portfolio-showcase .qodef-m-outro {
        align-items: flex-end;
        padding-bottom: var(--modulus-content-baseline);
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-outro .qodef-e-content {
        margin-top: 0;
        padding-bottom: 0;
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-outro p:last-child {
        margin-bottom: 0;
        text-box-trim: trim-end;
        text-box-edge: cap alphabetic;
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-e-content-top {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-end;
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-e-content-top .qodef-e-title {
        text-box-trim: trim-end;
        text-box-edge: cap alphabetic;
    }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-intro .qodef-text-holder {
        padding-bottom: 0;
        text-box-trim: trim-end;
        text-box-edge: cap alphabetic;
    }
    .home #qodef-page-header .qodef-widget-holder {
        position: absolute;
        bottom: var(--modulus-content-baseline);
        left: 30px;
        margin: 0;
        align-items: flex-start;
    }
}

@media (max-width: 1024px) {
    .qodef-e-portfolio-image > .modulus-award-project::after {
        width: min(118px, 60%);
        top: 12px;
        right: 12px;
    }
    body { --modulus-mobile-title-gap: 24px; }
    #qodef-page-mobile-header .modulus-animated-mark {
        display: block;
        width: 50px;
        height: 50px;
        max-height: none;
    }
    .qodef-page-title.qodef-title--standard {
        height: auto;
        min-height: 0;
        padding: var(--modulus-mobile-title-gap) 20px 24px;
    }
    .qodef-page-title.qodef-title--standard > .qodef-m-inner,
    .qodef-page-title.qodef-title--standard .qodef-m-content {
        height: auto;
        min-height: 0;
        padding: 0;
    }
    .qodef-page-title.qodef-title--standard .qodef-m-content {
        width: 100%;
        margin: 0;
    }
    .qodef-page-title.qodef-title--standard .qodef-m-title,
    .home .qodef-m-intro .qodef-text-holder,
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title {
        text-box-trim: trim-start;
        text-box-edge: cap alphabetic;
    }
    .home .elementor-element-9faec11 { margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
    .home .elementor-element-451bace { margin: 0 !important; }
    .home .elementor-element-3bbac0d { padding: 0 !important; margin: 0 !important; }
    .home .elementor-element-3bbac0d > .elementor-widget-container { padding: 0 !important; margin: 0 !important; }
    .home .qodef-horizontal-portfolio-showcase { height: auto !important; overflow: visible; }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-items-holder { width: 100% !important; padding: var(--modulus-mobile-title-gap) 20px 24px !important; box-sizing: border-box; }
    .home .qodef-horizontal-portfolio-showcase .scroll-content { width: 100%; height: auto; flex-wrap: wrap; transform: none !important; }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-text { width: 100% !important; padding: 0 !important; }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-intro { margin-bottom: 32px; }
    .home .qodef-horizontal-portfolio-showcase .qodef-text-holder { font-size: 44px; line-height: 1.15; padding: 0 !important; }
    .home .qodef-horizontal-portfolio-showcase .qodef-m-outro .qodef-e-content { width: 100%; max-width: none; padding: 12px 0 32px !important; box-sizing: border-box; }
    .home .qodef-m-outro p { overflow-wrap: break-word; }
    .page-id-6136 .elementor-element-896a977 { padding: var(--modulus-mobile-title-gap) 20px 24px !important; --width: 100%; width: 100%; }
    .page-id-6136 .elementor-element-896a977 > .e-con-inner { padding: 0 !important; width: 100%; max-width: 100%; gap: 24px; }
    .page-id-6136 .elementor-element-56c40ae { display: none; }
    .page-id-6136 .elementor-element-5682ddb { flex-direction: column; margin: 0 !important; padding: 0; width: 100%; max-width: 100%; }
    .page-id-6136 .elementor-element-63bb22f, .page-id-6136 .elementor-element-8a6433d { width: 100%; max-width: 100%; padding: 0; }
    .page-id-6136 .elementor-element-2b5d0d8 { margin: 0 0 24px !important; padding: 0 !important; transform: none !important; --e-transform-rotateZ: 0deg; --e-transform-translateX: 0px; --e-transform-translateY: 0px; }
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 30px; line-height: 1.3; text-align: left; margin: 0; }
    .page-id-6136 .elementor-element-7a1210e { width: 100% !important; max-width: 100%; }
    .page-id-6136 .fluentform { width: 100%; }
    #qodef-page-footer { padding-left: 0 !important; }
    #qodef-page-footer-top-area { width: 100%; }
    #qodef-page-footer-top-area-inner { width: calc(100% - 40px) !important; max-width: none; margin: 0 20px; padding-top: 32px !important; }
    #qodef-page-footer-top-area-inner > .qodef-grid { width: 100%; }
    #qodef-page-footer-top-area .qodef-grid > .qodef-grid-inner { grid-template-columns: 1fr; margin: 0; gap: 20px; }
    #qodef-page-footer-top-area .qodef-grid-item { padding: 0; margin: 0; }
    .modulus-footer-partner { justify-self: start; }
    #qodef-page-footer-top-area #block-33 h4 { font-size: 18px; }
    .page-id-8009 .qodef-elementor-content-grid > .elementor-container { width: auto; margin: 0 20px; }
}

@media (max-width: 680px) {
    .home .qodef-horizontal-portfolio-showcase .qodef-m-item { width: 100% !important; }
    .home .qodef-horizontal-portfolio-showcase .qodef-e-inner { padding: 0; }
    .home .qodef-horizontal-portfolio-showcase .qodef-text-holder { font-size: 40px; }
    .page-id-6136 .qodef-team-list .qodef-grid-item { width: 100% !important; }
    #qodef-page-footer-top-area #block-33 h4 { font-size: 14px; }
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 28px; }
    .qodef-team-list .qodef-team-member-social-network { font-size: 12px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}

@media (max-width: 360px) {
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 26px; }
    .qodef-team-list .qodef-team-member-social-network { font-size: 11px; }
}

/* Team and contact share a single content column without transformed offsets. */
.page-id-6136 #qodef-page-content > .qodef-grid-inner { margin: 0; }
.page-id-6136 #qodef-page-content > .qodef-grid-inner > .qodef-page-content-section { padding: 0; }
.page-id-6136 .elementor-element-896a977 {
    display: block;
    padding: 48px 0 24px !important;
    --width: 100%;
    width: 100%;
}
.page-id-6136 .elementor-element-896a977 > .e-con-inner {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: none;
    margin: 0 auto;
    padding: 0 !important;
}
.page-id-6136 .elementor-element-56c40ae { display: none; }
.page-id-6136 .elementor-element-5682ddb {
    flex-direction: column;
    gap: 32px;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding: 0;
    transform: none !important;
}
.page-id-6136 .elementor-element-63bb22f,
.page-id-6136 .elementor-element-8a6433d {
    width: 100%;
    max-width: none;
    padding: 0;
}
.page-id-6136 .elementor-element-2b5d0d8 {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    --e-transform-rotateZ: 0deg;
    --e-transform-translateX: 0px;
    --e-transform-translateY: 0px;
}
.page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title {
    margin: 0;
    color: #fff;
    font-size: 87px;
    font-weight: 300;
    line-height: 1;
    text-align: left;
    text-box-trim: trim-start;
    text-box-edge: cap alphabetic;
}
.page-id-6136 .modulus-about-title-highlight { font-weight: 400; }
.page-id-6136 .qodef-team-list > .qodef-grid-inner {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px 32px;
    margin: 0;
}
.page-id-6136 .qodef-team-list > .qodef-grid-inner::before,
.page-id-6136 .qodef-team-list > .qodef-grid-inner::after { display: none; }
.page-id-6136 .qodef-team-list .qodef-grid-item {
    width: 100% !important;
    min-width: 0;
    margin: 0;
    padding: 0;
    float: none;
}
.page-id-6136 .qodef-team-list .qodef-e-inner { display: block; }
.page-id-6136 .qodef-team-list .qodef-e-image { overflow: hidden; }
.page-id-6136 .qodef-team-list .qodef-e-media-image {
    aspect-ratio: 1;
    overflow: hidden;
}
.page-id-6136 .qodef-team-list .qodef-e-media-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: none !important;
    filter: grayscale(1);
    transition: filter 300ms ease;
}
@media (hover: hover) {
    .page-id-6136 .qodef-team-list .qodef-grid-item:hover .qodef-e-media-image img { filter: grayscale(0); }
}
.page-id-6136 .qodef-team-list .qodef-grid-item:focus-within .qodef-e-media-image img { filter: grayscale(0); }
@media (prefers-reduced-motion: reduce) {
    .page-id-6136 .qodef-team-list .qodef-e-media-image img { transition: none; }
}
.page-id-6136 .qodef-team-list .qodef-e-inner::after,
.page-id-6136 .qodef-team-list .qodef-e-image::after { display: none; }
.page-id-6136 .qodef-team-list .qodef-e-content {
    display: block;
    position: static;
    width: 100%;
    height: auto;
    padding: 18px 0 0;
    background: none;
    opacity: 1;
    visibility: visible;
    transform: none !important;
}
.page-id-6136 .qodef-team-list .qodef-e-title { font-size: 24px; line-height: 1.2; margin: 0; }
.page-id-6136 .qodef-team-list .qodef-e-role { margin: 8px 0 0; color: #acacac; font-size: 15px; }
.page-id-6136 .qodef-team-list .qodef-e-title,
.page-id-6136 .qodef-team-list .qodef-e-role { transform: none !important; }
.page-id-6136 .qodef-team-list .qodef-team-member-social-networks {
    position: static;
    margin-top: 8px;
    opacity: 1;
    visibility: visible;
    transform: none !important;
}
.page-id-6136 .qodef-team-list .qodef-team-member-social-network {
    font-size: 14px;
    overflow-wrap: anywhere;
    opacity: 1 !important;
    transform: none !important;
}
.page-id-6136 .elementor-element-7a1210e {
    width: 100% !important;
    margin-top: 64px;
    padding-top: 40px;
    border-top: 1px solid #444;
}
@media (min-width: 1025px) {
    .page-id-6136 .elementor-element-7a1210e {
        width: calc((200% - 32px) / 3) !important;
        align-self: flex-start;
    }
    .page-id-6136 #fluentform_3 > fieldset {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 15px;
    }
    .page-id-6136 #fluentform_3 > fieldset > * { grid-column: 1 / -1; }
    .page-id-6136 #fluentform_3 > fieldset > .ff-el-group:has(input[type="email"]),
    .page-id-6136 #fluentform_3 > fieldset > .ff-el-group:has(input[type="tel"]) {
        grid-column: auto;
        min-width: 0;
    }
}
.page-id-6136 .fluentform { width: 100%; }
.page-id-6136 .fluentform .ff-el-section-title { font-size: 40px; font-weight: 300; line-height: 1.2; margin: 0 0 32px; }
.page-id-6136 .fluentform .ff-el-section-break hr { display: none; }
.page-id-6136 .fluentform .ff-el-group { margin-bottom: 24px; }
.page-id-6136 .fluentform .ff-el-form-control {
    box-sizing: border-box;
    background: transparent !important;
    color: #fff !important;
    border: 0 !important;
    border-bottom: 2px solid #777 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 14px 0 !important;
    font-size: 16px;
    line-height: 1.5;
}
.page-id-6136 .fluentform .ff-el-form-control::placeholder { color: #acacac; opacity: 1; }
.page-id-6136 .fluentform textarea.ff-el-form-control { min-height: 140px; resize: vertical; }
.page-id-6136 .fluentform .ff-el-form-control:focus {
    background: linear-gradient(to bottom, #fff 0, #fff calc(100% - 2px), #000 calc(100% - 2px), #000 100%) padding-box !important;
    color: #000 !important;
    padding-inline: 12px !important;
    border-bottom-color: #fff !important;
    outline: none !important;
    box-shadow: none !important;
}
.page-id-6136 .fluentform .ff-el-form-control:focus::placeholder { color: #555; }
.page-id-6136 .fluentform .ff-el-is-error .ff-el-form-control { border-bottom-color: #f19b9b !important; }
.page-id-6136 .fluentform .error { color: #f19b9b; }
.page-id-6136 .fluentform .ff-btn-submit {
    border: 1px solid #fff !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    padding: 12px 28px !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    min-height: 48px;
}
.page-id-6136 .fluentform .ff-btn-submit:hover { background: #fff !important; color: #000 !important; }
.page-id-6136 .fluentform .ff-btn-submit:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.page-id-6136 .fluentform .ff-message-success {
    border: 1px solid #777;
    border-radius: 0;
    background: transparent;
    color: #fff;
    box-shadow: none;
}
@media (max-width: 1024px) {
    .page-id-6136 .modulus-about-grid { width: 100%; }
    .page-id-6136 .elementor-element-896a977 { padding: var(--modulus-mobile-title-gap) 20px 24px !important; }
    .page-id-6136 .elementor-element-896a977 > .e-con-inner { width: 100%; }
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 44px; line-height: 1.15; }
    .page-id-6136 .qodef-team-list > .qodef-grid-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 40px; }
    .page-id-6136 .qodef-team-list > .qodef-grid-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .page-id-6136 .elementor-element-7a1210e { margin-top: 48px; padding-top: 32px; }
    .page-id-6136 .fluentform .ff-el-section-title { font-size: 32px; }
}
@media (max-width: 360px) {
    .page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title { font-size: 40px; }
}

body {
    --modulus-title-top: 48px;
    --modulus-title-size: 87px;
    --modulus-title-leading: 1;
    --modulus-title-gap: 32px;
}
body:not(.home) .qodef-page-title.qodef-title--standard {
    display: block;
    height: auto;
    min-height: 0;
    padding: var(--modulus-title-top) 0 var(--modulus-title-gap);
}
body:not(.home) .qodef-page-title.qodef-title--standard > .qodef-m-inner,
body:not(.home) .qodef-page-title.qodef-title--standard .qodef-m-content {
    height: auto;
    min-height: 0;
    padding: 0;
}
body:not(.home) .qodef-page-title.qodef-title--standard .qodef-m-content { justify-content: flex-start; }
body:not(.home) .qodef-page-title.qodef-title--standard .qodef-m-subtitle {
    margin: calc(var(--modulus-title-size) * .25) 0 0;
}
body:not(.home) .qodef-page-title.qodef-title--standard .qodef-m-title,
.home .qodef-horizontal-portfolio-showcase .qodef-text-holder,
.page-id-6136 .elementor-element-2b5d0d8 .modulus-about-title {
    margin: 0;
    font-size: var(--modulus-title-size);
    font-weight: 300;
    line-height: var(--modulus-title-leading);
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    overflow-wrap: break-word;
}
.page-id-6136 .elementor-element-896a977 { padding-top: var(--modulus-title-top) !important; }
.page-id-6136 .elementor-element-5682ddb { gap: var(--modulus-title-gap); }
@media (max-width: 1440px) {
    body { --modulus-title-size: 70px; }
}
@media (max-width: 1366px) {
    body { --modulus-title-size: 60px; }
}
@media (max-width: 1024px) {
    body { --modulus-title-top: 24px; --modulus-title-size: 44px; --modulus-title-leading: 1.15; }
    body:not(.home) .qodef-page-title.qodef-title--standard { padding-inline: 20px; }
}
@media (max-width: 680px) {
    body { --modulus-title-size: 40px; }
}
.qodef-portfolio-list .qodef-e-media-image {
    filter: grayscale(1);
    transition: filter 300ms ease;
}
@media (hover: hover) {
    .qodef-portfolio-list .qodef-grid-item:hover .qodef-e-media-image { filter: grayscale(0); }
}
.qodef-portfolio-list .qodef-grid-item:focus-within .qodef-e-media-image { filter: grayscale(0); }
@media (prefers-reduced-motion: reduce) {
    .qodef-portfolio-list .qodef-e-media-image { transition: none; }
}
.page-id-8009 .qodef-m-filter .qodef-m-filter-item { color: #999; }
.page-id-8009 .qodef-m-filter .qodef-m-filter-item.qodef--active,
.page-id-8009 .qodef-m-filter .qodef-m-filter-item:hover { color: #fff; }
.page-id-8009 .qodef-m-filter-item:focus-visible { outline: 1px solid #fff; outline-offset: 4px; }
@media (min-width: 1025px) {
    .page-id-8009 .qodef-portfolio-list { position: relative; }
    .page-id-8009 .qodef-portfolio-list > .qodef-m-filter {
        position: absolute;
        right: 0;
        bottom: calc(100% + var(--modulus-title-gap));
        margin: 0;
        width: auto;
    }
}
@media (max-width: 1024px) {
    #qodef-page-mobile-header,
    #qodef-page-mobile-header-inner { background: #000 !important; }
    .page-id-6136:not(.modulus-mobile-menu-open) #qodef-page-mobile-header-inner { border-bottom: 0; }
    .page-id-6136 .elementor-element-2b5d0d8 { margin-bottom: 0 !important; }
    .page-id-8009 .qodef-m-filter {
        max-width: 100%;
        margin: 0 0 24px;
        overflow-x: auto;
        scroll-padding-right: 40px;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent);
    }
    .page-id-8009 .qodef-m-filter::-webkit-scrollbar { display: none; }
    .page-id-8009 .qodef-m-filter-items {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        gap: 28px;
        width: max-content;
        padding-right: 40px;
    }
    .page-id-8009 .qodef-m-filter .qodef-m-filter-item {
        display: block;
        flex: 0 0 auto;
        margin: 0;
        padding: 10px 0;
        min-height: 44px;
        font-size: 16px;
        line-height: 24px;
        box-sizing: border-box;
        white-space: nowrap;
    }
    .page-id-8009 .qodef-m-filter .qodef-separator-end { display: none; }
    #qodef-page-footer-top-area #block-5,
    #qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(2),
    #qodef-page-footer-top-area #block-47,
    #qodef-page-footer-top-area .modulus-footer-partner {
        width: 100%;
        border-top: 1px solid #333;
        padding-top: 20px;
    }
}
@media (max-width: 680px) {
    #qodef-page-footer-top-area #block-33 h4 { font-size: 15px; white-space: normal; }
}

@media (max-width: 1024px) {
    html.modulus-mobile-menu-open { overflow: hidden; }
    body.modulus-mobile-menu-open { position: fixed; width: 100%; overflow: hidden; }
    .modulus-mobile-menu-ready #qodef-page-mobile-header .qodef-mobile-header-navigation { display: none !important; }
    .modulus-mobile-menu-open #qodef-page-mobile-header {
        position: fixed;
        top: var(--wp-admin--admin-bar--height, 0px);
        left: 0;
        width: 100%;
        z-index: 10000;
    }
    .modulus-mobile-menu-open #wpadminbar { position: fixed; }
    .modulus-mobile-menu-open #qodef-page-mobile-header-inner {
        position: relative;
        z-index: 2;
        border-bottom: 1px solid #333;
    }
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation {
        display: flex !important;
        position: fixed;
        inset: var(--wp-admin--admin-bar--height, 0px) 0 0;
        height: auto !important;
        max-height: none;
        flex-direction: column;
        gap: 48px;
        box-sizing: border-box;
        padding: calc(var(--modulus-menu-header-height, 70px) + 32px) 20px calc(28px + env(safe-area-inset-bottom)) !important;
        margin: 0 !important;
        overflow: auto !important;
        overscroll-behavior: contain;
        background: #000;
        border: 0;
        z-index: 1;
    }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener { min-width: 44px; min-height: 44px; justify-content: flex-end; }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener .qodef--close { display: none !important; }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener .qodef--open {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 45px;
        height: 44px;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener .qodef-svg--menu-mobile {
        display: block;
        overflow: visible;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }
    .modulus-mobile-menu-ready .qodef-svg--menu-mobile path {
        transform-box: view-box;
        transition: transform 320ms cubic-bezier(.4, 0, .2, 1);
    }
    .modulus-mobile-menu-ready .qodef-svg--menu-mobile path:first-child { transform-origin: 22.5px 1px; }
    .modulus-mobile-menu-ready .qodef-svg--menu-mobile path:last-child { transform-origin: 22.5px 13px; }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener.qodef--opened .qodef-svg--menu-mobile path:first-child {
        transform: translateY(6px) rotate(45deg) scaleX(.8);
    }
    .modulus-mobile-menu-ready .qodef-mobile-header-opener.qodef--opened .qodef-svg--menu-mobile path:last-child {
        transform: translateY(-6px) rotate(-45deg) scaleX(.8);
    }
    .modulus-mobile-menu-open .qodef-mobile-header-navigation > ul {
        flex: 0 0 auto;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation > ul > li { padding: 0; }
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation > ul > li > a {
        padding: 10px 0;
        font-size: 40px;
        font-weight: 300;
        line-height: 1.2;
        text-transform: none;
        color: #fff;
    }
    .modulus-mobile-menu-open .qodef-mobile-header-navigation a:focus-visible,
    .modulus-mobile-menu-ready .qodef-mobile-header-opener:focus-visible { outline: 1px solid #fff; outline-offset: 3px; }
    .modulus-mobile-menu-contact {
        display: grid;
        gap: 24px;
        flex: 0 0 auto;
        margin-top: auto;
        padding-top: 24px;
        border-top: 1px solid #333;
        color: #aaa;
        font-size: 14px;
        line-height: 1.6;
    }
    .modulus-menu-contact-links { display: flex; flex-direction: column; gap: 8px; }
    #qodef-page-mobile-header .modulus-menu-contact-links a {
        color: #aaa !important;
        font-size: 16px;
        overflow-wrap: anywhere;
    }
    #qodef-page-mobile-header .modulus-menu-contact-links a[href^="mailto:"] {
        order: -1;
        color: #fff !important;
        font-size: 18px;
        font-weight: 300;
    }
    .modulus-menu-socials { display: flex; flex-wrap: wrap; gap: 24px; }
    #qodef-page-mobile-header .modulus-menu-socials a { color: #aaa !important; }
    #qodef-page-mobile-header .modulus-mobile-menu-contact a:hover { color: #fff !important; }
    .modulus-mobile-menu-open .qodef-mobile-header-navigation > ul > li {
        animation: modulus-menu-reveal 440ms cubic-bezier(.22, 1, .36, 1) both;
        animation-delay: calc(40ms + var(--modulus-menu-order, 0) * 65ms);
    }
    .modulus-mobile-menu-open .modulus-menu-contact-links,
    .modulus-mobile-menu-open .modulus-menu-socials {
        animation: modulus-menu-reveal 440ms cubic-bezier(.22, 1, .36, 1) both;
        animation-delay: var(--modulus-menu-contact-delay, 255ms);
    }
    .modulus-mobile-menu-open .modulus-menu-socials { animation-delay: calc(var(--modulus-menu-contact-delay, 255ms) + 65ms); }
}
@keyframes modulus-menu-reveal {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .modulus-mobile-menu-ready .qodef-svg--menu-mobile path { transition: none; }
    .modulus-mobile-menu-open .qodef-mobile-header-navigation > ul > li,
    .modulus-mobile-menu-open .modulus-menu-contact-links,
    .modulus-mobile-menu-open .modulus-menu-socials { animation: none; }
}
@media (min-width: 600px) and (max-width: 1024px) {
    .modulus-mobile-menu-contact { grid-template-columns: 1fr 1fr; }
    .modulus-menu-socials { justify-self: end; align-self: end; }
}
@media (max-width: 360px), (max-height: 700px) {
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation > ul > li > a { font-size: 32px; }
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation { gap: 24px; }
    .modulus-mobile-menu-contact { gap: 16px; }
}
@media (max-width: 1024px) and (max-height: 700px) {
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation {
        padding-top: calc(var(--modulus-menu-header-height, 70px) + 24px) !important;
        padding-bottom: calc(20px + env(safe-area-inset-bottom)) !important;
    }
}
@media (min-width: 600px) and (max-width: 1024px) and (max-height: 560px) {
    .modulus-mobile-menu-open #qodef-page-mobile-header .qodef-mobile-header-navigation {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 32px;
        align-items: start;
    }
    .modulus-mobile-menu-contact { grid-template-columns: 1fr; margin-top: 0; }
    .modulus-menu-socials { justify-self: start; }
}


/* Homepage showcase: no vertical separators between intro, projects and outro. */
.home .qodef-horizontal-portfolio-showcase .qodef-m-item::before {
    display: none;
}

/* Match previous and next arrows on portfolio details. */
.single-portfolio-item .qodef-m-nav .qodef-m-nav-icon {
    width: 40px;
    height: auto;
    transform: none !important;
}
.single-portfolio-item .qodef-m-nav .qodef-m-nav-icon path { stroke: #ccc !important; }
.single-portfolio-item .qodef-m-nav:is(:hover, :focus-visible) .qodef-m-nav-icon path { stroke: #fff !important; }
