/* =========================================================
   10X LANDSCAPING - HEADER
   ========================================================= */


/* ---------------------------------------------------------
   HEADER BASE
--------------------------------------------------------- */

header {
    width: 100%;
    position: relative;
    z-index: 9999;
    background: var(--color-full-black);
}

.full-header {
    max-width: 1280px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: 245px 1fr;

    align-items: stretch;
    gap: 20px;

}


/* =========================================================
   LOGO
========================================================= */

.header-logo {
    width: 245px;

    display: flex;
    align-items: center;
    justify-content: flex-start;

    position: relative;
    z-index: 10;
}

.header-logo .logo {
    width: 100%;
}

.header-logo .logo a {
    display: block;
    line-height: 0;
}

.header-logo .logo img {
    display: block;

    width: 215px;
    height: auto;

    max-height: 145px;

    object-fit: contain;
}


/* =========================================================
   RIGHT HEADER AREA
========================================================= */

.header-info {
    width: 100%;
    min-width: 0;

    display: flex;
    flex-direction: column;

    justify-content: flex-start;
}


/* =========================================================
   TOP CONTACT BAR
========================================================= */

.tx-header-top {
    min-height: 60px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.header-contact-list {
    list-style: none;

    padding: 0;
    margin: 0;

    display: flex;
    align-items: center;

    gap: 42px;
}

.header-contact-list li {
    margin: 0;
    padding: 0;
}

.header-contact-list a {
    display: flex;
    align-items: center;

    gap: 9px;

    color: var(--color-white);

    text-decoration: none;

    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: var(--weight-semibold);

    white-space: nowrap;

    transition: color 0.25s ease;
}

.header-contact-list a:hover {
    color: var(--color-red);
}

.header-contact-list img {
    width: 23px;
    height: 23px;

    object-fit: contain;

    flex: 0 0 23px;
}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.header-social {
    display: flex;
    align-items: center;

    gap: 18px;

    flex-shrink: 0;
}

.header-social a {
    width: 28px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--color-white);

    text-decoration: none;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.header-social a:hover {
    color: var(--color-red);
    transform: translateY(-2px);
}

.header-social svg {
    display: block;

    width: 25px;
    height: 25px;
}


/* =========================================================
   BOTTOM NAVIGATION
========================================================= */

.tx-header-bottom {
    width: 100%;

    display: flex;
    align-items: flex-end;

    position: relative;
}


/* =========================================================
   NAVIGATION BAR
========================================================= */

.header-nav-bar {
    width: 100%;
    display: flex;
    align-items: center;
    padding-bottom: 4px;
    position: relative;

    overflow: visible;
}


/* =========================================================
   MAIN MENU
========================================================= */

.main-menu {
    width: 100%;
    height: 72px;

    position: relative;

    z-index: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 0 24px 0 0;
    padding: 0 0px 0 80px;

    overflow: visible;
   
}


/* =========================================================
   WHITE NAV SHAPE

   LEFT  = ANGLED \
   RIGHT = 8PX ROUNDED
========================================================= */

.main-menu::before {
    content: "";

    position: absolute;

    inset: 0;

    z-index: -1;

    background: var(--color-white);

    border-radius: 0 24px 4px 0;

    clip-path: polygon(
        0 0,
        100% 0,
        100% 100%,
        8% 100%
    );
}


/* =========================================================
   NAV MENU
========================================================= */

.nav-menu {
    width: 100%;

    list-style: none;

    padding: 0;
    margin: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 40px;
}

.nav-menu > li {
    position: relative;

    list-style: none;

    margin: 0;
    padding: 0;
}

.nav-menu > li > a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--color-full-black);

    text-decoration: none;

    font-family: var(--font-heading);

    font-size: 19px;

    font-weight: var(--weight-semibold);

    white-space: nowrap;

    transition: color 0.25s ease;
}

.nav-menu > li > a:hover {
    color: var(--color-red);
}


/* ---------------------------------------------------------
   CALL BUTTON TO FAR RIGHT
--------------------------------------------------------- */

.header-nav-bar .header-call {
    margin-left: auto;
}


/* =========================================================
   ACTIVE NAV ITEM
========================================================= */

.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-parent > a,
.nav-menu > li.current-menu-ancestor > a {
    color: var(--color-red);
}


/* =========================================================
   SERVICES ARROW
========================================================= */

