/* ==========================================================
   CONTRACTOR VISIBILITY
   PREMIUM COMPACT MEGA MENU
========================================================== */

:root {

    --cv-navy: #102c5c;
    --cv-navy-dark: #071e48;

    --cv-gold: #d1a64f;
    --cv-gold-dark: #bb8d35;

    --cv-cream: #f9f7f2;
    --cv-cream-dark: #f1ece3;

    --cv-white: #ffffff;

    --cv-text: #192640;

    --cv-muted: #6c7280;

    --cv-border: #e9e4da;

}


/* ==========================================================
   HEADER
========================================================== */

.cv-header {

    position: relative;

    z-index: 9999;

    width: 100%;

    background: rgba(255, 255, 255, 0.98);

    border-bottom:
        1px solid rgba(16, 44, 92, 0.08);

    font-family:
        "Manrope",
        sans-serif;

}


.cv-header-container {

    position: relative;

    width:
        min(1480px, calc(100% - 50px));

    height: 90px;

    margin: auto;

    display: flex;

    align-items: center;

    gap: 34px;

}


/* ==========================================================
   LOGO
========================================================== */

.cv-logo {

    flex-shrink: 0;

    display: flex;

    align-items: center;

}


.cv-logo-image {

    width: 235px;

    max-height: 65px;

    object-fit: contain;

    display: block;

}


/* ==========================================================
   NAV
========================================================== */

.cv-navigation {

    height: 100%;

    margin-left: auto;

    display: flex;

    align-items: center;

}


.cv-menu-item {

    position: static;

    height: 100%;

    display: flex;

    align-items: center;

}


.cv-menu-link {

    position: relative;

    height: 100%;

    padding:

        0
        18px;

    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--cv-navy);

    text-decoration: none;

    font-size: 15px;

    font-weight: 700;

    white-space: nowrap;

}


.cv-menu-link > i {

    font-size: 10px;

    transition:
        transform .25s ease;

}


/* HOVER GOLD LINE */

.cv-menu-link::after {

    content: "";

    position: absolute;

    left: 18px;

    right: 18px;

    bottom: 19px;

    height: 2px;

    border-radius: 10px;

    background: var(--cv-gold);

    transform: scaleX(0);

    transition:
        transform .25s ease;

}


.cv-menu-item:hover
> .cv-menu-link {

    color:
        var(--cv-gold-dark);

}


.cv-menu-item:hover
> .cv-menu-link::after {

    transform:
        scaleX(1);

}


.cv-menu-item:hover
> .cv-menu-link i {

    transform:
        rotate(180deg);

}


/* ==========================================================
   BUTTONS
========================================================== */

.cv-header-actions {

    display: flex;

    gap: 11px;

    flex-shrink: 0;

}


.cv-header-outline-btn,
.cv-header-primary-btn {

    min-height: 48px;

    padding:
        0 17px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius: 7px;

    font-size: 12px;

    font-weight: 700;

    text-decoration: none;

    transition:
        all .25s ease;

}


.cv-header-outline-btn {

    color: var(--cv-navy);

    border:
        1.5px solid
        var(--cv-navy);

}


.cv-header-outline-btn:hover {

    color: #fff;

    background:
        var(--cv-navy);

}


.cv-header-primary-btn {

    color: #fff;

    background:
        var(--cv-navy);

    border:
        1.5px solid
        var(--cv-navy);

}


.cv-header-primary-btn:hover {

    background:
        var(--cv-gold);

    border-color:
        var(--cv-gold);

}


/* ==========================================================
   MEGA MENU BASE
========================================================== */

.cv-mega-menu {

    position: absolute;

    top:
        calc(100% - 5px);

    left: 50%;

    transform:
        translate(-50%, 12px);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        all .24s ease;

}


.cv-mega-menu::before {

    content: "";

    position: absolute;

    top: -18px;

    left: 0;

    width: 100%;

    height: 22px;

}


.cv-menu-item:hover
> .cv-mega-menu {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transform:
        translate(-50%, 0);

}


/* ==========================================================
   SERVICES MEGA
========================================================== */

.cv-services-menu {

    width:
        min(1370px, calc(100vw - 55px));

    background:
        var(--cv-cream);

    border:
        1px solid
        rgba(16,44,92,.10);

    border-radius: 14px;

    box-shadow:

        0 22px 55px
        rgba(7,30,72,.14);

    overflow: hidden;

}


/* ==========================================================
   SERVICES LAYOUT
========================================================== */

.cv-services-layout {

    display: grid;

    grid-template-columns:

        1fr
        1fr
        1.12fr
        1fr
        290px;

    min-height: 290px;

}


/* ==========================================================
   SERVICE COLUMN
========================================================== */

.cv-service-column {

    padding:

        27px
        20px
        25px;

    border-right:

        1px solid
        var(--cv-border);

}


