body {
    font-family: "Montserrat", sans-serif;
}

:root {
    --background: 210 25% 97%;
    --foreground: 214 52% 25%;
    --card: 0 0% 100%;
    --card-foreground: 214 52% 25%;
    --popover: 0 0% 100%;
    --popover-foreground: 214 52% 25%;
    --primary: 214 52% 25%;
    --primary-foreground: 0 0% 100%;
    --secondary: 210 25% 97%;
    --secondary-foreground: 214 52% 25%;
    --muted: 210 20% 94%;
    --muted-foreground: 214 30% 45%;
    --accent: 41 62% 56%;
    --accent-foreground: 214 53% 18%;
    --destructive: 0 84% 60%;
    --destructive-foreground: 0 0% 100%;
    --border: 214 20% 85%;
    --input: 214 20% 85%;
    --ring: 17 89% 62%;
    --radius: .5rem;
    --cta: 17 89% 62%;
    --cta-foreground: 0 0% 100%;
    --navy-dark: 214 53% 18%;
    --gold: 41 62% 56%;
}


h1,
.h1 {
    line-height: 1.2;
    color: var(--navy-dark);
    font-weight: 700;
    letter-spacing: -.025em;
}

h2,
.h2 {
    font-weight: 700;
    line-height: 1.25;
    font-weight: 700;
    color: var(--navy-dark);
    letter-spacing: -.025em;
}

h3,
.h3 {
    font-weight: 600;
    line-height: 1.3;
    font-weight: 700;
    color: var(--navy-dark);
    letter-spacing: -.025em;
}

p {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
}

.small-text {
    font-size: 14px;
    font-weight: 500;
}

.x-small-text {
    font-size: 12px;
    font-weight: 500;
}

.subheading {
    font-weight: 600;
    line-height: 20px;
    text-transform: uppercase;
}

.bg-cta,
.bg-trans,
.bg-gold,
.bg-blue-line,
.bg-primary,
.bg-primary-foreground,
.bg-white-light,
.bg-blue {
    border-radius: 6px;
    text-decoration: none;
    color: hsl(var(--cta-foreground));
    font-weight: 600;
    line-height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: .3s;

    &:has(svg) {
        gap: 8px;

        svg {
            width: 20px;
            height: 20px;
        }
    }
}

.bg-cta {
    background-color: hsl(var(--cta));

    &:hover {
        background-color: hsl(var(--cta) / .9) !important;
    }

}

.bg-primary {
    background-color: hsl(var(--primary)) !important;

    &:hover {
        background-color: hsl(var(--primary) / .9) !important;
    }

}

.bg-primary-foreground {
    color: hsl(var(--primary-foreground));
    border: 1px solid hsl(var(--primary-foreground));

    &:hover {
        background-color: hsl(var(--primary-foreground) / .1);
    }
}

.bg-gold {

    background-color: hsl(var(--gold));

    &:hover {
        background-color: hsl(var(--gold) / .9) !important;
    }
}

.bg-trans {
    border: 1px solid hsl(var(--primary-foreground));

    &:hover {
        background-color: hsl(var(--primary-foreground));
        color: hsl(var(--foreground)) !important;
    }
}

.bg-white-light {
    background: #fff;
    color: hsl(var(--cta));

    &:hover {
        background-color: #ffffffe6;
    }
}

.bg-blue-line {

    border: 1px solid hsl(var(--primary));
    color: hsl(var(--primary));
    --tw-ring-offset-color: hsl(var(--background));

    &:hover {
        background-color: hsl(var(--primary));
        color: #fff !important;
        border: 1px solid #fff;
    }
}

.bg-blue {

    background-color: hsl(var(--primary));

    &:hover {
        background-color: hsl(var(--primary) / .9);
    }
}

.fs-12 {
    font-size: 12px;
}

.fs-14 {
    font-size: 14px !important;
}

.fs-16 {
    font-size: 16px;
}


.h-40 {
    height: 40px;
}

.h-44 {
    height: 44px;
}

.h-48 {
    height: 48px;
}

