/* Menu mobile (drawer) — CSS base + modo ACCORDION num único arquivo
   (1 download, cacheado entre páginas). Externalizado de
   menu_mobile.html.twig. Cor por loja via var(--primary-color)
   (definida no :root em layout.html.twig). A parte .mm-accordion é
   inerte sem o modo accordion. Ao alterar, bumpar o sufixo de
   versão no nome do arquivo + whitelist no WebExtension. */

html.mm-mobile-enabled, body.mm-mobile-enabled {
    -webkit-overflow-scrolling: touch;
    overflow: hidden;
    height: 100%;
}

.mm-header-overlay {
    background: rgba(0, 0, 0, 0.6);
    width: 100%;
    height: 100%;
    position: fixed;
    visibility: hidden;
    display: none;
    z-index: 1;
    top: 0px;
    left: 0px;
}

.mm-mobile-enabled .mm-header-overlay {
    display: block;
    visibility: visible;
    z-index: 9999;
}

#mm-container {
    width: 0;
    padding-left: 0;
}

.mm-body {
    position: fixed;
    top: 0;
    left: 0;
    width: 295px;
    height: 100%;
    z-index: 2147483647;
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -moz-transition: all .6s ease;
    -o-transition: all .6s ease;
    -webkit-transition: all .6s ease;
    transition: all .6s ease;
    background: #fff;
    overflow-y: visible;
    overflow-x: hidden;
}

.mm-body .mm-header {
    padding-top: 7px;
    padding-left: 7px;
    padding-bottom: 7px;
    color: #fff;
    font-size: 16px;
    font-weight: normal;
    justify-content: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 75px;
}

.mm-body .mm-header .mm-close {
    position: absolute;
    top: 0px;
    right: 0px;
    padding: 17px 14px 15px 14px;
    text-align: center;
}

.mm-body .mm-header .mm-close::before, .mm-body .mm-header .mm-close::after {
    content: "";
    position: absolute;
    height: 2px;
    width: 10px;
    top: 50%;
    left: 3px;
    background: white;
}

.mm-body .mm-header .mm-close::before {
    transform: rotate(45deg);
    margin-top: -1px;
}

.mm-body .mm-header .mm-close::after {
    transform: rotate(-45deg);
    margin-top: -1px;
}


.mm-body .mm-header .mm-customer-name {
    font-size: 17px;
}

.mm-body .mm-header .mm-login-or-register a, .mm-body .mm-header .mm-customer-shotcuts a {
    text-decoration: underline;
}

.mm-body .mm-header .link-separator {
    padding-left: 7px;
    padding-right: 7px;
}

.mm-body .mm-header a, .mm-body .mm-header a span, .mm-body .mm-header span {
    color: #fff;
}

.mm-body .mm-header {
    background: var(--primary-color);
}

.mm-body .mm-header div {
    margin-bottom: 7px;
}

.mm-body .mm-content {
    position: relative;
    min-height: 100%;
}

.mm-body .mm-content-itens-separator {
    border-top: 1px solid #e4e4e4;
}

.mm-body .mm-content ul {
    position: relative;
}

.mm-body .mm-next-level-title {
    color: #45494f;
}

.mm-body .mm-back-to-previous-level {
    display: flex;
    align-items: center;
    top: 0;
    bottom: 0;
    color: #45494f;
    padding: 0 10px 0 25px;
    width: 100%;
    height: 47px;
    background: #e5e5e5;
    -moz-transition: all .3s ease;
    -o-transition: all .3s ease;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    margin-bottom: 10px;
}

.mm-body .mm-back-to-previous-level .mmn-arrow {
    left: .5em;
    fill: #666;
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
    position: absolute;
    margin-left: 10px;
}

#mm-content-inner li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 47px;
    font-size: 13px;
    font-weight: normal;
}

#mm-content-inner li a, .mm-next-level-name {
    display: flex;
    align-items: center;
    color: #45494f;
    padding: 0 10px;
    height: 100%;
    width: 100%;
}

#mm-content-inner li .mm-next-level-button {
    display: flex;
    align-items: center;
    width: 60px;
    height: 47px;
}

#mm-content-inner svg.mmn-arrow {
    width: .825em;
    height: .825em;
    fill: #666;
    margin: 0 auto;
}