.cv-column-heading {

    min-height: 34px;

    display: flex;

    align-items: center;

    gap: 9px;

    color:
        var(--cv-navy);

    font-size: 14px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing:
        .35px;

}


.cv-column-icon {

    width: 30px;

    height: 30px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 8px;

    color:
        var(--cv-gold-dark);

    background:

        rgba(209,166,79,.13);

}


.cv-column-icon i {

    font-size: 13px;

}


.cv-column-line {

    width: 100%;

    height: 1px;

    margin:

        11px
        0
        15px;

    background:

        linear-gradient(

            90deg,

            var(--cv-gold),

            rgba(209,166,79,.12)

        );

}


/* ==========================================================
   SERVICE LINKS
========================================================== */

.cv-mega-link {

    min-height: 44px;

    padding:

        8px
        8px;

    margin-bottom: 3px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 8px;

    border-radius: 7px;

    color:
        #303a4d;

    text-decoration: none;

    font-size: 12.5px;

    font-weight: 600;

    line-height: 1.4;

    transition:
        all .2s ease;

}


.cv-mega-link > i {

    flex-shrink: 0;

    color:
        var(--cv-gold);

    font-size: 9px;

    opacity: 0;

    transform:
        translateX(-6px);

    transition:
        all .2s ease;

}


.cv-mega-link:hover {

    padding-left: 12px;

    color:
        var(--cv-navy);

    background:

        rgba(209,166,79,.11);

}


.cv-mega-link:hover > i {

    opacity: 1;

    transform:
        translateX(0);

}


/* CHILD */

.cv-mega-link.cv-sub-link {

    position: relative;

    min-height: 35px;

    padding-left: 15px;

    color:
        #737986;

    font-size: 11.5px;

    font-weight: 500;

}


.cv-sub-arrow {

    color:
        var(--cv-gold);

    font-size: 14px;

    margin-right: 1px;

}


.cv-mega-link.cv-sub-link:hover {

    color:
        var(--cv-navy);

    padding-left: 18px;

}


/* SPECIAL AI LINK */

.cv-highlight-link {

    margin-top: 8px;

    color:
        var(--cv-navy);

    background:

        linear-gradient(

            90deg,

            rgba(209,166,79,.12),

            rgba(209,166,79,.03)

        );

    border:

        1px solid
        rgba(209,166,79,.18);

}


/* ==========================================================
   RIGHT IMAGE CARD
========================================================== */

.cv-mega-image-card {

    position: relative;

    min-height: 290px;

    overflow: hidden;

}


.cv-mega-image-card > img {

    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

}


.cv-mega-image-overlay {

    position: absolute;

    inset: 0;

    background:

        linear-gradient(

            180deg,

            rgba(7,30,72,.10)
            0%,

            rgba(7,30,72,.82)
            74%,

            rgba(7,30,72,.97)
            100%

        );

}


.cv-image-content {

    position: absolute;

    z-index: 2;

    left: 22px;

    right: 22px;

    bottom: 22px;

    color: #fff;

}


.cv-image-small-title {

    display:
        inline-flex;

    align-items:
        center;

    gap: 7px;

    margin-bottom:
        9px;

    padding:

        5px
        9px;

    border-radius:
        30px;

    color:
        #fff;

    background:

        rgba(255,255,255,.14);

    backdrop-filter:
        blur(10px);

    font-size:
        9px;

    font-weight:
        700;

    text-transform:
        uppercase;

    letter-spacing:
        .7px;

}


.cv-image-small-title i {

    color:
        var(--cv-gold);

}


.cv-image-content h3 {

    margin:
        0 0 8px;

    color:
        #fff;

    font-size:
        23px;

    line-height:
        1.12;

    letter-spacing:
        -.6px;

}


.cv-image-content h3 span {

    display: block;

    color:
        var(--cv-gold);

}


.cv-image-content p {

    margin:
        0 0 12px;

    color:
        rgba(255,255,255,.80);

    font-size:
        10.5px;

    line-height:
        1.5;

}


.cv-image-content a {

    display:
        inline-flex;

    align-items:
        center;

    gap:
        8px;

    color:
        #fff;

    text-decoration:
        none;

    font-size:
        10.5px;

    font-weight:
        700;

}


.cv-image-content a i {

    color:
        var(--cv-gold);

    transition:
        transform .2s ease;

}


.cv-image-content a:hover i {

    transform:
        translateX(4px);

}


/* ==========================================================
   BOTTOM BAR
========================================================== */

.cv-mega-bottom {

    min-height:
        49px;

    padding:

        0
        21px;

    display: flex;

    align-items: center;

    gap:
        28px;

    border-top:

        1px solid
        var(--cv-border);

    background:
        #fff;

}


