/* ==========================================================
   SITUP FINAL V7.0
   ========================================================== */

:root {

    --situp-bg:
        #04111d;

    --situp-navy:
        #071a2a;

    --situp-navy-2:
        #0a263b;


    /* literal shared glass */

    --situp-glass:
        rgba(5, 20, 32, .64);

    --situp-glass-border:
        rgba(154, 214, 239, .17);

    --situp-glass-highlight:
        rgba(255,255,255,.045);


    /* acronym/tree */

    --situp-green:
        #35f08c;

    --situp-green-glow:
        rgba(53,240,140,.28);


    /* MSP */

    --msp:
        #61d8ff;

    --msp-strong:
        #32bfff;

    --msp-pale:
        #b8efff;

    --msp-glow:
        rgba(40,176,255,.34);


    /* federal */

    --fed:
        #ffc76f;

    --fed-strong:
        #f2a93b;

    --fed-pale:
        #ffe3ad;

    --fed-glow:
        rgba(242,169,59,.30);


    --paper:
        #f4f7f9;

    --ink:
        #102638;

    --muted:
        #637785;
}


/* ==========================================================
   FOUNDATION
   ========================================================== */

html,
body {

    background:
        var(--situp-bg) !important;
}


body {

    overflow-x:
        hidden;
}


/*
 * Keep the established landscape/network system behind
 * everything, including the navbar.
 */

#situp-production-stage {

    position:
        fixed !important;

    inset:
        0 !important;

    z-index:
        0 !important;

    width:
        100vw !important;

    height:
        100vh !important;
}


main,
.site-footer {

    position:
        relative;

    z-index:
        2;
}


/* ==========================================================
   LITERAL GLASS MATERIAL

   HEADER AND DROPDOWNS USE THE SAME VALUES.
   ========================================================== */

.site-header,
.situp-header-v4,
.situp-production-header,
.situp-nav-menu {

    background:

        linear-gradient(
            180deg,
            var(--situp-glass-highlight),
            rgba(255,255,255,.008)
        ),

        var(--situp-glass)

        !important;


    border-color:
        var(--situp-glass-border) !important;


    box-shadow:

        inset 0 1px 0
        var(--situp-glass-highlight),

        0 12px 32px
        rgba(0,0,0,.24)

        !important;


    backdrop-filter:

        blur(17px)
        saturate(138%)
        brightness(.91)

        !important;


    -webkit-backdrop-filter:

        blur(17px)
        saturate(138%)
        brightness(.91)

        !important;
}


.site-header,
.situp-header-v4,
.situp-production-header {

    position:
        sticky !important;

    top:
        0 !important;

    z-index:
        10000 !important;


    border-top:
        0 !important;

    border-left:
        0 !important;

    border-right:
        0 !important;

    border-bottom:
        1px solid
        var(--situp-glass-border) !important;
}


.situp-nav-menu {

    border:
        1px solid
        var(--situp-glass-border) !important;
}


/*
 * Kill intermediate opaque wrappers.
 */

.situp-header-shell,
.nav-shell,
.situp-nav-v4,
.situp-nav-group,
.situp-nav-parent {

    background:
        transparent !important;
}


/* ==========================================================
   BRAND
   ========================================================== */

.situp-brand-acronym {

    color:
        var(--situp-green) !important;


    text-shadow:

        0 0 8px
        rgba(53,240,140,.21)

        !important;
}


.situp-brand-secure-rest {

    color:
        #ffffff !important;
}


/*
 * Stronger tree mark.
 */

.brand-mark,
.footer-mark,
.situp-logo-mark img,
.situp-brand-v4 img {

    filter:

        saturate(1.9)
        brightness(1.18)
        contrast(1.08)

        drop-shadow(
            0 0 5px
            rgba(53,240,140,.27)
        )

        !important;
}


.situp-logo-mark svg,
.situp-logo-mark svg *,
.situp-brand-v4 svg,
.situp-brand-v4 svg * {

    color:
        var(--situp-green) !important;

    fill:
        var(--situp-green) !important;

    stroke:
        var(--situp-green) !important;
}


/* ==========================================================
   NAV ITEMS
   ========================================================== */

.site-header a,
.situp-header-v4 a,
.situp-production-header a {

    color:
        rgba(241,248,252,.92) !important;
}


.situp-nav-menu a:hover {

    color:
        #ffffff !important;

    background:
        rgba(97,216,255,.075) !important;
}


/*
 * Current submenu item remains the clean green check.
 */