#mm-content-inner li .mm-next-level-container {
    display: block;
    position: absolute;
    -moz-transform: translateX(-100%);
    -ms-transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    -moz-transition: all .3s ease;
    -o-transition: all .3s ease;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    width: 100%;
    top: 0;
    bottom: 0;
    background: #fff;
    overflow: hidden;
}

#mm-content-inner li.active > .mm-next-level-container {
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
    z-index: 1;
    max-height: 100%;
    overflow: visible;
}

.mm-mobile-enabled .mm-body {
    -moz-transform: translateX(0);
    -ms-transform: translateX(0);
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -moz-box-shadow: 0 0 13px 5px rgba(0, 0, 0, 0.6);
    -webkit-box-shadow: 0 0 13px 5px rgba(0, 0, 0, 0.6);
    box-shadow: 0 0 13px 5px rgba(0, 0, 0, 0.6);
}

#mm-content-inner li .mm-see-all-link {
    color: var(--primary-color);
}


/* ============================================================
   MODO ACCORDION (opt-in: classe .mm-accordion na .mm-body)
   ============================================================ */

/* Accordion p/ menus profundos (até 4 níveis): SÓ o 1º nível é toggle.
   Ao abrir, todos os subníveis aparecem achatados, diferenciados por
   estilo (2º = cabeçalho cinza; 3º = subcabeçalho; folhas indentadas) —
   sem +/- aninhado. Altura do 1º nível é medida via JS (scrollHeight),
   sem corte em menus grandes. !important vence o drill-down legado. */

/* O .mm-content base usa min-height:100% para que o submenu drill-down
   (position:absolute; top:0; bottom:0) tenha o que esticar. No accordion
   os subníveis são static — esse min-height vira espaço-fantasma que,
   somado ao .mm-header (~75px), faz o .mm-body ultrapassar a viewport
   e o navegador exibir scrollbar mesmo com o conteúdo cabendo. */
.mm-accordion .mm-content {
    min-height: 0;
}

/* separador entre itens de 1º nível */
.mm-accordion #mm-content-inner > li {
    border-top: 1px solid #e4e4e4;
}

/* --- 1º nível: linha-toggle (nome + +/-) --- */
.mm-accordion #mm-content-inner > li.mm-has-next-level {
    flex-wrap: wrap;
    height: auto;
    align-items: center;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-name {
    cursor: pointer;
    width: auto;
    flex: 1 1 0;
    min-width: 0;
    height: 47px;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-button {
    height: 47px;
    width: 40px;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-button svg.mmn-arrow {
    display: none;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-button::after {
    content: '+';
    margin: 0 auto;
    font-size: 20px;
    line-height: 1;
    color: #1a1a1a;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level.active > .mm-next-level-button::after {
    content: '\2212'; /* − */
}
/* 1º nível aberto: nome em negrito p/ sinalizar qual menu está aberto */
.mm-accordion #mm-content-inner > li.mm-has-next-level.active > .mm-next-level-name {
    font-weight: bold;
}
/* aberto: zera margin-bottom para o border-top do próximo <li> ficar visível
   (fechado mantém -1px que evita borda dupla com border-bottom do <li>) */
.mm-accordion #mm-content-inner > li.mm-has-next-level.active > .mm-next-level-container {
    margin-bottom: 0;
}
/* divisor entre o cabeçalho do grupo e seus filhos (delimita o grupo;
   o fim do grupo já é fechado pelo border-top do próximo item).
   Sempre presente — mesmo com o grupo fechado o traço fica visível
   (estética consistente; container fechado tem max-height:0 mas a
   borda de 1px ainda renderiza).
   margin-bottom:-1px é defensivo: se a loja adicionar border-bottom
   no <li>, evita linha dupla (border-top do container + border-bottom
   do <li> empilhados). Faz os dois caírem no mesmo pixel. Inerte
   quando o <li> não tem border-bottom. */
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container {
    border-top: 1px solid #e4e4e4;
    margin-bottom: -1px;
}

/* 1º nível: container abre/fecha (max-height setado via JS = scrollHeight) */
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container {
    flex: 0 0 100%;
    width: 100%;
    position: static !important;
    -webkit-transform: none !important;
    transform: none !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

/* Subníveis (2º+): sem toggle, SEMPRE visíveis quando o 1º está aberto */
.mm-accordion #mm-content-inner .mm-next-level-container .mm-next-level-button {
    display: none !important;
}
.mm-accordion #mm-content-inner .mm-next-level-container .mm-next-level-container {
    position: static !important;
    -webkit-transform: none !important;
    transform: none !important;
    max-height: none !important;
    overflow: visible !important;
    transition: none !important;
}
.mm-accordion #mm-content-inner .mm-next-level-container li.mm-has-next-level {
    display: block;
    height: auto;
}
/* subníveis (2º+): linha mais compacta p/ caber mais itens com o
   1º nível aberto; o 1º nível mantém os 47px da linha-toggle */
