/* =========================================
   TUSCULUM SIDEBAR NAVIGATION
   CLEAN BLOCK ARCHITECTURE
   ADA IMPROVED
   ========================================= */

/* Wrapper */
.tu-sidebar-nav {
    width: 100%;
    box-sizing: border-box;
}

.tu-sidebar-nav *,
.tu-sidebar-nav *::before,
.tu-sidebar-nav *::after {
    box-sizing: inherit;
}

/* Reset */
.tu-sidebar-menu,
.tu-sidebar-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Vertical spacing between visible blocks */
.tu-sidebar-menu > li,
.tu-sidebar-menu > li > .sub-menu > li {
    margin-bottom: 16px;
}

/* =========================================
   BLOCK STYLE (LEVEL 0 + LEVEL 1)
   ========================================= */

.tu-sidebar-menu > li > a,
.tu-sidebar-menu > li > .menu-item-row,
.tu-sidebar-menu > li > .sub-menu > li > a,
.tu-sidebar-menu > li > .sub-menu > li > .menu-item-row {

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: #e9e9e9;
    border-radius: 4px;
    padding: 18px 22px;

    font-weight: 600;
    font-size: 16px;
    color: #444;
    text-decoration: none;

    transition: background 0.15s ease;
}

/* =========================================
   HOVER
   Keep subtle for usability
   ========================================= */

.tu-sidebar-menu > li > a:hover,
.tu-sidebar-menu > li > .menu-item-row:hover,
.tu-sidebar-menu > li > .sub-menu > li > a:hover,
.tu-sidebar-menu > li > .sub-menu > li > .menu-item-row:hover {
    background: #dddddd;
}

/* =========================================
   SPECIAL RULE
   Prevent hover change on active block
   (INFORMATION SYSTEMS type block)
   ========================================= */

.tu-sidebar-menu .current-menu-item > a:hover,
.tu-sidebar-menu .current-menu-item > .menu-item-row:hover,
.tu-sidebar-menu .current-menu-parent > .menu-item-row:hover,
.tu-sidebar-menu .current-menu-ancestor > .menu-item-row:hover {
    background: #7A7A7A;
}

/* Anchor inside row */
.menu-item-row > a {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
    font-weight: inherit;
    color: inherit;
    text-decoration: none;
}

/* =========================================
   TOGGLE BUTTON
   ========================================= */

.submenu-toggle {
    background: none;
    border: none;
    margin-left: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
}

/* Caret */
.caret {
    border: solid #444;
    border-width: 0 3px 3px 0;
    padding: 6px;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

/* Rotate when open */
.menu-item.open > .menu-item-row .caret {
    transform: rotate(-135deg);
}

/* Hide toggle if no submenu */
.tu-sidebar-menu li:not(.menu-item-has-children) .submenu-toggle {
    display: none;
}

/* =========================================
   SUBMENU VISIBILITY
   ========================================= */

.tu-sidebar-menu .sub-menu {
    display: none;
    margin-top: 8px;
}

.tu-sidebar-menu li.open > .sub-menu {
    display: block;
}

/* =========================================
   LEVEL 2 (Deep Links Only)
   ========================================= */

.tu-sidebar-menu .sub-menu .sub-menu a {
    display: block;
    background: none;
    padding: 6px 0 6px 18px;
    font-size: 15px;
    font-weight: 500;
    color: #333;
}

/* =========================================
   ACTIVE STATES
   Accessible contrast
   ========================================= */

.tu-sidebar-menu .current-menu-item > a,
.tu-sidebar-menu .current-menu-item > .menu-item-row,
.tu-sidebar-menu .current-menu-parent > .menu-item-row,
.tu-sidebar-menu .current-menu-ancestor > .menu-item-row,
.tu-sidebar-menu .current_page_item > a,
.tu-sidebar-menu .current_page_parent > .menu-item-row,
.tu-sidebar-menu .current_page_ancestor > .menu-item-row {

    background: #7A7A7A; /* improved contrast */
    color: #ffffff;
}

/* Caret color when active */
.tu-sidebar-menu .current-menu-item .caret,
.tu-sidebar-menu .current-menu-parent .caret,
.tu-sidebar-menu .current-menu-ancestor .caret,
.tu-sidebar-menu .current_page_parent .caret,
.tu-sidebar-menu .current_page_ancestor .caret {
    border-color: #ffffff;
}

/* =========================================
   ACCESSIBILITY
   ========================================= */

/* Screen reader helper */
.screen-reader-text {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Keyboard focus indicator (WCAG 2.2) */
.tu-sidebar-nav a:focus-visible,
.submenu-toggle:focus-visible {
    outline: 3px solid #EA581C;
    outline-offset: 3px;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 991px) {

    .tu-sidebar-menu > li > a,
    .tu-sidebar-menu > li > .menu-item-row,
    .tu-sidebar-menu > li > .sub-menu > li > a,
    .tu-sidebar-menu > li > .sub-menu > li > .menu-item-row {
        padding: 16px 18px;
        font-size: 15px;
    }
}

/* Prevent theme hover override */
.tu-sidebar-nav a:hover,
.tu-sidebar-nav a:focus {
    color: inherit !important;
}