.situp-nav-menu a.active::before,
.situp-nav-menu a[aria-current="page"]::before {

    color:
        var(--situp-green) !important;
}


/* ==========================================================
   HERO
   ========================================================== */

.hero {

    background:
        transparent !important;
}


.hero::before {

    background:

        linear-gradient(
            90deg,

            rgba(3,15,25,.97) 0%,

            rgba(3,15,25,.89) 29%,

            rgba(3,15,25,.58) 50%,

            rgba(3,15,25,.16) 70%,

            rgba(3,15,25,.03) 100%
        )

        !important;
}


/* ==========================================================
   TRUST STRIP
   ========================================================== */

.trust-strip {

    width:
        min(1160px, calc(100% - 40px)) !important;

    max-width:
        1160px !important;


    margin-left:
        auto !important;

    margin-right:
        auto !important;


    background:

        linear-gradient(
            180deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.008)
        ),

        rgba(5,20,32,.78)

        !important;


    color:
        rgba(236,247,252,.88) !important;


    border:
        1px solid
        var(--situp-glass-border) !important;


    box-shadow:
        0 12px 34px
        rgba(0,0,0,.18) !important;


    backdrop-filter:
        blur(14px)
        saturate(125%) !important;

    -webkit-backdrop-filter:
        blur(14px)
        saturate(125%) !important;
}


.trust-item {

    color:
        rgba(226,242,249,.82) !important;

    opacity:
        1 !important;
}


/* ==========================================================
   LANE FRAME
   ========================================================== */

.lane-section {

    width:
        min(1160px, calc(100% - 40px)) !important;

    max-width:
        1160px !important;


    margin-left:
        auto !important;

    margin-right:
        auto !important;


    gap:
        16px !important;


    padding:
        16px !important;


    background:

        linear-gradient(
            180deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.008)
        ),

        rgba(4,17,29,.78)

        !important;


    border:
        1px solid
        var(--situp-glass-border) !important;


    box-shadow:
        0 18px 45px
        rgba(0,0,0,.20) !important;


    backdrop-filter:
        blur(13px)
        saturate(125%) !important;

    -webkit-backdrop-filter:
        blur(13px)
        saturate(125%) !important;
}


/* ==========================================================
   BOTH PLACARDS
   ========================================================== */

.lane-card {

    position:
        relative !important;


    overflow:
        hidden !important;


    border-radius:
        13px !important;


    color:
        #ffffff !important;


    transition:

        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease

        !important;
}


.lane-card:hover {

    transform:
        translateY(-2px);
}


.lane-content {

    position:
        relative !important;

    z-index:
        3 !important;


    color:
        #ffffff !important;
}


.lane-content h2 {

    color:
        #ffffff !important;

    opacity:
        1 !important;


    text-shadow:

        0 2px 9px
        rgba(0,0,0,.42)

        !important;
}


.lane-content
> p:not(.lane-kicker) {

    color:
        rgba(244,250,253,.87) !important;

    opacity:
        1 !important;
}


.lane-list span {

    color:
        rgba(250,253,255,.94) !important;

    opacity:
        1 !important;
}


/* ==========================================================
   MSP PLACARD // COOL BLUE
   ========================================================== */

.lane-it {

    border:
        1px solid
        rgba(97,216,255,.34) !important;


    box-shadow:

        0 0 0 1px
        rgba(97,216,255,.065),

        0 18px 48px
        rgba(14,135,211,.24),

        0 0 34px
        rgba(50,191,255,.11)

        !important;
}


.lane-it .lane-shade {

    background:

        linear-gradient(
            90deg,

            rgba(2,16,29,.985) 0%,

            rgba(4,31,51,.94) 42%,

            rgba(6,56,83,.70) 72%,

            rgba(4,26,42,.24) 100%
        )

        !important;
}


.lane-it .lane-kicker,
.lane-it .lane-accent {

    color:
        var(--msp) !important;


    text-shadow:
        0 0 13px
        rgba(97,216,255,.18) !important;
}


.lane-it
.lane-list
span::before {

    color:
        var(--msp) !important;


    text-shadow:
        0 0 9px
        var(--msp-glow) !important;
}


.lane-it .button,
.lane-it .button-primary,
.lane-it .button-blue {

    color:
        #03131e !important;


    background:

        linear-gradient(
            180deg,
            #8ee6ff,
            #45c6fa
        )

        !important;


    border:
        1px solid
        rgba(184,239,255,.72) !important;


    box-shadow:

        0 8px 23px
        rgba(16,139,211,.25),

        0 0 19px
        rgba(97,216,255,.14)

        !important;
}


