/**
 * CMBG³ Law - Main & Mobile Navigation Styling
 * Grouped into one file for easier management and removal.
 * 
 * BREAKPOINTS & DESIGN TOKENS
 * ----------------------------
 * Mobile Navigation Breakpoint: 1199px (max-width) / 1200px (min-width)
 * Note: CSS media queries do not support native CSS var() variables.
 * They are defined statically below for robust cross-browser rendering.
 */

/* ==========================================================================
   0. GLOBAL HEADER, LOGO & OVERLAY STYLING
   ========================================================================== */

.gb-site-header {
    max-width: 1440px;
    margin: 0 auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
}

.header-logo {
    position: relative;
    z-index: 9999999;
    display: block;
    padding: 15px 0;
}

.header-logo svg {
    display: block;
}

.header-logo svg path[fill="#252d4f"] {
    transition: fill 0.3s ease;
}

/* Color transition for overlay header state */
.gb-site-header-69899c84:has(.gb-overlay--positioned) svg path[fill="#252d4f"] {
    fill: #C9A07A;
}

@media (max-width: 1199px) {
    .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled {
        z-index: 99998 !important;
    }
}

.gb-menu-toggle--clone {
    display: none !important;
    visibility: hidden !important;
}

.search-toggle:hover svg,
.search-toggle:focus-visible svg {
    color: #87bcaf !important;
    transition: color 0.25s ease !important;
}

.search-toggle:hover svg path,
.search-toggle:focus-visible svg path {
    stroke: #87bcaf !important;
    transition: stroke 0.25s ease !important;
}

/* ==========================================================================
   1. DESKTOP NAVIGATION & SEARCH SLIDE
   ========================================================================== */
@media (min-width: 1200px) {

    .main-nav-features-container {
        position: relative;
        height: 60px;
        overflow: visible;
        /* Required for Mega Menu dropdowns */
        transition: background-color 0.3s ease;
    }

    /* Toggle "The Trap": Only clip siblings when search is active */
    .main-nav-features-container.is-search-active {
        overflow: hidden;
    }

    .gb-navigation {
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s;
        will-change: transform;
    }

    .main-navigation-search-container {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        transform: translateY(-100%);
        opacity: 0;
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s;
        pointer-events: none;
        z-index: 10;
        background-color: var(--atlantic);
        /* CMBG3 Navy */
    }

    /* Active Search State */
    .is-search-active .gb-navigation {
        transform: translateY(100%);
        opacity: 0;
        pointer-events: none;
    }

    .is-search-active .main-navigation-search-container {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    /* Premium Desktop Search Toggle & Close Micro-interactions */
    .desktop-search-toggle {
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 10px !important;
        height: 100% !important;
        outline: none !important;
        transition: transform 0.25s ease !important;
    }

    .desktop-search-toggle svg {
        transition: color 0.25s ease, transform 0.25s ease !important;
    }

    .desktop-search-toggle:hover svg,
    .desktop-search-toggle:focus-visible svg {
        color: #87bcaf !important;
        transform: scale(1.15) !important;
    }

    .desktop-search-toggle:hover svg path,
    .desktop-search-toggle:focus-visible svg path {
        stroke: #87bcaf !important;
    }

    .desktop-search-close {
        transition: transform 0.25s ease !important;
    }

    .desktop-search-close svg {
        transition: color 0.25s ease, transform 0.25s ease !important;
    }

    .desktop-search-close:hover svg,
    .desktop-search-close:focus-visible svg {
        color: var(--copley, #C9A07A) !important;
        transform: rotate(90deg) scale(1.1) !important;
    }

    #desktop-search-input::placeholder {
        color: #EBE5DA !important;
        opacity: 1 !important;
    }

    #desktop-search-input::-webkit-input-placeholder {
        color: #EBE5DA !important;
        opacity: 1 !important;
    }

    #desktop-search-input::-moz-placeholder {
        color: #EBE5DA !important;
        opacity: 1 !important;
    }

    #desktop-search-input:-ms-input-placeholder {
        color: #EBE5DA !important;
        opacity: 1 !important;
    }

    #desktop-search-input {
        font-family: var(--font-serif);
    }

    /* Premium Interactive Desktop Menu Border Transitions */
    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button)>.gb-menu-link,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button)>.gb-menu-link {
        position: relative !important;
        border-top-color: transparent !important;
        border-bottom-color: transparent !important;
    }

    /* 1. Desktop Non-Active Hover Transitions */
    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav)>.gb-menu-link::before,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav)>.gb-menu-link::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 1px;
        background-color: #87bcaf;
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }

    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav)>.gb-menu-link::after,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav)>.gb-menu-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 1px;
        background-color: #87bcaf;
        transform: scaleX(0);
        transform-origin: right;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* Hover State for Non-Active items */
    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link {
        color: #87bcaf !important;
    }

    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link::before,
    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link::after,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link::before,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):not(.current-menu-item):not(.current_page_item):not(.is-active-nav):is(:hover, :focus-within)>.gb-menu-link::after {
        transform: scaleX(1);
    }

    /* 2. Desktop Active/On Page State (Permanently Drawn, No Hover Animation) */
    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link {
        color: #87bcaf !important;
    }

    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link::before,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 1px;
        background-color: #87bcaf;
        transform: scaleX(1);
    }

    ul.gb-navigation>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link::after,
    .gb-navigation ul:first-of-type>li.gb-menu-item-mid7200c:not(.desktop-contact-us-cta-button):is(.current-menu-item, .current_page_item, .is-active-nav)>.gb-menu-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 1px;
        background-color: #87bcaf;
        transform: scaleX(1);
    }
}

