/* Nested Services navigation shared by the site's primary menus. */
.services-dropdown {
    --jaffe-menu-bg: #232323;
    --jaffe-submenu-bg: #1c1c1c;
    --jaffe-menu-hover: #2B3D53;
    --jaffe-menu-accent: #f8a137;
    --jaffe-menu-border: rgba(255, 255, 255, .12);
}

.services-dropdown > .nav-link[aria-expanded="true"] {
    color: #fff;
    background-color: rgba(6, 89, 165, .28);
    border-radius: .35rem;
}

.services-dropdown .services-menu {
    --bs-dropdown-color: #fff;
    --bs-dropdown-bg: var(--jaffe-menu-bg);
    --bs-dropdown-border-color: var(--jaffe-menu-border);
    --bs-dropdown-link-color: #fff;
    --bs-dropdown-link-hover-color: #fff;
    --bs-dropdown-link-hover-bg: var(--jaffe-menu-hover);
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-link-active-bg: var(--jaffe-menu-hover);
    width: 100%;
    min-width: 0;
    padding: .5rem;
    color: #fff;
    background-color: var(--jaffe-menu-bg);
    border: 1px solid var(--jaffe-menu-border);
    border-radius: .5rem;
}

.services-dropdown .dropdown-item {
    color: #fff;
    border-radius: .3rem;
    padding: .6rem .75rem;
    white-space: normal;
    transition: color .18s ease, background-color .18s ease;
}

.services-dropdown .dropdown-item:focus,
.services-dropdown .dropdown-item:hover,
.services-dropdown .dropdown-item.active,
.services-dropdown .dropdown-item:active {
    color: #fff;
    background-color: var(--jaffe-menu-hover);
}

.services-dropdown .dropdown-item:focus-visible,
.services-submenu-toggle:focus-visible {
    outline: 2px solid var(--jaffe-menu-accent);
    outline-offset: -2px;
}

.dropdown-submenu {
    position: relative;
}

.services-submenu-row {
    display: flex;
    align-items: stretch;
}

.services-submenu-row > .dropdown-item {
    flex: 1 1 auto;
    min-width: 0;
}

.services-submenu-toggle {
    display: flex;
    flex: 0 0 2.75rem;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    margin-left: .15rem;
    padding: 0;
    color: #fff;
    background: transparent;
    border: 0;
    border-radius: .3rem;
}

.services-submenu-toggle:hover,
.services-submenu-toggle:focus-visible {
    color: #fff;
    background-color: var(--jaffe-menu-hover);
}

.services-submenu-row:hover > .dropdown-item,
.services-submenu-row:focus-within > .dropdown-item,
.services-submenu-row:hover > .services-submenu-toggle,
.services-submenu-row:focus-within > .services-submenu-toggle {
    color: #fff;
    background-color: var(--jaffe-menu-hover);
}

.services-submenu-toggle span {
    width: .55rem;
    height: .55rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-.15rem) rotate(45deg);
    transition: transform .18s ease;
}

.services-submenu-toggle[aria-expanded="true"] span {
    transform: translateY(.15rem) rotate(225deg);
}

.services-submenu {
    position: static;
    float: none;
    width: 100%;
    min-width: 0;
    margin: .15rem 0 .35rem;
    padding: .25rem 0 .25rem 1rem;
    background-color: var(--jaffe-submenu-bg);
    border: 1px solid var(--jaffe-menu-border);
    border-left: 3px solid var(--jaffe-menu-hover);
    border-radius: .35rem;
    box-shadow: none;
}

.services-submenu .dropdown-item {
    font-size: .95rem;
}

@media (min-width: 768px) {
    .navbar-expand-md .services-menu {
        width: 17rem;
        margin-top: 0;
    }

    .navbar-expand-md .services-dropdown:hover > .services-menu,
    .navbar-expand-md .dropdown-submenu:hover > .services-submenu {
        display: block;
    }

    .navbar-expand-md .services-submenu {
        position: absolute;
        top: -.5rem;
        left: 100%;
        width: 15rem;
        margin: 0;
        padding: .5rem;
        background-color: var(--jaffe-submenu-bg);
        border: 1px solid var(--jaffe-menu-border);
        border-radius: .5rem;
        box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .4);
    }

    .navbar-expand-md .services-submenu-toggle span {
        transform: translateX(-.15rem) rotate(-45deg);
    }
}

@media (min-width: 992px) {
    .navbar-expand-lg .services-menu {
        width: 17rem;
        margin-top: 0;
    }

    .navbar-expand-lg .services-dropdown:hover > .services-menu,
    .navbar-expand-lg .dropdown-submenu:hover > .services-submenu {
        display: block;
    }

    .navbar-expand-lg .services-submenu {
        position: absolute;
        top: -.5rem;
        left: 100%;
        width: 15rem;
        margin: 0;
        padding: .5rem;
        background-color: var(--jaffe-submenu-bg);
        border: 1px solid var(--jaffe-menu-border);
        border-radius: .5rem;
    }

    .navbar-expand-lg .services-submenu-toggle span {
        transform: translateX(-.15rem) rotate(-45deg);
    }

    .navbar-expand-md .services-submenu {
        right: auto;
        left: 100%;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .navbar-expand-md .services-submenu {
        right: 100%;
        left: auto;
    }

    .navbar-expand-md .services-submenu-toggle span {
        transform: translateX(.15rem) rotate(135deg);
    }
}