.lane-it .button:hover,
.lane-it .button-primary:hover,
.lane-it .button-blue:hover {

    background:

        linear-gradient(
            180deg,
            #b8efff,
            #61d8ff
        )

        !important;


    box-shadow:

        0 10px 28px
        rgba(16,139,211,.32),

        0 0 26px
        rgba(97,216,255,.22)

        !important;
}


/* ==========================================================
   GOVERNMENT PLACARD // AMBER
   ========================================================== */

.lane-gov {

    border:
        1px solid
        rgba(255,199,111,.34) !important;


    box-shadow:

        0 0 0 1px
        rgba(255,199,111,.055),

        0 18px 48px
        rgba(184,110,20,.22),

        0 0 34px
        rgba(242,169,59,.10)

        !important;
}


.lane-gov .lane-shade {

    background:

        linear-gradient(
            90deg,

            rgba(21,16,8,.975) 0%,

            rgba(46,32,13,.91) 43%,

            rgba(74,49,15,.62) 72%,

            rgba(38,27,13,.20) 100%
        )

        !important;
}


.lane-gov .lane-kicker,
.lane-gov .lane-accent {

    color:
        var(--fed) !important;


    text-shadow:
        0 0 13px
        rgba(255,199,111,.18) !important;
}


.lane-gov
.lane-list
span::before {

    color:
        var(--fed) !important;


    text-shadow:
        0 0 9px
        var(--fed-glow) !important;
}


.lane-gov .button,
.lane-gov .button-primary,
.lane-gov .button-blue {

    color:
        #211405 !important;


    background:

        linear-gradient(
            180deg,
            #ffd994,
            #f4b750
        )

        !important;


    border:
        1px solid
        rgba(255,227,173,.73) !important;


    box-shadow:

        0 8px 23px
        rgba(183,107,17,.24),

        0 0 19px
        rgba(242,169,59,.13)

        !important;
}


.lane-gov .button:hover,
.lane-gov .button-primary:hover,
.lane-gov .button-blue:hover {

    background:

        linear-gradient(
            180deg,
            #ffe6b4,
            #ffc76f
        )

        !important;


    box-shadow:

        0 10px 28px
        rgba(183,107,17,.31),

        0 0 26px
        rgba(242,169,59,.21)

        !important;
}


/* ==========================================================
   CONTACT PAGE

   Reassert V6.4 layout even if its earlier CSS was partially
   lost or overridden.
   ========================================================== */

.situp-contact-v64-main {

    position:
        relative !important;

    z-index:
        3 !important;


    width:
        min(1160px, calc(100% - 40px)) !important;

    max-width:
        1160px !important;


    margin:
        0 auto !important;


    padding:
        42px 0 72px !important;
}


.contact-v64-hero {

    display:
        grid !important;

    grid-template-columns:
        8fr 5fr !important;


    gap:
        42px !important;


    align-items:
        end !important;


    margin-bottom:
        14px !important;

    padding:
        34px !important;


    background:

        linear-gradient(
            180deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.008)
        ),

        rgba(5,20,32,.72)

        !important;


    border:
        1px solid
        var(--situp-glass-border) !important;


    border-radius:
        13px !important;


    backdrop-filter:
        blur(15px)
        saturate(130%) !important;

    -webkit-backdrop-filter:
        blur(15px)
        saturate(130%) !important;
}


.contact-v64-kicker {

    color:
        var(--msp) !important;
}


.contact-v64-hero h1 {

    margin:
        0 !important;


    color:
        #ffffff !important;


    font-size:
        clamp(42px,5vw,70px) !important;

    line-height:
        .97 !important;

    letter-spacing:
        -.045em !important;
}


.contact-v64-hero h1 span {

    color:
        var(--msp) !important;
}


.contact-v64-hero-copy {

    color:
        rgba(225,240,248,.78) !important;

    line-height:
        1.6 !important;
}


.contact-v64-surface {

    display:
        grid !important;

    grid-template-columns:
        5fr 8fr !important;


    overflow:
        hidden !important;


    border:
        1px solid
        var(--situp-glass-border) !important;


    border-radius:
        13px !important;


    box-shadow:
        0 18px 46px
        rgba(0,0,0,.23) !important;
}


.contact-v64-routing {

    padding:
        32px !important;


    background:

        linear-gradient(
            145deg,
            rgba(8,35,55,.98),
            rgba(5,21,34,.98)
        )

        !important;


    color:
        #ffffff !important;
}


.contact-v64-routing h2 {

    color:
        #ffffff !important;
}