/**
 * SEARCH INPUT STYLING
 */
.main-navigation-search-container input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box !important;
    width: 100%;
    height: 42px;
    border: 1px solid #f4f1eb !important;
    /* CMBG3 Cream */
    background: transparent;
    color: #f4f1eb;
    padding: 0 15px;
    outline: none;
    border-radius: 0;
}

.main-navigation-search-container input[type="search"]::placeholder {
    color: var(--copley-light) !important;
    opacity: 0.7 !important;
}

.desktop-contact-us-cta-button {
    display: flex !important;
    justify-content: center;
    align-items: center;
    border-color: transparent !important;
    margin-left: 5px;
}

.desktop-contact-us-cta-button a {
    display: flex !important;
    justify-content: center;
    align-items: center;
    background-color: var(--harbor);
    padding: 4px 10px !important;
    border-radius: 4px;
    color: white !important;
}

.desktop-contact-us-cta-button a::after {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='10' fill='none' viewBox='0 0 6 10'%3E%3Cpath stroke='%23f9f9f7' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.25' d='m.625 8.625 4-4-4-4'/%3E%3C/svg%3E");
    display: block;
    width: 6px;
    height: 10px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 10px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.desktop-contact-us-cta-button a:hover {
    background-color: var(--copley-light);
    color: var(--atlantic) !important;
}

.desktop-contact-us-cta-button a:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='10' fill='none' viewBox='0 0 6 10'%3E%3Cpath stroke='%23252d4f' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.25' d='m.625 8.625 4-4-4-4'/%3E%3C/svg%3E");
}


/* ==========================================================================
   2. MOBILE & RESPONSIVE NAVIGATION OVERRIDES
   ========================================================================== */