.nav-menu > li.menu-item-has-children > a .submenu-icon,
.nav-menu > li.menu-item-has-children > a .sub-arrow,
.nav-menu > li.menu-item-has-children > a .dropdown-toggle,
.nav-menu > li.menu-item-has-children > a .caret {
    display: none !important;
}

.nav-menu > li.menu-item-has-children > a {
    padding-right: 22px;
}

.nav-menu > li.menu-item-has-children > a::after {
    content: "";

    width: 9px;
    height: 9px;

    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;

    transform: rotate(45deg);

    position: absolute;

    right: 0;

    top: calc(50% - 7px);

    transition: transform 0.25s ease;
}

.nav-menu > li.menu-item-has-children:hover > a::after,
.nav-menu > li.menu-item-has-children.is-open > a::after {
    transform: rotate(225deg);

    top: calc(50% - 2px);
}


/* =========================================================
   MEGA MENU
========================================================= */

.nav-menu > li > .sub-menu {
    list-style: none;

    padding: 10px 30px;
    margin: 0;
    margin-top: 32px;

    position: absolute;

    top: calc(100% - 1px);
    left: 50%;

    width: min(900px, 90vw);

    max-width: 1280px;

    transform:
        translateX(-50%)
        translateY(15px);

    background: linear-gradient(
        145deg,
        #111111 0%,
        #1A1A1A 100%
    );

    border: 1px solid #353535;

    border-radius: 0 0 10px 10px;

    box-shadow:
        0 20px 45px rgba(0, 0, 0, 0.35),
        0 5px 15px rgba(0, 0, 0, 0.2);

    display: grid;

    grid-template-columns: 1fr 1fr;

    column-gap: 0;
    row-gap: 0;

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.22s ease,
        visibility 0.22s ease,
        transform 0.22s ease;

    z-index: 99999;
}


/* =========================================================
   SUBMENU BRIDGE
========================================================= */

.nav-menu > li.menu-item-has-children > .sub-menu::before {
    content: "";

    position: absolute;

    left: 0;
    right: 0;

    top: -32px;

    height: 32px;
}


/* =========================================================
   DESKTOP OPEN MEGA MENU
========================================================= */

@media (min-width: 1081px) {

    .nav-menu > li.menu-item-has-children:hover > .sub-menu,
    .nav-menu > li.menu-item-has-children.is-open > .sub-menu {

        opacity: 1;

        visibility: visible;

        pointer-events: auto;

        transform:
            translateX(-50%)
            translateY(0);
    }

}


/* =========================================================
   MEGA MENU ITEMS
========================================================= */

.nav-menu > li > .sub-menu > li {
    min-width: 0;

    list-style: none;

    margin: 0;

    padding: 0 20px;
}

.nav-menu > li > .sub-menu > li:nth-child(odd) {
    border-right: 1px solid #3A3A3A;
}

.nav-menu > li > .sub-menu > li:nth-child(-n + 12) {
    border-bottom: 1px solid #3A3A3A;
}

.nav-menu > li > .sub-menu > li:nth-child(13),
.nav-menu > li > .sub-menu > li:nth-child(14) {
    border-bottom: none;
}


/* =========================================================
   SUBMENU LINK
========================================================= */

.nav-menu > li > .sub-menu > li > a {
    min-height: 24px;

    width: 100%;

    display: flex;

    align-items: center;

    gap: 18px;

    position: relative;

    padding: 15px 30px 15px 0;

    color: var(--color-white);

    text-decoration: none;

    font-family: var(--font-heading);

    font-size: 17px;

    font-weight: var(--weight-semibold);

    transition:
        color 0.25s ease,
        padding-left 0.25s ease;
}

.nav-menu > li > .sub-menu > li > a:hover {
    color: var(--color-red);

    padding-left: 5px;
}


/* =========================================================
   SERVICE SVG ICON
========================================================= */

.service-menu-icon {
    width: 52px;
    height: 52px;

    flex: 0 0 52px;

    padding: 10px;

    border: 1px solid var(--color-red);

    border-radius: 8px;

    object-fit: contain;

    transition:
        background-color 0.25s ease,
        transform 0.25s ease,
        border-color 0.25s ease;
}

.nav-menu > li > .sub-menu > li > a:hover .service-menu-icon {
    background: rgba(183, 0, 0, 0.1);

    transform: translateX(3px);
}


/* =========================================================
   SUBMENU RIGHT ARROW
========================================================= */