.contact-v64-routing > p {

    color:
        rgba(220,237,247,.70) !important;
}


.contact-v64-lanes {

    display:
        grid !important;

    gap:
        12px !important;


    margin-top:
        26px !important;
}


.contact-v64-lane {

    display:
        block !important;


    padding:
        16px !important;


    background:
        rgba(255,255,255,.035) !important;


    border:
        1px solid
        rgba(121,200,237,.14) !important;


    border-radius:
        8px !important;
}


.contact-v64-lane:first-child {

    box-shadow:
        inset 3px 0 0
        var(--msp) !important;
}


.contact-v64-lane:nth-child(2) {

    box-shadow:
        inset 3px 0 0
        var(--fed) !important;
}


.contact-v64-lane strong {

    display:
        block !important;

    color:
        #ffffff !important;
}


.contact-v64-lane span {

    display:
        block !important;


    margin-top:
        6px !important;


    color:
        rgba(218,236,246,.66) !important;


    line-height:
        1.45 !important;
}


.contact-v64-direct {

    display:
        grid !important;

    gap:
        7px !important;


    margin-top:
        26px !important;

    padding-top:
        18px !important;


    border-top:
        1px solid
        rgba(121,200,237,.13) !important;
}


.contact-v64-direct a {

    color:
        var(--msp) !important;
}


.contact-v64-form-panel {

    padding:
        32px !important;


    background:
        var(--paper) !important;
}


.contact-v64-form-heading {

    display:
        flex !important;

    align-items:
        flex-end !important;

    justify-content:
        space-between !important;


    gap:
        18px !important;


    margin-bottom:
        24px !important;
}


.contact-v64-form-heading h2 {

    margin:
        0 !important;


    color:
        var(--ink) !important;
}


#situp-contact-v64-form {

    display:
        grid !important;

    gap:
        16px !important;
}


.contact-v64-row {

    display:
        grid !important;

    grid-template-columns:
        1fr 1fr !important;


    gap:
        12px !important;
}


.contact-v64-field {

    display:
        grid !important;

    gap:
        6px !important;
}


.contact-v64-field label {

    color:
        #496576 !important;


    font-size:
        9px !important;

    font-weight:
        800 !important;

    letter-spacing:
        .09em !important;

    text-transform:
        uppercase !important;
}


.contact-v64-field input,
.contact-v64-field select,
.contact-v64-field textarea {

    box-sizing:
        border-box !important;


    width:
        100% !important;


    padding:
        11px 12px !important;


    border:
        1px solid
        #bdccd5 !important;

    border-radius:
        6px !important;


    background:
        #ffffff !important;

    color:
        #102638 !important;


    font:
        inherit !important;
}


.contact-v64-field select option {

    color:
        #071826 !important;

    background:
        #ffffff !important;
}


.contact-v64-field input:focus,
.contact-v64-field select:focus,
.contact-v64-field textarea:focus {

    outline:
        none !important;


    border-color:
        var(--msp-strong) !important;


    box-shadow:
        0 0 0 3px
        rgba(50,191,255,.12) !important;
}


.contact-v64-field textarea {

    min-height:
        135px !important;

    resize:
        vertical !important;
}


.contact-v64-service {

    display:
        none !important;
}


.contact-v64-service.is-visible {

    display:
        grid !important;
}


.contact-v64-submit-row {

    display:
        flex !important;

    align-items:
        center !important;

    justify-content:
        space-between !important;


    gap:
        16px !important;
}


.contact-v64-submit {

    min-width:
        170px !important;

    min-height:
        43px !important;


    padding:
        0 17px !important;


    border:
        1px solid
        rgba(184,239,255,.68) !important;

    border-radius:
        6px !important;


    background:

        linear-gradient(
            180deg,
            #8ee6ff,
            #45c6fa
        )

        !important;


    color:
        #04131e !important;


    font-weight:
        800 !important;


    box-shadow:
        0 8px 22px
        rgba(16,139,211,.19) !important;
}


/* ==========================================================
   MOBILE NAV

   IMPORTANT:
   THE MENU IS STATIC/IN-FLOW AND EXPANDS THE HEADER.
   IT DOES NOT COVER THE HERO.
   ========================================================== */

.situp-v70-menu-toggle {

    display:
        none;
}