.h-56 {
    height: 56px;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.mb-8 {
    margin-bottom: 8px;
}

.mb-12 {
    margin-bottom: 12px;
}

.mb-16 {
    margin-bottom: 16px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-24 {
    margin-bottom: 24px;
}

.text-cta {
    color: hsl(var(--cta));
}

.text-gold {
    color: hsl(var(--gold));
}

.text-foreground {
    color: hsl(var(--foreground));
}

.text-muted-foreground {
    color: hsl(var(--muted-foreground));
}

.bg-graylight {
    background-color: hsl(var(--secondary));
}

.font-semibold {
    font-weight: 500;
}

.skip-to-content {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: 99999;
}

.skip-to-content:focus {
    left: 16px;
    top: 16px;
    width: auto;
    height: auto;
    padding: 12px 16px;
    background: #fff;
    color: #000;
    border: 2px solid currentColor;
    border-radius: 8px;
    overflow: visible;
}

@media (min-width: 1200px) {
    section {
        padding: 112px 0;
    }

    .wrapper {
        max-width: 1428px;
        padding: 0 30px;
        margin: auto;
    }

    h1,
    .h1 {
        font-size: 48px;
    }

    h2,
    .h2 {
        font-size: 40px;
    }

    h3,
    .h3 {
        font-size: 30px;
    }

    .fs-20 {
        font-size: 20px;
    }

    .fs-24 {
        font-size: 24px;
    }

    p,
    .fs-18,
    .subheading {
        font-size: 18px;
    }
}

@media (max-width: 1199px) {
    section {
        padding: 80px 30px;
    }

    h1,
    .h1 {
        font-size: 40px;
    }

    h2,
    .h2 {
        font-size: 32px;
    }

    h3,
    .h3 {
        font-size: 24px;
    }

    .fs-20 {
        font-size: 18px;
    }

    .fs-24 {
        font-size: 22px;
    }

    p,
    .fs-18,
    .subheading {
        font-size: 16px;
    }
}

@media (min-width: 992px) {
    .mb-32 {
        margin-bottom: 32px;
    }

    .mb-40 {
        margin-bottom: 40px;
    }

    .mb-48 {
        margin-bottom: 48px;
    }

    .bg-cta,
    .bg-trans,
    .bg-gold,
    .bg-blue-line,
    .bg-primary,
    .bg-primary-foreground,
    .bg-white-light,
    .bg-blue {
        padding: 16px 32px;
    }
}

@media (max-width: 991px) {

    .mb-32 {
        margin-bottom: 27px;
    }

    .mb-40 {
        margin-bottom: 35px;
    }

    .mb-48 {
        margin-bottom: 42px;
    }

    .bg-cta,
    .bg-trans,
    .bg-gold,
    .bg-blue-line,
    .bg-primary,
    .bg-primary-foreground,
    .bg-white-light,
    .bg-blue {
        padding: 16px;
    }
}

@media (max-width: 767px) {
    section {
        padding: 60px 8px;
    }
}

@media (max-width: 575px) {

    h1,
    .h1 {
        font-size: 35px;
    }

    .looking-something .d-flex,
    .cta_group {
        flex-direction: column;
    }
}

header {

    background-color: hsl(var(--primary) / .95);
    border-bottom: 1px solid hsl(var(--primary-foreground) / .1);

    .navbar-brand {
        display: flex;
        max-width: 242px;
        padding: 0;
        margin: 0;
        gap: 10px;

        img {
            max-width: 72px;
        }

        .logo_name {
            display: flex;
            flex-direction: column;

            span {
                color: hsl(var(--primary-foreground));
            }

        }
    }

    #menu-corcontracting-main-menu {

        @media (min-width: 1200px) {
            width: 100%;
            max-width: 570px;
            gap: 24px;
            justify-content: space-between;

            ul.sub-menu {
                display: none;
                position: absolute;
                transform: translate(0px, 8px);
                margin: 0;

                li:hover {
                    background-color: rgba(255, 255, 255, 0.1);

                    a {
                        text-decoration: underline;
                    }
                }
            }
        }

        >li {
            padding: 8px 0;
        }

        li#menu-item-95 a {
            display: flex;
            align-items: center;
            gap: 6px;

            svg {
                width: 16px;
            }
        }

        li {
            ul.sub-menu {
                list-style: none;
                padding: 8px 0;
                background: #1E3A5F;
                border-radius: 8px;
                box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);

                li a {
                    padding: 8px 16px;
                    width: 100%;
                    display: flex;
                }


            }

            &:hover ul.sub-menu {
                display: block;
            }

            a {
                color: hsl(var(--primary-foreground) / .8);
                text-decoration: none;
                font-size: 14px;
                font-weight: 500;
                line-height: 20px;
            }


        }

        &.menu-item-has-children>a,
        .current-menu-item a,
        li:hover>a {
            color: hsl(var(--primary-foreground));
            font-weight: 500;
        }
    }

    .contact-details {
        display: flex;
        align-items: center;
        gap: 16px;

        .phone {
            display: flex;
            align-items: center;
            color: hsl(var(--primary-foreground));
            gap: 8px;
            text-decoration: none;
            font-weight: 600;

            svg {
                width: 16px;
                height: 16px;
            }
        }

        a.bg-cta {
            padding: 8px 16px !important;
        }
    }

    @media (min-width: 1200px) {
        nav.navbar {
            height: 80px;
            justify-content: space-between;
        }

        div#navbarSupportedContent {
            max-width: fit-content;
        }

        .navbar-brand {
            .logo-header {
                font-size: 20px;
                line-height: 28px;
            }

            img {
                padding: 0 12px;
            }
        }
    }

    @media (max-width: 1199px) {
        padding: 20px 22px;

        #navbarSupportedContent {
            order: 3;
        }

        .navbar-brand {
            .logo-header {
                font-size: 18px;
                line-height: 28px;
            }

            .small-text {
                font-size: 12px;
            }

            img {
                max-width: 49px;
                object-fit: cover;
            }
        }

        #menu-corcontracting-main-menu {
            margin-top: 20px;
        }

        ul.sub-menu {
            margin: 10px 0 0px;
        }

        button.navbar-toggler {
            padding: 0;
            border: none;
            outline: none !important;
            box-shadow: none !important;

            svg {
                width: 30px;
                height: 30px;
            }
        }
    }

    @media (max-width: 767px) {
        padding: 20px 8px;

        .contact-details a {
            display: none !important;
        }
    }
}

