/*
 * Copy this file into your theme to customize it.
 * https://www.phpboost.com/wiki/structure-d-un-theme#paragraph-le-repertoire-theme
*/

html.push-nav-yscroll { overflow-y: scroll; }

body.push-nav-open {
    overflow: visible;
    position: fixed;
    width: 100%;
    min-height: 100%;
}

.pushnav { display: none; }

.pushmenu {
    visibility: hidden;
    display: none;
    position: fixed;
    top: 0;
    height: 100%;
    z-index: 9999;
}

.pushmenu.is-ios * { cursor: pointer !important; }

.pushmenu .nav-container {
    position: fixed;
    z-index: 9998;
    top: 0;
    /* width: 280px; */
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    transition: transform 0.3s ease;
}

.pushmenu .nav-wrapper {
    width: 100%;
    height: 100%;
    max-height: 100vh;
    -ms-scroll-chaining: none;
    overscroll-behavior: none;
}

.pushmenu .nav-content {
    height: 100%;
    max-height: 100vh;
}

.pushmenu .nav-wrapper-0 > .nav-content {
    overflow: scroll;
    overflow-x: visible;
    overflow-y: auto;
}

.pushmenu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pushmenu li {
    position: relative;
    display: block;
    flex: auto;
}

.pushmenu li.level-open > .nav-wrapper { visibility: visible; }

.pushmenu li:not(.custom-content) a {
    position: relative;
    display: block;
    cursor: pointer;
}

.pushmenu li:not(.custom-content) a[disabled] { cursor: not-allowed; }

.pushmenu li:not(.custom-content) a,
.pushmenu li:not(.custom-content) a:hover { text-decoration: none; }

.pushmenu input[type="checkbox"] { display: none; }

.pushmenu label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    cursor: pointer;
}

.pushmenu a {
    position: relative;
    display: block;
    cursor: pointer;
}

.pushmenu a,
.pushmenu a:hover { text-decoration: none }

.pushmenu .nav-item-link {
    position: relative;
    display: block;
}

.pushmenu .nav-item-link i + span,
.pushmenu .nav-item-link span + span,
.pushmenu .nav-item-link img + span { padding-left: 0.618em; }

.pushmenu .nav-item-link span.cssmenu-title { padding: 0; }

.pushmenu .nav-item-link p { margin: 0; }

.pushmenu.disable-body::after,
.pushmenu .nav-wrapper::after {
    content: '';
    position: fixed;
    z-index: 9990;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    -ms-scroll-chaining: none;
    overscroll-behavior: none;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s ease 0.3s, opacity 0.3s ease;
}

.pushmenu.disable-body.nav-open::after,
.pushmenu .sub-level-open::after {
    visibility: visible;
    opacity: 1;
    transition-delay: 0.05s;
}

.pushmenu:not(.nav-open)::after { pointer-events: none; }

.pushmenu.nav-levels-expand .nav-wrapper::after { display: none; }

.pushmenu.nav-levels-expand .nav-wrapper.nav-wrapper-0 { max-height: 100vh; }

.pushmenu.nav-levels-expand .nav-wrapper.nav-wrapper-0 > .nav-content {
    overflow: scroll;
    overflow-x: visible;
    overflow-y: auto;
    max-height: 100vh;
}

.pushmenu.nav-levels-expand ul .nav-wrapper {
    min-width: 0;
    max-height: 0;
    visibility: hidden;
    overflow: hidden;
    transition: height 0s ease 0.3s;
}

.pushmenu.nav-levels-expand .level-open > .nav-wrapper {
    max-height: none;
    overflow: visible;
    visibility: visible;
}

.pushmenu.nav-levels-overlap .nav-content {
    overflow: scroll;
    overflow-x: visible;
    overflow-y: auto;
    max-height: 100vh;
}

.pushmenu.nav-levels-overlap .nav-wrapper { max-height: 100vh; }

.pushmenu.nav-levels-overlap ul .nav-wrapper {
    position: absolute;
    z-index: 9999;
    top: 0;
    height: 100%;
    visibility: hidden;
    transition: visibility 0s ease 0.4s, transform 0.4s ease;
}

.pushmenu.nav-levels-overlap ul li.nav-parent { position: static; }

.pushmenu.nav-levels-overlap ul li.nav-parent .nav-item-wrapper { position: relative; }

.pushmenu.nav-levels-overlap ul li.nav-parent .nav-item-wrapper button,
.pushmenu.nav-levels-overlap ul li.nav-parent .nav-item-wrapper .button {
    margin: 0;
    padding: 0.618em 1.618em;
}

.pushmenu.nav-levels-overlap ul li.level-open > .nav-wrapper {
    visibility: visible;
    transform: translate3d(0, 0, 0);
    transition: transform 0.4s ease;
}

.pushmenu.nav-position-left { left: 0; }

.pushmenu.nav-position-left .nav-container { left: 0; }

.pushmenu.nav-position-left.nav-levels-overlap li .nav-wrapper {
    left: 0;
    transform: translate3d(-100%, 0, 0);
}

.pushmenu.nav-position-right { right: 0; }

.pushmenu.nav-position-right .nav-container { right: 0; }

.pushmenu.nav-position-right.nav-levels-overlap li .nav-wrapper {
    right: 0;
    transform: translate3d(100%, 0, 0);
}

.pushmenu.nav-position-top { top: 0; }

.pushmenu.nav-position-top .nav-container {
    top: 0;
    width: 100%;
}

.pushmenu.nav-position-top.nav-levels-overlap li .nav-wrapper {
    left: 0;
    transform: translate3d(0, -100%, 0);
}

.pushmenu.nav-position-bottom {
    top: auto;
    bottom: 0;
}