@media (max-width: 1199px) {

    /* Lock mobile viewport and prevent horizontal scrollbars */
    html,
    body {
        overflow-x: hidden !important;
    }

    /* Reset Desktop Slide for Mobile Hamburgers */
    .main-nav-features-container {
        overflow: visible !important;
        height: auto !important;
    }

    .main-navigation-search-container {
        display: none !important;
    }

    .gb-navigation {
        transform: none !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    /* 
       MOBILE MENU OVERLAY FIX:
       1. Fix the "Fixed Position Trap" caused by the parent transform on mobile
    */
    .gb-site-header {
        transform: none !important;
    }

    /* 2. Force the toggled menu container to actually fill the screen & stack elements vertically */
    .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
        /* Accounts for dynamic mobile toolbars */
        background-color: #1b2332 !important;
        /* Navy */
        z-index: 999999 !important;
        padding: 80px var(--gutter) 40px var(--gutter) !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
    }

    /* Force direct children of the mobile layout to fill available width */
    .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled>* {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 3. Position the close button cleanly in the top right corner */
    .gb-menu-toggle--toggled {
        left: auto !important;
        width: 45px !important;
        height: 45px !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        z-index: 10000000 !important;
        /* elevated to stack above fixed top-bar mask */
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
    }

    .header-logo {
        z-index: 10000000 !important;
        /* elevated to stack above fixed top-bar mask */
    }

    .gb-menu-toggle--toggled svg {
        fill: var(--copley-light) !important;
        stroke: var(--copley-light) !important;
        display: block !important;
    }



    /* 
       4. Fix "Plane Looks Low" (Oversized Header Gap):
       GenerateBlocks adds a default margin-top: 85px to the UL which combined 
       with the container padding. Zeroing it gives us pixel-perfect spacing.
    */
    .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled ul.gb-navigation {
        margin-top: 0 !important;
        padding-top: 10px !important;
    }

    .gb-menu-container.gb-menu-container--mobile.gb-menu-container--toggled {
        padding-top: 100px !important;
    }

    /* 
       4.5 Fixed Navy Header Background Bar:
       Creates a solid, fixed top bar that sits behind the logo/toggle but in front 
       of the scrolling menu contents. This ensures scrolling menu items slide 
       neatly behind it and disappear, preventing messy text overlaps.
       Attached to .gb-site-header / header to bypass the Webkit position:fixed overflow scroll bug.
    */
    .gb-site-header:has(.gb-menu-container--toggled)::before,
    header:has(.gb-menu-container--toggled)::before {
        content: '' !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100px !important;
        background-color: #1b2332 !important;
        /* solid navy matching the menu background */
        z-index: 9999999 !important;
        /* behind close button (10000000) and logo (10000000) but above scrolling content (999999) */
        pointer-events: none !important;
        /* click-through to interactive header elements */
    }

    /* 5. Hide leaking header actions (Contact, Search) while the menu overlay is active */
    .gb-site-header:has(.gb-menu-container--toggled) .cta-primary,
    .gb-site-header:has(.gb-menu-container--toggled) .search-toggle,
    header:has(.gb-menu-container--toggled) .cta-primary,
    header:has(.gb-menu-container--toggled) .search-toggle {
        display: none !important;
    }

    /* 
       ==========================================================================
       DETACHED MEGA-MENU OVERLAY FIXES
       GenerateBlocks detaches sub-menus into a global .gb-overlay element.
       We style this overlay to act as a premium full-screen sub-panel.
       ========================================================================== 
    */

    /* Force full solid background on ALL mobile menu overlays */
    .gb-overlay,
    .gb-overlay:has(.mega-menu-container) {
        background-color: #1b2332 !important;
        /* CMBG3 Navy */
        z-index: 999999 !important;
        opacity: 1 !important;
        height: 100vh !important;
        height: 100dvh !important;
    }

    /* Push expanded content down to clear the Logo */
    .gb-overlay__content {
        padding: 60px 20px 40px 20px !important;
        box-sizing: border-box !important;
        height: 100% !important;
        overflow-y: auto !important;
    }

    /* Force horizontal mega-menus (e.g., News & Knowledge) to stack vertically */
    .gb-overlay__content .gb-grid-wrapper,
    .gb-overlay__content .wp-block-columns,
    .gb-overlay__content [class*="-container"],
    .gb-overlay__content .mega-menu__is-horizontal .mega-menu__links,
    .gb-overlay__content .cmbg3-mega-menu-grid .mega-menu__links,
    .gb-overlay__content ul.mega-menu__links,
    .gb-overlay__content ul {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        gap: 1.5rem !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
    }

    .gb-overlay__content li.mega-menu__link-item {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }

    /* Collapse grid columns into vertical stack */
    .gb-overlay__content .gb-grid-column,
    .gb-overlay__content .wp-block-column {
        width: 100% !important;
        flex-basis: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Ensure headings inside the sub-panels align neatly */
    .gb-overlay__content h1,
    .gb-overlay__content h2,
    .gb-overlay__content h3,
    .gb-overlay__content h4,
    .gb-overlay__content .mega-menu__link.--has-children {
        margin-top: 1rem !important;
        margin-bottom: 0.5rem !important;
    }

    /* Smooth Mobile Sub-Menu Slide & Fade Accordion Transition */
    .sub-menu.gb-sub-menu {
        display: block !important;
        visibility: hidden !important;
        max-height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;
        padding-left: 1.5rem !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;

        /* Unified, hardware-accelerated ease-in-out transition */
        transition: max-height 0.25s ease-in-out,
            opacity 0.2s ease-in-out,
            visibility 0.25s !important;

    .sub-menu.gb-sub-menu .gb-sub-menu {
            padding-left: 1.5rem !important;
        }
    }

    /* Active Accordion State (Triggers when GB toggle aria-expanded matches true) */
    li:has(.gb-submenu-toggle[aria-expanded="true"])>ul.sub-menu.gb-sub-menu {
        visibility: visible !important;
        max-height: 380px !important;
        /* tight bounds to eliminate delay */
        opacity: 1 !important;
        margin-top: 0 !important;
        /* Keep constant to prevent vertical snapping/stutters */
        margin-bottom: 0 !important;

        transition: max-height 0.25s ease-in-out,
            opacity 0.2s ease-in-out,
            visibility 0.25s !important;
    }

    /* Target Level 2 Sub-Menus specifically to be even tighter and snappier */
    .sub-menu.gb-sub-menu .sub-menu.gb-sub-menu {
        max-height: 0 !important;
    }

    li:has(.gb-submenu-toggle[aria-expanded="true"])>ul.sub-menu.gb-sub-menu li:has(.gb-submenu-toggle[aria-expanded="true"])>ul.sub-menu.gb-sub-menu {

        /* Perfect height for nested attorney link lists */
    }

    /* Dynamic height boost: When the level 1 menu contains an active, open nested level 2 menu, increase its max-height dynamically */
    li:has(li.menu-item-has-children .gb-submenu-toggle[aria-expanded="true"])>ul.sub-menu.gb-sub-menu {
        max-height: 650px !important;
    }

    /* Rotating Chevron Indicator */
    .gb-submenu-toggle-icon {
        transition: transform 0.25s ease-in-out !important;
    }

    li:has(.gb-submenu-toggle[aria-expanded="true"])>a .gb-submenu-toggle-icon {
        transform: rotate(180deg) !important;
    }

    .is-active-nav,
    .current-menu-parent>a {
        color: var(--copley) !important;
    }

    .cta-mobile-nav a {
        background-color: var(--copley-light);
        color: var(--atlantic) !important;
        border-radius: 4px;
        padding: 5px 15px !important;
    }

    .cta-mobile-nav a::after {
        content: '';
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='10' fill='none' viewBox='0 0 6 10'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.25' d='m.625 8.625 4-4-4-4'/%3E%3C/svg%3E");
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        display: block;
        height: 10px;
        width: 6px;
    }

    .mobile-privacy-policy {
        margin-top: 2rem !important;
    }

    .desktop-primary-nav-cta {
        display: none !important;
    }

    /* AODA & Design: Interactive Focus States for the Mobile Search HTML block */
    .mobile-search-bar-wrapper {
        transition: border-color 0.25s ease, box-shadow 0.25s ease !important;
    }

    .mobile-search-bar-wrapper:focus-within {
        border-color: var(--copley, #C9A07A) !important;
        box-shadow: 0 0 0 3px rgba(201, 160, 122, 0.3) !important;
    }

    .mobile-search-bar-wrapper button[type="submit"] svg {
        transition: color 0.2s ease, transform 0.2s ease !important;
    }

    .mobile-search-bar-wrapper button[type="submit"]:hover svg,
    .mobile-search-bar-wrapper button[type="submit"]:focus svg {
        color: var(--copley, #C9A07A) !important;
        transform: scale(1.1) !important;
    }

    .gb-sub-menu li:first-of-type {
        padding-top: 15px;
    }

    .gb-sub-menu li:last-of-type {
        padding-bottom: 15px;
    }

}

/* Cross-browser placeholder color styling override */
#mobile-search-input::placeholder {
    color: #F9F9F7 !important;
    opacity: 1 !important;
}

#mobile-search-input::-webkit-input-placeholder {
    color: #F9F9F7 !important;
    opacity: 1 !important;
}

#mobile-search-input::-moz-placeholder {
    color: #F9F9F7 !important;
    opacity: 1 !important;
}

#mobile-search-input:-ms-input-placeholder {
    color: #F9F9F7 !important;
    opacity: 1 !important;
}



