/*
 * Public-site mobile navigation accordion.
 * Desktop hover navigation remains untouched; on phones and tablets a visitor
 * explicitly opens each submenu using the chevron control beside its parent.
 */
.rh-submenu-toggle { display: none; }

@media (max-width: 940px) {
    .rh-public-header .rh-main-nav > ul > li.has-children,
    .rh-public-header .rh-project-city { position: relative; }

    .rh-public-header .rh-main-nav > ul > li.has-children > a,
    .rh-public-header .rh-project-city > a { padding-right: 54px; }

    .rh-public-header .rh-nav-caret,
    .rh-public-header .rh-project-submenu-arrow { display: none; }

    .rh-public-header .rh-submenu-toggle {
        position: absolute;
        z-index: 2;
        top: 6px;
        right: 4px;
        display: inline-flex;
        width: 36px;
        height: 36px;
        align-items: center;
        justify-content: center;
        padding: 0;
        color: #27445a;
        border: 1px solid #d9e1e7;
        border-radius: 8px;
        background: #fff;
        cursor: pointer;
        transition: color .18s ease, border-color .18s ease, background .18s ease;
    }

    .rh-public-header .rh-submenu-toggle:hover,
    .rh-public-header .rh-submenu-toggle:focus-visible {
        color: #8d302e;
        border-color: #d8a29b;
        background: #fff7f4;
        outline: 0;
    }

    .rh-public-header .rh-submenu-toggle > span {
        display: block;
        font-size: 20px;
        line-height: 1;
        transform: translateY(-2px);
        transition: transform .22s ease;
    }

    .rh-public-header li.is-submenu-open > .rh-submenu-toggle > span {
        transform: translateY(2px) rotate(180deg);
    }

    .rh-public-header .rh-main-nav > ul > li.has-children > .rh-submenu {
        position: static;
        display: block !important;
        max-height: 0 !important;
        min-width: 0;
        margin: 0 !important;
        padding: 0 0 0 12px !important;
        overflow: hidden;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transition: max-height .28s ease, margin .2s ease, padding .2s ease;
    }

    .rh-public-header .rh-main-nav > ul > li.has-children:not(.is-submenu-open):hover > .rh-submenu,
    .rh-public-header .rh-main-nav > ul > li.has-children:not(.is-submenu-open):focus-within > .rh-submenu {
        max-height: 0 !important;
    }

    .rh-public-header .rh-main-nav > ul > li.has-children.is-submenu-open > .rh-submenu {
        max-height: 2000px !important;
        margin: 4px 0 9px !important;
        padding: 6px !important;
        border: 1px solid #e4d1b4 !important;
        border-radius: 8px !important;
        background: linear-gradient(145deg, #fffefa, #f7ecdc) !important;
    }

    .rh-public-header .rh-project-city > .rh-submenu-toggle {
        top: 2px;
        right: 0;
        width: 34px;
        height: 34px;
    }

    .rh-public-header .rh-project-city-menu .rh-project-site-menu {
        position: static;
        display: block !important;
        max-height: 0 !important;
        min-width: 0;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        transition: max-height .25s ease, margin .2s ease, padding .2s ease;
    }

    .rh-public-header .rh-project-city:not(.is-submenu-open):hover > .rh-project-site-menu,
    .rh-public-header .rh-project-city:not(.is-submenu-open):focus-within > .rh-project-site-menu {
        max-height: 0 !important;
    }

    .rh-public-header .rh-project-city.is-submenu-open > .rh-project-site-menu {
        max-height: 1500px !important;
        margin: 0 0 5px 11px !important;
        padding: 3px 0 3px 9px !important;
        border-left: 1px solid #dfc8a7 !important;
    }
}
