/* Phase 9 visual QA: overflow, type scale, images, mobile stacking.
   Clip content only — not html/body/.fl-page, or the overlay header and
   section-color invert (js-replace) break on scroll. */
html,
body {
    max-width: 100%;
}

#fl-main-content,
.fl-post-content {
    overflow-x: hidden;
    max-width: 100%;
}

.fl-page > header.fl-builder-content[data-type="header"],
header.fl-builder-content[data-type="header"] {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
    background: transparent !important;
    background-color: transparent !important;
    overflow: visible !important;
}

.fl-page > header.fl-builder-content[data-type="header"] .header-row,
.fl-page > header.fl-builder-content[data-type="header"] .header-row > .fl-row-content-wrap {
    overflow: visible !important;
}

.fl-page > header.fl-builder-content[data-type="header"] .fl-row-content-wrap,
.fl-page > header.fl-builder-content[data-type="header"] .fl-col-content {
    background: transparent !important;
}

.site-header {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 40px 0 !important;
    padding-top: max(12px, env(safe-area-inset-top, 0px)) !important;
}

.invert-header-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between;
    width: 100%;
    grid-template-columns: none;
    grid-template-areas: none;
}

.logo-wrap {
    grid-area: auto;
    padding: 0 !important;
}

.menu-line-wrap {
    grid-area: auto;
    justify-self: auto;
}

html {
    scrollbar-gutter: stable;
}

a,
.open-menu,
.close-menu,
.open-menu-btn,
.js-replace__content__line {
    -webkit-tap-highlight-color: transparent;
}

a:focus,
a:focus-visible,
a:active,
.open-menu,
.close-menu,
.open-menu-btn,
.js-replace__content__line {
    outline: none !important;
    box-shadow: none !important;
}

.open-menu,
.close-menu,
.open-menu-btn,
.js-replace__content__line {
    border: none !important;
}

.site-header .js-replace__content__logo {
    margin-top: 0 !important;
}

.site-header .open-menu,
.site-header .close-menu {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
}

.site-header .open-menu-btn {
    position: relative !important;
    display: block;
    width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer;
}

