﻿/* =====================================================================
   PBB HOME + SOLUTION PAGES  -  responsive stylesheet (Falcon / Bootstrap 5)

   Breakpoints used (same as Bootstrap 5):
     xs  < 576      small phones
     sm  576-767    large phones / small tablets
     md  768-991    tablets
     lg  992-1199   small laptops
     xl  >= 1200    desktops

   Rule order inside every component: BASE first, then breakpoint overrides,
   then dark mode. Never move an override above its base rule.
   ===================================================================== */





.pbb-gradient-text {
    background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}


.pbb-point {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-width: 0;
    padding: .5rem 1.5rem;
}

.pbb-point-icon {
    font-size: 1.5rem;
}

.pbb-point-text {
    font-size: .95rem;
    line-height: 1.35;
}

@media (min-width: 768px) {
    .pbb-point {
        padding: .5rem 2.5rem;
    }
}




/* =====================================================================
   HOME HERO (modifier of .pbb-sol-hero)
   desktop: text left, image right | tablet: text then image
   phone: image hidden, text fills the whole screen
   ===================================================================== */

/* ---------- content ---------- */


/* Connect | Manage | Follow Up | Grow */
.pbb-sol-hero--home .pbb-home-labels {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 0;
    margin-bottom: 1.6rem;
}

    .pbb-sol-hero--home .pbb-home-labels span {
        color: #0a5fc4;
        font-weight: 700;
        font-size: .85rem;
        letter-spacing: .06em;
        text-transform: uppercase;
        padding: 0 1rem;
        line-height: 1.2;
    }

        .pbb-sol-hero--home .pbb-home-labels span:first-child {
            padding-left: 0;
        }

        .pbb-sol-hero--home .pbb-home-labels span + span {
            border-left: 1.5px solid #0a5fc4;
        }

.pbb-sol-hero--home .pbb-home-cta {
    width: 100%;
    max-width: 320px;
    justify-content: center;
    margin-top: 2rem;
}

/* 3 feature points */
.pbb-sol-hero--home .pbb-home-points {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    max-width: 560px;
}

.pbb-sol-hero--home .pbb-home-point {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
}

    .pbb-sol-hero--home .pbb-home-point + .pbb-home-point {
        border-left: 1.5px solid rgba(10, 95, 196, .45);
        padding-left: .75rem;
    }

.pbb-sol-hero--home .pbb-home-point-icon {
    flex: 0 0 auto;
    color: #0a5fc4;
    font-size: 1.35rem;
}

.pbb-sol-hero--home .pbb-home-point-text {
    color: #0b1f4b;
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.35;
}

/* ---------- laptop / desktop (>= 992px) ---------- */
@media (min-width: 992px) {
    .pbb-sol-hero--home .pbb-sol-content {
        width: 42%;
        text-align: left;
    }

    .pbb-sol-hero--home .pbb-sol-visual {
        width: 58%;
    }
}

/* small laptops (992-1199): tighter so nothing overflows */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .pbb-sol-hero--home .pbb-home-labels span {
        padding: 0 .7rem;
        font-size: .78rem;
    }

    .pbb-sol-hero--home .pbb-home-point-text {
        font-size: .8rem;
    }

    .pbb-sol-hero--home .pbb-home-point-icon {
        font-size: 1.15rem;
    }
}

/* ---------- tablet + phone (< 992px): centred ---------- */
@media (max-width: 991.98px) {
    .pbb-sol-hero--home {
        min-height: 0; /* was 100vh / 100svh */
        display: block; /* no vertical centring needed */
        padding-top: calc(max(var(--pbb-nav-h, 0px), 72px) + 2rem);
        padding-bottom: 2.5rem;
    }

        .pbb-sol-hero--home .pbb-sol-visual {
            display: none !important;
        }

        .pbb-sol-hero--home .pbb-sol-content {
            width: 100%;
            max-width: 680px;
            margin: 0 auto;
            text-align: center;
        }

        
        .pbb-sol-hero--home .pbb-home-points {
            margin-left: auto;
            margin-right: auto;
        }

        .pbb-sol-hero--home .pbb-home-labels {
            justify-content: center;
        }

            .pbb-sol-hero--home .pbb-home-labels span:first-child {
                padding-left: 1rem;
            }

        .pbb-sol-hero--home .pbb-home-point {
            flex-direction: column;
            text-align: center;
            gap: .4rem;
        }

            .pbb-sol-hero--home .pbb-home-point + .pbb-home-point {
                padding-left: 0;
            }
}



/* very small phones (<= 359px) */
@media (max-width: 359.98px) {
    .pbb-sol-hero--home .pbb-sol-inner {
        padding: 0 .85rem;
    }

    .pbb-sol-hero--home .pbb-home-labels span {
        font-size: .66rem;
        padding: 0 .45rem;
    }

    .pbb-sol-hero--home .pbb-home-point-text {
        font-size: .7rem;
    }

    .pbb-sol-hero--home .pbb-home-cta {
        max-width: 210px;
        padding: .5rem 1.25rem !important;
        font-size: .85rem;
    }
}


/*@media (max-width: 991.98px) and (max-height: 520px) {
    .pbb-sol-hero--home {
        min-height: 0;
    }
}*/

/* dark mode */

[data-bs-theme="dark"] .pbb-sol-hero--home .pbb-home-point-text {
    color: #fff;
}

[data-bs-theme="dark"] .pbb-sol-hero--home {
    color: #a9b6cf;
}

[data-bs-theme="dark"] .pbb-sol-hero--home .pbb-home-labels span,
[data-bs-theme="dark"] .pbb-sol-hero--home .pbb-home-point-icon {
    color: #7db8ff;
}
/* =====================================================================
   2. HOME - IMAGE SCROLL SECTION
   Desktop / tablet : pinned GSAP scroll animation
   Phones, short landscape screens, reduced motion : static image + slow
   auto-moving module strip (no pinning)
   ===================================================================== */
.pbb-scroll-section {
    position: relative;
    width: 100%;
    background: #fff;
    isolation: isolate;
}