.mm-accordion #mm-content-inner .mm-next-level-container li {
    height: 33px;
}

/* 1º nível: "Ver todos os produtos" vai pro FIM do grupo (flex order, sem
   mexer no macro → drill-down/outras lojas intactos); título interno
   duplicado escondido (a linha-toggle já mostra o nome). */
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container > ul {
    display: flex;
    flex-direction: column;
    /* respiro no início/fim do grupo aberto: fica dentro do conteúdo,
       entra no scrollHeight, o JS expande a altura junto (sem corte) */
    padding-top: 6px;
    padding-bottom: 6px;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container > ul > li.mm-next-level-title {
    display: none !important;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container > ul > li.mm-see-all {
    order: 100;
}
.mm-accordion #mm-content-inner > li.mm-has-next-level > .mm-next-level-container > ul > li.mm-see-all > a {
    font-size: 12px;
    font-style: italic;
}

/* Subníveis 2º/3º: o próprio título (que é <a> da categoria) vira o
   cabeçalho clicável; o span .mm-next-level-name (não-link) é escondido
   e o "Ver todos os produtos" desses níveis some (título já leva lá). */
.mm-accordion #mm-content-inner li.mm-has-next-level.level2 > .mm-next-level-name,
.mm-accordion #mm-content-inner li.mm-has-next-level.level3 > .mm-next-level-name {
    display: none !important;
}
.mm-accordion #mm-content-inner li.mm-has-next-level.level2 > .mm-next-level-container > ul > li.mm-next-level-title,
.mm-accordion #mm-content-inner li.mm-has-next-level.level3 > .mm-next-level-container > ul > li.mm-next-level-title {
    display: block !important;
    height: auto;
}
.mm-accordion #mm-content-inner li.mm-has-next-level.level2 > .mm-next-level-container > ul > li.mm-next-level-title > a {
    display: block;
    width: 100%;
    height: auto;
    background: #f1f1f1;
    color: #1a1a1a;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: .04em;
    padding: 8px 10px;
}
.mm-accordion #mm-content-inner li.mm-has-next-level.level3 > .mm-next-level-container > ul > li.mm-next-level-title > a {
    display: block;
    width: 100%;
    height: auto;
    letter-spacing: .04em;
    padding: 12px 15px 4px 10px;
}
.mm-accordion #mm-content-inner li.mm-see-all.level2,
.mm-accordion #mm-content-inner li.mm-see-all.level3,
.mm-accordion #mm-content-inner li.mm-see-all.level4 {
    display: none !important;
}

/* folhas dos subníveis: indentação crescente por nível */
.mm-accordion #mm-content-inner .mm-next-level-container li.mm-no-next-level.level2 > a {
    padding-left: 10px;
}
/* 2º nível em negrito SÓ quando há 3º nível (algum irmão é grupo); em
   menu de 2 níveis o 2º nível fica peso normal. :has() não suportado
   → fallback sem negrito (= comportamento desejado p/ 2 níveis). */
.mm-accordion #mm-content-inner .mm-next-level-container ul:has(> li.mm-has-next-level.level2) > li.mm-no-next-level.level2 > a {
    font-weight: bold;
}
.mm-accordion #mm-content-inner .mm-next-level-container li.mm-no-next-level.level3 > a {
    padding-left: 10px;
}
.mm-accordion #mm-content-inner .mm-next-level-container li.mm-no-next-level.level4 > a {
    padding-left: 20px;
}

/* "Voltar" escondido em todos os níveis */
.mm-accordion #mm-content-inner .mm-back-to-previous-level {
    display: none !important;
}