.nav-menu > li > .sub-menu > li > a::after {
    content: "";

    position: absolute;

    right: 24px;
    top: 50%;

    width: 10px;
    height: 10px;

    border-right: 2px solid var(--color-red);
    border-top: 2px solid var(--color-red);

    transform:
        translateY(-50%)
        rotate(45deg);

    transition: transform 0.25s ease;
}

.nav-menu > li > .sub-menu > li > a:hover::after {
    transform:
        translate(3px, -50%)
        rotate(45deg);
}


/* =========================================================
   CALL BUTTON
   ---------------------------------------------------------
   NO ::BEFORE
   NO ::AFTER

   LEFT EDGE = ANGLED \
   RIGHT EDGE = ROUNDED
========================================================= */

.header-call {
    width: 280px;
    height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;

    flex-shrink: 0;

    background: var(--color-red);

    border-radius:0px 0px 0 0px;

    z-index: 5;

    transition:
        background-color 0.25s ease,
        transform 0.25s ease;
}


/* =========================================================
   CALL BUTTON LINK
========================================================= */

.header-call a {
    width: 100%;
    height: 100%;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    color: var(--color-white);

    text-decoration: none;

    font-family: var(--font-heading);

    font-weight: var(--weight-bold);
}

.header-call a::before {
    content: "Call Us Now!";

    display: block;

    font-size: 17px;

    line-height: 1.1;

    margin-bottom: 4px;
}

.header-call a span {
    font-size: 20px;

    line-height: 1.1;

    font-weight: var(--weight-bold);
}


/* =========================================================
   CALL BUTTON HOVER
========================================================= */

.header-call:hover {
    background: #950000;
}


/* =========================================================
   RED HEADER BOTTOM BORDER
========================================================= */

header::after {
    content: "";

    display: block;

    width: 100%;

    height: 2px;

    background: var(--color-red);
}


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

.mobile-nav {
    display: none;
}


/* =========================================================
   HAMBURGER
========================================================= */

.mobile-menu-toggle {
    width: 48px;
    height: 48px;

    padding: 0;

    border: 1px solid rgba(255,255,255,0.25);

    border-radius: 7px;

    background: transparent;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 5px;

    cursor: pointer;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease;
}

.mobile-menu-toggle span {
    display: block;

    width: 23px;
    height: 2px;

    background: var(--color-white);

    border-radius: 2px;

    transition:
        transform 0.25s ease,
        opacity 0.25s ease;
}

.mobile-menu-toggle:hover {
    border-color: var(--color-red);

    background: rgba(183, 0, 0, 0.12);
}


/* =========================================================
   HAMBURGER -> X
========================================================= */

.mobile-menu-toggle.is-active span:nth-child(1) {
    transform:
        translateY(7px)
        rotate(45deg);
}

.mobile-menu-toggle.is-active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.is-active span:nth-child(3) {
    transform:
        translateY(-7px)
        rotate(-45deg);
}


/* =========================================================
   MOBILE MENU PANEL
========================================================= */

.mobile-menu-panel {
    display: none;
}

body.mobile-menu-is-open {
    overflow: hidden;
}




/*=========================================================*/
/* Current active submenu page */
.nav-menu > li > .sub-menu > li.current-menu-item > a {
    color: var(--color-red);
}

/* =========================================================
   LARGE TABLET / SMALL DESKTOP
========================================================= */
@media (max-width: 1320px) {
    .header-call{
        width: 240px;

    }
}


@media (max-width: 1250px) {

    .full-header {
        grid-template-columns: 205px 1fr;
    }

    .header-logo {
        width: 205px;
    }

    .header-logo .logo img {
        width: 190px;
    }

    .header-contact-list {
        gap: 20px;
    }

    .header-contact-list a {
        font-size: 14px;
    }

    .header-social {
        gap: 12px;
    }

    .main-menu {
        padding-left: 60px;
    }

    .nav-menu {
        gap: 20px;
    }

    .nav-menu > li > a {
        font-size: 17px;
    }


    .header-call a span {
        font-size: 20px;
    }
}