.pushmenu.nav-position-bottom .nav-container {
    top: auto;
    bottom: 0;
    width: 100%;
}

.pushmenu.nav-position-bottom.nav-levels-overlap li .nav-wrapper {
    left: 0;
    transform: translate3d(0, 100%, 0);
}

.pushmenu.nav-open[class*="push-nav-"] div.nav-container { transform: translate3d(0, 0, 0); }

.pushmenu-toggle {
    align-items: center;
    padding: 0.618em;
}

.cell-mini .pushmenu-toggle { padding: 0; }

.pushmenu-toggle span { padding: 0 0 0 0.618em; }

.push-nav-trigger {
    position: relative;
    cursor: pointer;
    display: none;
}

.pushmenu h2 {
    font-size: 1.618em;
    padding: 0.309em;
}

.pushmenu a,
.pushmenu .nav-item-link {
    padding: 0.618em 0.309em;
    z-index: 1;
    border-width: 0 0 1px;
    border-style: solid;
    border-color: transparent;
}

.pushmenu ul:first-of-type:not(:first-child) > li:first-child:not(.nav-back):not(.nav-close) > a {
    margin-top: -1px;
    border-width: 1px 0 0;
    border-style: solid;
    border-color: transparent;
}

.pushmenu .nav-close a,
.pushmenu .nav-back a {
    border-width: 1px 0 1px;
    border-style: solid;
    border-color: transparent;
}

.pushmenu .nav-close:not(:first-child) a,
.pushmenu .nav-back:not(:first-child) a { margin-top: -1px; }

.pushmenu .nav-parent > .nav-item-link { padding-right: 3.618em; }

.pushmenu .nav-parent .nav-item-link:not(:last-child) { margin-right: 2.809em; }

.pushmenu .nav-close span,
.pushmenu .nav-parent .nav-next,
.pushmenu .nav-back span {
    width: 2.809em;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.pushmenu .nav-next span {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
}

.pushmenu .nav-close span::before,
.pushmenu .nav-close span::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    margin-top: -3px;
    border-width: 2px 0 0 2px;
    border-style: solid;
    border-color: transparent;
}

.pushmenu .nav-close span::before {
    margin-left: -9px;
    transform: rotate(135deg);
}

.pushmenu .nav-close span::after { transform: rotate(-45deg); }

.pushmenu a[href]:not([href="#"]) > span.nav-next {
    border-width: 0 0 0 1px;
    border-style: solid;
    border-color: transparent;
}

a.nav-next {
    border-width: 0 0 1px 1px ;
    border-style: solid;
    border-color: transparent;
}

.pushmenu .nav-next span::before,
.pushmenu .nav-back span::before {
    content: '';
    position: absolute;
    top: 1.456em;
    left: 50%;
    width: 8px;
    height: 8px;
    margin-left: -2px;
    transform-origin: center;
    border-width: 2px 0 0 2px;
    border-style: solid;
    border-color: transparent;
}

.pushmenu .nav-next span::before { transform: translate(-50%, -50%) rotate(135deg); }

.pushmenu .nav-back span::before { transform: translate(-50%, -50%) rotate(-45deg); }

.pushmenu.nav-position-right .nav-next span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(-45deg);
}

.pushmenu.nav-position-right .nav-back span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(135deg);
}

.pushmenu.nav-position-top .nav-next span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(-135deg);
}

.pushmenu.nav-position-top .nav-back span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(45deg);
}

.pushmenu.nav-position-bottom .nav-next span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(45deg);
}

.pushmenu.nav-position-bottom .nav-back span::before {
    margin-left: 0;
    margin-right: -2px;
    transform: translate(-50%, -50%) rotate(-135deg);
}

.pushmenu.nav-levels-expand .nav-container ul h2,
.pushmenu.nav-levels-none .nav-container ul h2 { display: none; }

.pushmenu.nav-levels-expand .nav-container li,
.pushmenu.nav-levels-none .nav-container li { transition: background-color 0.3s ease; }


.pushmenu.nav-levels-expand .nav-container li.level-open > .nav-item-wrapper > a,
.pushmenu.nav-levels-none .nav-container li.level-open > .nav-item-wrapper > a {
    border-width: 0 0 1px;
    border-style: solid;
    border-color: transparent;
}

.pushmenu.nav-levels-expand .nav-container li.level-open > .nav-item-wrapper > .nav-next span::before,
.pushmenu.nav-levels-expand .nav-container li.level-open > .nav-item-wrapper > a > .nav-next span::before,
.pushmenu.nav-levels-none .nav-container li.level-open > .nav-item-wrapper > .nav-next span::before,
.pushmenu.nav-levels-none .nav-container li.level-open > .nav-item-wrapper > a > .nav-next span::before {
    margin-top: 2px;
    transform: translate(-50%, -50%) rotate(45deg);
}

.pushmenu.nav-levels-expand .nav-container .nav-next span::before,
.pushmenu.nav-levels-none .nav-container .nav-next span::before {
    margin-top: -2px;
    transform: translate(-50%, -50%) rotate(-135deg);
}

/* --- for custom navs --- */

.bottom-nav {
    position: absolute;
    z-index: 10;
    bottom: 0;
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
}

.pushmenu.rtl li { text-align: right; }

.pushmenu.rtl .nav-next span,
.pushmenu.rtl .nav-back span,
.pushmenu.rtl .nav-close span {
    left: 0;
    right: unset;
}

.pushmenu.rtl a.nav-next {
    border-width: 0 1px 1px 0 ;
}

.pushmenu.rtl li.nav-parent .nav-item-link {
    padding-right: 17px;
    padding-left: 58px;
}