@media (max-width: 900px) {

    .situp-header-shell,
    .nav-shell {

        display:
            grid !important;


        grid-template-columns:
            minmax(0,1fr)
            38px !important;


        align-items:
            center !important;


        width:
            100% !important;


        padding:
            0 9px !important;


        box-sizing:
            border-box !important;
    }


    /*
     * old mobile buttons off
     */

    .menu-toggle,
    .situp-menu-toggle,
    .nav-toggle,
    .mobile-menu-toggle,
    .situp-v66-mobile-toggle {

        display:
            none !important;
    }


    .situp-v70-menu-toggle {

        display:
            inline-flex;


        align-items:
            center;

        justify-content:
            center;


        width:
            34px;

        height:
            34px;


        padding:
            0;


        border:
            1px solid
            var(--situp-glass-border);

        border-radius:
            6px;


        background:
            rgba(255,255,255,.025);


        color:
            rgba(240,249,253,.94);


        justify-self:
            end;
    }


    .situp-v70-menu-toggle svg {

        width:
            18px;

        height:
            18px;


        fill:
            none;

        stroke:
            currentColor;

        stroke-width:
            1.7;

        stroke-linecap:
            round;
    }


    .situp-nav-v4,
    .primary-nav {

        grid-column:
            1 / -1 !important;


        position:
            static !important;


        display:
            none !important;


        width:
            100% !important;

        max-width:
            none !important;


        max-height:
            none !important;


        margin:
            0 !important;

        padding:
            6px 0 9px !important;


        overflow:
            visible !important;


        background:
            transparent !important;


        border:
            0 !important;


        box-shadow:
            none !important;


        transform:
            none !important;
    }


    .situp-nav-v4.is-mobile-open,
    .primary-nav.is-mobile-open {

        display:
            block !important;
    }


    .situp-nav-v4 > a,
    .primary-nav > a,
    .situp-nav-parent {

        display:
            flex !important;


        align-items:
            center !important;

        justify-content:
            space-between !important;


        width:
            100% !important;


        min-height:
            40px !important;


        padding:
            0 10px !important;


        box-sizing:
            border-box !important;


        border-radius:
            5px !important;


        font-size:
            12px !important;


        color:
            rgba(238,248,252,.94) !important;
    }


    .situp-nav-group {

        position:
            static !important;

        width:
            100% !important;
    }


    .situp-nav-parent::after {

        content:
            "" !important;


        width:
            6px !important;

        height:
            6px !important;


        border-right:
            1.5px solid
            rgba(220,241,249,.72) !important;

        border-bottom:
            1.5px solid
            rgba(220,241,249,.72) !important;


        transform:
            rotate(45deg) !important;


        transition:
            transform .15s ease !important;
    }


    .situp-nav-group.is-subopen
    > .situp-nav-parent::after {

        transform:
            rotate(225deg) !important;
    }


    /*
     * mobile submenu is in document flow
     */

    .situp-nav-menu {

        position:
            static !important;


        display:
            none !important;


        width:
            calc(100% - 12px) !important;


        margin:
            2px 0 6px 12px !important;


        padding:
            4px !important;


        box-sizing:
            border-box !important;


        opacity:
            1 !important;

        visibility:
            visible !important;

        transform:
            none !important;


        box-shadow:
            none !important;
    }


    .situp-nav-group.is-subopen
    > .situp-nav-menu {

        display:
            block !important;
    }


    /*
     * suppress desktop hover-opening
     */

    .situp-nav-group:hover
    > .situp-nav-menu {

        display:
            none !important;
    }


    .situp-nav-group.is-subopen:hover
    > .situp-nav-menu {

        display:
            block !important;
    }


    .situp-nav-menu a {

        display:
            flex !important;


        align-items:
            center !important;


        min-height:
            37px !important;


        padding:
            6px 9px !important;


        box-sizing:
            border-box !important;


        border-radius:
            4px !important;


        color:
            rgba(205,228,239,.76) !important;


        font-size:
            11px !important;
    }


    /* contact page */

    .situp-contact-v64-main {

        width:
            calc(100% - 22px) !important;


        padding:
            22px 0 45px !important;
    }


    .contact-v64-hero {

        grid-template-columns:
            1fr !important;


        gap:
            18px !important;


        padding:
            23px !important;
    }


    .contact-v64-surface {

        grid-template-columns:
            1fr !important;
    }


    .contact-v64-routing,
    .contact-v64-form-panel {

        padding:
            23px !important;
    }

}


@media (max-width: 560px) {

    .contact-v64-row {

        grid-template-columns:
            1fr !important;
    }


    .contact-v64-submit-row {

        align-items:
            stretch !important;

        flex-direction:
            column-reverse !important;
    }


    .contact-v64-submit {

        width:
            100% !important;
    }

}