footer {
    background: rgb(29, 58, 93);

    a {
        text-decoration: none;
    }

    a:not(.footer_logo):not(.link_svg),
    p {
        font-size: 14px;
        line-height: 20px;
        transition: .3s;
        color: rgba(255, 255, 255, 0.7);
    }

    a:not(.footer_logo):not(.link_svg):hover {
        color: rgb(210, 172, 75);
    }

    ul {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

    hr {
        border: none;
        border-top: 1px solid #ffffff1a;
        margin: 35px 0;
        opacity: 1;
    }

    .footer_contact {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;

        .footer_logo_details {
            display: flex;
            max-width: 375px;
            padding: 0;
            margin: 0;
            gap: 16px;
            flex-direction: column;

            img {
                max-width: 62px;
            }

            a {
                display: flex;
                gap: 10px;
                align-items: center;
            }

            .logo_name {
                display: flex;
                flex-direction: column;

                span {
                    color: hsl(var(--primary-foreground));
                }

                .s-text {
                    font-size: 12px;
                    color: rgba(255, 255, 255, 0.7);
                }
            }
        }

        .footer_contact_details {
            display: flex;

            svg {
                stroke: rgb(210, 172, 75);
                width: 16px;
                height: 16px;
            }

            a {
                display: flex;
                align-items: center;
                gap: 8px;
                width: max-content;
            }
        }
    }

    .footer_links {
        display: flex;

        p.footer_header {
            color: rgb(255, 255, 255);
            font-weight: 700;
            margin-bottom: 16px;
            text-transform: uppercase;
        }
    }

    .footer_copyright_socials,
    .footer_socials {
        display: flex;
        gap: 16px;
    }

    .footer_copyright_socials p {
        margin: 0;
    }

    .footer_socials {
        svg {
            width: 20px;
            height: 20px;
            transition: .3s;
            color: rgba(255, 255, 255, 0.6);

            &:hover {
                color: rgb(210, 172, 75) !important;
            }
        }
    }

    @media (min-width: 1200px) {
        padding: 68px 0;

        .footer_logo_details {
            .logo-header {
                font-size: 18px;
                line-height: 28px;
            }

            img {
                padding: 0 12px;
            }
        }

        .footer_contact_details {
            height: 46px;
        }
    }

    @media (max-width: 1199px) {
        padding: 30px 22px;

        .footer_contact {
            flex-direction: column;
            gap: 20px;
        }

        .footer_logo_details {

            .logo-header {
                font-size: 18px;
                line-height: 28px;
            }

            img {
                max-width: 40px;
                object-fit: cover;
            }
        }
    }

    @media (min-width: 992px) {
        .footer_contact_details {
            gap: 32px;
        }
    }

    @media (max-width: 991px) {
        .footer_contact_details {
            flex-direction: column;
            gap: 10px;
        }

    }

    @media (min-width: 768px) {
        .footer_copyright_socials {
            justify-content: space-between;
        }

        .footer_links {
            gap: 32px;

            >div {
                width: 100%;
            }
        }
    }

    @media (max-width: 767px) {
        padding: 48px 8px 88px;

        .footer_copyright_socials {
            flex-direction: column;
        }

        .footer_links {
            gap: 32px 0;
            flex-wrap: wrap;

            >div {
                width: 50%;
            }

            .link_container:nth-child(even) {
                padding-left: 20px;

            }
        }


    }

    a span {
        max-width: 280px;
    }
}

.contact-footer {
    padding: 12px;
    background: rgb(31, 59, 97);
    gap: 12px;
}