.site-header .open-menu-btn:before,
.site-header .open-menu-btn:after {
    content: "";
    display: block !important;
    float: none;
    position: absolute;
    left: 0;
    width: 32px;
    height: 3px;
    margin: 0;
    padding: 0;
    border-radius: 0;
    transition: top 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

/* Closed: two-line hamburger. Touch devices were keeping the hover plus. */
.site-header .open-menu .open-menu-btn:before {
    top: 9px !important;
    transform: none !important;
}

.site-header .open-menu .open-menu-btn:after {
    top: 20px !important;
    transform: none !important;
}

@media (hover: hover) and (pointer: fine) {
    .site-header .open-menu:hover .open-menu-btn:before,
    .site-header .open-menu:hover .open-menu-btn:after {
        top: 14.5px !important;
    }

    .site-header .open-menu:hover .open-menu-btn:after {
        transform: rotate(-90deg) !important;
    }
}

@media (pointer: coarse) {
    .site-header .open-menu:hover .open-menu-btn:before {
        top: 9px !important;
        transform: none !important;
    }

    .site-header .open-menu:hover .open-menu-btn:after {
        top: 20px !important;
        transform: none !important;
    }
}

/* One M + one hamburger. Invert translateY was painting a second icon
   into the section below the fixed header. */
.logo-wrap,
.menu-line-wrap,
.js-replace-logo,
.js-replace-line {
    overflow: hidden !important;
}

.js-replace-logo,
.js-replace-line {
    display: grid !important;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
}

.js-replace-logo > .js-replace__logo,
.js-replace-line > .js-replace__line {
    grid-area: 1 / 1 !important;
    overflow: hidden !important;
}

.site-header .js-replace__logo,
.site-header .js-replace__line,
.site-header .js-replace__content__logo,
.site-header .js-replace__content__line,
.site-header .js-replace__logo--active,
.site-header .js-replace__line--active {
    transform: none !important;
}

.js-replace-logo > .js-replace__logo,
.js-replace-line > .js-replace__line {
    visibility: hidden !important;
    pointer-events: none !important;
}

.js-replace-logo.js-replace--reverse__logo > .js-replace__logo:first-child,
.js-replace-line.js-replace--reverse__line > .js-replace__line:first-child,
.js-replace-logo:not(.js-replace--reverse__logo) > .js-replace__logo:last-child,
.js-replace-line:not(.js-replace--reverse__line) > .js-replace__line:last-child {
    visibility: visible !important;
    pointer-events: auto !important;
}

@media (min-width: 769px) {
    .site-header .open-menu,
    .site-header .close-menu {
        width: 40px;
        height: 40px;
    }
}

/* Overlay covers the page; the header bar stays above it so the X is
   clickable. pointer-events none on the bar keeps nav links reachable. */
.menu:has(.close-menu) nav {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    z-index: 10001 !important;
}

.menu:has(.close-menu) .site-header {
    position: relative;
    z-index: 10002 !important;
    overflow: visible !important;
    pointer-events: none;
}

/* Invert copies use visibility:visible !important, which punches through
   a parent visibility:hidden. Opacity cannot be undone by children. */
.menu:has(.close-menu) .logo-wrap,
.menu:has(.close-menu) .logo-wrap * {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.menu:has(.close-menu) .menu-line-wrap {
    position: relative;
    z-index: 10003 !important;
    overflow: visible !important;
    pointer-events: auto !important;
    visibility: visible !important;
}

.menu:has(.close-menu) .js-replace-line,
.menu:has(.close-menu) .js-replace__line,
.menu:has(.close-menu) .js-replace__content__line {
    overflow: visible !important;
    transform: none !important;
}

/* One invert copy stays hamburger, the other becomes X — hide the spare. */
.menu:has(.close-menu) .js-replace-line .js-replace__line:not(.js-replace__line--active) {
    visibility: hidden;
    pointer-events: none;
}

.menu:has(.close-menu) .open-menu-btn:before,
.menu:has(.close-menu) .open-menu-btn:after,
.menu:has(.close-menu) .close-menu .open-menu-btn:before,
.menu:has(.close-menu) .close-menu .open-menu-btn:after {
    background-color: #000 !important;
    top: 14.5px !important;
    width: 32px;
}

.menu:has(.close-menu) .open-menu-btn:before,
.menu:has(.close-menu) .close-menu .open-menu-btn:before {
    transform: translateY(0) rotate(45deg) !important;
}

.menu:has(.close-menu) .open-menu-btn:after,
.menu:has(.close-menu) .close-menu .open-menu-btn:after {
    transform: translateY(0) rotate(-45deg) !important;
}

@media (max-width: 768px) {
    .menu:has(.close-menu) .js-replace-line > .js-replace__line:first-child {
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .menu:has(.close-menu) .js-replace-line > .js-replace__line:not(:first-child) {
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .menu:has(.close-menu) .open-menu-btn:before,
    .menu:has(.close-menu) .open-menu-btn:after,
    .menu:has(.close-menu) .close-menu .open-menu-btn:before,
    .menu:has(.close-menu) .close-menu .open-menu-btn:after,
    .menu:has(.close-menu) .open-menu-btn.menu-line-black:before,
    .menu:has(.close-menu) .open-menu-btn.menu-line-black:after {
        background-color: #fff !important;
    }

    .menu:has(.close-menu) p.company-title {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        max-width: calc(100% - 56px);
        margin-bottom: 16px;
    }

    .menu:has(.close-menu) p.company-title a {
        font-size: clamp(1.7rem, 8.5vw, 2.4rem) !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }
}

/* Inner-page intros: Beaver used 250–300px padding and a separate
   fl-visible-mobile row (About, Testimonials, SEO). :first-child alone
   misses that mobile row, so titles sat far below the overlay header
   — or were pulled under it with negative margin. */
.fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child:not(.fl-row-bg-photo):not(.fl-row-bg-video) > .fl-row-content-wrap,
.fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile:not(.fl-row-bg-photo) > .fl-row-content-wrap {
    padding-top: 96px !important;
}

.fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child.fl-row-full-height:not(.fl-row-bg-photo):not(.fl-row-bg-video) > .fl-row-content-wrap,
.fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child.fl-row-align-bottom:not(.fl-row-bg-photo):not(.fl-row-bg-video) > .fl-row-content-wrap,
.fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile > .fl-row-content-wrap {
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    overflow: visible !important;
}

@media (max-width: 992px) {
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child:not(.fl-row-bg-photo):not(.fl-row-bg-video) > .fl-row-content-wrap,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile:not(.fl-row-bg-photo) > .fl-row-content-wrap {
        padding-top: 88px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .fl-col-group,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .fl-col-group {
        display: block !important;
        width: 100% !important;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .fl-col,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .fl-col {
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .type-outline,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .type-outline {
        font-size: clamp(1.85rem, 7vw, 2.6rem) !important;
        letter-spacing: 0.03em !important;
        line-height: 1.15 !important;
        display: block !important;
        max-width: 100%;
        -webkit-text-stroke-width: 1.25px;
    }
}

@media (max-width: 768px) {
    .site-header .js-replace__content__logo span {
        font-size: 3.4rem !important;
        line-height: 0.72 !important;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child:not(.fl-row-bg-photo):not(.fl-row-bg-video) > .fl-row-content-wrap,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile:not(.fl-row-bg-photo) > .fl-row-content-wrap {
        padding-top: 104px !important;
        padding-bottom: 28px !important;
    }

    /* Desktop layout uses a 100–200px vertical bar beside the title.
       Stacked on mobile that bar becomes a large empty gap. Keep the square. */
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .fl-separator,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .fl-separator {
        display: none !important;
    }

    /* Keep kicker + outline title in document flow (page CSS uses -200/-230px). */
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .fl-module > .fl-module-content,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .fl-module > .fl-module-content {
        margin-top: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .type-outline,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .type-outline {
        font-size: clamp(2rem, 8.4vw, 2.8rem) !important;
        letter-spacing: 0.02em !important;
        line-height: 1.12 !important;
        position: relative !important;
        top: auto !important;
        -webkit-text-stroke-width: 1.4px;
    }

    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child .fl-col + .fl-col,
    .fl-builder-content-primary:not(:has(.home-hero-row)) > .fl-row:first-child + .fl-row.fl-visible-mobile .fl-col + .fl-col {
        margin-top: 14px !important;
    }
}

img,
video {
    max-width: 100%;
}

.home-hero-row .fl-row-content {
    position: relative;
    z-index: 2;
}

.home-hero-row .fl-bg-video {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.home-hero-row .fl-bg-video video,
.home-hero-row .home-hero-video {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    min-width: 100%;
    min-height: 100%;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    object-fit: cover;
}

.home-hero-row,
.home-hero-row > .fl-row-content-wrap,
.home-hero-row .fl-bg-video {
    background: #000 !important;
    background-color: #000 !important;
}

.home-hero-row.fl-row-bg-overlay > .fl-row-content-wrap:before,
.home-hero-row.fl-row-bg-overlay > .fl-row-content-wrap:after {
    background: none !important;
    background-color: transparent !important;
    opacity: 0 !important;
}

.home-hero-row,
.home-hero-row > .fl-row-content-wrap,
.home-hero-row .fl-row-content {
    position: relative;
    overflow: visible !important;
}

.home-hero-row .hero-branding-text .type-outline.o-white {
    font-family: Raleway, sans-serif;
    font-weight: 900;
    font-size: 12rem;
    line-height: 0.7;
    white-space: nowrap;
}

.home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline,
.home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-wrapper,
.home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-text {
    font-family: Raleway, sans-serif;
    font-weight: 900;
    font-size: 12rem;
    line-height: 1;
}

.home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-wrapper.pp-headline-typing-selected,
.home-hero-row .pp-headline-animation-type-typing .pp-headline-dynamic-wrapper.pp-headline-typing-selected {
    background-color: transparent !important;
}

.home-hero-row .fl-node-7dpqm5ogv6zb.fl-module > .fl-module-content,
.home-hero-row .fl-node-5eecdfc93eeaa.fl-module > .fl-module-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.home-hero-row #video-overlay,
.home-hero-row .home-hero-play,
.home-hero-row .video-play-button,
.home-hero-for,
.home-hero-growth {
    display: none !important;
}

.home-hero-row .fl-module-pp-animated-headlines {
    display: block !important;
    visibility: visible !important;
}

.home-hero-row .left-vertical-text,
.home-hero-row .left-vertical-text.fl-visible-desktop-medium,
.home-hero-row .left-vertical-text.fl-animation,
.home-hero-row .left-vertical-text.fl-fade-in {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.home-hero-row .tilt-left-text-vertically {
    position: absolute !important;
    left: 20px;
    top: 130px;
    width: max-content !important;
    max-width: none !important;
    z-index: 4;
    transform: translateX(-50%) rotate(90deg) !important;
    -webkit-transform: translateX(-50%) rotate(90deg) !important;
    transform-origin: center center !important;
}

.home-hero-row .left-vertical-text,
.home-hero-row .left-vertical-text .fl-module-content,
.home-hero-row .left-vertical-text .fl-heading {
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

.home-hero-row .left-vertical-text .fl-heading,
.home-hero-row .left-vertical-text .fl-heading-text,
.home-hero-row .left-vertical-text .fl-heading-text *,
.home-hero-row .left-vertical-text a {
    color: #fff !important;
    font-family: Raleway, sans-serif !important;
    font-weight: 800 !important;
    font-size: 16px !important;
    letter-spacing: 6px !important;
    text-transform: uppercase;
    white-space: nowrap;
}

.invert-startproject-wrap {
    z-index: 20 !important;
    pointer-events: none;
}

.invert-startproject-wrap .start-project-text {
    color: #232427 !important;
}

.invert-startproject-wrap.is-on-dark .start-project-text,
.invert-startproject-wrap.is-on-dark .start-project-text--invert {
    color: #fff !important;
}

@media (max-width: 992px) {
    .home-hero-row .hero-branding-text .type-outline.o-white {
        font-size: clamp(52px, 8.6vw, 84px) !important;
        line-height: 0.78 !important;
        letter-spacing: -0.02em;
    }

    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-wrapper,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-text {
        font-size: clamp(52px, 8.6vw, 84px) !important;
        line-height: 0.95 !important;
        letter-spacing: -0.02em;
    }
}

@media (max-width: 768px) {
    .home-hero-row.fl-row-full-height > .fl-row-content-wrap {
        min-height: 100vh !important;
        min-height: 100dvh !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding-top: 72px !important;
        padding-bottom: 72px !important;
        box-sizing: border-box;
    }

    .home-hero-row .fl-row-content {
        width: 100%;
    }

    .home-hero-row .fl-col-group.fl-node-5eecdfc93f115,
    .home-hero-row .fl-node-5eecdfc93eeaa,
    .home-hero-row .fl-node-c7vhplgsi3d1,
    .home-hero-row .tilt-left-text-vertically,
    .home-hero-row .left-vertical-text,
    .home-hero-row .left-vertical-text.fl-visible-desktop-medium {
        display: none !important;
    }

    .home-hero-row .hero-branding-text {
        padding-left: 20px;
        padding-right: 28px;
    }

    .home-hero-row .hero-branding-text .fl-col-content {
        display: block;
        width: auto !important;
        max-width: calc(100% - 8px) !important;
        margin-left: 0 !important;
        margin-right: auto !important;
        text-align: left;
    }

    .home-hero-row .hero-branding-text .type-outline.o-white {
        display: block;
        font-size: 55px !important;
        line-height: 0.85 !important;
        letter-spacing: 0;
        white-space: nowrap;
        text-align: left;
        -webkit-text-stroke-width: 1.5px;
    }

    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-wrapper,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-text {
        font-size: 55px !important;
        line-height: 1 !important;
        letter-spacing: 0;
        text-align: left !important;
    }

    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline {
        display: block;
    }

    .home-hero-row .fl-node-7dpqm5ogv6zb.fl-module > .fl-module-content {
        margin-bottom: -18px !important;
    }

    .site-header {
        padding-top: calc(env(safe-area-inset-top, 0px) + 16px) !important;
        padding-right: 20px !important;
        padding-bottom: 0 !important;
        padding-left: 20px !important;
    }

    .site-header .js-replace__content__logo {
        margin-top: 0 !important;
    }

    .site-header .open-menu-btn {
        margin-top: 0 !important;
        margin-right: 0 !important;
        position: relative !important;
        width: 28px !important;
        height: 28px !important;
    }

    .site-header .open-menu-btn:before,
    .site-header .open-menu-btn:after {
        width: 28px;
        height: 3px;
    }

    .site-header .open-menu .open-menu-btn:before {
        top: 8px !important;
        transform: none !important;
    }

    .site-header .open-menu .open-menu-btn:after {
        top: 17px !important;
        transform: none !important;
    }

    .menu:has(.close-menu) .open-menu-btn:before,
    .menu:has(.close-menu) .open-menu-btn:after,
    .menu:has(.close-menu) .close-menu .open-menu-btn:before,
    .menu:has(.close-menu) .close-menu .open-menu-btn:after {
        top: 12.5px !important;
        width: 28px;
    }
}

@media (max-width: 480px) {
    .home-hero-row.fl-row-full-height > .fl-row-content-wrap {
        padding-top: 64px !important;
        padding-bottom: 64px !important;
    }

    .home-hero-row .hero-branding-text {
        padding-left: 16px;
        padding-right: 24px;
    }

    .home-hero-row .hero-branding-text .type-outline.o-white,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-wrapper,
    .home-hero-row .fl-node-5eecdfc93f0d9 .pp-headline-dynamic-text {
        font-size: 48px !important;
    }

    .home-hero-row .hero-branding-text .type-outline.o-white {
        -webkit-text-stroke-width: 1.25px;
    }
}

/* About / services outline headlines: keep the comma with the first line */
.o-black-sc {
    display: inline-block;
    max-width: 100%;
}

/* Inner-page outline titles (PORTFOLIO, PRESS, service heroes).
   Page CSS uses 150px + 0.6 line-height, so wrapped lines overlap. */
.fl-builder-content-primary:not(:has(.home-hero-row)) .type-outline {
    line-height: 0.95;
    max-width: 100%;
}

@media (max-width: 992px) {
    .fl-builder-content-primary:not(:has(.home-hero-row)) .type-outline {
        font-size: clamp(2.8rem, 9vw, 5rem) !important;
        letter-spacing: 0.08em !important;
        line-height: 1.05 !important;
    }
}

@media (max-width: 767px) {
    .fl-builder-content-primary:not(:has(.home-hero-row)) .type-outline {
        font-size: clamp(2.2rem, 10vw, 3.1rem) !important;
        letter-spacing: 0.06em !important;
        line-height: 1.12 !important;
        display: block;
        white-space: normal;
        word-break: normal;
        overflow-wrap: break-word;
    }

    #fl-main-content .fl-heading,
    #fl-main-content .fl-heading-text {
        max-width: 100%;
        overflow-wrap: break-word;
    }
}

/* Contact leftover logo was overflowing the mobile intro */
.fl-photo-img[src*="partner-logo.jpg"] {
    max-width: 220px;
    height: auto;
    margin: 0 auto;
    display: block;
}

/* Split client logos sit on top of quote copy — hide that pair only */
.fl-row:has(.quote-content) .fl-col-group:has(.fl-module-photo):not(:has(.quote-content)) {
    display: none !important;
}

/* Portfolio: two hover cards side-by-side is unreadable on phones */
@media (max-width: 767px) {
    #fl-main-content .hover-card-col.fl-col,
    #fl-main-content .fl-col:has(.work-card),
    #fl-main-content .fl-col:has(.txt-services) {
        width: 100% !important;
        max-width: 100% !important;
        clear: both !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .pp-hover-card,
    .pp-hover-card-inner,
    .pp-hover-card-content {
        overflow: hidden;
    }

    .pp-hover-card-title {
        font-size: clamp(1.6rem, 8vw, 2.4rem) !important;
        word-break: break-word;
        padding-left: 12px;
        padding-right: 12px;
    }

    /* Press: two-up UABB grid is too narrow on phones */
    .uabb-blog-posts-grid,
    .uabb-blog-posts.uabb-post-grid-2 {
        display: block !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .uabb-blog-posts .uabb-blog-posts-col-2,
    .uabb-blog-posts .uabb-post-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        display: block !important;
        box-sizing: border-box;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .uabb-blog-posts .uabb-post-grid-sizer {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        margin: 0 !important;
    }
}

.project-gallery img,
.project-hero {
    background-color: #111;
}

/* Related Work cards: center category + title in the box */
.hover-card-col .txt-services,
#fl-main-content a.txt-services {
    display: block !important;
    width: 100%;
    text-align: center !important;
    font-size: 13px !important;
    letter-spacing: 3px !important;
    line-height: 1.3 !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.85);
    padding: 10px 8px 0;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    #fl-main-content a.txt-services {
        font-size: 14px !important;
        letter-spacing: 2px !important;
        padding-top: 14px;
    }
}

.work-card .pp-hover-card.powerpack-style .pp-hover-card-inner {
    justify-content: center !important;
    align-items: center !important;
}

.work-card .pp-hover-card-inner-wrap,
.work-card .pp-hover-card-content,
.work-card .pp-hover-card-title-wrap,
.work-card .pp-hover-card-title,
.work-card .pp-hover-card-description {
    text-align: center !important;
    width: 100%;
}

/* Phase 11: H1s inherit outline/hero type instead of browser heading defaults */
h1.home-hero-h1,
h1.fl-heading,
.fl-rich-text > h1 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

nav p.company-title,
nav p.company-title a {
    display: block;
    margin: 0;
    color: #fff !important;
    font-family: Raleway, sans-serif !important;
    font-weight: 900 !important;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    line-height: 0.85;
}

.product-press-logo-1,
.product-press-logo-2,
.product-press-logo-4,
.product-press-logo-5 {
    max-height: 52px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.ns-video-testimonial img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.footer-boxes {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start;
    align-items: stretch !important;
    gap: 24px;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.footer-boxes--three {
    justify-content: center;
    margin-top: 40px !important;
}

.fl-node-5eecd8b3302be > .fl-row-content-wrap {
    min-height: 0 !important;
    display: block !important;
    padding-left: 200px !important;
    padding-right: 200px !important;
}

.fl-node-5eecef5ac5b83 {
    display: none !important;
}

.fl-node-5eed014961d0c {
    display: none !important;
}

.fl-node-5eecd8b32fd39 {
    width: 100% !important;
    float: none !important;
}

.footer-boxes:before,
.footer-boxes:after {
    display: none !important;
}

.fl-node-5eecd8b3302be .footer-boxes > .fl-col {
    float: none !important;
    clear: none !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 calc((100% - 72px) / 4) !important;
    width: calc((100% - 72px) / 4) !important;
    max-width: calc((100% - 72px) / 4) !important;
    height: auto !important;
    min-height: 0 !important;
    align-self: stretch !important;
}

.fl-node-5eecd8b3302be .footer-boxes > .fl-col > .fl-col-content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    float: none !important;
}

.footer-boxes .fl-heading {
    margin: 0 0 12px;
}

.footer-boxes .fl-heading-text {
    font-family: Raleway, sans-serif !important;
    font-weight: 800 !important;
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
    color: #0E3D93 !important;
    white-space: nowrap;
}

.footer-boxes .fl-module-rich-text,
.footer-boxes .fl-rich-text {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    margin-bottom: 0 !important;
}

.footer-boxes .fl-module-pp-smart-button,
.footer-boxes .fl-module-pp-smart-button > .fl-module-content {
    flex: none !important;
    margin-top: auto !important;
    margin-bottom: 0 !important;
    padding-top: 16px !important;
}

.footer-boxes--three .fl-module-heading,
.footer-boxes--three .fl-module-heading > .fl-module-content,
.footer-boxes--three .fl-module-rich-text,
.footer-boxes--three .fl-module-rich-text > .fl-module-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.footer-boxes .pp-button-wrap {
    width: auto !important;
}

.footer-boxes .pp-button-wrap a.pp-button {
    width: 200px;
    max-width: 100%;
}

.footer-box--ai > .fl-col-content {
    background: #0E3D93;
    padding: 20px 16px 22px;
    box-sizing: border-box;
    text-align: center;
}

.footer-box--ai .fl-heading,
.footer-box--ai .fl-heading-text,
.footer-box--ai .fl-rich-text,
.footer-box--ai .fl-rich-text p {
    text-align: center !important;
}

.footer-box--ai .pp-button-wrap {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.footer-box--ai .fl-heading-text,
.footer-box--ai .fl-rich-text,
.footer-box--ai .fl-rich-text a,
.footer-box--ai .fl-rich-text p {
    color: #fff !important;
}

.footer-box--ai .pp-button-wrap a.pp-button,
.footer-box--ai .pp-button-wrap a.pp-button:visited {
    background: transparent !important;
    background-color: transparent !important;
    border: 2px solid #fff !important;
    color: #fff !important;
    width: 200px;
    padding: 20px;
    font-family: Raleway, sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.footer-box--ai .pp-button,
.footer-box--ai .pp-button *,
.footer-box--ai .pp-button .pp-button-text,
.footer-box--ai .pp-button .pp-button-text:before,
.footer-box--ai .pp-button .pp-button-text:after {
    color: #fff !important;
}

.footer-box--ai .pp-button .pp-button-text:before,
.footer-box--ai .pp-button .pp-button-text:after {
    background: #fff !important;
}

.footer-box--ai .pp-button:hover,
.footer-box--ai .pp-button:focus,
.footer-box--ai .pp-button:hover *,
.footer-box--ai .pp-button:focus * {
    color: #0E3D93 !important;
}

@media (max-width: 992px) {
    .fl-node-5eecd8b3302be > .fl-row-content-wrap {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    .footer-boxes {
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }

    .fl-node-5eecd8b3302be .footer-boxes > .fl-col {
        flex: 0 0 calc((100% - 24px) / 2) !important;
        width: calc((100% - 24px) / 2) !important;
        max-width: calc((100% - 24px) / 2) !important;
    }
}

@media (max-width: 767px) {
    .fl-node-5eecd8b3302be > .fl-row-content-wrap {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .footer-boxes {
        flex-wrap: wrap !important;
    }

    .fl-node-5eecd8b3302be .footer-boxes > .fl-col {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .footer-boxes .fl-heading-text {
        white-space: normal;
    }

    .footer-boxes .pp-button-wrap a.pp-button {
        width: 100%;
    }
}

@media (max-width: 992px) {
    .fl-builder-content .fl-node-5eecdfc93ee6e .fl-rich-text,
    .fl-builder-content .fl-node-5eecdfc93ee6e .fl-rich-text *:not(b, strong) {
        font-size: 52px !important;
        letter-spacing: 1px !important;
        margin: 8px 0 !important;
        line-height: 1.05 !important;
    }
}

@media (max-width: 767px) {
    .fl-builder-content .fl-node-5eecdfc93ee6e .fl-rich-text,
    .fl-builder-content .fl-node-5eecdfc93ee6e .fl-rich-text *:not(b, strong) {
        font-size: 32px !important;
        letter-spacing: 0.5px !important;
        margin: 4px 0 !important;
    }
}

/* Quote marks: Ultimate Icons quote glyph, not a photo */
.quote-content {
    position: relative;
    z-index: 2;
}

.fl-builder-content .fl-module.quote-content:before,
.fl-builder-content .fl-module.quote-content:after,
.quote-content:before,
.quote-content:after {
    background: none !important;
    background-image: none !important;
    content: "\ea40" !important;
    font-family: "Ultimate-Icons" !important;
    font-style: normal !important;
    font-weight: normal !important;
    font-variant: normal;
    text-transform: none;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #d4d4d4 !important;
    font-size: 80px;
    line-height: 1;
    width: auto !important;
    height: auto !important;
    display: block !important;
    position: absolute !important;
    z-index: -1;
    margin: 0;
    padding: 0;
    top: 50%;
    left: 50%;
    float: none !important;
    clear: none !important;
}

.fl-builder-content .fl-module.quote-content:before,
.quote-content:before {
    -webkit-transform: translate(-120%, -100%);
    -ms-transform: translate(-120%, -100%);
    transform: translate(-120%, -100%);
}

.fl-builder-content .fl-module.quote-content:after,
.quote-content:after {
    -webkit-transform: translate(20%, 0) rotate(180deg);
    -ms-transform: translate(20%, 0) rotate(180deg);
    transform: translate(20%, 0) rotate(180deg);
}

@media (max-width: 767px) {
    .fl-builder-content .fl-module.quote-content:before,
    .fl-builder-content .fl-module.quote-content:after,
    .quote-content:before,
    .quote-content:after {
        font-size: 56px;
    }
}

/* Numbered process steps only (We Talk / AI method blocks).
   Do not change colors, type, or other page modules. */
.numbered-process .fl-col-group-nested,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: flex-start;
    column-gap: 28px;
}

.numbered-process .fl-col-group-nested::before,
.numbered-process .fl-col-group-nested::after,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title)::before,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title)::after {
    content: none !important;
    display: none !important;
}

.numbered-process .fl-col-group-nested > .fl-col:first-child,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:first-child {
    flex: 0 0 168px !important;
    width: 168px !important;
    max-width: 168px !important;
    overflow: visible;
}

.numbered-process .fl-col-group-nested > .fl-col:last-child,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:last-child {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    position: relative;
    z-index: 2;
}

.numbered-process .fl-col-group-nested > .fl-col:first-child .fl-module-heading > .fl-module-content,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:first-child .fl-module-heading > .fl-module-content {
    margin-left: 0 !important;
}

.numbered-process .fl-col-group-nested > .fl-col:last-child .fl-module-pp-heading,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:last-child .fl-module-pp-heading {
    padding-left: 0 !important;
}

.numbered-process .fl-col-group-nested > .fl-col:first-child .fl-heading,
.fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:first-child .fl-heading {
    line-height: 0.85 !important;
    white-space: nowrap;
}

.numbered-process .fl-module-heading h2.fl-heading,
.numbered-process .fl-module-heading h2.fl-heading .fl-heading-text,
.numbered-process .fl-module-heading h2.fl-heading .fl-heading-text * {
    color: #fff !important;
}

.numbered-process .uabb-row-separator {
    display: none !important;
}

.numbered-process .fl-col-group + .fl-col-group {
    border: none !important;
    box-shadow: none !important;
}

@media (max-width: 992px) {
    .numbered-process .fl-col-group-nested,
    .fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) {
        column-gap: 20px;
    }

    .numbered-process .fl-col-group-nested > .fl-col:first-child,
    .fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:first-child {
        flex-basis: 110px !important;
        width: 110px !important;
        max-width: 110px !important;
    }
}

@media (max-width: 768px) {
    .numbered-process .fl-col-group-nested,
    .fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) {
        column-gap: 14px;
    }

    .numbered-process .fl-col-group-nested > .fl-col:first-child,
    .fl-col-group-nested:has(> .fl-col .fl-module-heading .fl-heading-text):has(> .fl-col .pp-heading-content .pp-primary-title) > .fl-col:first-child {
        flex-basis: 72px !important;
        width: 72px !important;
        max-width: 72px !important;
    }
}

/* Press newsletter: email + arrow button in one row */
.newsletter-custom .wpforms-container .wpforms-form {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    position: relative;
}

.newsletter-custom .wpforms-field-hp,
.newsletter-custom .wpforms-recaptcha-hidden,
.newsletter-custom .wpforms-recaptcha-container {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0);
}

.newsletter-custom .wpforms-field-container {
    flex: 1 1 auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}

.newsletter-custom .wpforms-field {
    margin: 0 !important;
    padding: 0 !important;
}

.newsletter-custom .wpforms-form .wpforms-field-container .wpforms-field-label {
    position: absolute !important;
    top: -8px;
    left: 18px;
    z-index: 1;
    margin: 0;
    padding: 0 8px !important;
    background: #000 !important;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.newsletter-custom .wpforms-required-label {
    display: none;
}

.newsletter-custom .wpforms-form input[type="email"] {
    display: block !important;
    width: 100% !important;
    height: 70px !important;
    min-height: 70px !important;
    max-height: 70px !important;
    margin: 0 !important;
    padding: 0 24px !important;
    border: 1px solid #fff !important;
    border-right: none !important;
    background: transparent !important;
    color: #fff !important;
    font-family: Raleway, sans-serif;
    font-size: 16px !important;
    line-height: 68px !important;
    box-sizing: border-box !important;
    -webkit-appearance: none;
    appearance: none;
}

.newsletter-custom .wpforms-submit-container {
    flex: 0 0 70px !important;
    width: 70px !important;
    height: 70px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: stretch;
    align-self: flex-start;
}

.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit,
.newsletter-custom .wpforms-container .wpforms-form button[type="submit"] {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    display: block !important;
    width: 70px !important;
    height: 70px !important;
    min-height: 70px !important;
    max-height: 70px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #fff !important;
    background: transparent !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    overflow: hidden;
}

.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit:before,
.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit:after {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    color: transparent !important;
    font-size: 0 !important;
    background: #0E3D93;
    transition: all ease 0.3s;
}

.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit:before {
    width: 22px !important;
    height: 2px !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-60%, -50%);
}

.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit:after {
    width: 8px !important;
    height: 8px !important;
    top: 50% !important;
    left: 50% !important;
    background: none;
    border-top: 2px solid #0E3D93;
    border-right: 2px solid #0E3D93;
    transform: translate(-10%, -50%) rotate(45deg);
}

.newsletter-custom .wpforms-container .wpforms-form .wpforms-submit:hover:before {
    width: 28px !important;
    right: auto !important;
}

@media (max-width: 767px) {
    .newsletter-custom .wpforms-form input[type="email"],
    .newsletter-custom .wpforms-submit-container,
    .newsletter-custom .wpforms-container .wpforms-form .wpforms-submit,
    .newsletter-custom .wpforms-container .wpforms-form button[type="submit"] {
        height: 60px !important;
        min-height: 60px !important;
        max-height: 60px !important;
    }

    .newsletter-custom .wpforms-form input[type="email"] {
        line-height: 58px !important;
    }

    .newsletter-custom .wpforms-submit-container,
    .newsletter-custom .wpforms-container .wpforms-form .wpforms-submit,
    .newsletter-custom .wpforms-container .wpforms-form button[type="submit"] {
        width: 60px !important;
        flex-basis: 60px !important;
    }
}

/* Contact hero: white field, halftone hand on the left, copy on the right */
.contact-hero-row > .fl-row-content-wrap,
.fl-node-bvtqily8z296 > .fl-row-content-wrap {
    background-color: #fff !important;
    background-image: url(../images/contact-hero.png) !important;
    background-repeat: no-repeat !important;
    background-position: left bottom !important;
    background-attachment: scroll !important;
    background-size: min(50vw, 640px) auto !important;
    padding-top: 140px !important;
    min-height: 100vh !important;
    align-items: flex-start !important;
}

.contact-hero-row .fl-col-group-align-bottom,
.fl-node-bvtqily8z296 .fl-col-group-align-bottom,
.contact-hero-row .fl-col-group-equal-height .fl-col-content,
.fl-node-bvtqily8z296 .fl-col-group-equal-height .fl-col-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
}

.contact-hero-row .pp-heading-content .pp-heading .heading-title span.pp-primary-title,
.fl-node-bvtqily8z296 .pp-heading-content .pp-heading .heading-title span.pp-primary-title {
    color: #000 !important;
}

.contact-hero-row .pp-sub-heading,
.contact-hero-row .pp-sub-heading p,
.fl-node-bvtqily8z296 .pp-sub-heading,
.fl-node-bvtqily8z296 .pp-sub-heading p {
    color: #aaaaab !important;
}

.contact-hero-st-arrow .arrow-link,
.hero-st-arrow .arrow-link,
.contact-hero-row .arrow-link,
.fl-node-nwazkvxsib15 .arrow-link {
    display: inline-flex !important;
    align-items: center;
    gap: 16px;
    width: auto !important;
    max-width: 100%;
    position: relative;
}

.contact-hero-st-arrow .hero-heading,
.hero-st-arrow .hero-heading,
.contact-hero-row .contact-hero-start-project-text {
    display: inline-block;
    margin: 0;
    padding-right: 0 !important;
}

.contact-hero-st-arrow .hero-heading-text,
.hero-st-arrow .hero-heading-text,
.contact-hero-row .hero-heading-text {
    display: inline-block;
    padding-right: 0;
}

.contact-hero-st-arrow .hero-arrow,
.hero-st-arrow .hero-arrow,
.contact-hero-row .hero-arrow,
.fl-node-nwazkvxsib15 .hero-arrow {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    width: 52px !important;
    flex: 0 0 52px;
    margin: 0 !important;
}

.fl-node-nwazkvxsib15 .fl-photo-img {
    max-width: 85%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* About — Who We Are: hosted team video fills the 16:9 slot */
.fl-node-j7npca56xe8y .pp-fit-aspect-ratio {
    position: relative;
    height: 0;
    padding-bottom: 56.25%;
    overflow: hidden;
    background: #000;
}

.fl-node-j7npca56xe8y .pp-video-player,
.fl-node-j7npca56xe8y .who-we-are-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Branding "best logos" photo: full-width landscape banner */
.fl-node-5e79c075ebc84 > .fl-row-content-wrap {
    padding: 0 !important;
}

.fl-node-5e79c075ebc84 .fl-photo,
.fl-node-5e79c075ebc84 .fl-photo-content {
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
    line-height: 0;
}

.fl-node-5e79c0c0d43af .fl-photo-img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

/* Maintenance (and other) photo rows: full-width landscape banner */
.photo-banner-row > .fl-row-content-wrap {
    padding: 0 !important;
}

.photo-banner-row .fl-photo,
.photo-banner-row .fl-photo-content {
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
    line-height: 0;
}

.photo-banner-row .fl-photo-img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
}

/* Effective branding photo: full-width landscape, not a 100vh portrait */
.fl-node-5e79c8c620aae.fl-row-full-height > .fl-row-content-wrap {
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 2.15 / 1;
    background-image: url("../images/branding-banner.png") !important;
    background-attachment: scroll !important;
    background-size: cover !important;
    background-position: center center !important;
}

/* Service photo bands: small client shots were tiling — cover, never repeat */
#fl-main-content .fl-row-bg-photo:not(.contact-hero-row):not(.home-hero-row) > .fl-row-content-wrap {
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
}

.fl-node-5edd203ee9c82 > .fl-row-content-wrap {
    background-image: url("../images/service-shopify.png") !important;
}

.fl-node-aknx1fzw7j5o > .fl-row-content-wrap {
    background-image: url("../images/service-wordpress.png") !important;
}

.fl-node-5edd232f33fcd > .fl-row-content-wrap {
    background-image: url("../images/service-uxui.png") !important;
}

.fl-node-5edd21ad7d0b0 > .fl-row-content-wrap {
    background-image: url("../images/service-websites.png") !important;
}

.fl-node-5edd2424bb898 > .fl-row-content-wrap {
    background-image: url("../images/seo-computer.png") !important;
}

.fl-node-5edd24d06f31d > .fl-row-content-wrap {
    background-image: url("../images/service-frontend.png") !important;
}

/* Marketing / Design / Development: 20px card gutters, 60px before black footer */
.service-banner-row > .fl-row-content-wrap {
    background-color: #fff !important;
    background-image: none !important;
    padding-top: 20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-bottom: 60px !important;
}

.service-banner-row .fl-col-group {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
}

.service-banner-row .fl-col-group > .fl-col {
    float: none !important;
}

.service-banner-row .fl-col > .fl-col-content {
    min-height: 90vh;
    height: auto !important;
    margin: 20px 20px 0 !important;
    padding: 0 !important;
    box-shadow: 0 0 10px 0 #aaaaab;
}

.service-banner-row .fl-module,
.service-banner-row .fl-module-content,
.service-banner-row .fl-html,
.service-banner-row .service-banner-wrapper {
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
}

/* Integration Methodology block only — leave other rows alone */
.methodology-section > .fl-row-content-wrap {
    background-color: #000 !important;
}

.methodology-section .fl-heading,
.methodology-section .fl-heading-text {
    color: #fff !important;
}

/* Client logo grid: brand marks, not photos */
#clients-info {
    max-width: 100%;
    overflow: hidden;
}

#clients-info:before,
#clients-info:after,
#clients-info .fl-module-content:before,
#clients-info .fl-module-content:after {
    content: none !important;
    display: none !important;
}

.fl-node-2vlmnke0hips > .fl-row-content-wrap {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
}

#clients-info .pp-logos-wrapper,
.pp-logos-wrapper.pp-logos-grid {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 18px 20px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

#clients-info .pp-logos-wrapper:before,
#clients-info .pp-logos-wrapper:after,
.pp-logos-wrapper.pp-logos-grid:before,
.pp-logos-wrapper.pp-logos-grid:after,
#clients-info .pp-logos-content:before,
#clients-info .pp-logos-content:after {
    content: none !important;
    display: none !important;
}

#clients-info .pp-logo,
.pp-logos-grid .pp-logo {
    float: none !important;
    clear: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 calc((100% - 60px) / 4);
    width: calc((100% - 60px) / 4) !important;
    max-width: calc((100% - 60px) / 4);
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

#clients-info .pp-logo > a,
#clients-info .pp-logo .pp-logo-dummy,
#clients-info .pp-logo .pp-logo-inner,
#clients-info .pp-logo .pp-logo-inner-wrap,
#clients-info .pp-logo .logo-image-wrapper {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    text-align: center;
    text-decoration: none !important;
}

#clients-info .pp-logo > a,
#clients-info .pp-logo .pp-logo-dummy,
#clients-info .pp-logo .pp-logo-inner,
#clients-info .pp-logo .pp-logo-inner-wrap {
    height: auto !important;
    min-height: 0 !important;
}

#clients-info .pp-logo .logo-image-wrapper {
    height: 112px !important;
    min-height: 112px !important;
    padding: 0;
}

#clients-info .pp-logo > a {
    gap: 0;
    min-height: 0;
    padding: 0;
}

.pp-logos-content .pp-logo .logo-image,
.pp-logos-content .pp-logo img,
#clients-info .pp-logo img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 108px !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 auto;
    display: block;
    filter: none !important;
    opacity: 1 !important;
    transform: scale(1);
    transition: transform 0.22s ease, opacity 0.22s ease;
}