.pbb-scroll-stage {
    position: relative;
    width: 100%;
    height: calc(100vh - var(--pbb-nav-h, 0px));
    height: calc(100svh - var(--pbb-nav-h, 0px));
    min-height: 320px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.pbb-scroll-head {
    flex: 0 0 auto;
    text-align: center;
    padding: .75rem 1rem .25rem;
    margin-bottom: 20px;
    max-width: 900px;
}





.pbb-canvas-wrap {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    container-type: size;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* same aspect ratio as image 2, so lines/modules line up at every size */
.pbb-canvas {
    position: relative;
    aspect-ratio: 1480 / 1060;
    width: min(100cqw, calc(100cqh * 1.3962));
}

.pbb-scene {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    will-change: opacity, transform;
    user-select: none;
    pointer-events: none;
}

.pbb-scene-first {
    opacity: 1;
    z-index: 1;
}

.pbb-scene-second {
    opacity: 0;
    z-index: 2;
    transform: scale(0.96);
}

.pbb-lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    pointer-events: none;
    overflow: visible;
}

.pbb-line {
    fill: none;
    stroke: #1e88e5;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 0.1 11;
}

.pbb-line-mask {
    fill: none;
    stroke: #fff;
    stroke-width: 14;
    stroke-linecap: butt;
    stroke-dasharray: 1 2;
    stroke-dashoffset: 1;
}

.pbb-module {
    position: absolute;
    z-index: 4;
    width: 20%;
    height: auto;
    opacity: 0;
    will-change: opacity, transform;
    user-select: none;
    pointer-events: none;
}

/* module strip: hidden when the pinned animation runs */
.pbb-modgrid {
    display: none;
}

@keyframes pbbMarquee {
    to {
        transform: translateX(-50%);
    }
}

/* STATIC MODE
   Must match the JS gsap.matchMedia() query (see notes):
   JS runs the animation only on  (min-width:768px) and (min-height:520px)
   and (prefers-reduced-motion: no-preference)                              */
@media (max-width: 767.98px), (max-height: 519.98px), (prefers-reduced-motion: reduce) {

    #pbbScrollSection .pbb-scroll-stage {
        height: auto;
        min-height: 0;
        padding-bottom: 1rem;
    }

    #pbbScrollSection .pbb-scroll-head {
        width: 100%;
        padding: 1.5rem .75rem 0;
        margin-bottom: .75rem;
    }

   


    #pbbScrollSection .pbb-canvas-wrap {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        min-height: 0;
        container-type: normal;
    }

    #pbbScrollSection .pbb-canvas {
        width: 100%;
        max-width: 620px;
        height: auto;
    }

    /* show the clean handshake; hide everything the animation needs */
    #pbbScrollSection .pbb-scene-first {
        opacity: 1 !important;
        transform: none !important;
    }

    #pbbScrollSection .pbb-scene-second,
    #pbbScrollSection .pbb-lines,
    #pbbScrollSection .pbb-module {
        display: none !important;
    }

    /* slow continuous marquee */
    #pbbScrollSection .pbb-modgrid {
        display: block;
        width: 100%;
        overflow: hidden;
        padding: .5rem 0 1rem;
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
        mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    }

    #pbbScrollSection .pbb-modtrack {
        display: flex;
        width: max-content;
        animation: pbbMarquee 30s linear infinite;
    }

    #pbbScrollSection .pbb-modgrid:active .pbb-modtrack {
        animation-play-state: paused;
    }

    #pbbScrollSection .pbb-modtrack img {
        flex: 0 0 auto;
        width: clamp(130px, 38vw, 170px);
        height: auto;
        margin-right: .75rem; /* margin (not gap) keeps the -50% loop seamless */
        user-select: none;
        -webkit-user-drag: none;
    }
}

/* larger static screens (landscape phones, small tablets) */
@media (min-width: 576px) and (max-width: 767.98px), (min-width: 768px) and (max-height: 519.98px) {
    #pbbScrollSection .pbb-canvas {
        max-width: 760px;
    }
}

@media (hover: hover) {
    #pbbScrollSection .pbb-modgrid:hover .pbb-modtrack {
        animation-play-state: paused;
    }
}




/* =====================================================================
   3. HOME - GROWTH SECTION
   ===================================================================== */
.pbb-growth {
    background: linear-gradient(180deg, #eef6ff 0%, #f7fbff 100%);
}




.pbb-card {
    background: #fff;
    border-radius: 1.25rem;
    padding: 1.75rem 1.5rem;
    text-align: left;
    box-shadow: 0 6px 24px rgba(30, 80, 160, 0.08);
    transition: transform .2s ease, box-shadow .2s ease;
}

.pbb-card-body {
    min-width: 0;
}

.pbb-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #dbeeff;
    color: #1e88e5;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    margin-bottom: 1.25rem;
}





/* hover lift only on devices that really hover (no sticky hover on touch) */
@media (hover: hover) {
    .pbb-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 10px 30px rgba(30, 80, 160, 0.14);
    }
}

/* small laptops: 4 narrow columns */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .pbb-card {
        padding: 1.5rem 1.15rem;
    }

    .pbb-icon {
        width: 56px;
        height: 56px;
        font-size: 1.4rem;
    }
}

/* phones + small tablets (single column): compact icon-left cards */
@media (max-width: 767.98px) {
    .pbb-card {
        display: flex;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.1rem 1rem;
        border-radius: 1rem;
    }

    .pbb-icon {
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        margin-bottom: 0;
        font-size: 1.2rem;
    }

   

   
}

/* fade-up reveal (JS adds .pbb-reveal-ready / .in) */
.pbb-reveal-ready .pbb-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease;
    transition-delay: calc(var(--i, 0) * 90ms);
}

    .pbb-reveal-ready .pbb-reveal.in {
        opacity: 1;
        transform: none;
    }

[data-bs-theme="dark"] .pbb-growth {
    background: #0b1220;
}

[data-bs-theme="dark"] .pbb-card {
    background: #141c2e;
    box-shadow: none;
}




[data-bs-theme="dark"] .pbb-icon {
    background: #1b2a47;
}


/* =====================================================================
   4. HOME - FEATURED PROJECTS / PROPERTIES
   (carousel: 1 card < 576, 2 cards < 992, 4 cards >= 992 - set in JS)
   ===================================================================== */
.pbb-featured {
    background: #ffffff;
    overflow: hidden;
}

.pbb-featured-alt {
    background: #eef6ff;
}
/* global gradient button (hero, featured, anywhere) */
.pbb-gradient-btn {
    background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
    border: 0;
}

    .pbb-gradient-btn:hover {
        filter: brightness(1.1);
    }



.pbb-customer-cta {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1rem;
}

    .pbb-customer-cta .pbb-cta-btn {
        min-width: 240px;
        min-height: 48px;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        padding: 10px 28px !important;
        font-size: 15px;
        font-weight: 600;
        text-decoration: none;
        transition: all 0.25s ease;
    }

    /* Primary gradient button */
    .pbb-customer-cta .pbb-gradient-btn {
        background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
        color: #fff;
        border: 1px solid transparent;
    }

.pbb-gradient-btn,
.pbb-property-btn {
    max-width: 100%;
}
        .pbb-customer-cta .pbb-gradient-btn:hover {
            color: #fff;
            filter: brightness(1.08);
            transform: translateY(-2px);
        }

    /* Outlined property button */
    .pbb-customer-cta .pbb-property-btn {
        background: #fff;
        color: #063b88;
        border: 2px solid #0a82f7;
    }

        .pbb-customer-cta .pbb-property-btn:hover {
            background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
            color: #fff;
            border-color: #0a82f7;
            transform: translateY(-2px);
        }