.cv-mega-bottom > div {

    display: flex;

    align-items: center;

    gap: 7px;

    color:
        #626b79;

    font-size:
        9.5px;

    font-weight:
        600;

}


.cv-mega-bottom > div i {

    color:
        var(--cv-gold-dark);

}


.cv-mega-bottom > a {

    margin-left: auto;

    display:
        inline-flex;

    align-items: center;

    gap: 8px;

    color:
        var(--cv-navy);

    font-size:
        10.5px;

    font-weight:
        800;

    text-decoration: none;

}


.cv-mega-bottom > a i {

    color:
        var(--cv-gold);

}


/* ==========================================================
   INDUSTRIES MENU
========================================================== */

.cv-industry-menu {

    width:
        min(700px, calc(100vw - 50px));

}


.cv-industry-layout {

    display: grid;

    grid-template-columns:

        1.05fr
        .95fr;

    overflow: hidden;

    border-radius:
        14px;

    border:

        1px solid
        rgba(16,44,92,.10);

    background:
        var(--cv-cream);

    box-shadow:

        0 22px 55px
        rgba(7,30,72,.14);

}


.cv-industry-links {

    padding:
        29px;

}


.cv-industry-label {

    color:
        var(--cv-gold-dark);

    font-size:
        9px;

    font-weight:
        800;

    letter-spacing:
        1.3px;

    text-transform:
        uppercase;

}


.cv-industry-links h3 {

    margin:

        8px
        0
        8px;

    color:
        var(--cv-navy);

    font-size:
        23px;

    line-height:
        1.14;

}


.cv-industry-links > p {

    margin:
        0;

    color:
        var(--cv-muted);

    font-size:
        11px;

    line-height:
        1.5;

}


.cv-industry-items {

    margin-top:
        18px;

    display:
        flex;

    flex-direction:
        column;

    gap:
        8px;

}


.cv-industry-item {

    display: grid;

    grid-template-columns:

        42px
        1fr
        15px;

    align-items:
        center;

    gap:
        10px;

    min-height:
        62px;

    padding:
        8px;

    border:

        1px solid
        var(--cv-border);

    border-radius:
        9px;

    color:
        var(--cv-navy);

    background:
        #fff;

    text-decoration:
        none;

    transition:
        all .2s ease;

}


.cv-industry-item:hover {

    transform:
        translateX(3px);

    border-color:

        rgba(209,166,79,.35);

    background:
        #fdfaf3;

}


.cv-industry-item-icon {

    width:
        40px;

    height:
        40px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        8px;

    color:
        var(--cv-gold-dark);

    background:

        rgba(209,166,79,.13);

}


.cv-industry-item-content {

    display:
        flex;

    flex-direction:
        column;

    gap:
        2px;

}


.cv-industry-item-content strong {

    font-size:
        12px;

}


.cv-industry-item-content small {

    color:
        var(--cv-muted);

    font-size:
        9.5px;

    line-height:
        1.4;

}


.cv-industry-item > i {

    color:
        var(--cv-gold);

    font-size:
        9px;

}


/* ==========================================================
   INDUSTRY IMAGE
========================================================== */

.cv-industry-image {

    position:
        relative;

    min-height:
        350px;

    overflow:
        hidden;

}


.cv-industry-image img {

    position:
        absolute;

    inset:
        0;

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

}


.cv-industry-image-overlay {

    position:
        absolute;

    inset:
        0;

    background:

        linear-gradient(

            to bottom,

            rgba(7,30,72,.06),

            rgba(7,30,72,.78)

        );

}


.cv-industry-image-copy {

    position:
        absolute;

    z-index:
        2;

    left:
        24px;

    bottom:
        24px;

}


.cv-industry-image-copy > span {

    color:
        var(--cv-gold);

    font-size:
        9px;

    font-weight:
        800;

    text-transform:
        uppercase;

    letter-spacing:
        1px;

}


.cv-industry-image-copy h4 {

    margin:
        7px 0 0;

    color:
        #fff;

    font-size:
        26px;

    line-height:
        1.05;

}


.cv-industry-image-copy h4 strong {

    display:
        block;

    color:
        var(--cv-gold);

}


/* ==========================================================
   MOBILE BUTTON
========================================================== */

.cv-mobile-menu-btn {

    width:
        45px;

    height:
        45px;

    display:
        none;

    align-items:
        center;

    justify-content:
        center;

    flex-direction:
        column;

    gap:
        5px;

    padding:
        0;

    border:
        0;

    border-radius:
        7px;

    background:
        var(--cv-navy);

    cursor:
        pointer;

}


.cv-mobile-menu-btn span {

    width:
        21px;

    height:
        2px;

    display:
        block;

    border-radius:
        5px;

    background:
        #fff;

    transition:
        all .25s ease;

}


.cv-mobile-menu-btn.cv-active
span:nth-child(1) {

    transform:
        translateY(7px)
        rotate(45deg);

}