#clients-info .pp-logo:hover img {
    filter: none !important;
    opacity: 0.78 !important;
    transform: scale(1.035);
}

#clients-info .pp-logo a::after,
#clients-info .pp-logo a[title]::after,
#clients-info .title-wrapper,
#clients-info .logo-title,
.clients-grid-heading {
    content: none !important;
    display: none !important;
}

@media (max-width: 992px) {
    .fl-node-2vlmnke0hips > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    #clients-info .pp-logos-wrapper,
    .pp-logos-wrapper.pp-logos-grid {
        gap: 16px 16px;
    }

    #clients-info .pp-logo,
    .pp-logos-grid .pp-logo {
        flex: 0 0 calc((100% - 16px) / 2);
        width: calc((100% - 16px) / 2) !important;
        max-width: calc((100% - 16px) / 2);
    }

    #clients-info .pp-logo .logo-image-wrapper {
        height: 104px !important;
        min-height: 104px !important;
    }

    #clients-info .pp-logo img {
        max-height: 100px !important;
    }
}

.fl-node-5e803f7b16964 > .fl-row-content-wrap {
    background-color: #fff !important;
}

.service-banner-row .service-banner-wrapper {
    display: block;
}

.service-banner-row .service-banner-link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    height: 100% !important;
    min-height: 90vh;
    padding: 40px 24px;
    box-sizing: border-box;
    text-decoration: none;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.service-banner-row .service-banner-link-marketing {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("../images/banner-marketing.png");
}

