﻿    /* ------------------------------------------------------------- Home hero */
    :root {
        /* Hero heading size - change this one value to tune the display size. */
        --home-hero-title-size: clamp(2.4rem, 5.6vw, 4.6875rem);
    }

    .home-hero {
        position: relative;
        overflow: hidden;
        padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(3rem, 5vw, 4.5rem);
        background: linear-gradient(160deg, #f2f7ff 0%, #f8fbff 45%, #ffffff 100%);
    }

        .home-hero *,
        .home-hero *::before,
        .home-hero *::after {
            box-sizing: border-box;
        }

    .home-hero-container {
        position: relative;
        z-index: 2;
    }

    .home-hero-glow {
        position: absolute;
        border-radius: 50%;
        pointer-events: none;
        z-index: 0;
    }

    .home-hero-glow-one {
        top: -14rem;
        right: -10rem;
        width: 42rem;
        height: 42rem;
        background: radial-gradient(circle, rgba(25, 103, 210, .18) 0%, rgba(25, 103, 210, 0) 68%);
    }

    .home-hero-glow-two {
        bottom: -18rem;
        left: -12rem;
        width: 36rem;
        height: 36rem;
        background: radial-gradient(circle, rgba(47, 128, 237, .14) 0%, rgba(47, 128, 237, 0) 70%);
    }

    .home-hero-pattern {
        position: absolute;
        inset: 0;
        z-index: 1;
        opacity: .5;
        pointer-events: none;
        background-image: radial-gradient(rgba(15, 23, 42, .07) 1px, transparent 1px);
        background-size: 26px 26px;
        -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .7) 0%, transparent 75%);
        mask-image: linear-gradient(180deg, rgba(0, 0, 0, .7) 0%, transparent 75%);
    }

    .home-hero-copy {
        max-width: 54rem;
    }

    .home-hero-badge {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        padding: .4rem .85rem;
        margin-bottom: 1.25rem;
        border: 1px solid rgba(25, 103, 210, .22);
        border-radius: 999px;
        background: rgba(255, 255, 255, .8);
        color: #1967d2;
        font-size: .78rem;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .home-hero-pulse {
        width: .5rem;
        height: .5rem;
        border-radius: 50%;
        background: #16a34a;
        box-shadow: 0 0 0 0 rgba(22, 163, 74, .55);
        animation: home-hero-pulse 2s infinite;
    }

    @keyframes home-hero-pulse {
        70% {
            box-shadow: 0 0 0 .55rem rgba(22, 163, 74, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(22, 163, 74, 0);
        }
    }

    /* Targeted structurally (".home-hero h1") as well as by class, so the
       heading is styled whether or not class="home-hero-title" is present.
       Tune the size with --home-hero-title-size only. */
    .home-hero h1,
    .home-hero .home-hero-title,
    .home-hero-copy h1 {
        display: block;
        margin: 0 0 1.35rem;
        max-width: none;
        font-family: "Rubik", sans-serif;
        font-size: var(--home-hero-title-size);
        line-height: 1.02;
        font-weight: 800;
        letter-spacing: -.045em;
        color: #0f172a;
        text-wrap: balance;
        overflow-wrap: break-word;
    }

        /* Heading/Description come from the DB and can carry rich-text markup
           with its own inline font sizes - force everything inside to inherit
           the display size. */
        .home-hero h1 *,
        .home-hero .home-hero-title *,
        .home-hero-copy h1 * {
            font-size: inherit !important;
            font-weight: inherit !important;
            font-family: inherit !important;
            line-height: inherit !important;
            letter-spacing: inherit !important;
            color: inherit !important;
            margin: 0 !important;
            padding: 0 !important;
        }

    .home-hero-lead {
        max-width: 36rem;
        color: #5b6b85;
        font-size: clamp(1.05rem, 1.35vw, 1.25rem);
        line-height: 1.9;
    }

        /* Same as above - strip inline sizes coming from the rich-text editor. */
        .home-hero-lead,
        .home-hero-lead * {
            font-size: inherit !important;
            font-family: inherit !important;
            line-height: inherit !important;
            color: inherit !important;
        }

        .home-hero-lead p,
        .home-hero-lead div {
            margin: 0 0 .9rem;
        }

            .home-hero-lead p:last-child,
            .home-hero-lead div:last-child {
                margin-bottom: 0;
            }

    .home-hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: .85rem;
        margin-top: 1.85rem;
    }

    .home-hero-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .55rem;
        padding: .85rem 1.6rem;
        border: 1px solid transparent;
        border-radius: 999px;
        background: linear-gradient(135deg, #1967d2 0%, #2f80ed 100%);
        color: #ffffff;
        font-size: .96rem;
        font-weight: 700;
        text-decoration: none;
        box-shadow: 0 14px 28px rgba(25, 103, 210, .26);
        transition: transform .18s ease, box-shadow .18s ease, color .18s ease;
    }

        .home-hero-btn:hover {
            transform: translateY(-2px);
            color: #ffffff;
            box-shadow: 0 20px 36px rgba(25, 103, 210, .32);
        }

        .home-hero-btn i {
            transition: transform .22s ease;
        }

        .home-hero-btn:hover i {
            transform: translateX(4px);
        }

    .home-hero-btn-ghost {
        background: #ffffff;
        border-color: rgba(25, 103, 210, .28);
        color: #1967d2;
        box-shadow: none;
    }

        .home-hero-btn-ghost:hover {
            color: #1967d2;
            background: #f4f8ff;
            box-shadow: 0 12px 24px rgba(25, 103, 210, .12);
        }

    .home-hero-stats {
        display: flex;
        flex-wrap: wrap;
        gap: 2.25rem;
        margin: 2.25rem 0 0;
        padding-top: 1.75rem;
        border-top: 1px solid rgba(15, 23, 42, .08);
    }

        .home-hero-stats dt {
            font-size: 1.7rem;
            font-weight: 800;
            letter-spacing: -.025em;
            color: #0f172a;
        }

        .home-hero-stats dd {
            margin: .1rem 0 0;
            font-size: .85rem;
            color: #64748b;
        }

    .home-hero-media {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 18rem;
    }

        .home-hero-media img {
            width: 100%;
            height: auto;
            max-height: 26rem;
            object-fit: contain;
            display: block;
            animation: home-hero-float 6s ease-in-out infinite;
            filter: drop-shadow(0 28px 48px rgba(15, 23, 42, .16));
        }

    .home-hero-media-empty {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        aspect-ratio: 4 / 3;
        border-radius: 24px;
        background: linear-gradient(140deg, #eaf2ff 0%, #dbe8fb 100%);
        color: #9db4d8;
        font-size: 3rem;
    }

    @keyframes home-hero-float {
        0%, 100% {
            transform: translateY(0);
        }

        50% {
            transform: translateY(-12px);
        }
    }


    /* ------------------------------------------------------- Companies strip */
    .company-strip {
        position: relative;
        padding: clamp(1.75rem, 3vw, 2.75rem) 0;
        background: #ffffff;
        overflow: hidden;
    }

        .company-strip *,
        .company-strip *::before,
        .company-strip *::after {
            box-sizing: border-box;
        }

    .company-marquee {
        position: relative;
        overflow: hidden;
        padding: .35rem 0;
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
    }

    .company-marquee-track {
        display: flex;
        width: max-content;
        animation-name: company-marquee-scroll;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
        will-change: transform;
    }

    /* Continuous - the ticker never pauses, news-ticker style. */

    .company-marquee-static .company-marquee-track {
        width: 100%;
        justify-content: center;
        animation: none;
    }

    .company-marquee-item {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 .85rem;
    }

    /* Plain tile - keeps every brand on a consistent baseline regardless of
       the source logo's aspect ratio, with no card chrome or colour filters
       so logos show exactly as uploaded. */
    .company-logo-tile {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 11.5rem;
        height: 5.5rem;
        padding: 0 1.25rem;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

        .company-logo-tile img {
            max-height: 3rem;
            max-width: 100%;
            width: auto;
            object-fit: contain;
            display: block;
            filter: none;
            opacity: 1;
        }

    @keyframes company-marquee-scroll {
        from {
            transform: translate3d(0, 0, 0);
        }

        to {
            transform: translate3d(-50%, 0, 0);
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .company-marquee-track,
        .home-hero-media img,
        .home-hero-pulse {
            animation: none;
        }
    }

    @media (max-width: 991.98px) {
        .home-hero-copy {
            max-width: none;
        }

        .home-hero-lead {
            max-width: none;
        }

        .home-hero-stats {
            gap: 1.5rem;
        }

        .home-hero-media {
            min-height: 0;
            margin-top: .5rem;
        }

            .home-hero-media img {
                max-height: 20rem;
            }

        .company-marquee-item {
            padding: 0 .6rem;
        }

        .company-logo-tile {
            width: 9rem;
            height: 4.5rem;
            padding: 0 1rem;
        }

            .company-logo-tile img {
                max-height: 2.4rem;
            }
    }

