
    /* Public home only: marketing-style landing page inspired by large staffing-site hero layouts. */
body:has(.jp-home-page) {
    background: #0f1720;
    overflow: auto;
}

body:has(.jp-home-page) .jp-public-shell {
    max-width: none;
    margin: 56px 0 0;
    padding: 0;
}

body:has(.jp-home-page) .jp-header-top {
    background: rgba(15, 23, 32, 0.92);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

body:has(.jp-home-page) .jp-brand-subtitle {
    color: rgba(255, 255, 255, 0.72);
}

body:has(.jp-home-page) .jp-auth-link {
    min-height: 38px;
    padding: 8px 18px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    color: #fff;
    font-weight: 800;
}

body:has(.jp-home-page) .jp-auth-link:hover {
    background: #fff;
    color: #111827;
}

.jp-home-page {
    color: #ffffff;
    background: #0f1720;
}

.jp-home-hero {
    position: relative;
    min-height: calc(100vh - 56px);
    display: grid;
    align-items: stretch;
    overflow: hidden;
    background:
            linear-gradient(90deg, rgba(15, 23, 32, 0.98) 0%, rgba(15, 23, 32, 0.92) 38%, rgba(15, 23, 32, 0.48) 68%, rgba(15, 23, 32, 0.10) 100%),
            url('/assets/images/sign_in_left.avif') right center / cover no-repeat,
            #111827;
}

.jp-home-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
            radial-gradient(circle at 18% 18%, rgba(37, 99, 235, 0.42), transparent 28%),
            linear-gradient(180deg, transparent 70%, rgba(15, 23, 32, 0.94) 100%);
    pointer-events: none;
}

.jp-home-hero-inner {
    position: relative;
    z-index: 1;
    width: min(1240px, calc(100% - 48px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 760px) minmax(260px, 1fr);
    gap: 44px;
    align-items: center;
    padding: 72px 0 56px;
}

.jp-home-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px;
    color: #bfdbfe;
    font-size: clamp(0.82rem, 1vw, 0.92rem);

    letter-spacing: .08em;
    text-transform: uppercase;
}

.jp-home-kicker::before {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #60a5fa;
    box-shadow: 0 0 0 8px rgba(96, 165, 250, 0.18);
}

.jp-home-title {
    margin: 0;
    max-width: 780px;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 3.75rem);
    line-height: .96;
    letter-spacing: -0.075em;
    font-weight: 400;
}

.jp-home-title strong {
    display: inline;

}

.jp-home-copy {
    margin: 28px 0 0;
    max-width: 720px;
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(1.05rem, 1.6vw, 1.45rem);
    line-height: 1.42;
    font-weight: 500;
}

.jp-home-actions {
    margin-top: 34px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.jp-home-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 14px 24px;
    border-radius: 999px;

    line-height: 1;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.jp-home-btn:hover {
    transform: translateY(-1px);
}

.jp-home-btn-primary {
    background: #2563eb;
    color: #ffffff;
    box-shadow: 0 18px 40px rgba(37, 99, 235, .32);
}

.jp-home-btn-primary:hover {
    background: #1d4ed8;
    color: #ffffff;
}

.jp-home-btn-secondary {
    background: rgba(255, 255, 255, .12);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, .24);
}

.jp-home-btn-secondary:hover {
    background: rgba(255, 255, 255, .20);
    color: #ffffff;
}

.jp-home-panel {
    display: grid;
    gap: 14px;
    padding: 20px;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .28);
    backdrop-filter: blur(16px);
}

.jp-home-panel-title {
    margin: 0 0 2px;
    color: #ffffff;
    font-size: 1rem;

    letter-spacing: .02em;
    text-transform: uppercase;
}

.jp-home-panel-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 14px;
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.92);
    color: #111827;
}

.jp-home-panel-number {
    width: 42px;
    height: 42px;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #2563eb;
    color: #fff;

}

.jp-home-panel-row strong {
    display: block;
    margin-bottom: 4px;
    color: #111827;
    font-size: 1rem;
    line-height: 1.2;
}

.jp-home-panel-row span {
    color: #536174;
    font-size: .92rem;
    line-height: 1.42;
    font-weight: 600;
}

.jp-home-section {
    background: #f5f7fb;
    color: #101827;
    padding: 70px 24px;
}

.jp-home-section-inner {
    width: min(1240px, 100%);
    margin: 0 auto;
}

.jp-home-section-head {
    display: grid;
    grid-template-columns: minmax(0, 620px) minmax(260px, 1fr);
    gap: 32px;
    align-items: end;
    margin-bottom: 26px;
}

.jp-home-section h2 {
    margin: 0;
    color: #101827;
    font-size: clamp(2rem, 4vw, 2.1rem);
    line-height: 1;
    letter-spacing: -0.06em;

}

.jp-home-section-head p {
    margin: 0;
    color: #56667b;
    font-size: clamp(1rem, 1.3vw, 1.18rem);
    line-height: 1.5;
    font-weight: 600;
}

.jp-home-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.jp-home-card {
    min-height: 230px;
    padding: 26px;
    border-radius: 5px;
    background: #ffffff;
    border: 1px solid #e1e7ef;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .06);
}

.jp-home-card-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    border-radius: 5px;
    background: #111827;
    color: #ffffff;

}

.jp-home-card h3 {
    margin: 0 0 10px;
    color: #101827;
    font-size: 1.25rem;

    letter-spacing: -0.03em;
}

.jp-home-card p {
    margin: 0;
    color: #607087;
    line-height: 1.55;
    font-weight: 600;
}

.jp-home-final {
    background: #111827;
    color: #ffffff;
    padding: 52px 24px;
}

.jp-home-final-inner {
    width: min(1240px, 100%);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: center;
    padding: 26px;
    border-radius: 5px;
    border: 1px solid rgba(255, 255, 255, .14);
    background: linear-gradient(135deg, rgba(37, 99, 235, .22), rgba(255, 255, 255, .06));
}

.jp-home-final h2 {
    margin: 0 0 8px;
    font-size: clamp(1.6rem, 2.8vw, 2.6rem);
    letter-spacing: -0.05em;
}

.jp-home-final p {
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 1.02rem;
    line-height: 1.45;
}

@media (max-width: 991.98px) {
    body:has(.jp-home-page) .jp-public-shell {
        margin-top: 0;
    }

    .jp-home-hero {
        min-height: auto;
        background:
                linear-gradient(180deg, rgba(15, 23, 32, .96) 0%, rgba(15, 23, 32, .86) 58%, rgba(15, 23, 32, .72) 100%),
                url('/assets/images/sign_in_left.avif') center top / cover no-repeat,
                #111827;
    }

    .jp-home-hero-inner,
    .jp-home-section-head {
        grid-template-columns: 1fr;
    }

    .jp-home-panel {
        margin-top: 0;
    }

    .jp-home-title {
        font-size: clamp(2.8rem, 12vw, 4.8rem);
    }

    .jp-home-card-grid {
        grid-template-columns: 1fr;
    }

    .jp-home-final-inner {
        align-items: stretch;
        flex-direction: column;
    }
}