/* ==========================================================================
   3. DESKTOP MEGA MENU CONTAINERS & GRIDS
   ========================================================================== */
.gb-overlay:has(.mega-menu-container) {
    background-color: transparent !important;
}

.mega-menu-container {
    margin-top: -1px;
}

.mega-menu-container a {
    text-decoration: none;
}

.cmbg3-mega-menu-grid.--custom:not(:last-child) {
    margin-bottom: 1.5rem;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__links {
    list-style: none;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__sub-links {
    list-style: none;
    margin: 15px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__link {
    color: var(--union) !important;
    font-weight: 400;
    text-decoration: none;
    display: block;
    font-size: 1.8rem;
    transition: color 0.2s ease;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__link:hover {
    color: var(--copley) !important;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link {
    color: var(--copley-light) !important;
    font-size: 1.8rem;
    font-weight: 400;
    text-decoration: none;
    display: inline-flex !important;
    align-items: center !important;
    gap: 1rem !important;
    transition: color 0.25s ease !important;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link::before {
    content: "" !important;
    display: inline-block !important;
    width: 13px !important;
    height: 13px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='none' viewBox='0 0 13 13'%3E%3Cpath stroke='%23cdb78e' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='m1.25 1.25 10 10m-10 0h10v-10'/%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transition: background-image 0.25s ease, transform 0.25s ease !important;
    flex-shrink: 0 !important;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link:hover,
.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link:focus-visible {
    color: var(--copley) !important;
}

.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link:hover::before,
.cmbg3-mega-menu-grid.--custom .mega-menu__sub-link:focus-visible::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' fill='none' viewBox='0 0 13 13'%3E%3Cpath stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='m1.25 1.25 10 10m-10 0h10v-10'/%3E%3C/svg%3E") !important;
    transform: translate(1.5px, 1.5px) !important;
    /* Premium diagonal slide on hover */
}

.cmbg3-mega-menu-grid.--custom a {
    text-decoration: none;
}

.expertise .mega-menu__link,
.expertise a {
    color: var(--atlantic) !important;
    text-decoration: none !important;
}

.expertise h2 {
    font-size: 4.2rem !important;
    color: var(--atlantic) !important;
    text-decoration: none !important;
}