.service-banner-row .service-banner-link-design {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("../images/banner-design.png");
}

.service-banner-row .service-banner-link-development {
    background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("../images/banner-development.png");
}

.service-banner-row .service-banner-heading,
.service-banner-row .service-banner-text {
    color: #fff !important;
}

.service-banner-row .service-banner-heading {
    margin: 0 0 15px !important;
}

.service-banner-row .service-banner-text {
    margin: 0 !important;
}

.service-banner-row .service-banner-img {
    display: none !important;
}

@media (max-width: 767px) {
    .service-banner-row .fl-col-group > .fl-col {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .service-banner-row .fl-col > .fl-col-content {
        min-height: 420px;
        margin: 0 20px 20px !important;
    }

    .service-banner-row .service-banner-link {
        min-height: 420px;
    }

    .service-banner-row > .fl-row-content-wrap {
        padding-bottom: 40px !important;
    }
}

/* Freeze invert copies while the overlay is open so scroll cannot swap icons. */
html.menu-is-open,
html.menu-is-open body {
    overflow: hidden !important;
    overscroll-behavior: none;
    scrollbar-gutter: auto !important;
    scrollbar-width: none;
}

html.menu-is-open::-webkit-scrollbar,
html.menu-is-open body::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

html.menu-is-open nav {
    overflow: hidden !important;
    overscroll-behavior: contain;
    pointer-events: auto !important;
}

@media (max-width: 768px) {
    html.menu-is-open nav {
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    html.menu-is-open nav::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
}

html.menu-is-open .js-replace-line > .js-replace__line,
html.menu-is-open .js-replace-line.js-replace--reverse__line > .js-replace__line,
html.menu-is-open .js-replace-line:not(.js-replace--reverse__line) > .js-replace__line {
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
}

html.menu-is-open .js-replace-line > .js-replace__line:first-child,
html.menu-is-open .js-replace-line.js-replace--reverse__line > .js-replace__line:first-child,
html.menu-is-open .menu:has(.close-menu) .js-replace-line > .js-replace__line:first-child {
    visibility: visible !important;
    pointer-events: auto !important;
}

html.menu-is-open .fl-page > header.fl-builder-content[data-type="header"] {
    z-index: 10000 !important;
}

html.menu-is-open nav {
    z-index: 10001 !important;
}

html.menu-is-open .site-header {
    z-index: 10002 !important;
    pointer-events: none;
}

html.menu-is-open .logo-wrap,
html.menu-is-open .logo-wrap *,
html.menu-is-open .js-replace-logo,
html.menu-is-open .js-replace-logo.js-replace--reverse__logo > .js-replace__logo,
html.menu-is-open .js-replace-logo.js-replace--reverse__logo > .js-replace__logo:first-child,
html.menu-is-open .js-replace-logo:not(.js-replace--reverse__logo) > .js-replace__logo:last-child {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html.menu-is-open .menu-line-wrap,
html.menu-is-open .js-replace__content__line,
html.menu-is-open .close-menu,
html.menu-is-open .close-menu .open-menu-btn {
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
}

html.menu-is-open .close-menu .open-menu-btn:before,
html.menu-is-open .close-menu .open-menu-btn:after {
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
}

html.menu-is-open #fl-main-content,
html.menu-is-open #fl-main-content *,
html.menu-is-open .invert-startproject-wrap,
html.menu-is-open .fl-page-footer-wrap,
html.menu-is-open .fl-page-footer-wrap * {
    visibility: hidden !important;
    pointer-events: none !important;
}