/* Mobile responsive */
@media (max-width: 576px) {
    .pbb-customer-cta {
        flex-direction: column;
        gap: 12px;
    }

        .pbb-customer-cta .pbb-cta-btn {
            width: 100%;
            max-width: 280px;
            min-width: 0;
            min-height: 44px;
            padding: 9px 20px !important;
            font-size: 14px;
        }
}

.pbb-feat-wrap {
    padding: 0 30px;
}

.pbb-feat-carousel .carousel-inner {
    padding: 0.5rem 0.5rem 1.25rem;
}

.pbb-feat-carousel .carousel-item > .row {
    align-items: stretch;
}

.pbb-feat-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    background: #fff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(30, 80, 160, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pbb-feat-img {
    display: block;
    width: 100%;
    height: 190px;
    overflow: hidden;
    flex-shrink: 0;
}

    .pbb-feat-img img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.4s ease;
    }

.pbb-feat-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1rem 1.1rem 1.15rem;
}



.pbb-feat-meta {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    color: #4a5a78;
    font-size: 0.875rem;
    line-height: 1.5;
    margin-bottom: 0.4rem;
    overflow-wrap: anywhere;
}

    .pbb-feat-meta .fas,
    .pbb-feat-meta .far {
        flex: 0 0 18px;
        width: 18px;
        color: #6b7a96;
        text-align: center;
        margin-top: 0.2rem;
    }

.pbb-feat-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid #cfe0f5;
    border-radius: 50%;
    background: #fff;
    color: #0a5fc4;
    box-shadow: 0 4px 14px rgba(30, 80, 160, 0.12);
    transition: background 0.2s ease, color 0.2s ease;
}

    .pbb-feat-nav:hover {
        background: #0a5fc4;
        color: #fff;
    }

    .pbb-feat-nav:focus-visible {
        outline: 3px solid rgba(10, 95, 196, .45);
        outline-offset: 2px;
    }

.pbb-feat-prev {
    left: -4px;
}

.pbb-feat-next {
    right: -4px;
}

@media (hover: hover) {
    .pbb-feat-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 12px 28px rgba(30, 80, 160, 0.14);
    }

        .pbb-feat-card:hover .pbb-feat-img img {
            transform: scale(1.04);
        }
}

/* tablets */
@media (min-width: 576px) and (max-width: 991.98px) {
    .pbb-feat-wrap {
        padding: 0 26px;
    }

    .pbb-feat-img {
        height: 180px;
    }

    .pbb-feat-body {
        padding: 0.9rem;
    }

    .pbb-feat-nav {
        width: 38px;
        height: 38px;
    }
}

/* large desktops: taller image */
@media (min-width: 1400px) {
    .pbb-feat-img {
        height: 210px;
    }
}

/* phones */
@media (max-width: 575.98px) {
    .pbb-customer-cta .pbb-cta-btn,
    .pbb-serve-panel .pbb-gradient-btn {
        width: 100%;
        justify-content: center;
    }

    .pbb-serve-panel {
        padding: 1rem;
    }

    .pbb-feature {
        padding: .9rem;
    }

        .pbb-feature .pbb-icon-box {
            width: 38px;
            height: 38px;
        }
    .pbb-featured {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

        .pbb-featured .container {
            padding-left: 12px;
            padding-right: 12px;
        }

        .pbb-featured .text-center.mb-4 {
            margin-bottom: 1.25rem !important;
        }

    .pbb-feat-wrap {
        padding: 0 18px;
    }

    .pbb-feat-carousel .carousel-inner {
        padding: 0.4rem 0.25rem 1rem;
    }

    .pbb-feat-carousel .carousel-item > .row {
        margin-left: 0;
        margin-right: 0;
    }

        .pbb-feat-carousel .carousel-item > .row > div {
            padding-left: 0;
            padding-right: 0;
        }

    .pbb-feat-img {
        height: 210px;
    }

    .pbb-feat-body {
        padding: 1rem;
    }

  

    .pbb-feat-meta {
        font-size: 0.82rem;
    }

    .pbb-feat-nav {
        width: 32px;
        height: 32px;
        font-size: 0.75rem;
    }

    .pbb-feat-prev {
        left: -12px;
    }

    .pbb-feat-next {
        right: -12px;
    }

    .pbb-view-all {
        font-size: 0.85rem;
        padding: 0.55rem 1.25rem !important;
    }
}

[data-bs-theme="dark"] .pbb-featured {
    background: #0b1220;
}

[data-bs-theme="dark"] .pbb-featured-alt {
    background: #0f182a;
}

[data-bs-theme="dark"] .pbb-feat-card {
    background: #141c2e;
    box-shadow: none;
}



[data-bs-theme="dark"] .pbb-feat-meta {
    color: #a9b6cf;
}

[data-bs-theme="dark"] .pbb-feat-nav {
    background: #141c2e;
    border-color: #26324d;
    color: #7db8ff;
}


/* =====================================================================
   5. WHO WE SERVE
   ===================================================================== */
#pbbWhoWeServe {
    background: #E8F6FF;
    --pbb-blue: #0a84e6;
    --pbb-navy: #0b1f5c;
    --pbb-soft: #eaf4ff;
    --pbb-card-bg: rgba(255, 255, 255, .85);
    --pbb-border: #dbe8f7;
}

    #pbbWhoWeServe .pbb-navy {
        color: var(--pbb-navy);
    }

/*    #pbbWhoWeServe .pbb-eyebrow {
        color: var(--pbb-blue);
        letter-spacing: .18em;
        font-size: .7rem;
    }*/

.pbb-serve-tabs {
    list-style: none;
    padding: 0;
    margin-left: 0;
    margin-right: 0;
}

.pbb-serve-tab {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    position: relative;
    height: 100%;
    padding: 1rem 2rem 1rem 1rem;
    background: var(--pbb-card-bg);
    border: 1px solid var(--pbb-border);
    border-radius: 14px;
    transition: all .2s ease;
}

    .pbb-serve-tab .flex-1 {
        flex: 1 1 auto;
        min-width: 0; /* lets the text wrap instead of overflowing */
        overflow-wrap: anywhere;
    }

    .pbb-serve-tab.active {
        background: var(--pbb-soft);
        border-color: var(--pbb-blue);
        box-shadow: 0 6px 20px rgba(10, 132, 230, .15);
    }

    .pbb-serve-tab:focus-visible {
        outline: 3px solid rgba(10, 132, 230, .45);
        outline-offset: 2px;
    }

.pbb-tab-arrow {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: .7rem;
    color: var(--pbb-navy);
}

/* arrow: right on inactive tab, down on the active one */
.pbb-serve-tab.active .pbb-tab-arrow::before {
    content: "\f078";
}

