:root {
    --font-size: 14px;
    --padding-vertical: 1em;
    --border-spacing: 1px;
    --itemHeight: calc(var(--font-size) + 2 * (var(--padding-vertical) + var(--border-spacing)));
}

/* General Styles for the menu */
.origarti-sliding-menu {
    position: relative;
    list-style: none;
    margin: 0;
    padding: 0;
    color: var(--text_color, #FFFFFF);
    text-transform: uppercase; letter-spacing: 0.125em;
}

.origarti-sliding-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Styles for individual menu items */
.origarti-sliding-menu li {
    border-bottom: var(--border-spacing) solid transparent;
    cursor: pointer;
    transition: background-color var(--animation_delay, 300ms);
}

.origarti-sliding-menu > li:last-child,
.origarti-sliding-menu ul > li:last-child {
    border-bottom: 1px solid transparent;
}

/* Styles for links within the menu */
.origarti-sliding-menu li a,
.origarti-sliding-menu span.menu-item-label,
.origarti-sliding-menu .sliding-menu-icon-container {
    display: flex;
    align-items: center;
    height: var(--itemHeight);
}

.origarti-sliding-menu li a {
    font-size: var(--font-size);
    text-decoration: none;
    color: inherit; /* Inherits color from li parent */
}

span.menu-item-label {
    padding: 0 var(--padding-vertical);
}

.origarti-sliding-menu li > a {
    flex-wrap: nowrap;
}

.origarti-sliding-menu li.menu-item-has-children > a > span.menu-item-label {
    flex: 1;
}

/* Hover effects for menu items */
.origarti-sliding-menu li:hover > a {
    color: var(--text_color_hover, #FFFFFF);
    background-color: var(--menu_bg_color_hover, #133E4F);
}

/* Styles for menu icons */
.origarti-sliding-menu .sliding-menu-icon-container img {
    float: right;
    width: calc(var(--padding-vertical) * 1.5);
    height: calc(var(--padding-vertical) * 1.5);
    transition: transform var(--animation_delay, 300ms);
}

.origarti-sliding-menu .sliding-menu-icon-container {
    padding-left: var(--padding-vertical);
    padding-right: var(--padding-vertical);
}

.origarti-sliding-menu .sliding-menu-next-icon-container {
    border-left: var(--border-spacing) solid var(--menu_bg_color, #133E4F);
    background-color: var(--menu_bg_color_active, #133E4F);
}

/* Specific styles for the back menu */
.origarti-sliding-menu .back-menu-item {
    font-weight: bold;
    font-size: var(--font-size);
    border-bottom: var(--border-spacing) solid var(--text_color, #FFFFFF);
}

.origarti-sliding-menu .back-menu-item > a {
    display: flex;
    flex-direction: row;
    padding: 0;
    background-color: var(--menu_bg_color_active, #133E4F);
    color: var(--text_color, #FFFFFF);
}

.origarti-sliding-menu .back-menu-item span.menu-item-reminder {
    display: flex;
    align-items: center;
    flex: 1;
    height: var(--itemHeight);
}

/* Sub-menu animation */
.origarti-sliding-menu .sub-menu {
    display: none;
    position: relative;
    transform: translateY(calc(var(--itemHeight) * -1));
    top: 4px;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    animation: slideIn var(--animation_delay, 300ms) ease-out;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