@media (max-width: 1080px) {

    header {
        position: relative;
    }

    .full-header {
        width: 90%;
        max-width: none;
        min-height: 76px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 15px;
        padding-left: 5%;
        padding-right: 5%;
    }

    .header-call{
        height: 48px!important;
    }

    .header-logo {
        width: auto;
        height: 76px;

        display: flex;

        align-items: center;
    }

    .header-logo .logo img {
        width: 145px;

        max-height: 65px;
    }

    .header-info {
        width: auto;

        display: flex;

        align-items: center;
        justify-content: flex-end;
    }


    /* -----------------------------------------------------
       HIDE DESKTOP TOP BAR
    ----------------------------------------------------- */

    .tx-header-top {
        display: none;
    }


    /* -----------------------------------------------------
       HIDE DESKTOP NAVIGATION
    ----------------------------------------------------- */

    .tx-header-bottom {
        width: auto;

        min-height: 0;
        height: auto;

        display: flex;

        align-items: center;
    }

    .header-nav-bar {
        display: none;
    }

    .main-menu {
        display: none;
    }


    /* -----------------------------------------------------
       MOBILE CONTROLS
    ----------------------------------------------------- */

    .mobile-nav {
        display: flex;

        align-items: center;
        justify-content: flex-end;

        gap: 10px;
    }


    /* =====================================================
       MOBILE MENU PANEL
    ===================================================== */

    .mobile-menu-panel {
        display: block;

        position: fixed;

        top: 80px;

        left: 0;
        right: 0;

        width: 90%;
        margin: 0 auto;
        padding-bottom: 32px;

        max-height: calc(100vh - 76px);

        overflow-y: auto;

        -webkit-overflow-scrolling: touch;

       /* padding: 10px 20px 25px;*/

        background: var(--color-full-black);

        border-top: 1px solid #333;

        box-shadow:
            0 18px 35px rgba(0,0,0,0.35);

        opacity: 0;

        visibility: hidden;

        pointer-events: none;

        transform: translateY(-10px);

        transition:
            opacity 0.25s ease,
            visibility 0.25s ease,
            transform 0.25s ease;

        z-index: 99999;
    }

    .mobile-menu-panel.is-open {
        opacity: 1;

        visibility: visible;

        pointer-events: auto;

        transform: translateY(0);
    }


    /* -----------------------------------------------------
       MOBILE MENU
    ----------------------------------------------------- */

    .mobile-menu-panel .nav-menu {
        width: 100%;

        display: flex;

        flex-direction: column;

        align-items: stretch;

        gap: 0;
    }

    .mobile-menu-panel .nav-menu > li {
        width: 90%;
        margin: 0 auto;

        border-bottom: 1px solid #333;
    }

    .mobile-menu-panel .nav-menu > li > a {
        width: 90%;
        margin: 0 auto;
        min-height: 58px;

        padding: 15px 5px;

        display: flex;

        justify-content: space-between;

        align-items: center;

        color: var(--color-white);

        font-size: 17px;
    }

    .mobile-menu-panel .nav-menu > li > a:hover {
        color: var(--color-red);
    }

    .mobile-menu-panel .nav-menu > li.current-menu-item > a,
    .mobile-menu-panel .nav-menu > li.current-menu-parent > a {
        color: var(--color-red);
    }


    /* =====================================================
       MOBILE SUBMENU
    ===================================================== */

    .mobile-menu-panel .nav-menu > li > .sub-menu {
        width: 100%;

        position: static;

        display: block;

        padding: 0;
        margin: 0;

        background: #111;

        border: 0;

        border-radius: 0;

        box-shadow: none;

        opacity: 1;

        visibility: visible;

        pointer-events: auto;

        transform: none;

        max-height: 0;

        overflow: hidden;

        transition:
            max-height 0.35s ease;
    }

    .mobile-menu-panel .nav-menu > li.is-open > .sub-menu {
        max-height: 1400px;
    }

    .mobile-menu-panel .nav-menu > li > .sub-menu::before {
        display: none;
    }


    /* -----------------------------------------------------
       MOBILE SUBMENU ITEMS
    ----------------------------------------------------- */

    .mobile-menu-panel .nav-menu > li > .sub-menu > li {
        width: 90%;
        margin: 0 auto;

        padding: 0;

        border: 0 !important;

        border-bottom: 1px solid #2D2D2D !important;
    }

    .mobile-menu-panel .nav-menu > li > .sub-menu > li:last-child {
        border-bottom: 0 !important;
    }


    /* -----------------------------------------------------
       MOBILE SUBMENU LINKS
    ----------------------------------------------------- */

    .mobile-menu-panel .nav-menu > li > .sub-menu > li > a {
        width: 90%;
        margin: 0 auto;

        min-height: 40px;

        padding: 10px 35px 10px 8px;

        gap: 14px;

        font-size: 15px;
    }


    /* -----------------------------------------------------
       MOBILE SERVICE ICON
    ----------------------------------------------------- */

    .mobile-menu-panel .service-menu-icon {
        width: 44px;
        height: 44px;

        flex-basis: 44px;

        padding: 8px;

        border-radius: 6px;
    }


    /* -----------------------------------------------------
       MOBILE SUBMENU RIGHT ARROW
    ----------------------------------------------------- */

    .mobile-menu-panel .nav-menu > li > .sub-menu > li > a::after {
        right: 8px;

        width: 8px;
        height: 8px;
    }


    /* -----------------------------------------------------
       MOBILE SERVICES ARROW
    ----------------------------------------------------- */

    .mobile-menu-panel .nav-menu > li.menu-item-has-children > a::after {
        content: "";

        width: 9px;
        height: 9px;

        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;

        transform: rotate(45deg);

        position: absolute;

        right: 8px;

        top: calc(50% - 7px);

        transition:
            transform 0.25s ease;
    }

    .mobile-menu-panel .nav-menu > li.menu-item-has-children > a {
        position: relative;
    }

    .mobile-menu-panel .nav-menu > li.menu-item-has-children.is-open > a::after {
        transform: rotate(225deg);

        top: calc(50% - 2px);
    }
}