.pbb-icon-box {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #d9ecff;
    color: var(--pbb-blue);
    border-radius: 10px;
    font-size: 1.1rem;
}

.pbb-serve-panel {
    background: #fff;
    border: 1px solid var(--pbb-border);
    border-radius: 18px;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(11, 31, 92, .06);
}

.pbb-feature {
    height: 100%;
    padding: 1.25rem;
    background: #f3f8ff;
    border-radius: 12px;
    text-align: left;
}

    .pbb-feature > div:last-child {
        min-width: 0;
    }

.pbb-btn-demo {
    color: #fff;
    background: linear-gradient(90deg, #0a6fe0, #0a9cf0);
    box-shadow: 0 8px 20px rgba(10, 132, 230, .35);
    padding-top: .75rem;
    padding-bottom: .75rem;
    font-weight: 600;
    max-width: 100%;
}

    .pbb-btn-demo:hover {
        color: #fff;
        filter: brightness(1.08);
    }

@media (hover: hover) {
    .pbb-serve-tab:hover {
        border-color: var(--pbb-blue);
        transform: translateY(-2px);
    }
}

@media (max-width: 767.98px) {
    .pbb-serve-tab {
        gap: .6rem;
        padding: .85rem 1.75rem .85rem .85rem;
    }

    .pbb-tab-arrow {
        top: .85rem;
        right: .85rem;
    }

    .pbb-icon-box {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    .pbb-serve-panel {
        padding: 1.25rem;
        border-radius: 14px;
    }

    .pbb-feature {
        padding: 1rem;
    }
}

[data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab,
[data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-panel {
    background: var(--falcon-card-bg, #0b1727);
    border-color: rgba(255, 255, 255, .1);
}

[data-bs-theme="dark"] #pbbWhoWeServe .pbb-feature {
    background: rgba(255, 255, 255, .04);
}

[data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab.active {
    background: rgba(10, 132, 230, .15);
}

[data-bs-theme="dark"] #pbbWhoWeServe .pbb-navy {
    color: #fff;
}
.pbb-cta-btn-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

    .pbb-cta-btn-text .fa-arrow-right {
        display: inline-block;
        flex-shrink: 0;
        margin-left: 0.5rem;
    }

/* Mobile responsive button */
@media (max-width: 767.98px) {
    .pbb-gradient-btn {
        white-space: nowrap;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        max-width: 100%;
    }
}

/* tablets: 2 per row, a bit more room per card */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .pbb-serve-tab {
        padding: 1.1rem 2.5rem 1.1rem 1.1rem;
    }
}

/* desktops: 4 per row, slightly tighter so text fits */
@media (min-width: 1200px) {
    .pbb-serve-tab {
        gap: .65rem;
        padding: 1rem 2rem 1rem .9rem;
    }

        .pbb-serve-tab .fs-9 {
            font-size: .95rem !important;
        }
}
/* =====================================================================
   6. PBB SOLUTION PAGE - HERO
   ===================================================================== */
.pbb-sol-hero {
    background: #E8F6FF;
    padding: calc(var(--pbb-nav-h, 90px) + 2rem) 0 3rem;
    overflow: hidden;
    position: relative;
}

.pbb-sol-inner {
    width: 100%;
    padding: 0 1.25rem;
}

.pbb-sol-pill {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    max-width: 100%;
    padding: .6rem 1.3rem;
    border: 1.5px solid #0a5fc4;
    border-radius: 50px;
    background: rgba(255, 255, 255, .65);
    color: #0b1f4b;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    box-shadow: 0 0 22px rgba(10, 155, 224, .25);
}







.pbb-sol-visual {
    position: relative;
}

.pbb-shot-glow {
    position: absolute;
    inset: 5% 0 -5% 10%;
    background: radial-gradient(closest-side, rgba(10, 155, 224, .45), transparent 80%);
    filter: blur(50px);
    z-index: 0;
    pointer-events: none;
}

.pbb-shot-frame {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(10, 95, 196, .2);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .55), 0 25px 50px -15px rgba(10, 60, 140, .4);
}

.pbb-shot-bar {
    display: flex;
    gap: 6px;
    padding: 9px 14px;
    background: #f4f7fc;
    border-bottom: 1px solid #e3eaf5;
}

    .pbb-shot-bar i {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: #ff5f57;
    }

        .pbb-shot-bar i:nth-child(2) {
            background: #febc2e;
        }

        .pbb-shot-bar i:nth-child(3) {
            background: #28c840;
        }

.pbb-shot {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
}

/* Watch Demo button (centre of image) */
.pbb-watch {
    position: absolute;
    top: calc(50% + 15px); /* +15px offsets the browser bar */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .65rem;
    text-decoration: none;
}

    .pbb-watch:hover {
        color: #0a5fc4;
    }

.pbb-watch-btn {
    position: relative;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .95);
    color: #0a7be0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    padding-left: 4px; /* optically centres the play triangle */
    box-shadow: 0 12px 32px rgba(10, 60, 140, .35);
    transition: transform .2s ease;
}

    .pbb-watch-btn::after {
        content: "";
        position: absolute;
        inset: -9px;
        border-radius: 50%;
        border: 2px solid rgba(255, 255, 255, .85);
        animation: pbbPulse 2s ease-out infinite;
    }

.pbb-watch:hover .pbb-watch-btn {
    transform: scale(1.1);
}

/* floating chips (desktop only) */
.pbb-chip {
    display: none;
}

/* DESKTOP: image bleeds to the right edge */
@media (min-width: 992px) {
    .pbb-sol-hero {
        min-height: 100vh;
        min-height: 100svh;
        display: flex;
        align-items: center;
        padding: var(--pbb-nav-h, 90px) 0 2rem;
    }

    .pbb-sol-inner {
        padding-left: max(3rem, calc((100vw - 1400px) / 2));
        padding-right: 0;
    }

    .pbb-sol-content {
        width: 38%;
    }

    .pbb-sol-visual {
        width: 62%;
    }

    .pbb-shot-frame {
        border-radius: 24px 0 0 24px;
        border-right: 0;
        margin-right: -2px;
        box-shadow: 0 0 0 8px rgba(255, 255, 255, .55), 0 40px 80px -20px rgba(10, 60, 140, .4);
        transform-origin: left center;
        animation: pbbFloat3d 8s ease-in-out infinite;
    }

    .pbb-chip {
        position: absolute;
        z-index: 3;
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        padding: .6rem 1rem;
        border-radius: 50px;
        background: rgba(255, 255, 255, .92);
        border: 1px solid rgba(10, 95, 196, .15);
        box-shadow: 0 12px 30px rgba(10, 60, 140, .2);
        color: #0b1f4b;
        font-size: .82rem;
        font-weight: 700;
        white-space: nowrap;
        animation: pbbBob 5s ease-in-out infinite;
    }

        .pbb-chip .fas {
            color: #0a7be0;
        }

    .pbb-chip-1 {
        top: 14%;
        left: -34px;
    }

    .pbb-chip-2 {
        bottom: 12%;
        left: 8%;
        animation-delay: -2.5s;
    }
}

/* wide-but-short screens (landscape laptops/tablets): don't force 100vh */
@media (min-width: 992px) and (max-height: 620px) {
    .pbb-sol-hero {
        min-height: 0;
        padding: calc(var(--pbb-nav-h, 90px) + 1rem) 0 2rem;
    }

    
}

/* tablet + mobile */
@media (max-width: 991.98px) {
    .pbb-sol-hero {
        text-align: center;
    }

    

    .pbb-watch-btn {
        width: 56px;
        height: 56px;
        font-size: 1.15rem;
    }
}

/* phones */
@media (max-width: 575.98px) {
    section.pbb-sol-hero.pbb-sol-hero--home {
        padding-top: calc(max(var(--pbb-nav-h, 0px), 72px) + 1.5rem);
        padding-bottom: 2rem;
    }

    .pbb-sol-inner {
        padding: 0 1rem;
    }

    .pbb-sol-pill {
        padding: .5rem 1rem;
        font-size: .68rem;
        letter-spacing: .05em;
    }

  

    
    .pbb-shot-frame {
        border-radius: 14px;
    }

    .pbb-shot-bar {
        padding: 7px 10px;
    }

    .pbb-watch-btn {
        width: 48px;
        height: 48px;
        font-size: 1rem;
    }
}

/* animations */
.pbb-anim {
    opacity: 0;
    transform: translateY(24px);
    animation: pbbFadeUp .8s cubic-bezier(.2, .7, .2, 1) forwards;
    animation-delay: var(--d, 0s);
}

@keyframes pbbFadeUp {
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes pbbBob {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

@keyframes pbbFloat3d {
    0%, 100% {
        transform: perspective(2200px) rotateY(6deg) rotateX(1.5deg) translateY(0);
    }

    50% {
        transform: perspective(2200px) rotateY(6deg) rotateX(1.5deg) translateY(-10px);
    }
}

@keyframes pbbPulse {
    0% {
        transform: scale(.9);
        opacity: 1;
    }

    100% {
        transform: scale(1.5);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pbb-anim,
    .pbb-shot-frame,
    .pbb-chip,
    .pbb-watch-btn::after {
        animation: none !important;
        opacity: 1;
        transform: none;
    }
}


[data-bs-theme="dark"] .pbb-sol-pill {
    color: #fff;
}



[data-bs-theme="dark"] .pbb-sol-pill {
    background: rgba(255, 255, 255, .06);
}

[data-bs-theme="dark"] .pbb-chip {
    background: #141c2e;
    color: #fff;
    border-color: rgba(255, 255, 255, .12);
}


/* =====================================================================
   7. PBB SOLUTION PAGE - WHY PROPERTY BIG BOOK (single row of 7 cards)
   ===================================================================== */
.pbb-why-row {
    display: flex;
    flex-wrap: nowrap;
    gap: .75rem;
    overflow-x: auto;
    padding-bottom: .5rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

    .pbb-why-row::-webkit-scrollbar {
        display: none;
    }

.pbb-why-col {
    position: relative;
    flex: 1 0 150px; /* never shrink below 150px, grow to fill the row */
    scroll-snap-align: start;
}



.pbb-why-card {
    height: 100%;
    padding: 1.5rem 1rem;
    text-align: center;
    border-radius: 1rem;
    background: linear-gradient(180deg, #f3f9ff 0%, #e8f3ff 100%);
}

.pbb-why-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1.5rem;
    background: var(--bg);
    color: var(--c);
}









/* thin divider between cards (desktop only) */
@media (min-width: 992px) {
    .pbb-why-col:not(:last-child)::after {
        content: "";
        position: absolute;
        right: -.375rem;
        top: 30%;
        height: 40%;
        width: 1px;
        background: #cfe0f5;
    }
}

@media (max-width: 575.98px) {
    .pbb-why-card {
        padding: 1.25rem .85rem;
    }

    .pbb-why-icon {
        width: 54px;
        height: 54px;
        font-size: 1.3rem;
    }
}

[data-bs-theme="dark"] .pbb-why {
    background: #0b1220 !important;
}

[data-bs-theme="dark"] .pbb-why-card {
    background: #141c2e;
}




[data-bs-theme="dark"] .pbb-why-col::after {
    background: #26324d !important;
}


/* =====================================================================
   8. PBB SOLUTION PAGE - SIX MODULES
   ===================================================================== */


.pbb-mods {
    background: #ffffff;
    padding: 2rem 0 3rem;
    overflow: hidden;
}

    .pbb-mods > .container {
        max-width: 1400px;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

/* Main heading */


/* Feature row */
.pbb-mod {
    --bg: #e6f0ff;
    position: relative;
    margin: 0 0 1.25rem;
    padding: 1.5rem 1.75rem;
    border-radius: 18px;
    background: #f7faff;
    align-items: center;
    overflow: hidden;
}

    /* Remove module background colors only */
    .pbb-mod,
    .pbb-mod:nth-of-type(n) {
        background: transparent !important;
        box-shadow: none;
    }

   

/* Text column */
.pbb-mod-text {
    min-width: 0;
    padding: 1.25rem 2rem;
}

    /* Keep number badge background color */
    .pbb-mod-text > .pbb-mod-num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 46px;
        min-height: 34px;
        padding: 0.4rem 0.65rem;
        margin: 0 10px 0 0;
        background: #e4f0ff !important;
        color: #0865dc;
        border-radius: 8px;
        font-size: 0.95rem;
        font-weight: 600;
        line-height: 1.2;
        vertical-align: middle;
    }

        /* Small vertical line after number */
        .pbb-mod-text > .pbb-mod-num::after {
            content: "";
            display: inline-block;
            width: 1px;
            height: 20px;
            background: #cbd5e1;
            margin-left: 12px;
            margin-right: -3px;
            vertical-align: middle;
        }

/* Number badge */
.pbb-mod-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    min-height: 42px;
    padding: 0.4rem 0.8rem;
    margin-bottom: 0.75rem;
    border-radius: 999px;
    background: #e4f0ff;
    color: #0865dc;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1;
}

/* Module title */


/* Short highlighted heading */


/* Supporting description */


/* Feature list
   Works with the direct li elements in your current HTML */
.pbb-mod-text ul {
    list-style: none;
    padding: 0;
    margin: 0.75rem 0 0;
}

.pbb-mod-text li {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    color: #435c80;
    font-size: 0.96rem;
    line-height: 1.5;
    margin: 0 0 0.6rem;
    padding: 0;
}

    /* Blue circular checkmark */
    .pbb-mod-text li::before {
        content: "\2713";
        display: inline-flex;
        flex: 0 0 19px;
        width: 19px;
        height: 19px;
        align-items: center;
        justify-content: center;
        margin-top: 2px;
        border-radius: 50%;
        background: #1677f8;
        color: #ffffff;
        font-size: 12px;
        font-weight: 800;
        line-height: 1;
    }

/* Screenshot container */
.pbb-mod-visual {
    --pad: 0.65rem;
    --r-big: 1.5rem;
    --r-small: 1rem;
    min-width: 0;
    padding: var(--pad);
    background: var(--bg, #e6f0ff);
    border-radius: var(--r-big);
    overflow: hidden;
    align-self: center;
}

/* Screenshot - keep the full application interface visible */
.pbb-mod-img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    aspect-ratio: 1737 / 537;
    object-fit: contain;
    object-position: center;
    border-radius: calc(var(--r-big) - var(--pad));
    box-shadow: 0 4px 18px rgba(27, 73, 135, 0.06);
}

/* Desktop spacing and alternating corner shapes */
@media (min-width: 992px) {
    .pbb-mod {
        min-height: 250px;
        padding: 1.5rem 1.75rem;
        margin-bottom: 1.25rem;
    }

    .pbb-mod-text {
        padding: 1.25rem 2rem;
    }

    .pbb-mod:not(.pbb-mod-rev) .pbb-mod-text {
        padding-left: 1rem;
        padding-right: 2.25rem;
    }

    .pbb-mod-rev .pbb-mod-text {
        padding-left: 2.5rem;
        padding-right: 1rem;
    }

    .pbb-mod-visual {
        --r-big: 2rem;
        --r-small: 1rem;
    }

    .pbb-mod:not(.pbb-mod-rev) .pbb-mod-visual {
        border-radius: var(--r-big) var(--r-small) var(--r-small) var(--r-big);
    }

    .pbb-mod-rev .pbb-mod-visual {
        border-radius: var(--r-small) var(--r-big) var(--r-big) var(--r-small);
    }
}

/* Tablets */
@media (min-width: 768px) and (max-width: 991.98px) {
    .pbb-mod {
        padding: 1.25rem;
    }

    .pbb-mod-text {
        padding: 1rem 1.25rem;
    }

   


    

    .pbb-mod-text li {
        font-size: 0.9rem;
    }
}

/* Mobile */
@media (max-width: 767.98px) {
    .pbb-mods {
        padding: 1.5rem 0 2rem;
    }

        .pbb-mods > .container {
            padding-left: 14px !important;
            padding-right: 14px !important;
        }


    .pbb-mod {
        padding: 1rem;
        margin-bottom: 1.25rem;
        border-radius: 15px;
    }

    /* Text first, screenshot underneath on mobile */
    .pbb-mod-text {
        padding: 0.75rem 0.25rem 1.25rem;
    }

    .pbb-mod-num {
        min-width: 46px;
        min-height: 36px;
        font-size: 1.05rem;
        margin-bottom: 0.65rem;
    }

    
   

    .pbb-mod-text li {
        font-size: 0.9rem;
        gap: 0.55rem;
        margin-bottom: 0.55rem;
    }

        .pbb-mod-text li::before {
            flex-basis: 18px;
            width: 18px;
            height: 18px;
        }

    .pbb-mod-visual {
        --pad: 0.4rem;
        --r-big: 1.15rem;
        --r-small: 0.8rem;
        padding: var(--pad);
        border-radius: var(--r-big);
    }

    .pbb-mod-img {
        aspect-ratio: auto;
        height: auto;
        object-fit: contain;
        border-radius: 0.7rem;
    }
}

/* Extra-small phones */
@media (max-width: 380px) {
    .pbb-mod {
        padding: 0.75rem;
    }

    .pbb-mod-text {
        padding-left: 0.15rem;
        padding-right: 0.15rem;
    }

    

   
    .pbb-mod-text li {
        font-size: 0.86rem;
    }
}

/* Dark mode */
[data-bs-theme="dark"] .pbb-mods {
    background: #0b1220;
}

[data-bs-theme="dark"] .pbb-mod {
    background: #111b2d;
}




[data-bs-theme="dark"] .pbb-mod-text li {
    color: #b6c5dc;
}

[data-bs-theme="dark"] .pbb-mod-visual {
    background: #1b2a40;
}


/* =====================================================================
   9. CTA BANNER
   ===================================================================== */
.pbb-cta {
    background: linear-gradient(90deg, #0a3f9e 0%, #0a5fc4 55%, #0a84e6 100%);
}

.pbb-cta-title {
    color: #fff;
}

.pbb-cta-text {
    color: rgba(255, 255, 255, .88);
    font-size: 1rem;
    max-width: 640px;
}

/* reversed button: white background, gradient text */
.pbb-cta .pbb-cta-btn {
    background: #fff;
    border: 0;
    max-width: 100%;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.pbb-cta .pbb-cta-btn-text {
    display: inline-block;
    font-weight: 700;
    background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.pbb-cta .pbb-cta-btn .fas {
    display: inline-block;
    transition: transform .2s ease;
}

@media (hover: hover) {
    .pbb-cta .pbb-cta-btn:hover {
        background: #f3f9ff;
        transform: translateY(-2px);
        box-shadow: 0 10px 24px rgba(0, 20, 80, .3) !important;
    }

        .pbb-cta .pbb-cta-btn:hover .fas {
            transform: translateX(4px);
        }
}

@media (max-width: 991.98px) {
    .pbb-cta-text {
        margin-left: auto;
        margin-right: auto;
    }
}


/* =====================================================================
   DARK MODE - HOMEPAGE (Falcon: [data-bs-theme="dark"])
   Keep this block at the END of the file.
   Section rhythm: scroll #0b1220 > growth #0f182a > featured #0b1220
                   > featured-alt #0f182a > book demo #0b1220
   ===================================================================== */

/* ---------- 1. HERO ---------- */
[data-bs-theme="dark"] .pbb-sol-hero {
    background: linear-gradient(180deg, #0b1220 0%, #0f182a 100%);
}

[data-bs-theme="dark"] .pbb-gradient-text {
    background-image: linear-gradient(90deg, #4da3ff 0%, #38c6ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* label separators + feature-point dividers */
[data-bs-theme="dark"] .pbb-sol-hero--home .pbb-home-labels span + span {
    border-left-color: rgba(125, 184, 255, .6);
}

[data-bs-theme="dark"] .pbb-sol-hero--home .pbb-home-point + .pbb-home-point {
    border-left-color: rgba(125, 184, 255, .35);
}

/* dashboard frame */
[data-bs-theme="dark"] .pbb-shot-frame {
    background: #141c2e;
    border-color: rgba(255, 255, 255, .12);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .05), 0 25px 50px -15px rgba(0, 0, 0, .65);
}

[data-bs-theme="dark"] .pbb-shot-bar {
    background: #1b2438;
    border-bottom-color: #26324d;
}

[data-bs-theme="dark"] .pbb-shot {
    filter: brightness(.92); /* tones down the white screenshot */
}

[data-bs-theme="dark"] .pbb-shot-glow {
    opacity: .55;
}

@media (min-width: 992px) {
    [data-bs-theme="dark"] .pbb-shot-frame {
        box-shadow: 0 0 0 8px rgba(255, 255, 255, .05), 0 40px 80px -20px rgba(0, 0, 0, .7);
    }
}

[data-bs-theme="dark"] .pbb-chip {
    box-shadow: 0 12px 30px rgba(0, 0, 0, .45);
}

    [data-bs-theme="dark"] .pbb-chip .fas {
        color: #7db8ff;
    }

/* ---------- 2. SCROLL / IMAGE ANIMATION SECTION ---------- */
[data-bs-theme="dark"] .pbb-scroll-section,
[data-bs-theme="dark"] .pbb-scroll-stage {
    background: #0b1220;
}





[data-bs-theme="dark"] .pbb-line {
    stroke: #4da3ff;
}

/* ---------- 3. GROWTH ---------- */
[data-bs-theme="dark"] .pbb-growth {
    background: #0f182a;
}

[data-bs-theme="dark"] .pbb-card {
    background: #141c2e;
    border: 1px solid rgba(255, 255, 255, .06);
    box-shadow: none;
}

[data-bs-theme="dark"] .pbb-icon {
    background: #1b2a47;
    color: #7db8ff;
}

@media (hover: hover) {
    [data-bs-theme="dark"] .pbb-card:hover {
        box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
        border-color: rgba(125, 184, 255, .25);
    }
}

/* ---------- 4. FEATURED PROJECTS / PROPERTIES ---------- */
[data-bs-theme="dark"] .pbb-featured {
    background: #0b1220;
}

[data-bs-theme="dark"] .pbb-featured-alt {
    background: #0f182a;
}

[data-bs-theme="dark"] .pbb-feat-card {
    background: #141c2e;
    border: 1px solid rgba(255, 255, 255, .06);
    box-shadow: none;
}

[data-bs-theme="dark"] .pbb-feat-meta .fas,
[data-bs-theme="dark"] .pbb-feat-meta .far {
    color: #7f8fae;
}

[data-bs-theme="dark"] .pbb-feat-nav {
    background: #141c2e;
    border-color: #26324d;
    color: #7db8ff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .4);
}

    [data-bs-theme="dark"] .pbb-feat-nav:hover {
        background: #0a5fc4;
        border-color: #0a5fc4;
        color: #fff;
    }

    [data-bs-theme="dark"] .pbb-feat-nav:focus-visible {
        outline-color: rgba(125, 184, 255, .6);
    }

@media (hover: hover) {
    [data-bs-theme="dark"] .pbb-feat-card:hover {
        box-shadow: 0 12px 28px rgba(0, 0, 0, .5);
        border-color: rgba(125, 184, 255, .25);
    }
}

/* ---------- 5. BOOK A DEMO (home) ---------- */
[data-bs-theme="dark"] #bookDemo {
    background: #0b1220;
}

    [data-bs-theme="dark"] #bookDemo .bg-primary {
        background: linear-gradient(135deg, #0a3f9e 0%, #0a5fc4 100%) !important;
    }

    [data-bs-theme="dark"] #bookDemo .card {
        background: #141c2e;
        border: 1px solid rgba(255, 255, 255, .08) !important;
    }

/* ---------- 6. SHARED BUTTON ---------- */
[data-bs-theme="dark"] .pbb-gradient-btn {
    box-shadow: 0 8px 22px rgba(10, 132, 230, .3) !important;
}


/* =====================================================================
   DARK MODE - WHO WE SERVE  (#pbbWhoWeServe)
   Keep at the END of the file.
   ===================================================================== */

/* ---------- section + shared variables ---------- */
[data-bs-theme="dark"] #pbbWhoWeServe {
    background: #0b1220;
    --pbb-blue: #4da3ff;
    --pbb-navy: #ffffff;
    --pbb-soft: rgba(10, 132, 230, .18);
    --pbb-card-bg: #141c2e;
    --pbb-border: rgba(255, 255, 255, .10);
}

    /* ---------- text ---------- */
 
    [data-bs-theme="dark"] #pbbWhoWeServe .text-900,
    [data-bs-theme="dark"] #pbbWhoWeServe .text-1100 {
        color: #fff !important;
    }

    [data-bs-theme="dark"] #pbbWhoWeServe .text-700 {
        color: #a9b6cf !important;
    }

    [data-bs-theme="dark"] #pbbWhoWeServe .pbb-eyebrow {
        color: #7db8ff;
    }

    /* ---------- audience tabs ---------- */
    [data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab {
        background: var(--pbb-card-bg);
        border-color: var(--pbb-border);
    }

        [data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab.active {
            background: var(--pbb-soft);
            border-color: var(--pbb-blue);
            box-shadow: 0 6px 20px rgba(0, 0, 0, .45);
        }

        [data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab:focus-visible {
            outline-color: rgba(125, 184, 255, .6);
        }

    [data-bs-theme="dark"] #pbbWhoWeServe .pbb-tab-arrow {
        color: #7db8ff;
    }

@media (hover: hover) {
    [data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-tab:hover {
        border-color: var(--pbb-blue);
        box-shadow: 0 8px 22px rgba(0, 0, 0, .4);
    }
}

/* ---------- icon boxes (tabs + feature cards) ---------- */
[data-bs-theme="dark"] #pbbWhoWeServe .pbb-icon-box {
    background: #1b2a47;
    color: #7db8ff;
}

/* ---------- content panel + feature cards ---------- */
[data-bs-theme="dark"] #pbbWhoWeServe .pbb-serve-panel {
    background: #141c2e;
    border-color: var(--pbb-border);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}

[data-bs-theme="dark"] #pbbWhoWeServe .pbb-feature {
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .06);
}

/* ---------- "Property Customers" buttons ---------- */
[data-bs-theme="dark"] .pbb-customer-cta .pbb-property-btn {
    background: transparent;
    color: #7db8ff;
    border-color: #4da3ff;
}

    [data-bs-theme="dark"] .pbb-customer-cta .pbb-property-btn:hover {
        background: linear-gradient(90deg, #0a5fc4 0%, #0a9be0 100%);
        color: #fff;
        border-color: #0a9be0;
    }


/* =====================================================================
   DARK MODE - PBB SOLUTION PAGE
   Keep at the END of the file.
   Rhythm: hero gradient ends #0f182a > why #0f182a > modules #0b1220
           > CTA banner
   ===================================================================== */

/* ---------- 1. HERO ---------- */
[data-bs-theme="dark"] .pbb-sol-pill {
    border-color: #4da3ff;
    box-shadow: 0 0 22px rgba(77, 163, 255, .22);
}

/* ---------- 2. WHY PROPERTY BIG BOOK ---------- */
[data-bs-theme="dark"] .pbb-why {
    background: #0f182a !important;
}

[data-bs-theme="dark"] .pbb-why-card {
    background: #141c2e;
    border: 1px solid rgba(255, 255, 255, .06);
}

/* icon circle: soft tint of the card's own colour (--c), lightened icon */
[data-bs-theme="dark"] .pbb-why-icon {
    background: rgba(255, 255, 255, .08);
    color: #7db8ff;
}

@supports (color: color-mix(in srgb, red 50%, white)) {
    [data-bs-theme="dark"] .pbb-why-icon {
        background: color-mix(in srgb, var(--c) 30%, transparent);
        color: color-mix(in srgb, var(--c) 55%, white);
    }
}

/* ---------- 3. SIX MODULES ---------- */
[data-bs-theme="dark"] .pbb-mods {
    background: #0b1220;
}

/* number badge (needs !important: the base rule uses it) */
[data-bs-theme="dark"] .pbb-mod-text > .pbb-mod-num,
[data-bs-theme="dark"] .pbb-mod-num {
    background: rgba(77, 163, 255, .16) !important;
    color: #7db8ff;
}

    [data-bs-theme="dark"] .pbb-mod-text > .pbb-mod-num::after {
        background: rgba(255, 255, 255, .22);
    }

/* screenshot panel + image */
[data-bs-theme="dark"] .pbb-mod-visual {
    background: #1b2a40;
    border: 1px solid rgba(255, 255, 255, .06);
}

[data-bs-theme="dark"] .pbb-mod-img {
    box-shadow: 0 6px 22px rgba(0, 0, 0, .45);
    filter: brightness(.94);
}

/* check-mark bullets a touch brighter on dark */
[data-bs-theme="dark"] .pbb-mod-text li::before {
    background: #2b86ff;
}

/* ---------- 4. CTA BANNER ---------- */
[data-bs-theme="dark"] .pbb-cta {
    background: linear-gradient(90deg, #0a2f78 0%, #0a4aa0 55%, #0a6fc0 100%);
}

    [data-bs-theme="dark"] .pbb-cta .pbb-cta-btn {
        background: #fff;
        box-shadow: 0 10px 24px rgba(0, 0, 0, .4) !important;
    }


/* =====================================================================
   TYPOGRAPHY STANDARD - used by ALL PBB pages
   Keep at the END of the file. Colours come from variables, so dark mode
   is handled once here (no per-class dark rules needed).
   ===================================================================== */
:root {
    --pbb-font: var(--falcon-font-sans-serif, "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif);
    --pbb-c-heading: #0b1f4b;
    --pbb-c-sub: #1767b6;
    --pbb-c-lead: #2d3f63;
    --pbb-c-text: #5b6b86;
    --pbb-c-eyebrow: #0a84e6;
}

[data-bs-theme="dark"] {
    --pbb-c-heading: #ffffff;
    --pbb-c-sub: #7db8ff;
    --pbb-c-lead: #a9b6cf;
    --pbb-c-text: #a9b6cf;
    --pbb-c-eyebrow: #7db8ff;
}

/* use on a blue band (Book a Demo band, CTA banner): same classes, white text */
.pbb-on-blue {
    --pbb-c-heading: #ffffff;
    --pbb-c-sub: #cfe6ff;
    --pbb-c-lead: rgba(255, 255, 255, .92);
    --pbb-c-text: rgba(255, 255, 255, .88);
    --pbb-c-eyebrow: #bfe0ff;
}

.pbb-h1, .pbb-h2, .pbb-h3, .pbb-h4,
.pbb-sub, .pbb-lead, .pbb-text, .pbb-text-sm, .pbb-eyebrow {
    font-family: var(--pbb-font);
}

/* ---------- headings ---------- */
.pbb-h1 {
    color: var(--pbb-c-heading);
    font-size: clamp(2rem, 4.4vw, 3.4rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -.02em;
    margin: 0 0 1.1rem;
}

.pbb-h2 {
    color: var(--pbb-c-heading);
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
    margin: 0 0 .5rem;
}

.pbb-h3 {
    color: var(--pbb-c-heading);
    font-size: clamp(1.2rem, 1.8vw, 1.5rem);
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .75rem;
}

.pbb-h4 {
    color: var(--pbb-c-heading);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 .5rem;
    overflow-wrap: break-word;
}

/* ---------- subtitle / paragraphs ---------- */
.pbb-sub {
    color: var(--pbb-c-sub);
    font-size: clamp(.95rem, 1.3vw, 1.1rem);
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
}

.pbb-lead {
    color: var(--pbb-c-lead);
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    font-weight: 600;
    line-height: 1.55;
    margin: 0 0 1.4rem;
}

.pbb-text {
    color: var(--pbb-c-text);
    font-size: .95rem;
    font-weight: 400;
    line-height: 1.65;
    margin: 0 0 1rem;
}

.pbb-text-sm {
    color: var(--pbb-c-text);
    font-size: .875rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0 0 .75rem;
}

.pbb-eyebrow {
    display: inline-block;
    color: var(--pbb-c-eyebrow);
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin: 0 0 .5rem;
}

/* ---------- section heading wrapper (same gap under every section heading) ---------- */
.pbb-sec-head {
    max-width: 900px;
    margin: 0 auto clamp(1.5rem, 3vw, 2.5rem);
    padding: 0 1rem;
    text-align: center;
}

/* ---------- layout helpers so the standard classes fit the existing components ---------- */

/* hero paragraph (home + solution hero) */
.pbb-sol-content .pbb-lead {
    max-width: 520px;
}

.pbb-sol-pill + .pbb-h1 {
    margin-top: 1.4rem;
}

@media (max-width: 991.98px) {
    .pbb-sol-content .pbb-lead {
        margin-left: auto;
        margin-right: auto;
    }
}

/* centred subtitle under a section heading */
.pbb-sec-head .pbb-lead,
.pbb-sec-head .pbb-text {
    margin-left: auto;
    margin-right: auto;
}

/* six-module rows */
.pbb-mod-text .pbb-h3 {
    display: inline;
    vertical-align: middle;
    margin: 0;
}

.pbb-mod-text .pbb-sub {
    max-width: 520px;
    margin: .5rem 0 .75rem;
}

.pbb-mod-text .pbb-text {
    max-width: 540px;
}

.pbb-mod-text li {
    font-size: .95rem;
}

/* CTA banner paragraph */
.pbb-cta .pbb-text {
    max-width: 640px;
}

@media (max-width: 991.98px) {
    .pbb-cta .pbb-text {
        margin-left: auto;
        margin-right: auto;
    }
}