.cv-mobile-menu-btn.cv-active
span:nth-child(2) {

    opacity:
        0;

}


.cv-mobile-menu-btn.cv-active
span:nth-child(3) {

    transform:
        translateY(-7px)
        rotate(-45deg);

}


/* ==========================================================
   MOBILE OVERLAY
========================================================== */

.cv-menu-overlay {

    position:
        fixed;

    inset:
        0;

    z-index:
        9000;

    opacity:
        0;

    visibility:
        hidden;

    pointer-events:
        none;

    background:

        rgba(7,30,72,.48);

    backdrop-filter:
        blur(4px);

    transition:
        all .25s ease;

}


.cv-menu-overlay.cv-active {

    opacity:
        1;

    visibility:
        visible;

    pointer-events:
        auto;

}


/* ==========================================================
   1350
========================================================== */

@media (max-width: 1350px) {

    .cv-header-container {

        width:
            calc(100% - 35px);

        gap:
            18px;

    }


    .cv-logo-image {

        width:
            205px;

    }


    .cv-menu-link {

        padding:
            0 12px;

        font-size:
            13px;

    }


    .cv-header-outline-btn,
    .cv-header-primary-btn {

        padding:
            0 12px;

        font-size:
            10.5px;

    }


    .cv-services-menu {

        width:
            calc(100vw - 40px);

    }


    .cv-services-layout {

        grid-template-columns:

            1fr
            1fr
            1fr
            1fr
            260px;

    }


}


/* ==========================================================
   MOBILE / TABLET
========================================================== */

@media (max-width: 1100px) {


    .cv-header-container {

        height:
            78px;

    }


    .cv-logo-image {

        width:
            205px;

    }


    .cv-header-actions {

        display:
            none;

    }


    .cv-mobile-menu-btn {

        display:
            flex;

        margin-left:
            auto;

        position:
            relative;

        z-index:
            11001;

    }


    .cv-navigation {

        position:
            fixed;

        z-index:
            11000;

        top:
            0;

        right:
            0;

        width:
            min(420px, 92vw);

        height:
            100vh;

        display:
            block;

        padding:

            90px
            18px
            35px;

        overflow-y:
            auto;

        background:
            var(--cv-cream);

        transform:
            translateX(105%);

        transition:
            transform .3s ease;

        box-shadow:

            -20px
            0
            60px
            rgba(7,30,72,.18);

    }


    .cv-navigation.cv-open {

        transform:
            translateX(0);

    }


    .cv-menu-item {

        display:
            block;

        height:
            auto;

        border-bottom:

            1px solid
            var(--cv-border);

    }


    .cv-menu-link {

        width:
            100%;

        height:
            61px;

        padding:
            0 5px;

        justify-content:
            space-between;

        font-size:
            14px;

    }


    .cv-menu-link::after {

        display:
            none;

    }


    /* MOBILE DROP DOWN */

    .cv-mega-menu {

        position:
            static;

        width:
            100%;

        display:
            none;

        opacity:
            1;

        visibility:
            visible;

        pointer-events:
            auto;

        transform:
            none !important;

    }


    .cv-menu-item.cv-mobile-open
    > .cv-mega-menu {

        display:
            block;

    }


    .cv-menu-item.cv-mobile-open
    > .cv-menu-link i {

        transform:
            rotate(180deg);

    }


    /* MOBILE SERVICES */

    .cv-services-menu {

        border:
            0;

        border-radius:
            0;

        box-shadow:
            none;

        background:
            transparent;

    }


    .cv-services-layout {

        display:
            block;

    }


    .cv-service-column {

        padding:

            16px
            10px;

        border-right:
            0;

        border-bottom:

            1px solid
            var(--cv-border);

    }


    .cv-column-heading {

        font-size:
            12px;

    }


    .cv-mega-link {

        font-size:
            12px;

    }


    .cv-mega-image-card {

        display:
            none;

    }


    .cv-mega-bottom {

        display:
            none;

    }


    /* INDUSTRIES MOBILE */

    .cv-industry-menu {

        width:
            100%;

    }


    .cv-industry-layout {

        display:
            block;

        border:
            0;

        box-shadow:
            none;

        border-radius:
            0;

    }


    .cv-industry-links {

        padding:
            18px 8px;

    }


    .cv-industry-image {

        display:
            none;

    }


}


/* ==========================================================
   SMALL MOBILE
========================================================== */

@media (max-width: 575px) {

    .cv-header-container {

        width:
            calc(100% - 25px);

        height:
            74px;

    }


    .cv-logo-image {

        width:
            185px;

    }


    .cv-navigation {

        width:
            92vw;

    }

}


/* ==========================================================
   BODY LOCK
========================================================== */

body.cv-menu-lock {

    overflow:
        hidden;

}