/*==========================================================*/

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1080px) {

    .full-header {
        grid-template-columns: 180px 1fr;
    }

    .header-logo {
        width: 180px;
    }

    .header-logo .logo img {
        width: 165px;
    }

    .tx-header-top {
        min-height: 60px;
    }

    .header-contact-list {
        gap: 15px;
    }

    .header-contact-list a {
        font-size: 13px;
    }

    .header-contact-list img {
        width: 19px;
        height: 19px;
    }

    .header-social a {
        width: 23px;
        height: 23px;
    }

    .header-social svg {
        width: 22px;
        height: 22px;
    }

    /*.tx-header-bottom,
    .header-nav-bar,
    .main-menu {
        min-height: 95px;
        height: 95px;
    }*/

    .main-menu {
        padding-left: 45px;
        padding-right: 15px;
    }

    .nav-menu {
        gap: 18px;
    }

    .nav-menu > li > a {
        min-height: 95px;

        font-size: 15px;
    }

    .header-call {
        width: 220px;
        height: 48px;
    }

    .header-call a::before {
        font-size: 13px;
    }

    .header-call a span {
        font-size: 17px;
    }

    .nav-menu > li > .sub-menu {
        width: min(760px, 92vw);
    }

    .nav-menu > li > .sub-menu > li > a {
        font-size: 15px;

        min-height: 82px;
    }

    .service-menu-icon {
        width: 44px;
        height: 44px;

        flex: 0 0 44px;
    }
}


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

/*=========================================================*/
@media (max-width: 768px){
    .full-header{
        padding-left: 20px;
        padding-right: 20px;
        width: calc(100% - 40px);
        margin: 0 auto;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    /*
    .full-header {
        padding: 0 15px;
    }

    */

    .header-logo .logo img {
        width: 130px;
    }

    .mobile-nav {
        gap: 7px;
    }

    /* =====================================================
       MOBILE CALL BUTTON (icon-only, below 480px only)
    ===================================================== */

    .mobile-nav .header-call {
        width: 44px;
        height: 44px;

        margin: 0;

        clip-path: none;

        border-radius: 7px;

        background: var(--color-red);

        transform: none;
    }

    .mobile-nav .header-call a {
        width: 44px;
        height: 44px;

        position: relative;

        font-size: 0;
    }

    .mobile-nav .header-call a::before {
        content: "";
        width: 18px;
        height: 18px;
        margin: 0;
        display: inline-block;
        position: relative;

        background-color: var(--color-white);

        -webkit-mask: url("../icons/white-call.svg") center / contain no-repeat;
        mask: url("../icons/white-call.svg") center / contain no-repeat;
    }

    .mobile-nav .header-call a span {
        display: none;
    }

    .mobile-menu-toggle {
        width: 44px;
        height: 44px;
    }

    .mobile-menu-toggle span {
        width: 21px;
    }

    .mobile-menu-panel {
        top: 76px;

       /* padding-left: 15px;
        padding-right: 15px;*/
    }

    .mobile-menu-panel .nav-menu > li > a {
        font-size: 16px;
    }
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;

        transition-duration: 0.01ms !important;

        animation-duration: 0.01ms !important;
    }

}



/* Sticky Header */
header {
    position: sticky !important;
    top: 0;
    z-index: 99999;
}