﻿/*
Theme Name: Seu Tema Filho
Template: hello-elementor
*/

/* ══════════════════════════════════════════════════════════════
   DESIGN SYSTEM — CSS CUSTOM PROPERTIES
   Breakpoints: mobile ≤ 480px | tablet ≤ 768px | desktop > 768px
══════════════════════════════════════════════════════════════ */
:root {
    /* Brand colors */
    --mnj-purple:       #6419c6;
    --mnj-purple-dark:  #4e13a0;
    --mnj-purple-light: #f5f0ff;
    --mnj-black:        #000000;
    --mnj-white:        #ffffff;

    /* Grays */
    --mnj-gray-50:  #f9f9f9;
    --mnj-gray-100: #f6f6f6;
    --mnj-gray-200: #e8e8e8;
    --mnj-gray-400: #999999;
    --mnj-gray-600: #444444;
    --mnj-gray-900: #111111;

    /* Typography */
    --mnj-font-body:    'Outfit', sans-serif;
    --mnj-font-display: 'Giliant', cursive;

    /* Spacing (múltiplos de 4px) */
    --mnj-sp-1:  4px;
    --mnj-sp-2:  8px;
    --mnj-sp-3:  12px;
    --mnj-sp-4:  16px;
    --mnj-sp-5:  20px;
    --mnj-sp-6:  24px;
    --mnj-sp-8:  32px;
    --mnj-sp-10: 40px;
    --mnj-sp-12: 48px;
    --mnj-sp-16: 64px;
    --mnj-sp-20: 80px;

    /* Border radius */
    --mnj-radius-sm:   6px;
    --mnj-radius-md:   12px;
    --mnj-radius-lg:   16px;
    --mnj-radius-full: 999px;

    /* Container */
    --mnj-container:         1280px;
    --mnj-container-pad:     80px;
    --mnj-container-pad-mob: 20px;

    /* Transitions */
    --mnj-ease: 0.2s ease;
}

/* ══════════════════════════════════════════════════════════════
   TIPOGRAFIA BASE
   Elementor usa inherit para não bloquear fontes customizadas
   configuradas nos widgets (ex: Giliant em títulos de seção)
══════════════════════════════════════════════════════════════ */
body, h1, h2, h3, h4, h5, h6,
p, a, span, li, input, button, select, textarea,
.woocommerce-page * {
    font-family: var(--mnj-font-body);
}
.elementor * {
    font-family: inherit;
}

/* Classe utilitária para fonte display (Giliant) */
.mnj-font-display {
    font-family: var(--mnj-font-display) !important;
}

/* ══════════════════════════════════════════════════════════════
   PADRÃO GLOBAL DE BOTÕES
   Preto padrão → roxo no hover/active/focus
   Sobrescreve #c36 do Hello Elementor reset.css
   Exceções com maior especificidade ou !important abaixo:
     - .mnj-co__acc-hdr (toggle transparente)
     - .mnj-cart__qty-btn (±qty transparente)
   ══════════════════════════════════════════════════════════════ */
button,
input[type="submit"],
input[type="button"] {
    background-color: var(--mnj-black) !important;
    color: var(--mnj-white) !important;
    border: none !important;
    border-radius: var(--mnj-radius-full) !important;
    font-family: var(--mnj-font-body) !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background-color var(--mnj-ease), color var(--mnj-ease) !important;
}
button:hover,
button:focus,
button:active,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="submit"]:active,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="button"]:active {
    background-color: var(--mnj-purple) !important;
    color: var(--mnj-white) !important;
    text-decoration: none !important;
}
button:focus:not(:focus-visible),
input[type="submit"]:focus:not(:focus-visible),
input[type="button"]:focus:not(:focus-visible) {
    outline: none !important;
}
button:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible {
    outline: 2px solid var(--mnj-purple) !important;
    outline-offset: 2px !important;
    background-color: var(--mnj-black) !important;
}

/* ══════════════════════════════════════════════════════════════
   OCULTAR ELEMENTOS WC NATIVOS (substituídos pelo nosso template)
══════════════════════════════════════════════════════════════ */
.woocommerce-tabs,
.related.products,
.up-sells.products          { display: none !important; }

/* Notices WC: ocultar em páginas de produto/loja e checkout (checkout usa .mnj-co__notices) */
.single-product .woocommerce-notices-wrapper,
.tax-product_cat .woocommerce-notices-wrapper,
.woocommerce-shop .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper { display: none !important; }

/* Quantidade nativa oculta (gerenciamos via hidden input) */
.woocommerce div.product form.cart .quantity { display: none !important; }

/* Stock nativo oculto (nosso .mnj-sp__avail o substitui) */
.woocommerce div.product p.stock             { display: none !important; }

/* ══════════════════════════════════════════════════════════════
   CONTAINER DA PÁGINA DE PRODUTO
══════════════════════════════════════════════════════════════ */
.mnj-sp-page {
    max-width: 1440px;
    margin: 0 auto;
    padding: 40px 138px 80px;
    box-sizing: border-box;
}

/* ══════════════════════════════════════════════════════════════
   BREADCRUMB
══════════════════════════════════════════════════════════════ */
.mnj-sp__breadcrumb {
    margin-bottom: 28px;
}
.woocommerce-breadcrumb {
    font-size: 13px !important;
    color: rgba(0,0,0,0.45) !important;
}
.woocommerce-breadcrumb a {
    color: rgba(0,0,0,0.45) !important;
    text-decoration: none !important;
}
.woocommerce-breadcrumb a:hover { color: var(--mnj-purple) !important; }

/* ══════════════════════════════════════════════════════════════
   TOP: GRID GALERIA + DETALHES
══════════════════════════════════════════════════════════════ */
.mnj-sp__top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 64px;
}

/* ══════════════════════════════════════════════════════════════
   GALERIA CUSTOMIZADA (sem Flexslider)
══════════════════════════════════════════════════════════════ */
.mnj-sp__gallery {
    display: flex;
    flex-direction: row;
    gap: 12px;
    align-items: flex-start;
}

/* --- Coluna de thumbnails (esquerda) --- */
.mnj-sp__thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 0 0 98px;
    width: 98px;
}

/* thumbnail de galeria: sem fundo — sobrescreve regra global */
.mnj-sp__thumb {
    width: 98px;
    height: 98px;
    padding: 0;
    margin: 0;
    border: 0 !important;
    border-radius: 8px !important;
    overflow: hidden;
    background: none !important;
    cursor: pointer !important;
    color: inherit !important;
    font-weight: 400 !important;
    opacity: 0.55;
    flex-shrink: 0;
    position: relative;
    transition: opacity .2s;
    box-sizing: border-box;
}
.mnj-sp__thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(100, 25, 198, 0);
    transition: background .2s;
    pointer-events: none;
    z-index: 1;
}
.mnj-sp__thumb:hover,
.mnj-sp__thumb:focus,
.mnj-sp__thumb:active       { opacity: 1; background: none !important; border: 0 !important; color: inherit !important; outline: 2px solid var(--mnj-purple) !important; outline-offset: -2px !important; }
.mnj-sp__thumb:hover::after { background: rgba(100, 25, 198, 0.45); }
.mnj-sp__thumb--on          { opacity: 1 !important; background: none !important; border: 0 !important; color: inherit !important; outline: 2px solid var(--mnj-purple) !important; outline-offset: -2px !important; }
.mnj-sp__thumb--on::after   { background: rgba(100, 25, 198, 0.20); }

.mnj-sp__timg {
    width: 98px !important;
    height: 98px !important;
    object-fit: cover !important;
    display: block !important;
}

/* --- Imagem principal (direita) --- */
.mnj-sp__main-wrap {
    flex: 1;
    min-width: 0;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #f5f5f5;
}

.mnj-sp__main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: none;
    border-radius: 12px;
    transition: opacity .25s;
}
.mnj-sp__main-img--on { display: block; }

/* Vídeo na galeria */
.mnj-sp__thumb--video .mnj-sp__play-icon {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    pointer-events: none;
}
.mnj-sp__video-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--mnj-gray-900);
}
.mnj-sp__main-video {
    width: 100%;
    height: 100%;
    background: var(--mnj-black);
    border-radius: 12px;
    overflow: hidden;
}
.mnj-sp__main-video iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* ══════════════════════════════════════════════════════════════
   DETALHES DO PRODUTO
══════════════════════════════════════════════════════════════ */
.mnj-sp__details {
    display: flex;
    flex-direction: column;
}

.mnj-sp__title {
    font-size: 48px !important;
    font-weight: 500 !important;
    color: var(--mnj-black) !important;
    line-height: 60px !important;
    margin: 0 0 12px !important;
}

/* Rating */
.mnj-sp__rating {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
}
.mnj-sp__rating .star-rating        { display: inline-block !important; }
.mnj-sp__rating .star-rating::before { color: #e0e0e0 !important; }
.mnj-sp__rating .star-rating span::before { color: #f5a623 !important; }
.mnj-sp__rating-val   { font-size: 14px !important; color: var(--mnj-black) !important; }
.mnj-sp__rating-count { font-size: 13px !important; color: rgba(0,0,0,0.4) !important; }

/* Descrição curta */
.mnj-sp__short-desc {
    font-size: 16px !important;
    color: rgba(0,0,0,0.5) !important;
    line-height: 20px !important;
    margin-bottom: 20px !important;
}
.mnj-sp__short-desc p { margin: 0 !important; }

/* Preço (output do filtro menestral_custom_price) */
.mnj-sp__price {
    margin-bottom: 16px;
}

/* Disponibilidade */
.mnj-sp__avail {
    font-size: 13px;
    margin-bottom: 20px;
}
.mnj-sp__avail--in  { color: var(--mnj-black); }
.mnj-sp__avail--out { color: #c62828; }

/* Separador */
.mnj-sp__sep {
    height: 1px;
    background: rgba(0,0,0,0.1);
    margin: 20px 0;
}

/* ══════════════════════════════════════════════════════════════
   SHOPENGINE — OCULTAR BADGES (wishlist / comparison)
══════════════════════════════════════════════════════════════ */
.shopengine-wishlist.badge,
.shopengine-comparison.badge,
.shopengine_add_to_list_action,
.shopengine_comparison_add_to_list_action { display: none !important; }

/* ══════════════════════════════════════════════════════════════
   CALCULADORA DE FRETE LEGADA (estática — oculta, substituída por MNJ-013)
   Regras escopadas em .mnj-sp__ship para não conflitar com o novo widget
   .mnj-sp__ship-calc (MNJ-013).
══════════════════════════════════════════════════════════════ */
.mnj-sp__ship { display: none !important; }
.mnj-sp__sep  { display: none !important; }
.mnj-sp__ship .mnj-sp__ship-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13.76px !important;
    font-weight: 500 !important;
    color: var(--mnj-black) !important;
    margin: 0 !important;
}
.mnj-sp__ship .mnj-sp__ship-row {
    display: flex;
    gap: 8px;
}
.mnj-sp__ship .mnj-sp__cep {
    flex: 1;
    height: 44px;
    padding: 10px 14px;
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 42px;
    font-size: 14px;
    color: var(--mnj-black);
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s;
}
.mnj-sp__ship .mnj-sp__cep:focus {
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,0.12);
}
.mnj-sp__ship .mnj-sp__cep-btn { display: none !important; }
.mnj-sp__ship .mnj-sp__no-cep {
    font-size: 13.76px !important;
    color: var(--mnj-purple) !important;
    text-decoration: underline !important;
}

/* ══════════════════════════════════════════════════════════════
   BOTÕES: ADICIONAR AO CARRINHO + COMPRAR AGORA
   (simple.php e variable.php)
══════════════════════════════════════════════════════════════ */
.msp-form { margin: 0; }

.msp-buttons {
    display: flex;
    flex-direction: row;
    gap: 12px;
    margin: 16px 0 0;
    align-items: center;
}

.msp-sep { display: none; }

/* "Adicionar ao carrinho" — borda leve */
.msp-btn-add,
.single_variation_wrap .single_add_to_cart_button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    flex: 1 !important;
    min-width: 0 !important;
    height: 40px !important;
    background: transparent !important;
    color: var(--mnj-black) !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    border-radius: 46px !important;
    padding: 10px 34px !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    font-family: var(--mnj-font-body) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background .2s, color .2s, border-color .2s !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.msp-btn-add:hover,
.single_variation_wrap .single_add_to_cart_button:hover {
    background: var(--mnj-purple) !important;
    color: #fff !important;
    border-color: var(--mnj-purple) !important;
}

/* "Comprar agora" — preto sólido */
.msp-btn-buy {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    flex: 1 !important;
    min-width: 0 !important;
    height: 40px !important;
    background: var(--mnj-black) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 46px !important;
    padding: 10px 34px !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    font-family: var(--mnj-font-body) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background .2s !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}
.msp-btn-buy:hover { background: var(--mnj-purple) !important; color: #fff !important; }

/* Botão comprar para produto variável */
.msp-btn-buy--var { margin-top: 0; }

/* Linha de botões para produto variável */
.msp-var-buttons {
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
    align-items: stretch !important;
    margin-top: 4px;
}
.msp-var-buttons .woocommerce-variation-add-to-cart {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
}
.msp-var-buttons .msp-btn-buy--var {
    flex: 1 !important;
    align-self: center !important;
}

/* ══════════════════════════════════════════════════════════════
   TABELA DE VARIAÇÕES (variable.php)
══════════════════════════════════════════════════════════════ */
.msp-variations-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 16px;
}
.msp-variations-table th.label {
    text-align: left;
    font-size: 14px;
    font-weight: 500;
    color: var(--mnj-black);
    padding: 8px 16px 8px 0;
    white-space: nowrap;
    width: 1%;
}
.msp-variations-table td.value { padding: 6px 0; }
.msp-variations-table td.value select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid rgba(0,0,0,0.2);
    border-radius: 8px;
    font-size: 14px;
    font-family: var(--mnj-font-body);
    color: var(--mnj-black);
    background: #fff;
    cursor: pointer;
    transition: border-color .2s;
}
.msp-variations-table td.value select:focus {
    outline: none;
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,0.12);
}
.reset_variations {
    font-size: 12px !important;
    color: rgba(0,0,0,0.4) !important;
    text-decoration: underline !important;
    display: inline-block;
    margin-top: 6px;
}

/* WooCommerce variation wrap */
.single_variation_wrap { margin-top: 4px; }
.single_variation_wrap .woocommerce-variation { margin-bottom: 12px; }
.single_variation_wrap .woocommerce-variation-price { display: none; }
.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* ══════════════════════════════════════════════════════════════
   PREÇO CUSTOMIZADO (filtro menestral_custom_price)
══════════════════════════════════════════════════════════════ */
.custom-price-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.sale-price {
    font-size: 32px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
    line-height: 40px;
}
.regular-price {
    font-size: 12px !important;
    text-decoration: line-through !important;
    color: rgba(0,0,0,0.5) !important;
    line-height: 15px;
}
.normal-price {
    font-size: 32px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
    line-height: 1;
}
.discount-tag {
    background: var(--mnj-purple);
    color: #fff;
    padding: 10px;
    border-radius: 48px;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    height: 34px;
    box-sizing: border-box;
    line-height: 1;
}

/* ══════════════════════════════════════════════════════════════
   SEÇÃO DESCRIÇÃO
══════════════════════════════════════════════════════════════ */
.mnj-sp__desc-section { margin-top: 60px; }

.mnj-sp__section-title {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
    margin: 0 0 24px !important;
    line-height: 30px !important;
}
.mnj-sp__related .mnj-sp__section-title {
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
}

.mnj-sp__desc-body {
    font-size: 16px;
    line-height: 20px;
    color: rgba(0,0,0,0.5);
}
.mnj-sp__desc-body p  { margin-bottom: 12px; }
.mnj-sp__desc-body ul,
.mnj-sp__desc-body ol { padding-left: 20px; margin-bottom: 12px; }

/* ══════════════════════════════════════════════════════════════
   SEÇÃO PRODUTOS RELACIONADOS — scroll-snap puro (sem Swiper)
══════════════════════════════════════════════════════════════ */
.mnj-sp__related { margin-top: 60px; }

/* Footer: setas + dots */
.mnj-rel-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

/* padrão global: preto → roxo hover; SVG branco sobre fundo escuro */
.mnj-rel-arrow {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s;
    padding: 0;
}
.mnj-rel-arrow:hover { background: var(--mnj-purple) !important; }
.mnj-rel-arrow svg { display: block; stroke: #fff; }
.mnj-rel-arrow:hover svg { stroke: #fff !important; }

/* Track scrollável */
.mnj-rel-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 48px) / 3);
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.mnj-rel-track::-webkit-scrollbar { display: none; }

.mnj-rel-item {
    scroll-snap-align: start;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Dots */
.mnj-rel-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.mnj-rel-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #999;
    opacity: 0.5;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: all .2s;
    flex-shrink: 0;
}
.mnj-rel-dot--on {
    background: var(--mnj-purple);
    opacity: 1;
    width: 14px;
    height: 14px;
    border-radius: 7px;
}

/* Responsivo */
@media (max-width: 760px) {
    .mnj-rel-track {
        grid-auto-columns: calc((100% - 16px) / 2);
        gap: 16px;
    }
}
@media (max-width: 480px) {
    .mnj-rel-track {
        grid-auto-columns: 100%;
        gap: 12px;
    }
}

/* ══════════════════════════════════════════════════════════════
   CARD DE PRODUTO (carrossel — mesmo HTML do preset-3.php)
══════════════════════════════════════════════════════════════ */
.mnj-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    height: 100%;
}
.mnj-card__img-link {
    display: block;
    overflow: hidden;
    flex-shrink: 0;
}
.mnj-card__img {
    width: 100% !important;
    height: 261px !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform .3s;
}
.mnj-card__img-link:hover .mnj-card__img { transform: scale(1.03); }

.mnj-card__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 0 0;
    flex: 1;
}
.mnj-card__name {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: var(--mnj-black) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}
.mnj-card__desc {
    font-size: 16px !important;
    color: rgba(0,0,0,0.4) !important;
    margin: 0 !important;
    line-height: 20px !important;
}

.mnj-card__rating {
    display: flex;
    align-items: center;
    gap: 6px;
}
.mnj-card__rating .star-rating { display: inline-block !important; }
.mnj-card__rating .star-rating::before { color: #e0e0e0 !important; }
.mnj-card__rating .star-rating span::before { color: #f5a623 !important; }
.mnj-card__rating-val { font-size: 14px !important; color: var(--mnj-black) !important; }

.mnj-card__price { margin: 4px 0 0 !important; }
.mnj-card__price-normal,
.mnj-card__price-sale {
    font-size: 20px !important;
    font-weight: 600 !important;
    color: var(--mnj-black) !important;
}
.mnj-card__price-sale   { margin-right: 6px !important; }
.mnj-card__price-regular {
    font-size: 13px !important;
    font-weight: 400 !important;
    color: rgba(0,0,0,0.4) !important;
    text-decoration: line-through !important;
}
.mnj-card__price .amount,
.mnj-card__price .woocommerce-Price-currencySymbol {
    font-size: inherit !important;
    font-weight: inherit !important;
    color: inherit !important;
}

.mnj-card__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: var(--mnj-black) !important;
    color: #fff !important;
    border-radius: 46px !important;
    padding: 10px 24px !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    transition: background .2s !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border: none !important;
    line-height: 1 !important;
    margin-top: auto !important;
    cursor: pointer !important;
}
.mnj-card__btn:hover { background: var(--mnj-purple) !important; color: #fff !important; }
.mnj-card__btn svg   { flex-shrink: 0; }

.mnj-rel-item .mnj-card { height: 100%; }

/* ══════════════════════════════════════════════════════════════
   MNJ CAROUSEL — coverflow Figma (shortcode [mnj_carousel])
══════════════════════════════════════════════════════════════ */

/* Wrapper: coluna — stage em cima, controles embaixo */
.mnj-car-wrap {
    display:        flex;
    flex-direction: column;
    gap:            24px;
    width:          100%;
    user-select:    none;
}

/* Desativa transição no render inicial */
.mnj-car--init .mnj-car__slide { transition: none !important; }

/* Stage: JS define height = width × (400/1220); CSS faz fallback por aspect-ratio (1220×400) */
.mnj-car__stage {
    position:     relative;
    width:        100%;
    aspect-ratio: 1220 / 400;
    overflow:     hidden;
    -webkit-mask-image: linear-gradient(to right,transparent 0%,var(--mnj-black) 2%,var(--mnj-black) 98%,transparent 100%);
    mask-image:         linear-gradient(to right,transparent 0%,var(--mnj-black) 2%,var(--mnj-black) 98%,transparent 100%);
}

/* Track: preenche o stage inteiro; slides absolutos dentro dele */
.mnj-car__track {
    position: absolute;
    inset:    0;
}

/* Slides: posicionados pelo JS com inset percentual (top/right/bottom/left) */
.mnj-car__slide {
    position:   absolute;
    overflow:   hidden;
    transition: top .45s ease, right .45s ease, bottom .45s ease,
                left .45s ease, opacity .35s ease;
    will-change: top, right, bottom, left, opacity;
}

/* Card: link que preenche o slide — absolute evita quebra de height:100% */
.mnj-car__card {
    display:         block;
    position:        absolute;
    inset:           0;
    text-decoration: none !important;
    overflow:        hidden;
    background:      var(--mnj-gray-900);
}

/* Imagem full-bleed */
.mnj-car__img {
    position:            absolute;
    inset:               0;
    background-size:     cover;
    background-position: center;
    background-repeat:   no-repeat;
    transition:          transform .4s ease;
}
.mnj-car__slide--active .mnj-car__card:hover .mnj-car__img {
    transform: scale(1.03);
}

/* Overlay de texto — visível somente no slide ativo */
.mnj-car__overlay {
    position:        absolute;
    inset:           0;
    display:         flex;
    flex-direction:  row;
    align-items:     flex-end;
    justify-content: space-between;
    gap:             16px;
    padding:         32px 40px;
    background:      linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.12) 55%,transparent 100%);
    opacity:         0;
    pointer-events:  none;
    transition:      opacity .35s ease;
}
.mnj-car__overlay-info {
    display:        flex;
    flex-direction: column;
    gap:            6px;
}
.mnj-car__slide--active .mnj-car__overlay {
    opacity:        1;
    pointer-events: auto;
}

.mnj-car__name {
    font-family: var(--mnj-font-body);
    font-size:   36px;
    font-weight: 500;
    color:       #fff;
    margin:      0;
    line-height: 1.2;
}

/* Preço WooCommerce (padrão del/ins na home) */
.mnj-car__price {
    font-family: var(--mnj-font-body);
    color:       #fff;
}
.mnj-car__price del {
    color:       rgba(255,255,255,.7);
    font-size:   12px;
    font-weight: 400;
    margin-right: 6px;
}
.mnj-car__price ins {
    color:           #fff;
    font-size:       20px;
    font-weight:     700;
    text-decoration: none;
}
.mnj-car__price .woocommerce-Price-amount { color: inherit; font-size: inherit; font-weight: inherit; }
/* Fallback para classes custom (caso o filtro rode na home) */
.mnj-car__price .sale-price    { color: #fff; font-size: 20px; font-weight: 700; margin-right: 6px; }
.mnj-car__price .regular-price { color: rgba(255,255,255,.7); font-size: 12px; font-weight: 400; text-decoration: line-through; margin-right: 6px; }
.mnj-car__price .normal-price  { color: #fff; font-size: 20px; font-weight: 700; }
.mnj-car__price .discount-tag  { display: none; }

/* Desconto em destaque (gerado pelo PHP/JS) */
.mnj-car__discount {
    font-family: var(--mnj-font-body);
    font-size:   16px;
    font-weight: 400;
    color:       #fff;
    margin:      0;
}
.mnj-car__discount b { font-weight: 700; }

/* Botão CTA — pílula preta */
.mnj-car__cta {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           189px;
    height:          40px;
    background:      var(--mnj-black);
    color:           #fff !important;
    font-family: var(--mnj-font-body);
    font-size:       16px;
    font-weight:     400;
    border-radius:   46px;
    text-decoration: none !important;
    border:          none;
    cursor:          pointer;
    transition:      background .2s;
    flex-shrink:     0;
    align-self:      flex-end;
}
.mnj-car__cta:hover { background: var(--mnj-purple); }

/* Controles: ← [dots] → */
.mnj-car__controls {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             8px;
}

.mnj-car__dots {
    display:     flex;
    align-items: center;
    gap:         10px;
    padding:     8px;
}

.mnj-car__dot {
    display:      block;
    width:        12px;
    height:       12px;
    border-radius:50%;
    background:   #999;
    opacity:      .5;
    cursor:       pointer;
    flex-shrink:  0;
    transition:   width .2s, height .2s, opacity .2s, background .2s;
}
.mnj-car__dot.is-active {
    width:      16px;
    height:     16px;
    background: #1a1a1a;
    opacity:    1;
}

/* botão ícone nav carousel — sobrescreve regra global de botões */
.mnj-car__nav {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           40px;
    height:          40px;
    flex-shrink:     0;
    background:      transparent !important;
    border:          none !important;
    border-radius:   0 !important;
    padding:         8px;
    cursor:          pointer !important;
    color:           #1a1a1a !important;
    font-weight:     400 !important;
    transition:      color .2s;
    outline:         none;
}
.mnj-car-wrap .mnj-car__nav:hover,
.mnj-car-wrap .mnj-car__nav:focus,
.mnj-car-wrap .mnj-car__nav:active {
    color:      var(--mnj-purple) !important;
    background: transparent !important;
    box-shadow: none !important;
}
.mnj-car__nav svg { width: 24px; height: 24px; flex-shrink: 0; }

/* Responsivo — carrossel */
@media (max-width: 768px) {
    .mnj-car__name    { font-size: 22px; }
    .mnj-car__overlay {
        padding:        20px;
        flex-direction: column;
        align-items:    flex-start;
        gap:            10px;
    }
    .mnj-car__cta { width: 150px; font-size: 14px; align-self: flex-end; }
}
@media (max-width: 480px) {
    .mnj-car__name  { font-size: 18px; }
    .mnj-car__price .normal-price,
    .mnj-car__price .sale-price { font-size: 16px; }
    .mnj-car__cta   { width: 130px; font-size: 13px; padding: 10px 14px; }
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVO — PÁGINA DE PRODUTO
   Tablet ≤ 768px | Mobile ≤ 480px
══════════════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
    .mnj-sp-page { padding-left: 48px; padding-right: 48px; }
}

@media (max-width: 768px) {
    .mnj-sp-page { padding-left: 24px; padding-right: 24px; }
    .mnj-sp__top {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .mnj-sp__gallery   { max-width: 560px; }
    .mnj-sp__main-wrap { aspect-ratio: 1 / 1; }
}

@media (max-width: 480px) {
    .mnj-sp-page { padding: 20px 16px 60px; }

    /* Galeria: imagem em cima, thumbs em linha abaixo */
    .mnj-sp__gallery {
        flex-direction: column;
        max-width: 100%;
    }
    .mnj-sp__main-wrap {
        width: 100%;
        aspect-ratio: 1 / 1;
    }
    .mnj-sp__thumbs {
        flex-direction: row !important;
        width: 100% !important;
        flex: unset !important;
        overflow-x: auto;
        gap: 6px !important;
    }
    .mnj-sp__thumb {
        width: 68px !important;
        height: 68px !important;
        flex-shrink: 0;
    }
    .mnj-sp__timg {
        width: 68px !important;
        height: 68px !important;
    }
    .mnj-sp__title { font-size: 24px !important; line-height: 1.3 !important; }
    .mnj-card__img { height: 180px !important; }
}

/* ══════════════════════════════════════════════════════════════
   MELHOR ENVIO — CALCULADORA (sobrepõe estilos padrão do plugin)
══════════════════════════════════════════════════════════════ */
.containerCalculator {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(0,0,0,0.1) !important;
    padding-top: 20px !important;
    margin-top: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.containerCalculator .calculatorRow,
.containerCalculator .row,
.containerCalculator .col-25,
.containerCalculator .col-75 {
    float: none !important;
    width: 100% !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

/* Título "Simulação de frete" → mesma aparência que .mnj-sp__ship-label */
.containerCalculator .col-75 > p:first-of-type {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 13.76px !important;
    font-weight: 500 !important;
    color: var(--mnj-black) !important;
    margin: 0 0 4px !important;
    font-family: var(--mnj-font-body) !important;
}
.containerCalculator .col-75 > p:first-of-type::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236419c6'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Input do CEP → mesma aparência que .mnj-sp__cep */
.containerCalculator input[type=text] {
    height: 44px !important;
    padding: 10px 14px !important;
    border: 1px solid rgba(0,0,0,0.1) !important;
    border-radius: 42px !important;
    font-size: 14px !important;
    font-family: var(--mnj-font-body) !important;
    color: var(--mnj-black) !important;
    background: #fff !important;
    box-sizing: border-box !important;
    outline: none !important;
    width: 100% !important;
    resize: none !important;
    transition: border-color .2s, box-shadow .2s !important;
    float: none !important;
}
.containerCalculator input[type=text]:focus {
    border-color: var(--mnj-purple) !important;
    box-shadow: 0 0 0 3px rgba(100,25,198,0.12) !important;
}

/* Botão submit (caso exista) */
.containerCalculator input[type=submit] {
    float: none !important;
    border-radius: 42px !important;
    background: var(--mnj-black) !important;
    padding: 10px 20px !important;
    font-family: var(--mnj-font-body) !important;
    font-size: 14px !important;
    transition: background .2s !important;
}
.containerCalculator input[type=submit]:hover { background: var(--mnj-purple) !important; }

/* Loader */
#calcular-frete-loader { justify-content: flex-start !important; padding: 8px 0 !important; }

/* Tabela de resultados */
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete { background: transparent !important; }

#woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 4px !important;
}
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto .resultado-frete table td {
    padding: 8px 0 !important;
    font-size: 13px !important;
    font-family: var(--mnj-font-body) !important;
    color: var(--mnj-black) !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}
#woocommerce-correios-calculo-de-frete-na-pagina-do-produto small {
    font-size: 12px !important;
    font-family: var(--mnj-font-body) !important;
    color: rgba(0,0,0,0.5) !important;
    display: block;
    margin-top: 4px !important;
}

/* ══════════════════════════════════════════════════════════════
   PÁGINA DE LOJA — archive-product (do zero)
══════════════════════════════════════════════════════════════ */
.mnj-shop-page {
    background: #f7f7f7;
    min-height: 60vh;
}

.mnj-shop-wrap {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 36px 24px 60px;
}

/* ── Sidebar ───────────────────────────────────────────── */
.mnj-sidebar {
    width: 200px;
    flex-shrink: 0;
    position: sticky;
    top: 100px;
    background: #fff;
    border-radius: 12px;
    padding: 24px 20px;
    border: 1px solid rgba(0,0,0,0.07);
}

.mnj-filter-group {
    margin-bottom: 28px;
}
.mnj-filter-group:last-child { margin-bottom: 0; }

.mnj-filter-title {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    margin: 0 0 12px !important;
}

/* Lista de itens (categorias, material, marcas) */
.mnj-filter-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.mnj-filter-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #555;
    text-decoration: none !important;
    transition: color .15s;
    line-height: 1.3;
}
.mnj-filter-item:hover { color: var(--mnj-black) !important; }
.mnj-filter-item--on   { color: var(--mnj-black) !important; font-weight: 600; }

.mnj-filter-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid #ccc;
    flex-shrink: 0;
    transition: all .15s;
}
.mnj-filter-item--on .mnj-filter-dot { background: var(--mnj-black); border-color: var(--mnj-black); }
.mnj-filter-item:hover .mnj-filter-dot { border-color: var(--mnj-black); }

/* Slider de preço */
.mnj-price-form { display: flex; flex-direction: column; gap: 10px; }

.mnj-price-slider-wrap { display: flex; flex-direction: column; gap: 6px; }

.mnj-price-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(to right, var(--mnj-purple) 100%, #e0e0e0 100%);
    outline: none;
    cursor: pointer;
    border: none !important;
    padding: 0 !important;
}
.mnj-price-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--mnj-purple);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px var(--mnj-purple);
}
.mnj-price-range::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--mnj-purple);
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px var(--mnj-purple);
}

.mnj-price-output {
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-black);
}

.mnj-price-apply {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--mnj-black) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 40px !important;
    padding: 10px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    font-family: var(--mnj-font-body) !important;
    cursor: pointer !important;
    transition: background .2s !important;
    width: 100%;
    outline: none !important;
}
.mnj-price-apply:hover,
.mnj-price-apply:focus,
.mnj-price-apply:active {
    background: var(--mnj-purple) !important;
    color: #fff !important;
    border: none !important;
}

/* Pílulas (tamanho) */
.mnj-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.mnj-filter-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    color: #555;
    border: 1.5px solid rgba(0,0,0,0.15);
    text-decoration: none !important;
    transition: all .15s;
    background: #fff;
}
.mnj-filter-pill:hover  { border-color: var(--mnj-purple); color: var(--mnj-purple) !important; }
.mnj-filter-pill--on    { background: var(--mnj-purple) !important; color: #fff !important; border-color: var(--mnj-purple) !important; }

/* ── Área principal ─────────────────────────────────── */
.mnj-shop-main { flex: 1; min-width: 0; }

/* Topbar */
.mnj-shop-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}

.mnj-shop-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

/* Ordenação */
.mnj-sort-wrap { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.mnj-sort-label { font-size: 13px; color: #666; white-space: nowrap; }

.mnj-sort-select-wrap { position: relative; display: flex; align-items: center; }

.mnj-sort-select {
    -webkit-appearance: none;
    appearance: none;
    border: 1px solid rgba(0,0,0,0.15) !important;
    border-radius: 8px !important;
    padding: 8px 32px 8px 12px !important;
    font-size: 13px !important;
    font-family: var(--mnj-font-body) !important;
    color: var(--mnj-black) !important;
    background: #fff !important;
    cursor: pointer;
    outline: none !important;
    box-shadow: none !important;
}
.mnj-sort-select:hover,
.mnj-sort-select:focus { border-color: var(--mnj-purple) !important; }

.mnj-sort-chevron {
    position: absolute;
    right: 10px;
    pointer-events: none;
    color: #333;
}

/* Grid de produtos */
.mnj-shop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

/* Card de produto */
.mnj-shop-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,0.07);
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.mnj-shop-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.10);
    transform: translateY(-2px);
}

.mnj-shop-card__img-link {
    display: block;
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f5f5f5;
}

.mnj-shop-card .mnj-card__img,
.mnj-shop-card__img-link img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform .35s ease !important;
}
.mnj-shop-card:hover .mnj-shop-card__img-link img,
.mnj-shop-card:hover .mnj-card__img { transform: scale(1.05) !important; }

.mnj-shop-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--mnj-purple);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 20px;
    z-index: 1;
}

.mnj-shop-card__body {
    padding: 12px 14px 14px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 8px;
}

.mnj-shop-card__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.mnj-shop-card__name {
    font-size: 13px !important;
    color: var(--mnj-gray-600) !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    flex: 1;
}

.mnj-shop-card__cart-btn {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: #aaa;
    text-decoration: none !important;
    transition: color .2s;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}
.mnj-shop-card__cart-btn:hover,
.mnj-shop-card__cart-btn:focus,
.mnj-shop-card__cart-btn:active { color: var(--mnj-purple) !important; background: none !important; border: none !important; }

.mnj-shop-card__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-wrap: wrap;
}

.mnj-shop-card__normal,
.mnj-shop-card__sale {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--mnj-black) !important;
}

.mnj-shop-card__reg {
    font-size: 12px !important;
    color: #aaa !important;
    text-decoration: line-through !important;
    font-weight: 400 !important;
}

.mnj-shop-card__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    background: var(--mnj-black) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 40px !important;
    padding: 10px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    font-family: var(--mnj-font-body) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .2s !important;
    margin-top: auto !important;
}
.mnj-shop-card__btn:hover,
.mnj-shop-card__btn:focus,
.mnj-shop-card__btn:active { background: var(--mnj-purple) !important; color: #fff !important; }

/* ── Paginação ──────────────────────────────────────── */
.mnj-pagination {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.mnj-pagination .page-numbers {
    display: flex;
    list-style: none;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: wrap;
    justify-content: center;
}

.mnj-pagination .page-numbers li a,
.mnj-pagination .page-numbers li span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--mnj-black) !important;
    text-decoration: none !important;
    border: 1px solid rgba(0,0,0,0.12) !important;
    background: #fff !important;
    transition: all .2s !important;
}

.mnj-pagination .page-numbers li span.current {
    background: var(--mnj-purple) !important;
    color: #fff !important;
    border-color: var(--mnj-purple) !important;
}

.mnj-pagination .page-numbers li a:hover {
    background: var(--mnj-purple-light) !important;
    border-color: var(--mnj-purple) !important;
    color: var(--mnj-purple) !important;
}

/* ── Empty state ────────────────────────────────────── */
.mnj-shop-empty {
    text-align: center;
    padding: 80px 20px;
    color: #777;
    font-size: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

/* ── Botão filtrar (mobile only) ────────────────────── */
.mnj-filter-toggle {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1.5px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-full);
    background: #fff;
    font-size: 13px;
    font-weight: 500;
    color: var(--mnj-black);
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: border-color var(--mnj-ease), color var(--mnj-ease);
}
.mnj-filter-toggle:hover { border-color: var(--mnj-purple); color: var(--mnj-purple); }

/* ── Backdrop ────────────────────────────────────────── */
.mnj-filter-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1100;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.mnj-filter-backdrop--visible,
.mnj-filter-backdrop:not([aria-hidden="true"]) {
    display: block;
    opacity: 1;
}

/* ── Drawer ──────────────────────────────────────────── */
.mnj-filter-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(340px, 90vw);
    background: #fff;
    z-index: 1101;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    overflow: hidden;
}
.mnj-filter-drawer--open { transform: translateX(0); }

.mnj-filter-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 20px 16px;
    border-bottom: 1px solid var(--mnj-gray-200);
    flex-shrink: 0;
}
.mnj-filter-drawer__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--mnj-black);
}
/* botão ícone fechar — sobrescreve regra global de botões */
.mnj-filter-drawer__close {
    background: none !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    padding: 6px;
    color: #666 !important;
    font-weight: 400 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background var(--mnj-ease), color var(--mnj-ease);
}
.mnj-filter-drawer__close:hover { background: var(--mnj-gray-100) !important; color: var(--mnj-black) !important; }

.mnj-filter-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.mnj-filter-drawer__body .mnj-filter-group { margin-bottom: 0; }

.mnj-filter-drawer__foot {
    display: flex;
    gap: 12px;
    padding: 16px 20px;
    border-top: 1px solid var(--mnj-gray-200);
    flex-shrink: 0;
}
.mnj-filter-drawer__cancel {
    flex: 1;
    padding: 12px;
    border: 1.5px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-full);
    background: #fff;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: border-color var(--mnj-ease);
}
.mnj-filter-drawer__cancel:hover { border-color: var(--mnj-black); }
.mnj-filter-drawer__save {
    flex: 1;
    padding: 12px;
    border: none;
    border-radius: var(--mnj-radius-full);
    background: var(--mnj-black);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--mnj-ease);
}
.mnj-filter-drawer__save:hover { background: var(--mnj-purple); }

/* Labels dentro do drawer */
.mnj-filter-drawer label.mnj-filter-item,
.mnj-filter-drawer label.mnj-filter-pill { cursor: pointer; user-select: none; }
.mnj-filter-drawer label.mnj-filter-item input,
.mnj-filter-drawer label.mnj-filter-pill input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* Dot ativo → roxo (Figma) em vez de preto */
.mnj-filter-item--on .mnj-filter-dot { background: var(--mnj-purple); border-color: var(--mnj-purple); }
.mnj-filter-item:hover .mnj-filter-dot { border-color: var(--mnj-purple); }

/* ── Responsivo: tablet (≤ 768px) ───────────────────── */
@media (max-width: 768px) {
    .mnj-sidebar       { display: none; }
    .mnj-filter-toggle { display: inline-flex; }
    .mnj-shop-wrap     { padding: 20px 16px 48px; }
    .mnj-shop-grid     { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .mnj-sort-label    { display: none; }
    .mnj-shop-topbar   { flex-wrap: nowrap; gap: 8px; }
}

/* ── Responsivo: mobile (≤ 480px) ───────────────────── */
@media (max-width: 480px) {
    .mnj-shop-grid        { gap: 10px; }
    .mnj-shop-card__btn   { font-size: 13px; padding: 10px 14px; }
    .mnj-shop-card__name  { font-size: 13px !important; }
}

/* ══════════════════════════════════════════════════════════════
   CABEÇALHO CUSTOMIZADO
══════════════════════════════════════════════════════════════ */
.mnj-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    transition: box-shadow .25s;
}
.mnj-header--scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.09); }

/* ── Linha superior ── */
.mnj-header__top { border-bottom: 1px solid rgba(0,0,0,0.06); }
.mnj-header__top-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
    height: 64px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 24px;
}

/* ── Logo ── */
.mnj-header__logo-wrap {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}
.mnj-header__logo-wrap .custom-logo-link,
.mnj-header__logo {
    text-decoration: none;
    display: flex;
    align-items: center;
}
.mnj-header__logo-wrap .custom-logo,
.mnj-header__logo-img {
    height: 38px !important;
    max-height: 38px !important;
    width: auto !important;
    max-width: 160px;
    display: block;
    object-fit: contain;
}
.mnj-header__logo-text {
    font-size: 22px;
    font-weight: 700;
    color: var(--mnj-purple);
    letter-spacing: -.5px;
    white-space: nowrap;
}

/* ── Busca sempre visível ── */
.mnj-header__search-wrap {
    position: relative;
    width: 100%;
    max-width: 440px;
    justify-self: center;
}
.mnj-header__search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    height: 40px;
    background: #f5f5f5;
    border: 1.5px solid transparent;
    border-radius: 50px;
    transition: border-color .2s, background .2s;
}
.mnj-header__search-form:focus-within {
    background: #fff;
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,0.08);
}
.mnj-header__search-icon { color: #888; flex-shrink: 0; }
.mnj-header__search-input {
    flex: 1;
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent;
    font-size: 14px;
    font-family: inherit;
    color: var(--mnj-gray-900);
    min-width: 0;
    -webkit-appearance: none;
}
.mnj-header__search-input::placeholder { color: #aaa; }

/* Dropdown autocomplete */
.mnj-search-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    z-index: 500;
    overflow: hidden;
}
.mnj-search-list { list-style: none; margin: 0; padding: 8px; }
.mnj-search-item { }
.mnj-search-item__link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--mnj-gray-900);
    transition: background .15s;
}
.mnj-search-item__link:hover { background: var(--mnj-purple-light); color: var(--mnj-purple); }
.mnj-search-item__img {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0;
    background: #f5f5f5;
}
.mnj-search-item__no-img {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: #f0f0f0;
    flex-shrink: 0;
}
.mnj-search-item__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mnj-search-item__name { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mnj-search-item__price { font-size: 12px; color: var(--mnj-purple); font-weight: 600; }
.mnj-search-item--all { border-top: 1px solid rgba(0,0,0,0.07); margin-top: 4px; padding-top: 4px; }
.mnj-search-item__all-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 10px;
    border-radius: 8px;
    font-size: 13px;
    color: var(--mnj-gray-600);
    text-decoration: none;
    transition: background .15s;
}
.mnj-search-item__all-link:hover { background: var(--mnj-purple-light); color: var(--mnj-purple); }

/* ── Ações (direita) ── */
.mnj-header__actions {
    display: flex;
    align-items: center;
    gap: 6px;
    justify-self: end;
}

/* Iniciar Sessão — plain link, sem borda */
.mnj-header__login-link {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--mnj-gray-900) !important;
    text-decoration: none;
    border-radius: 8px;
    white-space: nowrap;
    transition: color .2s, background .2s;
}
.mnj-header__login-link:hover { color: var(--mnj-purple) !important; background: var(--mnj-purple-light); }
.mnj-header__login-link svg { flex-shrink: 0; }

/* ── Nav (segunda linha) ── */
.mnj-header__nav-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 40px;
}
.mnj-header__nav { }
.mnj-header__menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 0;
}
.mnj-header__menu li { position: relative; }
.mnj-header__menu li a {
    display: block;
    padding: 10px 14px;
    font-size: 14px;
    font-weight: 500;
    color: #333 !important;
    text-decoration: none;
    transition: color .2s;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
}
.mnj-header__menu li a:hover,
.mnj-header__menu li.current-menu-item > a {
    color: var(--mnj-purple) !important;
    border-bottom-color: var(--mnj-purple);
}
.mnj-header__menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    padding: 8px;
    list-style: none;
    z-index: 100;
}
.mnj-header__menu li:hover > .sub-menu { display: block; }
.mnj-header__menu .sub-menu li a { padding: 10px 14px; border-bottom: 0; font-size: 13px; border-radius: 8px; }
.mnj-header__menu .sub-menu li a:hover { background: var(--mnj-purple-light); }

/* ── User dropdown ── */
.mnj-header__user { position: relative; }
.mnj-header__user-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 6px;
    border: 1.5px solid rgba(0,0,0,0.12);
    border-radius: 50px;
    background: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: var(--mnj-black);
    transition: border-color .2s, background .2s;
}
.mnj-header__user-btn:hover,
.mnj-header__user--open .mnj-header__user-btn {
    border-color: var(--mnj-purple) !important;
    background: var(--mnj-purple-light) !important;
    color: var(--mnj-purple) !important;
}
.mnj-header__user-btn:focus,
.mnj-header__user-btn:focus-visible,
.mnj-header__user-btn:active {
    outline: 2px solid rgba(100,25,198,0.5) !important;
    outline-offset: 2px;
    box-shadow: none !important;
    background: var(--mnj-purple-light) !important;
    color: var(--mnj-purple) !important;
    border-color: var(--mnj-purple) !important;
}
/* Neutraliza cor de destaque global rosa/pink do Elementor/WordPress no cabeçalho */
.mnj-header { --e-global-color-accent: var(--mnj-purple); --wp--preset--color--accent: var(--mnj-purple); }
.mnj-header *:focus-visible { outline-color: var(--mnj-purple) !important; }
.mnj-header__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}
.mnj-header__avatar-initials {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--mnj-purple);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}
.mnj-header__username { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mnj-header__chevron  { transition: transform .25s; flex-shrink: 0; }
.mnj-header__user--open .mnj-header__chevron { transform: rotate(180deg); }

.mnj-header__dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 196px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.14);
    padding: 8px;
    z-index: 200;
}
.mnj-header__user--open .mnj-header__dropdown { display: block; }

.mnj-header__dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14px;
    color: var(--mnj-gray-900) !important;
    text-decoration: none;
    transition: background .15s;
}
.mnj-header__dropdown-item:hover { background: var(--mnj-purple-light); color: var(--mnj-purple) !important; }
.mnj-header__dropdown .mnj-header__dropdown-item.mnj-header__dropdown-item--danger,
.mnj-header__dropdown .mnj-header__dropdown-item.mnj-header__dropdown-item--danger:visited,
.mnj-header__dropdown .mnj-header__dropdown-item.mnj-header__dropdown-item--danger:link {
    color: #c0392b !important;
}
.mnj-header__dropdown .mnj-header__dropdown-item.mnj-header__dropdown-item--danger:hover {
    background: #fff5f5 !important;
    color: #c0392b !important;
}
.mnj-header__dropdown-divider {
    height: 1px;
    background: rgba(0,0,0,0.08);
    margin: 6px 0;
    border: 0;
}

/* ── Carrinho ── */
.mnj-header__cart {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--mnj-black);
    text-decoration: none;
    transition: background .2s, color .2s;
}
.mnj-header__cart:hover { background: var(--mnj-purple-light); color: var(--mnj-purple); }

.mnj-header__cart-count {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: var(--mnj-purple);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    pointer-events: none;
}
.mnj-header__cart-count.is-hidden { display: none; }

/* ── Hambúrguer — botão ícone; sobrescreve regra global ── */
.mnj-header__hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    border: 0 !important;
    background: none !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-weight: 400 !important;
    padding: 8px;
}
.mnj-header__hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--mnj-black);
    border-radius: 2px;
    transition: transform .3s, opacity .3s;
}
.mnj-header__hamburger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mnj-header__hamburger.is-active span:nth-child(2) { opacity: 0; }
.mnj-header__hamburger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }


/* ── Menu mobile drawer ── */
.mnj-mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: min(320px, 88vw);
    height: 100%;
    background: #fff;
    z-index: 1100;
    transform: translateX(-100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    box-shadow: 4px 0 24px rgba(0,0,0,0.12);
}
.mnj-mobile-menu--open { transform: translateX(0); }

.mnj-mobile-menu__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.mnj-mobile-menu__logo { text-decoration: none; }
.mnj-mobile-menu__logo-img { height: 36px; width: auto; }

/* botão fechar menu mobile — sobrescreve regra global */
.mnj-mobile-menu__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0 !important;
    background: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    color: #333 !important;
    font-weight: 400 !important;
    transition: background .2s;
}
.mnj-mobile-menu__close:hover { background: var(--mnj-purple-light) !important; color: var(--mnj-purple) !important; border: 0 !important; }

.mnj-mobile-menu__nav { flex: 1; padding: 12px 0; }
.mnj-mobile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.mnj-mobile-menu__list li a {
    display: block;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 500;
    color: var(--mnj-gray-900) !important;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: color .2s, border-color .2s, background .2s;
}
.mnj-mobile-menu__list li a:hover,
.mnj-mobile-menu__list li.current-menu-item > a {
    color: var(--mnj-purple) !important;
    border-left-color: var(--mnj-purple);
    background: #f9f5ff;
}
.mnj-mobile-menu__list .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.mnj-mobile-menu__list .sub-menu li a {
    padding-left: 36px;
    font-size: 14px;
    font-weight: 400;
}

.mnj-mobile-menu__foot {
    padding: 16px 20px;
    border-top: 1px solid rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.mnj-mobile-menu__login-btn,
.mnj-mobile-menu__account-btn {
    display: block;
    text-align: center;
    padding: 12px 20px;
    background: var(--mnj-purple);
    color: #fff !important;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s;
}
.mnj-mobile-menu__login-btn:hover,
.mnj-mobile-menu__account-btn:hover { background: var(--mnj-purple-dark) !important; }

.mnj-mobile-menu__logout-btn {
    display: block;
    text-align: center;
    padding: 10px 20px;
    font-size: 14px;
    color: #666 !important;
    text-decoration: none;
}
.mnj-mobile-menu__logout-btn:hover { color: #c0392b !important; }

.mnj-mobile-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1050;
    backdrop-filter: blur(2px);
}
.mnj-mobile-overlay--visible { display: block; }

/* ── Responsivo header ── */
@media (max-width: 960px) {
    /* Nav mantida visível; scroll horizontal em telas estreitas */
    .mnj-header__nav-wrap {
        overflow-x:          auto;
        -ms-overflow-style:  none;
        scrollbar-width:     none;
        padding:             0 16px;
    }
    .mnj-header__nav-wrap::-webkit-scrollbar { display: none; }
    .mnj-header__menu                         { justify-content: center; }
    .mnj-header__hamburger { display: none !important; }
    /* Oculta TODOS os menus do Elementor/HFE — MNJ usa header PHP próprio */
    .hfe-nav-menu__toggle,
    .hfe-nav-menu__layout-vertical,
    .hfe-nav-menu__layout-expandible,
    .elementor-widget-nav-menu,
    .elementor-nav-menu__toggle,
    .elementor-nav-menu--toggle .elementor-nav-menu__container,
    .elementor-nav-menu--dropdown,
    .elementor-nav-menu--dropdown-tablet,
    .elementor-nav-menu--dropdown-mobile,
    [data-elementor-type="header"]   { display: none !important; }
    .mnj-header__top-inner { column-gap: 12px; padding: 0 20px; }
    .mnj-header__search-wrap { max-width: none; }
    .mnj-header__login-link span { display: none; }
    .mnj-header__login-link { padding: 6px; }
    .mnj-header__username { display: none; }
}
@media (max-width: 600px) {
    .mnj-header__top-inner { padding: 0 16px; height: 56px; }
}
@media (max-width: 400px) {
    .mnj-header__search-form { padding: 0 10px; }
}

/* ══════════════════════════════════════════════════════════════
   PÁGINA MY-ACCOUNT — LOGIN & CADASTRO (2 colunas)
══════════════════════════════════════════════════════════════ */

/* Reseta estilos de botões injetados pelo WooCommerce/Elementor */
.mnj-account-page button,
.mnj-account-page input[type="submit"],
.mnj-account-page input[type="button"] {
    text-shadow: none !important;
    box-shadow: none !important;
    outline: none;
    -webkit-appearance: none;
}

.mnj-account-page {
    min-height: calc(100vh - 68px);
    background: #f8f6ff;
    padding: 60px 20px 80px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

/* ── Grid 2 colunas ── */
.mnj-account-grid {
    width: 100%;
    max-width: 1060px;
    display: grid;
    grid-template-columns: 1fr 48px 1fr;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 4px 40px rgba(0,0,0,0.08);
    overflow: hidden;
    align-items: stretch;
}

/* ── Colunas ── */
.mnj-auth-col {
    padding: 48px 40px;
    display: flex;
    flex-direction: column;
}

/* ── Cabeçalho de coluna ── */
.mnj-auth-col__head { margin-bottom: 28px; }
.mnj-auth-col__title {
    font-size: 22px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 6px;
}
.mnj-auth-col__sub {
    font-size: 14px;
    color: #666;
    margin: 0;
    line-height: 1.5;
}

/* ── Divisor "ou" ── */
.mnj-auth-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}
.mnj-auth-divider::before {
    content: '';
    position: absolute;
    top: 40px;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    background: rgba(0,0,0,0.08);
}
.mnj-auth-divider span {
    position: relative;
    z-index: 1;
    background: #fff;
    padding: 8px 0;
    font-size: 11px;
    font-weight: 700;
    color: #bbb;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* ── Cards de escolha de cadastro ── */
.mnj-register-cards {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mnj-register-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 16px;
    border: 1.5px solid rgba(0,0,0,0.10) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: inherit !important;
    font-weight: inherit !important;
    cursor: pointer !important;
    text-align: left;
    font-family: inherit !important;
    width: 100%;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.mnj-register-card:hover {
    border-color: var(--mnj-purple) !important;
    background: #f9f5ff !important;
    box-shadow: 0 2px 12px rgba(100,25,198,0.08) !important;
}
.mnj-register-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--mnj-purple-light);
    color: var(--mnj-purple);
    flex-shrink: 0;
    transition: background .2s, color .2s;
}
.mnj-register-card:hover .mnj-register-card__icon {
    background: var(--mnj-purple) !important;
    color: #fff !important;
}
.mnj-register-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.mnj-register-card__body strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    display: block;
}
.mnj-register-card__body span {
    font-size: 12px;
    color: #666;
    line-height: 1.4;
}
.mnj-register-card__arrow {
    color: #bbb;
    flex-shrink: 0;
    transition: color .2s, transform .2s;
}
.mnj-register-card:hover .mnj-register-card__arrow {
    color: var(--mnj-purple) !important;
    transform: translateX(3px);
}

/* ── Painel de formulário de cadastro ── */
.mnj-register-panel[hidden] { display: none; }
.mnj-register-panel { display: flex; flex-direction: column; }

/* ── Botão Voltar ── */
.mnj-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-purple) !important;
    cursor: pointer;
    font-family: inherit;
    margin-bottom: 20px;
    transition: color .2s;
    text-shadow: none !important;
    border-radius: 0 !important;
}
.mnj-back-btn:hover { color: var(--mnj-purple-dark) !important; background: none !important; border: 0 !important; }

/* ── Form groups ── */
.mnj-auth-form { display: flex; flex-direction: column; gap: 16px; }
.mnj-form-group { display: flex; flex-direction: column; gap: 5px; }
.mnj-form-group--flex1 { flex: 1; }
.mnj-form-group--align-end { justify-content: flex-end; align-self: stretch; padding-bottom: 4px; }

.mnj-form-label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}
.mnj-required { color: #c0392b; }

.mnj-form-input {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    border: 1.5px solid rgba(0,0,0,0.15);
    border-radius: 10px;
    font-size: 14px;
    font-family: inherit;
    color: var(--mnj-gray-900);
    background: #fff;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
    -webkit-appearance: none;
}
.mnj-form-input:focus {
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,0.10);
}
.mnj-form-input--error {
    border-color: #e74c3c !important;
}
.mnj-form-input--error:focus {
    box-shadow: 0 0 0 3px rgba(231,76,60,0.12) !important;
}
.mnj-form-input[readonly],
.mnj-form-input.mnj-field-locked {
    background: #f5f5f5 !important;
    color: #777 !important;
    cursor: default !important;
    border-color: rgba(0,0,0,0.10) !important;
    box-shadow: none !important;
}
.mnj-form-select.mnj-field-locked {
    pointer-events: none;
    opacity: 0.75;
}
.mnj-form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }

/* ── Password wrap ── */
.mnj-password-wrap {
    position: relative;
}
.mnj-password-wrap .mnj-form-input { padding-right: 48px; }
.mnj-password-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    cursor: pointer;
    color: #888 !important;
    padding: 0;
    border-radius: 4px;
    transition: color .2s;
}
.mnj-password-toggle:hover { background: none !important; color: var(--mnj-purple) !important; }

/* ── Força da senha ── */
.mnj-strength-meter {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
}
.mnj-strength-meter__bar {
    flex: 1;
    height: 4px;
    background: rgba(0,0,0,0.08);
    border-radius: 4px;
    overflow: hidden;
}
.mnj-strength-meter__fill {
    height: 100%;
    border-radius: 4px;
    transition: width .3s, background .3s;
    width: 0;
}
.mnj-strength-meter__fill--weak   { background: #e74c3c; }
.mnj-strength-meter__fill--fair   { background: #f39c12; }
.mnj-strength-meter__fill--good   { background: #2ecc71; }
.mnj-strength-meter__fill--strong { background: #27ae60; }
.mnj-strength-meter__label { font-size: 11px; color: #888; white-space: nowrap; min-width: 60px; }

/* ── Form row ── */
.mnj-form-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}
.mnj-form-row--space-between { justify-content: space-between; align-items: center; }
.mnj-form-row--gap { gap: 12px; }

/* ── Toggle "Sem número" ── */
.mnj-no-num-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}
.mnj-no-num-label {
    font-size: 13px;
    color: var(--mnj-gray-600);
    white-space: nowrap;
}
.mnj-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 40px;
    height: 22px;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    cursor: pointer;
    flex-shrink: 0;
}
.mnj-toggle__track {
    width: 40px;
    height: 22px;
    border-radius: 11px;
    background: #ccc;
    transition: background 0.2s;
    position: relative;
    display: block;
    flex-shrink: 0;
}
.mnj-toggle[aria-checked="true"] .mnj-toggle__track { background: var(--mnj-purple); }
.mnj-toggle__thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.25);
    transition: left 0.2s;
}
.mnj-toggle[aria-checked="true"] .mnj-toggle__thumb { left: 21px; }

/* ── Checkbox ── */
.mnj-checkbox-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--mnj-gray-600);
    cursor: pointer;
}
.mnj-checkbox-label--inline { flex-direction: row; }
.mnj-checkbox {
    width: 16px;
    height: 16px;
    accent-color: var(--mnj-purple);
    cursor: pointer;
    flex-shrink: 0;
}

/* ── Erros ── */
.mnj-form-error {
    display: none;
    font-size: 12px;
    color: #e74c3c;
    margin-top: 2px;
}
.mnj-form-error--global {
    display: none;
    background: #fff5f5;
    border: 1px solid #fcc;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    color: #c0392b;
}

/* Link "Recuperar senha" dentro do erro global */
.mnj-recover-link {
    color: var(--mnj-purple);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    margin-left: 4px;
    white-space: nowrap;
}
.mnj-recover-link:hover { color: var(--mnj-purple-dark); }

/* ── Links dentro do formulário ── */
.mnj-auth-link {
    background: none;
    border: 0;
    padding: 0;
    font-size: 13px;
    color: var(--mnj-purple);
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.mnj-auth-link:hover { color: var(--mnj-purple-dark) !important; background: none !important; border: 0 !important; }

.mnj-auth-note {
    font-size: 12px;
    color: #999;
    text-align: center;
    margin: 8px 0 0;
    line-height: 1.45;
}

/* ── Botão principal ── */
.mnj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 28px;
    border-radius: 50px !important;
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: background .2s, transform .1s, opacity .2s;
    position: relative;
}
.mnj-btn--primary { background: var(--mnj-black) !important; color: #fff !important; }
.mnj-btn--primary:hover { background: var(--mnj-purple) !important; color: #fff !important; }
.mnj-btn--primary:active { transform: scale(.98); }
.mnj-btn--block { width: 100%; }
.mnj-btn:disabled { opacity: .65; cursor: not-allowed; }

.mnj-btn__spinner {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: mnj-spin .7s linear infinite;
    flex-shrink: 0;
}
@keyframes mnj-spin { to { transform: rotate(360deg); } }

/* ── Toggle CPF/CNPJ ── */
.mnj-doc-toggle-wrap { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.mnj-doc-toggle { display: flex; border: 1.5px solid rgba(0,0,0,0.12); border-radius: 8px; overflow: hidden; }
.mnj-doc-toggle__btn {
    padding: 5px 14px;
    font-size: 12px;
    font-weight: 600 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: none !important;
    cursor: pointer !important;
    color: #666 !important;
    font-family: inherit !important;
    transition: background .2s, color .2s;
}
.mnj-doc-toggle__btn--active {
    background: var(--mnj-purple) !important;
    color: #fff !important;
}
.mnj-doc-toggle__btn:not(.mnj-doc-toggle__btn--active):hover {
    background: var(--mnj-purple-light) !important;
    color: var(--mnj-purple) !important;
    border: 0 !important;
}

/* ── CEP row ── */
.mnj-cep-row { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.mnj-cep-input-wrap { position: relative; flex: 1; min-width: 140px; }
.mnj-cep-input-wrap .mnj-form-input { width: 100%; }
.mnj-cep-spinner {
    display: none;
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    border: 2px solid rgba(0,0,0,0.15);
    border-top-color: var(--mnj-purple);
    border-radius: 50%;
    animation: mnj-spin .7s linear infinite;
}
.mnj-cep-find-btn {
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--mnj-purple) !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-radius: 0 !important;
    cursor: pointer;
    white-space: nowrap;
    font-family: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color .2s;
    flex-shrink: 0;
    align-self: center;
}
.mnj-cep-find-btn:hover { color: var(--mnj-purple-dark) !important; background: none !important; }

/* ════════════════════════════════════════════════
   MODAL — Buscar CEP
════════════════════════════════════════════════ */
.mnj-cep-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
    align-items: center;
    justify-content: center;
}
.mnj-cep-modal--open { display: flex; }

.mnj-cep-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
}
.mnj-cep-modal__content {
    position: relative;
    z-index: 1;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 16px 64px rgba(0,0,0,0.18);
    width: min(500px, 95vw);
    max-height: 85vh;
    overflow-y: auto;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.mnj-cep-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.mnj-cep-modal__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0;
}
.mnj-cep-modal__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer;
    border-radius: 50% !important;
    color: #555 !important;
    flex-shrink: 0;
    transition: background .2s, color .2s;
}
.mnj-cep-modal__close:hover { background: var(--mnj-purple-light) !important; color: var(--mnj-purple) !important; }
.mnj-cep-modal__hint { font-size: 13px; color: #666; margin: 0; line-height: 1.5; }
.mnj-cep-modal__form { display: flex; flex-direction: column; gap: 12px; }

.mnj-cep-modal__results { display: flex; flex-direction: column; gap: 6px; max-height: 300px; overflow-y: auto; }

.mnj-cep-result-item {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px;
    padding: 12px 14px;
    border: 1.5px solid rgba(0,0,0,0.10) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    width: 100%;
    transition: border-color .2s, background .2s, color .2s;
}
.mnj-cep-result-item:hover {
    border-color: var(--mnj-purple) !important;
    background: var(--mnj-purple) !important;
}
.mnj-cep-result-item:hover .mnj-cep-result-item__cep  { color: #fff !important; }
.mnj-cep-result-item:hover .mnj-cep-result-item__addr { color: rgba(255,255,255,0.85) !important; }
.mnj-cep-result-item__cep {
    font-size: 13px;
    font-weight: 700;
    color: var(--mnj-purple);
    border-bottom: 1px solid rgba(0,0,0,0.07);
    padding-bottom: 4px;
    margin-bottom: 2px;
}
.mnj-cep-result-item__addr { font-size: 12px; color: #555; line-height: 1.4; }

/* ── Responsivo auth page ── */
@media (max-width: 860px) {
    .mnj-account-grid {
        grid-template-columns: 1fr;
        max-width: 520px;
    }
    .mnj-auth-divider {
        flex-direction: row;
        width: 100%;
        height: 36px;
    }
    .mnj-auth-divider::before {
        top: 50%;
        bottom: auto;
        left: 20px;
        right: 20px;
        width: auto;
        transform: none;
        height: 1px;
    }
    .mnj-auth-col { padding: 36px 28px; }
}
@media (max-width: 560px) {
    .mnj-auth-col { padding: 28px 20px; }
    .mnj-account-page { padding: 32px 16px 60px; }
    .mnj-account-grid { border-radius: 16px; }
}
@media (max-width: 400px) {
    .mnj-cep-row { flex-direction: column; }
    .mnj-cep-find-btn { width: 100%; }
}

/* =============================================
   PÁGINA LOJISTA — /seller/
============================================= */

.mnj-seller-page {
    background: #fff;
}

.mnj-seller-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ── Hero ── */
.mnj-seller-hero {
    padding: 72px 24px 56px;
    text-align: center;
}

.mnj-seller-hero__inner {
    position: relative;
    display: inline-block;
    max-width: 680px;
    margin: 0 auto;
}

.mnj-seller-hero__title {
    font-size: clamp(30px, 4.5vw, 52px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--mnj-gray-900);
    margin: 0;
}

.mnj-seller-hero__accent {
    display: block;
    color: var(--mnj-purple);
    font-style: italic;
}

.mnj-seller-hero__star {
    position: absolute;
    display: flex;
    align-items: center;
}

.mnj-seller-hero__star--l {
    top: -20px;
    left: -56px;
}

.mnj-seller-hero__star--r {
    top: -4px;
    right: -36px;
}

/* ── Benefit cards ── */
.mnj-seller-benefits {
    padding: 0 0 64px;
}

.mnj-seller-benefits__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.mnj-seller-card {
    border: 1px solid #e8e8e8;
    border-radius: 16px;
    padding: 24px;
    background: #fff;
}

.mnj-seller-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 18px;
}

.mnj-seller-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--mnj-purple);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mnj-seller-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid #ddd;
    border-radius: 50%;
    flex-shrink: 0;
}

.mnj-seller-card__title {
    font-size: 17px;
    font-weight: 600;
    color: var(--mnj-gray-900);
    margin: 0 0 10px;
    line-height: 1.3;
}

.mnj-seller-card__desc {
    font-size: 13.5px;
    color: #666;
    line-height: 1.65;
    margin: 0;
}

/* ── Form section ── */
.mnj-seller-form-section {
    padding: 0 0 80px;
}

.mnj-seller-form-box {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.mnj-seller-form-box__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1.5px solid var(--mnj-purple);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.mnj-seller-form-box__title {
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 12px;
    line-height: 1.3;
}

.mnj-seller-form-box__sub {
    font-size: 15px;
    color: #666;
    margin: 0 0 32px;
    line-height: 1.65;
}

/* ── Form fields ── */
.mnj-seller-form {
    text-align: left;
}

.mnj-seller-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.mnj-seller-form__group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.mnj-seller-form__label {
    font-size: 14px;
    font-weight: 500;
    color: var(--mnj-gray-900);
}

.mnj-seller-form__input {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font-size: 14px;
    font-family: var(--mnj-font-body);
    color: var(--mnj-gray-900);
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
}

.mnj-seller-form__input:focus {
    border-color: var(--mnj-purple);
}

.mnj-seller-form__input::placeholder {
    color: #bbb;
}

.mnj-seller-form__textarea {
    resize: vertical;
    min-height: 130px;
}

/* ── Upload area ── */
.mnj-seller-form__upload {
    display: block;
    position: relative;
    border: 1.5px dashed #ccc;
    border-radius: 10px;
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    margin-bottom: 20px;
    transition: border-color 0.2s, background 0.2s;
}

.mnj-seller-form__upload:hover,
.mnj-seller-form__upload.is-dragover {
    border-color: var(--mnj-purple);
    background: #f9f5ff;
}

.mnj-seller-form__file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.mnj-seller-form__upload-text {
    display: block;
    font-size: 14px;
    color: #555;
    margin-bottom: 4px;
}

.mnj-seller-form__upload-link {
    color: var(--mnj-purple);
    font-weight: 500;
    text-decoration: underline;
}

.mnj-seller-form__upload-hint {
    display: block;
    font-size: 12px;
    color: #999;
}

.mnj-seller-form__file-name {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--mnj-purple);
}

/* ── Submit button ── */
.mnj-seller-form__submit {
    width: 100%;
    padding: 16px;
    background: var(--mnj-purple);
    color: #fff !important;
    border: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    font-family: var(--mnj-font-body);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.2s, opacity 0.2s;
}

.mnj-seller-form__submit:hover,
.mnj-seller-form__submit:focus {
    background: #5312a8 !important;
    color: #fff !important;
}

.mnj-seller-form__submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* ── Error ── */
.mnj-seller-form__error {
    color: #c0392b;
    font-size: 13px;
    margin-top: 10px;
    text-align: center;
}

/* ── Success ── */
.mnj-seller-form__thanks {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 15px;
    color: #333;
    margin-top: 16px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .mnj-seller-benefits__grid {
        grid-template-columns: 1fr;
    }
    .mnj-seller-form__row {
        grid-template-columns: 1fr;
    }
    .mnj-seller-hero {
        padding: 48px 20px 40px;
    }
    .mnj-seller-hero__star--l,
    .mnj-seller-hero__star--r {
        display: none;
    }
    .mnj-seller-form-section {
        padding: 0 0 60px;
    }
}

@media (max-width: 480px) {
    .mnj-seller-hero__title  { font-size: clamp(22px, 7vw, 28px); }
    .mnj-seller-form-box     { padding: 0 4px; }
    .mnj-seller-form__input,
    .mnj-seller-form__textarea { font-size: 16px; } /* evita zoom no iOS */
    .mnj-seller-form__submit { font-size: 15px; padding: 14px 20px; }
    .mnj-seller-benefits__grid { gap: 16px; }
}

/* =============================================
   PÁGINA LOJISTA — SEÇÃO AUTH (LOGIN + CADASTRO)
============================================= */

/* ── Seção container ── */
.mnj-seller-auth {
    padding: 0 0 80px;
}

/* ── Grid 2 colunas ── */
.mnj-seller-auth__grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0 32px;
    align-items: start;
}

/* ── Divisor vertical ── */
.mnj-seller-auth__divider {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 56px;
    position: relative;
}

.mnj-seller-auth__divider::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    background: #e8e8e8;
}

.mnj-seller-auth__divider span {
    position: relative;
    background: #fff;
    padding: 8px 0;
    font-size: 13px;
    color: #999;
    z-index: 1;
}

/* ── Colunas ── */
.mnj-seller-auth__col {
    padding: 0;
}

/* ── Cabeçalho de cada coluna ── */
.mnj-seller-auth__head {
    margin-bottom: 24px;
}

.mnj-seller-auth__icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 1.5px solid var(--mnj-purple);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.mnj-seller-auth__title {
    font-size: clamp(20px, 2.5vw, 26px);
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 8px;
    line-height: 1.3;
}

.mnj-seller-auth__sub {
    font-size: 14px;
    color: #666;
    margin: 0;
    line-height: 1.6;
}

/* ── SSO ── */
.mnj-seller-sso {
    margin-top: 24px;
}

.mnj-seller-sso__divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    color: #999;
    font-size: 13px;
}

.mnj-seller-sso__divider::before,
.mnj-seller-sso__divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e8e8e8;
}

.mnj-seller-sso__btns {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mnj-sso-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 11px 20px;
    border: 1.5px solid #ddd;
    border-radius: 50px;
    background: #fff;
    color: #333 !important;
    font-size: 14px;
    font-weight: 500;
    font-family: var(--mnj-font-body);
    text-decoration: none !important;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
}

.mnj-sso-btn:hover {
    border-color: var(--mnj-purple);
    background: #f9f5ff;
    color: #333 !important;
}

/* ── Upload area ── */
.mnj-seller-upload {
    display: block;
    position: relative;
    border: 1.5px dashed #ccc;
    border-radius: 10px;
    padding: 22px 16px;
    text-align: center;
    cursor: pointer;
    margin-bottom: 16px;
    transition: border-color 0.2s, background 0.2s;
}

.mnj-seller-upload:hover,
.mnj-seller-upload.is-dragover {
    border-color: var(--mnj-purple);
    background: #f9f5ff;
}

.mnj-seller-upload__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.mnj-seller-upload__text {
    display: block;
    font-size: 13px;
    color: #555;
    margin-bottom: 3px;
}

.mnj-seller-upload__link {
    color: var(--mnj-purple);
    font-weight: 500;
    text-decoration: underline;
}

.mnj-seller-upload__hint {
    display: block;
    font-size: 12px;
    color: #999;
}

.mnj-seller-upload__name {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--mnj-purple);
}

/* ── Mensagem de sucesso ── */
.mnj-seller-thanks {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #333;
    margin-top: 16px;
    padding: 16px;
    background: #f9f5ff;
    border-radius: 10px;
    border: 1px solid #d9c8f5;
}

/* ── Usuário já logado ── */
.mnj-seller-logged {
    text-align: center;
    padding: 60px 24px;
    max-width: 480px;
    margin: 0 auto;
}

.mnj-seller-logged__icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #f9f5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.mnj-seller-logged__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 10px;
}

.mnj-seller-logged__sub {
    font-size: 15px;
    color: #666;
    margin: 0 0 24px;
    line-height: 1.6;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .mnj-seller-auth__grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .mnj-seller-auth__divider {
        padding: 24px 0;
        flex-direction: row;
    }
    .mnj-seller-auth__divider::before {
        top: 50%;
        bottom: auto;
        left: 0;
        right: 0;
        width: auto;
        height: 1px;
        transform: none;
    }
    .mnj-seller-auth__col--login {
        border-bottom: 1px solid #e8e8e8;
        padding-bottom: 32px;
        margin-bottom: 0;
    }
    .mnj-seller-auth__col--register {
        padding-top: 0;
    }
}

/* ══════════════════════════════════════════════════
   PORTAL DO LOJISTA — /minha-loja/
══════════════════════════════════════════════════ */

/* ── Layout ── */
.mnj-portal-wrap {
    display: grid;
    grid-template-columns: 256px 1fr;
    min-height: 100vh;
    background: #f5f4f9;
}

/* ── Sidebar ── */
.mnj-portal-sidebar {
    background: #fff;
    border-right: 1px solid #ece9f5;
    display: flex;
    flex-direction: column;
    padding: 0;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.mnj-portal-sidebar__store {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 24px 20px 20px;
    border-bottom: 1px solid #ece9f5;
}

.mnj-portal-sidebar__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--mnj-purple), #9c5cf5);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mnj-portal-sidebar__store-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    line-height: 1.3;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mnj-portal-sidebar__store-label {
    font-size: 11px;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 2px;
}

/* ── Nav ── */
.mnj-portal-nav {
    flex: 1;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mnj-portal-nav__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #555;
    text-decoration: none;
    transition: background .15s, color .15s;
}

.mnj-portal-nav__item:hover {
    background: #f5f4f9;
    color: var(--mnj-purple);
    text-decoration: none;
}

.mnj-portal-nav__item.is-active {
    background: #f0ebfc;
    color: var(--mnj-purple);
    font-weight: 600;
}

.mnj-portal-nav__item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    opacity: .7;
}

.mnj-portal-nav__item.is-active .mnj-portal-nav__item-icon,
.mnj-portal-nav__item:hover .mnj-portal-nav__item-icon {
    opacity: 1;
}

/* ── Sidebar footer ── */
.mnj-portal-sidebar__footer {
    padding: 16px 20px;
    border-top: 1px solid #ece9f5;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mnj-portal-sidebar__link {
    font-size: 13px;
    color: #888;
    text-decoration: none;
    transition: color .15s;
}

.mnj-portal-sidebar__link:hover {
    color: var(--mnj-purple);
    text-decoration: none;
}

/* ── Main ── */
.mnj-portal-main {
    padding: 36px 40px;
    min-width: 0;
}

/* ── Section ── */
.mnj-portal-section {
    max-width: 1000px;
}

.mnj-portal-section__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.mnj-portal-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 4px;
    line-height: 1.2;
}

.mnj-portal-subtitle {
    font-size: 14px;
    color: #888;
    margin: 0 0 24px;
}

.mnj-portal-section__header .mnj-portal-subtitle {
    margin-bottom: 0;
}

.mnj-portal-link {
    font-size: 13px;
    color: var(--mnj-purple);
    text-decoration: none;
    font-weight: 500;
}

.mnj-portal-link:hover {
    text-decoration: underline;
    color: #4e14a0;
}

/* ── Stats ── */
.mnj-portal-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.mnj-portal-stat {
    background: #fff;
    border-radius: 12px;
    padding: 20px 20px 18px;
    border: 1px solid #ece9f5;
    position: relative;
    overflow: hidden;
}

.mnj-portal-stat::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #e0daea;
    border-radius: 12px 12px 0 0;
}

.mnj-portal-stat--purple::before { background: var(--mnj-purple); }
.mnj-portal-stat--green::before  { background: #16a34a; }
.mnj-portal-stat--blue::before   { background: #2563eb; }

.mnj-portal-stat__num {
    font-size: 26px;
    font-weight: 800;
    color: var(--mnj-gray-900);
    line-height: 1.1;
    margin-bottom: 6px;
}

.mnj-portal-stat--purple .mnj-portal-stat__num { color: var(--mnj-purple); }
.mnj-portal-stat--green  .mnj-portal-stat__num { color: #16a34a; }
.mnj-portal-stat--blue   .mnj-portal-stat__num { color: #2563eb; }

.mnj-portal-stat__label {
    font-size: 12px;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 500;
}

/* ── Card ── */
.mnj-portal-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #ece9f5;
    padding: 24px;
    margin-bottom: 20px;
}

.mnj-portal-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.mnj-portal-card__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--mnj-gray-900);
    margin: 0 0 16px;
    line-height: 1.2;
}

.mnj-portal-card__header .mnj-portal-card__title {
    margin-bottom: 0;
}

/* ── Table ── */
.mnj-portal-table-wrap {
    overflow-x: auto;
    margin: 0 -4px;
}

.mnj-portal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    table-layout: auto;
}

.mnj-portal-table thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 11px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 1px solid #ece9f5;
    white-space: nowrap;
    background: #faf9fe;
}

.mnj-portal-table tbody td {
    padding: 12px 12px;
    border-bottom: 1px solid #f3f1fa;
    color: #333;
    vertical-align: middle;
}

.mnj-portal-table tbody tr:last-child td {
    border-bottom: none;
}

.mnj-portal-table tbody tr:hover td {
    background: #faf9fe;
}

/* ── Badges ── */
.mnj-portal-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
    background: #e5e7eb;
    color: #374151;
}

.mnj-portal-badge--ok,
.mnj-portal-badge--completed {
    background: #dcfce7;
    color: #15803d;
}

.mnj-portal-badge--warn,
.mnj-portal-badge--draft {
    background: #fef9c3;
    color: #92400e;
}

.mnj-portal-badge--info,
.mnj-portal-badge--processing,
.mnj-portal-badge--pending {
    background: #dbeafe;
    color: #1d4ed8;
}

/* ── Buttons ── */
.mnj-portal-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px;
    padding: 9px 20px !important;
    border-radius: 40px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    text-decoration: none !important;
    border: 1.5px solid transparent !important;
    transition: background .15s, color .15s, border-color .15s, box-shadow .15s;
    line-height: 1 !important;
    white-space: nowrap;
    box-shadow: none !important;
    outline: none !important;
    font-family: inherit !important;
}

.mnj-portal-btn--primary {
    background: var(--mnj-purple) !important;
    color: #fff !important;
    border-color: var(--mnj-purple) !important;
}

.mnj-portal-btn--primary:hover {
    background: #4e14a0 !important;
    border-color: #4e14a0 !important;
    color: #fff !important;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(100,25,198,.25);
}

.mnj-portal-btn--ghost {
    background: #fff !important;
    color: var(--mnj-purple) !important;
    border-color: var(--mnj-purple) !important;
}

.mnj-portal-btn--ghost:hover {
    background: #f0ebfc !important;
    color: #4e14a0 !important;
    text-decoration: none !important;
}

.mnj-portal-btn--sm {
    padding: 5px 14px !important;
    font-size: 12px !important;
    border-radius: 40px !important;
}

.mnj-portal-btn--danger {
    background: #fff !important;
    color: #dc2626 !important;
    border-color: #dc2626 !important;
}

.mnj-portal-btn--danger:hover {
    background: #fef2f2 !important;
    color: #b91c1c !important;
    text-decoration: none !important;
}

/* ── Empty state ── */
.mnj-portal-empty {
    text-align: center;
    color: #888;
    padding: 16px;
    font-size: 14px;
}

.mnj-portal-empty-state {
    background: #fff;
    border-radius: 12px;
    border: 1px dashed #d0c8e8;
    padding: 48px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    color: #888;
    font-size: 15px;
}

/* ── Form ── */
.mnj-portal-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.mnj-portal-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.mnj-portal-form__group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mnj-portal-form__label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.mnj-portal-form__input {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #d9d0ee;
    border-radius: 8px;
    font-size: 14px;
    color: var(--mnj-gray-900);
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
}

.mnj-portal-form__input:focus {
    outline: none;
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,.12);
}

.mnj-portal-form__notice {
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    background: #f5f4f9;
    color: #555;
    margin: 0;
    display: none;
}

.mnj-portal-form__notice--ok {
    background: #dcfce7;
    color: #15803d;
}

.mnj-portal-form__notice--err {
    background: #fef2f2;
    color: #dc2626;
}

/* ── User rows ── */
.mnj-portal-user-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #f3f1fa;
}

.mnj-portal-user-row:last-child {
    border-bottom: none;
}

.mnj-portal-user-row--owner {
    padding-top: 0;
}

.mnj-portal-user-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--mnj-purple), #9c5cf5);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    flex-shrink: 0;
}

.mnj-portal-user-avatar--sub {
    background: linear-gradient(135deg, #64748b, #94a3b8);
}

/* ── Info grid ── */
.mnj-portal-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.mnj-portal-info-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mnj-portal-info-item--full {
    grid-column: 1 / -1;
}

.mnj-portal-info-label {
    font-size: 11px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.mnj-portal-info-value {
    font-size: 14px;
    color: var(--mnj-gray-900);
    font-weight: 500;
}

/* ── Responsive ── */
@media (max-width: 1100px) {
    .mnj-portal-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .mnj-portal-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 860px) {
    .mnj-portal-wrap {
        grid-template-columns: 1fr;
    }
    .mnj-portal-sidebar {
        position: static;
        height: auto;
        border-right: none;
        border-bottom: 1px solid #ece9f5;
    }
    .mnj-portal-nav {
        flex-direction: row;
        flex-wrap: wrap;
        padding: 8px 10px;
        gap: 4px;
    }
    .mnj-portal-nav__item {
        padding: 7px 12px;
        font-size: 13px;
    }
    .mnj-portal-sidebar__footer {
        flex-direction: row;
        gap: 16px;
        padding: 12px 20px;
    }
    .mnj-portal-main {
        padding: 24px 20px;
    }
    .mnj-portal-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .mnj-portal-form__row {
        grid-template-columns: 1fr;
    }
    .mnj-portal-section__header {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 560px) {
    .mnj-portal-stats {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .mnj-portal-stat__num {
        font-size: 20px;
    }
    .mnj-portal-info-grid {
        grid-template-columns: 1fr;
    }
    .mnj-portal-main {
        padding: 20px 16px;
    }
    .mnj-portal-card {
        padding: 16px;
    }
}

/* ══════════════════════════════════════════════════
   "VENDIDO POR" — página do produto
══════════════════════════════════════════════════ */

.mnj-sold-by {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #f5f4f9;
    border-radius: 8px;
    font-size: 14px;
    margin: 8px 0 16px;
    border: 1px solid #ece9f5;
}

.mnj-sold-by__label {
    color: #888;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    flex-shrink: 0;
}

.mnj-sold-by__link,
.mnj-sold-by__name {
    font-weight: 600;
    color: var(--mnj-purple);
    font-size: 14px;
}

.mnj-sold-by__link {
    text-decoration: none;
    transition: color .15s;
}

.mnj-sold-by__link:hover {
    color: #4e14a0;
    text-decoration: underline;
}

/* ══════════════════════════════════════════════════
   VITRINE PÚBLICA DO LOJISTA — /loja/{slug}/
══════════════════════════════════════════════════ */

.mnj-storefront {
    min-height: 60vh;
}

/* ── Hero ── */
.mnj-storefront__hero {
    background: linear-gradient(135deg, #1a0533 0%, var(--mnj-purple) 100%);
    padding: 48px 0 40px;
    color: #fff;
}

.mnj-storefront__hero-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    gap: 28px;
}

.mnj-storefront__avatar {
    width: 80px;
    height: 80px;
    border-radius: 20px;
    background: rgba(255,255,255,.15);
    border: 2px solid rgba(255,255,255,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
    letter-spacing: .02em;
}

.mnj-storefront__info {
    flex: 1;
    min-width: 0;
}

.mnj-storefront__name {
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 8px;
    line-height: 1.1;
}

.mnj-storefront__location {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: rgba(255,255,255,.75);
    margin-bottom: 8px;
}

.mnj-storefront__desc {
    font-size: 15px;
    color: rgba(255,255,255,.85);
    line-height: 1.6;
    margin: 0 0 12px;
    max-width: 640px;
}

.mnj-storefront__meta {
    display: flex;
    gap: 16px;
    font-size: 13px;
    color: rgba(255,255,255,.65);
}

/* ── Body ── */
.mnj-storefront__body {
    padding: 40px 0 60px;
    background: #f8f7fc;
}

.mnj-storefront__container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ── Grid de produtos ── */
.mnj-storefront__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.mnj-storefront__product {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #ece9f5;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}

.mnj-storefront__product:hover {
    box-shadow: 0 8px 24px rgba(100,25,198,.12);
    transform: translateY(-2px);
}

.mnj-storefront__product-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    text-decoration: none;
    color: inherit;
}

.mnj-storefront__product-img {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f5f4f9;
    position: relative;
}

.mnj-storefront__product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.mnj-storefront__product:hover .mnj-storefront__product-img img {
    transform: scale(1.04);
}

.mnj-storefront__product-img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f4f9;
}

.mnj-storefront__badge-sale {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--mnj-purple);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 3px 8px;
    border-radius: 999px;
}

.mnj-storefront__product-body {
    padding: 14px 16px 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mnj-storefront__product-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--mnj-gray-900);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mnj-storefront__product-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--mnj-purple);
    margin-top: auto;
}

.mnj-storefront__product-price del {
    font-size: 12px;
    color: #aaa;
    font-weight: 400;
}

.mnj-storefront__add-to-cart {
    display: block;
    margin: 0 16px 16px;
    padding: 9px 14px;
    background: var(--mnj-purple);
    color: #fff !important;
    border-radius: 8px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: background .15s;
    border: none;
    cursor: pointer;
    width: calc(100% - 32px);
}

.mnj-storefront__add-to-cart:hover {
    background: #4e14a0;
    color: #fff !important;
    text-decoration: none;
}

/* ── Empty state ── */
.mnj-storefront__empty {
    text-align: center;
    padding: 80px 24px;
    color: #aaa;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    font-size: 16px;
}

/* ── Paginação ── */
.mnj-storefront__pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 36px;
    flex-wrap: wrap;
}

.mnj-storefront__page-btn {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    color: #555;
    background: #fff;
    border: 1.5px solid #ddd;
    transition: all .15s;
}

.mnj-storefront__page-btn:hover,
.mnj-storefront__page-btn.is-active {
    background: var(--mnj-purple);
    color: #fff;
    border-color: var(--mnj-purple);
    text-decoration: none;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .mnj-storefront__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .mnj-storefront__hero-inner {
        gap: 20px;
    }
    .mnj-storefront__name {
        font-size: 24px;
    }
}

@media (max-width: 640px) {
    .mnj-storefront__hero-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    .mnj-storefront__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .mnj-storefront__name {
        font-size: 22px;
    }
}

@media (max-width: 360px) {
    .mnj-storefront__grid {
        grid-template-columns: 1fr;
    }
}

/* ── Storefront: filtro de categorias ── */
.mnj-storefront__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
}

.mnj-storefront__filter-btn {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    color: #555;
    background: #f2f0f8;
    border: 1.5px solid transparent;
    transition: background .15s, color .15s, border-color .15s;
    white-space: nowrap;
}

.mnj-storefront__filter-btn:hover {
    background: #e8e2f7;
    color: var(--mnj-purple);
}

.mnj-storefront__filter-btn.is-active {
    background: var(--mnj-purple);
    color: #fff;
    border-color: var(--mnj-purple);
}

/* ── Cart: "Vendido por" ── */
.mnj-cart-seller {
    display: block;
    font-size: 12px;
    color: #888;
    margin-top: 3px;
}

.mnj-cart-seller a {
    color: var(--mnj-purple);
    text-decoration: none;
}

.mnj-cart-seller a:hover {
    text-decoration: underline;
}

/* ── Portal: topbar móvel ── */
.mnj-portal-topbar {
    display: none;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: #fff;
    border-bottom: 1px solid #ece9f5;
    position: sticky;
    top: 0;
    z-index: 200;
}

.mnj-portal-topbar__store {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    min-width: 0;
}

.mnj-portal-topbar__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mnj-portal-topbar__section {
    font-size: 13px;
    font-weight: 400;
    color: #888;
    white-space: nowrap;
}

/* botão ícone nav — sobrescreve regra global de botões */
.mnj-portal-nav-toggle {
    background: none !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 6px;
    cursor: pointer !important;
    color: var(--mnj-gray-600) !important;
    font-weight: 400 !important;
    flex-shrink: 0;
    transition: background .15s;
}

.mnj-portal-nav-toggle:hover {
    background: #f0eafb !important;
    color: var(--mnj-purple) !important;
}

/* ── Sidebar vitrine link ── */
.mnj-portal-sidebar__link--vitrine {
    color: var(--mnj-purple) !important;
    font-weight: 500;
}

.mnj-portal-sidebar__link--vitrine:hover {
    color: #4e129e !important;
}

/* ── Mobile: sidebar oculta por padrão; toggle abre ── */
@media (max-width: 768px) {
    .mnj-portal-topbar {
        display: flex;
    }

    .mnj-portal-wrap {
        grid-template-columns: 1fr;
    }

    .mnj-portal-sidebar {
        position: fixed !important;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100vh !important;
        width: 260px;
        border-bottom: none;
        transform: translateX(-100%);
        transition: transform .25s ease;
        z-index: 300;
        box-shadow: 4px 0 24px rgba(0,0,0,.15);
        overflow-y: auto;
    }

    .mnj-portal-nav {
        flex-direction: column;
        flex-wrap: nowrap;
        padding: 8px 0;
        gap: 2px;
    }

    .mnj-portal-nav__item {
        padding: 10px 20px;
        font-size: 14px;
    }

    .mnj-portal-sidebar.is-open {
        transform: translateX(0);
    }

    .mnj-portal-wrap.sidebar-open::before {
        content: '';
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,.35);
        z-index: 299;
    }
}

/* ══════════════════════════════════════════════════
   PORTAL — abas de status de produtos
══════════════════════════════════════════════════ */

.mnj-portal-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
}

.mnj-portal-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    color: #555;
    background: #f5f5f5;
    border: 1.5px solid transparent;
    transition: all .15s;
}

.mnj-portal-tab:hover {
    background: #ede8f9;
    color: var(--mnj-purple);
}

.mnj-portal-tab.is-active {
    background: var(--mnj-purple);
    color: #fff;
    border-color: var(--mnj-purple);
}

.mnj-portal-tab__count {
    background: rgba(255,255,255,.25);
    border-radius: 10px;
    padding: 1px 6px;
    font-size: 11px;
    font-weight: 600;
}

.mnj-portal-tab.is-active .mnj-portal-tab__count {
    background: rgba(255,255,255,.3);
}

/* Badge: reprovado */
.mnj-portal-badge--rejected {
    background: #fff5f5;
    color: #e53e3e;
    border: 1px solid #feb2b2;
}

/* Botão danger */
.mnj-portal-btn--danger {
    background: #fff5f5;
    color: #e53e3e;
    border: 1px solid #feb2b2;
}

.mnj-portal-btn--danger:hover {
    background: #e53e3e;
    color: #fff;
    border-color: #e53e3e;
}

/* ══════════════════════════════════════════════════
   DRAWER — painel lateral de produto
══════════════════════════════════════════════════ */

.mnj-drawer {
    position: fixed;
    inset: 0;
    z-index: 500;
    visibility: hidden;
    pointer-events: none;
}

.mnj-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
}

.mnj-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.4);
    opacity: 0;
    transition: opacity .25s ease;
}

.mnj-drawer.is-open .mnj-drawer__overlay {
    opacity: 1;
}

.mnj-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 540px;
    background: #fff;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform .28s cubic-bezier(.4,0,.2,1);
    box-shadow: -4px 0 32px rgba(0,0,0,.12);
}

.mnj-drawer.is-open .mnj-drawer__panel {
    transform: translateX(0);
}

.mnj-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 1px solid #ece9f5;
    flex-shrink: 0;
}

.mnj-drawer__title {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
}

/* botão ícone fechar drawer — sobrescreve regra global de botões */
.mnj-drawer__close {
    background: none !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 6px;
    cursor: pointer !important;
    color: #888 !important;
    font-weight: 400 !important;
    display: flex;
    align-items: center;
    transition: background .15s, color .15s;
}

.mnj-drawer__close:hover {
    background: #f0eafb !important;
    color: var(--mnj-purple) !important;
}

.mnj-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.mnj-drawer__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 24px;
    border-top: 1px solid #ece9f5;
    flex-shrink: 0;
    background: #fafafa;
}

/* ── Produto form fields ── */

.mnj-pf-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.mnj-pf-group--highlight {
    background: #faf8ff;
    border: 1.5px solid #e6dcf9;
    border-radius: 10px;
    padding: 16px;
}

.mnj-pf-section-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--mnj-purple);
    text-transform: uppercase;
    letter-spacing: .4px;
    margin-bottom: 4px;
}

.mnj-pf-label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.mnj-pf-required {
    color: #e53e3e;
}

.mnj-pf-input,
.mnj-pf-textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    color: #1a1a1a;
    background: #fff;
    transition: border-color .15s;
    font-family: inherit;
    box-sizing: border-box;
}

.mnj-pf-input:focus,
.mnj-pf-textarea:focus {
    outline: none;
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,.1);
}

.mnj-pf-textarea {
    resize: vertical;
    min-height: 80px;
}

.mnj-pf-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.mnj-pf-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mnj-pf-hint {
    font-size: 12px;
    color: #888;
    margin: 0;
}

/* Categorias */
.mnj-pf-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mnj-pf-cat-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    background: #f5f5f5;
    padding: 5px 10px;
    border-radius: 16px;
    cursor: pointer;
    border: 1.5px solid transparent;
    transition: all .15s;
}

.mnj-pf-cat-item:hover {
    border-color: var(--mnj-purple);
    background: #f0eafb;
}

.mnj-pf-cat-item input:checked ~ * {
    color: var(--mnj-purple);
}

.mnj-pf-cat-item:has(input:checked) {
    background: #f0eafb;
    border-color: var(--mnj-purple);
    color: var(--mnj-purple);
    font-weight: 500;
}

/* ── Image uploader ── */

.mnj-img-uploader {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-start;
}

.mnj-img-uploader__btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    border: 1.5px dashed #bbb;
    border-radius: 8px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
    background: #fafafa;
    transition: border-color .15s, color .15s;
}

.mnj-img-uploader__btn:hover {
    border-color: var(--mnj-purple);
    color: var(--mnj-purple);
}

.mnj-img-list,
.mnj-img-uploader__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mnj-img-thumb {
    position: relative;
    width: 72px;
    height: 72px;
    border-radius: 8px;
    overflow: visible;
}

.mnj-img-thumb img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 1.5px solid #ddd;
    display: block;
}

.mnj-img-thumb__remove {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    background: #e53e3e;
    color: #fff;
    border: none;
    border-radius: 50%;
    font-size: 11px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0;
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
}

.mnj-img-thumb--main .mnj-img-thumb__img-wrap::after {
    content: 'Principal';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    background: rgba(100,25,198,.82);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .4px;
    text-align: center;
    padding: 3px 0;
    border-radius: 0 0 8px 8px;
}

.mnj-img-thumb__img-wrap {
    position: relative;
    width: 72px;
    height: 72px;
    display: block;
}

.mnj-img-counter {
    font-size: 12px;
    color: #888;
    margin-bottom: 6px;
}

.mnj-img-counter strong {
    color: #333;
}

.mnj-img-uploader__btn--disabled {
    opacity: .45;
    pointer-events: none;
    cursor: default;
}

/* ══════════════════════════════════════════════════
   PRODUTO — bloco de preço por atacado
══════════════════════════════════════════════════ */

.mnj-wholesale-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #f0faf0;
    border: 1.5px solid #9ae6b4;
    border-radius: 10px;
    padding: 14px 16px;
    margin: 4px 0 16px;
}

.mnj-wholesale-block__header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #276749;
}

.mnj-wholesale-block__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 22px;
    font-weight: 700;
    color: #22543d;
}

.mnj-wholesale-block__unit {
    font-size: 14px;
    font-weight: 400;
    color: #48bb78;
}

.mnj-wholesale-block__info {
    font-size: 13px;
    color: #276749;
}

@media (max-width: 540px) {
    .mnj-drawer__panel {
        max-width: 100%;
    }
    .mnj-pf-row {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════════
   ÁREA DO LOJISTA — Página de login / cadastro
══════════════════════════════════════════════════ */

.mnj-auth-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 20px;
    background: linear-gradient(135deg, #f8f5ff 0%, #fff 60%);
}

.mnj-auth-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 32px rgba(100,25,198,.1);
    padding: 40px 36px;
    width: 100%;
    max-width: 440px;
}

/* Marca */
.mnj-auth-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
}

.mnj-auth-brand__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--mnj-purple), #9b59d0);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mnj-auth-brand__title {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.2;
}

.mnj-auth-brand__sub {
    font-size: 13px;
    color: #888;
    margin-top: 2px;
}

/* Tabs */
.mnj-auth-tabs {
    display: flex;
    gap: 2px;
    background: #f5f5f5;
    border-radius: 10px;
    padding: 4px;
    margin-bottom: 24px;
}

/* tab switcher login/cadastro — sobrescreve regra global de botões */
.mnj-auth-tab {
    flex: 1;
    padding: 8px 16px;
    border: none !important;
    border-radius: 8px !important;
    font-size: 14px;
    font-weight: 500 !important;
    cursor: pointer !important;
    background: transparent !important;
    color: #666 !important;
    transition: all .15s;
}

.mnj-auth-tab:hover {
    background: rgba(255,255,255,0.5) !important;
    color: var(--mnj-purple) !important;
}

.mnj-auth-tab.is-active {
    background: #fff !important;
    color: var(--mnj-purple) !important;
    box-shadow: 0 1px 6px rgba(0,0,0,.1);
    font-weight: 600 !important;
}

/* Painéis */
.mnj-auth-pane {
    display: none;
}

.mnj-auth-pane.is-active {
    display: block;
}

/* Formulário */
.mnj-auth-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.mnj-auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mnj-auth-field label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.mnj-auth-field input[type="text"],
.mnj-auth-field input[type="email"],
.mnj-auth-field input[type="password"] {
    padding: 10px 14px;
    border: 1.5px solid #ddd;
    border-radius: 9px;
    font-size: 14px;
    color: #1a1a1a;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
}

.mnj-auth-field input:focus {
    outline: none;
    border-color: var(--mnj-purple);
    box-shadow: 0 0 0 3px rgba(100,25,198,.12);
}

.mnj-auth-pass-wrap {
    position: relative;
}

.mnj-auth-pass-wrap input {
    padding-right: 44px;
}

/* botão ícone olho — sobrescreve regra global de botões */
.mnj-auth-pass-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    color: #aaa !important;
    font-weight: 400 !important;
    padding: 4px;
    display: flex;
    align-items: center;
    transition: color .15s;
}

.mnj-auth-pass-toggle:hover {
    background: none !important;
    color: var(--mnj-purple) !important;
}

.mnj-auth-forgot {
    font-size: 12px;
    color: var(--mnj-purple);
    text-decoration: none;
}

.mnj-auth-forgot:hover {
    text-decoration: underline;
}

.mnj-auth-row {
    display: flex;
    align-items: center;
}

.mnj-auth-remember {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}

/* Botões */
.mnj-auth-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: 9px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
    transition: all .15s;
}

.mnj-auth-btn--primary {
    background: var(--mnj-purple);
    color: #fff;
    border-color: var(--mnj-purple);
}

.mnj-auth-btn--primary:hover {
    background: #5213a5;
    border-color: #5213a5;
    color: #fff;
}

.mnj-auth-btn--ghost {
    background: transparent;
    color: var(--mnj-purple);
    border-color: #ddd;
}

.mnj-auth-btn--ghost:hover {
    border-color: var(--mnj-purple);
    background: #f0eafb;
}

.mnj-auth-btn--full {
    width: 100%;
}

/* Alerta de erro */
.mnj-auth-alert {
    background: #fff5f5;
    color: #e53e3e;
    border: 1px solid #fed7d7;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
}

/* Status cards */
.mnj-auth-status {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 10px;
    margin-bottom: 16px;
}

.mnj-auth-status strong {
    display: block;
    font-size: 14px;
    margin-bottom: 4px;
}

.mnj-auth-status p {
    font-size: 13px;
    margin: 0;
    line-height: 1.5;
}

.mnj-auth-status--pending {
    background: #fffbeb;
    border: 1px solid #fbd38d;
    color: #92400e;
}

.mnj-auth-status--rejected {
    background: #fff5f5;
    border: 1px solid #fed7d7;
    color: #9b2335;
}

.mnj-auth-status--info {
    background: #ebf8ff;
    border: 1px solid #bee3f8;
    color: #1a365d;
}

.mnj-auth-logout {
    display: block;
    text-align: center;
    font-size: 13px;
    color: #888;
    text-decoration: none;
    margin-top: 12px;
}

.mnj-auth-logout:hover {
    color: var(--mnj-purple);
    text-decoration: underline;
}

/* Painel de cadastro */
.mnj-auth-register-info {
    text-align: center;
    padding: 8px 0;
}

.mnj-auth-register-info svg {
    margin-bottom: 12px;
}

.mnj-auth-register-info h3 {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 10px;
}

.mnj-auth-register-info p {
    font-size: 14px;
    color: #555;
    margin: 0 0 16px;
    line-height: 1.5;
}

.mnj-auth-register-benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: left;
    font-size: 14px;
    color: #333;
}

.mnj-auth-register-benefits li {
    color: #38a169;
    font-weight: 500;
}

.mnj-auth-register-note {
    margin-top: 14px !important;
    font-size: 13px;
    color: #888;
}

.mnj-auth-tab-link {
    color: var(--mnj-purple);
    text-decoration: none;
    font-weight: 500;
}

/* Nav link do lojista */
.mnj-seller-nav-item a {
    color: var(--mnj-purple) !important;
    font-weight: 600;
}

/* ══════════════════════════════════════════════════
   DASHBOARD — gráficos
══════════════════════════════════════════════════ */

.mnj-portal-section > .mnj-dash-chart-card {
    margin-bottom: 20px;
}

.mnj-dash-chart-card {
    padding: 20px 24px;
}

.mnj-dash-chart-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.mnj-dash-chart-card__sub {
    font-size: 12px;
    color: #aaa;
}

.mnj-dash-alert {
    font-size: 12px;
    font-weight: 600;
    color: #e53e3e;
    background: #fff5f5;
    border: 1px solid #fed7d7;
    padding: 3px 10px;
    border-radius: 20px;
}

.mnj-dash-chart-wrap {
    position: relative;
    height: 220px;
}

.mnj-dash-chart-wrap--bar {
    height: 240px;
}

.mnj-dash-chart-wrap--donut {
    height: 180px;
}

.mnj-dash-charts-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

.mnj-dash-empty {
    text-align: center;
    padding: 24px 0;
    color: #aaa;
    font-size: 14px;
}

.mnj-dash-empty p {
    margin: 0 0 10px;
}

.mnj-dash-legend {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 14px;
}

.mnj-dash-legend__item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--mnj-gray-600);
}

.mnj-dash-legend__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.mnj-dash-legend__count {
    margin-left: auto;
    font-weight: 600;
    color: #1a1a1a;
}

@media (max-width: 700px) {
    .mnj-auth-card {
        padding: 28px 20px;
    }
    .mnj-dash-charts-row {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════════════════════
   FONTE GILIANT — @font-face apenas; aplicação via Elementor widget
   (Custom Fonts plugin já emite este @font-face; duplicata inofensiva
    que garante carregamento mesmo sem o plugin ativo)
══════════════════════════════════════════════════════════════ */
@font-face {
    font-family: 'Giliant';
    src: url('/wp-content/uploads/2025/01/Giliant-Ttf.ttf') format('truetype'),
         url('/wp-content/uploads/2025/01/Giliant.otf') format('opentype');
    font-weight: normal;
    font-style:  normal;
    font-display: swap;
}

/* ══════════════════════════════════════════════════════════════
   GRID DE ARTIGOS DO BLOG [grid_sanfona_posts]
══════════════════════════════════════════════════════════════ */
.mnj-artgrid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   24px;
    padding:               0;
}
.mnj-artgrid__item {
    display:          flex;
    flex-direction:   column;
    background:       #f6f6f6;
    border-radius:    12px;
    padding:          20px;
    text-align:       center;
}
.mnj-artgrid__summary {
    display:        flex;
    flex-direction: column;
    flex-grow:      1;
}
.mnj-artgrid__img-link { display: block; }
.mnj-artgrid__img {
    width:         100%;
    height:        220px;
    object-fit:    cover;
    border-radius: 12px;
    margin-bottom: 15px;
}
.mnj-artgrid__title {
    font-family: var(--mnj-font-body);
    font-size:    24px;
    font-weight:  600;
    color:        var(--mnj-black);
    margin:       0 0 10px;
    line-height:  1.3;
}
.mnj-artgrid__excerpt {
    font-family: var(--mnj-font-body);
    font-size:   16px;
    font-weight: 400;
    color:       var(--mnj-gray-600);
    margin:      0 0 16px;
    line-height: 1.5;
    flex-grow:   1;
}
.mnj-artgrid__btn {
    display:          flex;
    align-items:      center;
    justify-content:  center;
    width:            100%;
    height:           52px;
    background-color: var(--mnj-black);
    color:            #fff;
    font-family: var(--mnj-font-body);
    font-size:        16px;
    font-weight:      400;
    text-decoration:  none;
    border-radius:    999px;
    margin-top:       0;
    transition:       background .2s ease;
}
.mnj-artgrid__btn:hover {
    background-color: var(--mnj-purple);
    color:            #fff;
}
/* Evita herança de estilos de botão do WooCommerce (cor rosa, borda quadrada) */
.mnj-artgrid .mnj-artgrid__btn {
    width:            100% !important;
    height:           52px !important;
    background-color: var(--mnj-black) !important;
    color:            #fff !important;
    border:           none !important;
    border-radius:    999px !important;
    box-shadow:       none !important;
    text-transform:   none !important;
    letter-spacing:   normal !important;
    padding:          0 24px !important;
    font-size:        16px !important;
    font-weight:      500 !important;
    font-family: var(--mnj-font-body) !important;
    display:          flex !important;
    align-items:      center !important;
    justify-content:  center !important;
}
.mnj-artgrid .mnj-artgrid__btn:hover {
    background-color: var(--mnj-purple) !important;
    color:            #fff !important;
}

/* Estado expandido do artigo (accordion) */
.mnj-artgrid__item--open {
    grid-column: 1 / -1;
}
.mnj-artgrid__full {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 4px 0 8px;
}
/* Estilo de link de texto — sobrescreve WooCommerce global button styles */
.mnj-artgrid .mnj-artgrid__back,
.mnj-artgrid .mnj-artgrid__back:link,
.mnj-artgrid .mnj-artgrid__back:visited {
    display:              inline-flex !important;
    align-items:          center !important;
    gap:                  6px !important;
    width:                auto !important;
    height:               auto !important;
    background:           transparent !important;
    background-color:     transparent !important;
    border:               none !important;
    border-width:         0 !important;
    border-color:         transparent !important;
    border-radius:        0 !important;
    box-shadow:           none !important;
    outline:              none !important;
    font-size:            14px !important;
    font-weight:          500 !important;
    color:                var(--mnj-purple) !important;
    cursor:               pointer !important;
    padding:              0 !important;
    margin:               0 !important;
    text-decoration:      underline !important;
    text-underline-offset: 3px !important;
    text-transform:       none !important;
    letter-spacing:       normal !important;
    line-height:          1.4 !important;
    transition:           opacity var(--mnj-ease) !important;
    align-self:           flex-start !important;
}
.mnj-artgrid .mnj-artgrid__back:hover,
.mnj-artgrid .mnj-artgrid__back:focus { opacity: 0.75 !important; }
.mnj-artgrid__content {
    font-size:   16px;
    line-height: 1.75;
    color:       var(--mnj-gray-600);
}
.mnj-artgrid__content h2,
.mnj-artgrid__content h3 {
    color:       var(--mnj-black);
    margin:      24px 0 12px;
    font-weight: 700;
}
.mnj-artgrid__content p  { margin: 0 0 16px; }
.mnj-artgrid__content img { max-width: 100%; border-radius: var(--mnj-radius-md); }

@media (max-width: 768px) {
    .mnj-artgrid             { grid-template-columns: 1fr; gap: 16px; }
    .mnj-artgrid__img        { height: 200px; }
    .mnj-artgrid__title      { font-size: 20px; }
    .mnj-artgrid__excerpt    { font-size: 14px; }
}

/* ══════════════════════════════════════════════════════════════
   HOME — SEÇÃO FABRICANTE/LOJISTA (post-186, elementor-186)
   O espaçamento entre widgets dentro de uma coluna Elementor é
   controlado pelo row-gap do .elementor-widget-wrap, não pela
   variável --kit-widget-spacing (que só afeta o Kit global).
══════════════════════════════════════════════════════════════ */
.elementor-186 .elementor-element.elementor-element-cc0409a > .elementor-widget-wrap {
    row-gap: 8px !important;
    gap:     8px !important;
}
.elementor-186 .elementor-element.elementor-element-cc0409a .elementor-widget {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}
/* Garante que o botão "Cadastre" não ganhe margem adicional */
.elementor-186 .elementor-element.elementor-element-578b62a {
    margin-top:    0 !important;
    padding-top:   0 !important;
}

/* ══════════════════════════════════════════════════════════════
   HOME MOBILE — PRODUTOS EM DESTAQUE
   Desktop: Loop Grid Elementor (#21f08b9) visível.
   Mobile:  Loop Grid oculto; PHP carousel (.mnj-destaque-car) visível.
══════════════════════════════════════════════════════════════ */
.mnj-destaque-car { display: none; }

@media (max-width: 768px) {
    .elementor-element.elementor-element-21f08b9,
    [data-id="21f08b9"] { display: none !important; }

    .mnj-destaque-car {
        display:  block;
        width:    100%;
        overflow: hidden;
    }
    .mnj-destaque-car__track {
        display:                    flex;
        gap:                        12px;
        overflow-x:                 auto;
        scroll-snap-type:           x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width:            none;
        padding:                    0 20px 16px;
    }
    .mnj-destaque-car__track::-webkit-scrollbar { display: none; }
    .mnj-destaque-car__item {
        flex:              0 0 78vw;
        max-width:         78vw;
        scroll-snap-align: start;
        background:        var(--mnj-gray-100);
        border-radius:     12px;
        overflow:          hidden;
        display:           flex;
        flex-direction:    column;
    }
    .mnj-destaque-car__img {
        width:      100%;
        height:     200px;
        object-fit: cover;
        display:    block;
    }
    .mnj-destaque-car__info {
        padding:        16px;
        display:        flex;
        flex-direction: column;
        flex-grow:      1;
    }
    .mnj-destaque-car__name {
        font-size:   16px;
        font-weight: 600;
        color:       var(--mnj-black);
        margin:      0 0 6px;
        line-height: 1.3;
    }
    .mnj-destaque-car__name a {
        color:           var(--mnj-black);
        text-decoration: none;
    }
    .mnj-destaque-car__price {
        font-size:   15px;
        font-weight: 700;
        color:       var(--mnj-purple);
        margin:      0 0 12px;
    }
    .mnj-destaque-car__price .woocommerce-Price-amount { color: var(--mnj-purple); }
    .mnj-destaque-car__btn {
        display:         block;
        text-align:      center;
        padding:         10px 20px;
        background:      var(--mnj-black);
        color:           var(--mnj-white) !important;
        border-radius:   var(--mnj-radius-full);
        text-decoration: none !important;
        font-size:       14px;
        font-weight:     500;
        margin-top:      auto;
        border:          none !important;
    }
    .mnj-destaque-car__btn:hover { background: var(--mnj-purple) !important; }
}

/* ══════════════════════════════════════════════════════════════
   HOME — FABRICANTE / LOJISTA (PHP — substitui seção Elementor)
   Desktop: título full-width centralizado / esq: desc+btn / dir: img
   Mobile:  pilha vertical título → desc → btn → img
══════════════════════════════════════════════════════════════ */
.mnj-fabricante {
    padding:    60px 40px;
    background: #fff;
}
.mnj-fabricante__inner {
    max-width:             1200px;
    margin:                0 auto;
    display:               grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows:    auto auto;
    gap:                   28px 56px;
}
.mnj-fabricante__title-wrap {
    grid-column: 1 / -1;
    grid-row:    1;
    text-align:  center;
}
.mnj-fabricante__heading {
    font-family: 'Giliant', serif;
    font-size:   56px;
    font-weight: 400;
    line-height: 1.1;
    margin:      0;
}
.mnj-fabricante__h-purple { color: var(--mnj-purple); }
.mnj-fabricante__h-black  { color: var(--mnj-black);  }
/* Coluna esquerda: descrição + botão empilhados */
.mnj-fabricante__left {
    grid-column:    1;
    grid-row:       2;
    display:        flex;
    flex-direction: column;
    gap:            24px;
    justify-content: center;
}
.mnj-fabricante__desc {
    font-family: var(--mnj-font-body);
    font-size:   16px;
    line-height: 1.7;
    color:       var(--mnj-black);
    margin:      0;
}
.mnj-fabricante__desc span { color: rgba(0,0,0,0.4); }
.mnj-fabricante__img-wrap {
    grid-column: 2;
    grid-row:    2;
    display:     flex;
    align-items: center;
}
.mnj-fabricante__img {
    width:         100%;
    max-height:    440px;
    object-fit:    cover;
    border-radius: 16px;
    display:       block;
}
.mnj-fabricante__btn {
    display:         inline-block;
    align-self:      flex-start;
    padding:         14px 32px;
    background:      var(--mnj-black);
    color:           #fff !important;
    font-family: var(--mnj-font-body);
    font-size:       16px;
    font-weight:     500;
    border-radius:   999px;
    text-decoration: none !important;
    border:          none !important;
    cursor:          pointer;
    transition:      background .2s ease;
    white-space:     nowrap;
}
.mnj-fabricante__btn:hover {
    background: var(--mnj-purple) !important;
    color:      #fff !important;
}
@media (max-width: 768px) {
    .mnj-fabricante { padding: 40px 20px; }
    .mnj-fabricante__inner {
        grid-template-columns: 1fr;
        grid-template-rows:    auto auto auto;
        gap:                   20px;
    }
    .mnj-fabricante__title-wrap { grid-column: 1; grid-row: 1; }
    .mnj-fabricante__left       { grid-column: 1; grid-row: 2; gap: 16px; }
    .mnj-fabricante__img-wrap   { grid-column: 1; grid-row: 3; }
    .mnj-fabricante__heading    { font-size: 36px; }
    .mnj-fabricante__img        { max-height: 260px; }
    .mnj-fabricante__btn        { align-self: stretch; text-align: center; }
}

/* =============================================
   CHECKOUT — .mnj-co (MNJ-003)
   Template: woocommerce/checkout/form-checkout.php
   Asaas overrides escopados em .mnj-co__gw-fields
============================================= */

/* ── Notices de erro/sucesso do checkout ── */
.mnj-co__notices {
    position:       relative;
    max-width:      1200px;
    margin:         0 auto 0;
    padding:        0 24px;
}
.mnj-co__notices .woocommerce-error,
.mnj-co__notices .woocommerce-message,
.mnj-co__notices .woocommerce-info {
    position:       relative;
    padding:        14px 44px 14px 16px;
    margin:         0 0 8px;
    border-radius:  6px;
    font-size:      14px;
    list-style:     none;
}
.mnj-co__notices .woocommerce-error {
    background:     #fef2f2;
    border:         1px solid #fca5a5;
    color:          #991b1b;
}
.mnj-co__notices .woocommerce-message {
    background:     #f0fdf4;
    border:         1px solid #86efac;
    color:          #166534;
}
.mnj-co__notices .woocommerce-info {
    background:     #eff6ff;
    border:         1px solid #93c5fd;
    color:          #1d4ed8;
}
/* botão × de fechar notice: ícone inline — sobrescreve regra global */
.mnj-co__notices-close {
    position:      absolute;
    top:           8px;
    right:         12px;
    background:    none !important;
    border:        none !important;
    border-radius: 0 !important;
    cursor:        pointer !important;
    font-size:     20px;
    font-weight:   400 !important;
    line-height:   1;
    color:         inherit !important;
    opacity:       0.6;
    padding:       0;
}
.mnj-co__notices-close:hover {
    background: none !important;
    color: inherit !important;
    opacity: 1;
}

.mnj-co {
    background:  #f9f9f9;
    min-height:  100vh;
    font-family: var(--mnj-font-body);
}

.mnj-co__form {
    max-width: 1200px;
    margin:    0 auto;
    padding:   40px 24px;
}

.mnj-co__layout {
    display:               grid;
    grid-template-columns: 1fr 440px;
    gap:                   48px;
    align-items:           start;
}

/* ── Coluna esquerda ── */
.mnj-co__left { display: flex; flex-direction: column; gap: 28px; }

.mnj-co__back {
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    color:           var(--mnj-black);
    font-size:       14px;
    text-decoration: none;
}
.mnj-co__back:hover { color: var(--mnj-purple); }

.mnj-co__left-title { display: flex; flex-direction: column; gap: 4px; }
.mnj-co__site-title { font-size: 24px; font-weight: 700; margin: 0; }
.mnj-co__breadcrumb { font-size: 13px; color: #999; margin: 0; }
.mnj-co__breadcrumb-done   { color: #bbb; }
.mnj-co__breadcrumb-sep    { margin: 0 4px; }
.mnj-co__breadcrumb-active { color: var(--mnj-black); font-weight: 500; }

/* ── Itens ── */
.mnj-co__items { display: flex; flex-direction: column; gap: 16px; }

.mnj-co__item {
    display:       flex;
    align-items:   center;
    gap:           14px;
    background:    #fff;
    border:        1px solid #ebebeb;
    border-radius: 10px;
    padding:       12px;
}

.mnj-co__item-img-wrap { position: relative; flex-shrink: 0; }

.mnj-co__item-qty-badge {
    position:        absolute;
    top:             -6px;
    right:           -6px;
    background:      var(--mnj-black);
    color:           #fff;
    font-size:       11px;
    font-weight:     600;
    width:           20px;
    height:          20px;
    border-radius:   50%;
    display:         flex;
    align-items:     center;
    justify-content: center;
    line-height:     1;
}

.mnj-co__item-details { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.mnj-co__item-name    { font-size: 14px; font-weight: 500; }
.mnj-co__item-variant { font-size: 12px; color: #888; }
.mnj-co__item-price   { font-size: 14px; font-weight: 600; white-space: nowrap; }

/* ── Cupom ── */
.mnj-co__coupon     { display: flex; flex-direction: column; gap: 8px; }
.mnj-co__coupon-row { display: flex; gap: 8px; }

.mnj-co__coupon-input {
    flex:          1;
    padding:       10px 14px;
    border:        1px solid #ddd;
    border-radius: 42px;
    font-size:     14px;
    font-family:   inherit;
    outline:       none;
}
.mnj-co__coupon-input:focus { border-color: var(--mnj-purple); }

/* !important: sobrescreve .woocommerce button e .elementor button — LL-001 */
body.woocommerce-checkout .mnj-co__coupon-btn {
    padding:       10px 18px;
    background:    var(--mnj-black) !important;
    color:         #fff !important;
    border:        none !important;
    border-radius: 8px;
    font-size:     14px;
    font-family:   inherit;
    cursor:        pointer;
    white-space:   nowrap;
    transition:    background .2s;
}
body.woocommerce-checkout .mnj-co__coupon-btn:hover { background: var(--mnj-purple) !important; }

.mnj-co__coupon-applied {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-size:   13px;
}
.mnj-co__coupon-remove { color: #c00; font-size: 12px; text-decoration: underline; }

/* ── Totais (esquerda) ── */
.mnj-co__left-totals { display: flex; flex-direction: column; gap: 8px; }

.mnj-co__left-total-row {
    display:         flex;
    justify-content: space-between;
    font-size:       14px;
}
.mnj-co__left-total-row--green { color: #16a34a; }
.mnj-co__left-total-row--total {
    font-size:   16px;
    font-weight: 700;
    padding-top: 8px;
    border-top:  1px solid #ebebeb;
    margin-top:  4px;
}

/* ── Gateways de pagamento ── */
.mnj-co__payment       { display: flex; flex-direction: column; gap: 14px; }
.mnj-co__payment-title { font-size: 16px; font-weight: 600; margin: 0; }
.mnj-co__gw-list       { display: flex; flex-direction: column; gap: 10px; }

.mnj-co__gw-option {
    border:        1px solid #ddd;
    border-radius: 10px;
    overflow:      hidden;
    transition:    border-color .2s;
}
.mnj-co__gw-option--on { border-color: var(--mnj-purple); }

.mnj-co__gw-label {
    display:     flex;
    align-items: center;
    gap:         10px;
    padding:     14px 16px;
    cursor:      pointer;
}

.mnj-co__gw-radio  { accent-color: var(--mnj-purple); width: 16px; height: 16px; flex-shrink: 0; }
.mnj-co__gw-icon   { display: flex; align-items: center; gap: 4px; }
.mnj-co__gw-icon img { max-height: 22px; width: auto; border: none !important; }
.mnj-co__gw-name   { font-size: 14px; font-weight: 500; }

.mnj-co__gw-fields {
    padding:    0 16px 16px;
    border-top: 1px solid #f0f0f0;
}

/* ── Coluna direita ── */
.mnj-co__right {
    position:      sticky;
    top:           24px;
    background:    #fff;
    border:        1px solid #ebebeb;
    border-radius: 14px;
    padding:       28px;
}

.mnj-co__right-inner { display: flex; flex-direction: column; gap: 24px; }

.mnj-co__section-title-wrap { border-bottom: 1px solid #f0f0f0; padding-bottom: 12px; }
.mnj-co__section-title      { font-size: 18px; font-weight: 700; margin: 0; }

/* ── Campos do formulário ── */
.mnj-co__fields   { display: flex; flex-direction: column; gap: 14px; }
.mnj-co__field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mnj-co__field    { display: flex; flex-direction: column; gap: 5px; }

.mnj-co__label    { font-size: 13px; font-weight: 500; color: #555; }
.mnj-co__required { color: #c00; }

.mnj-co__input,
.mnj-co__select,
.mnj-co__textarea {
    padding:       10px 13px;
    border:        1px solid #ddd;
    border-radius: 42px;
    font-size:     14px;
    font-family:   inherit;
    outline:       none;
    width:         100%;
    box-sizing:    border-box;
    background:    #fff;
    color:         var(--mnj-black);
    transition:    border-color .2s;
}
.mnj-co__input:focus,
.mnj-co__select:focus,
.mnj-co__textarea:focus { border-color: var(--mnj-purple); }

.mnj-co__textarea { resize: vertical; min-height: 80px; }

/* ── Resumo (coluna direita) ── */
.mnj-co__summary       { display: flex; flex-direction: column; gap: 10px; }
.mnj-co__summary-title { font-size: 15px; font-weight: 600; margin: 0; }
.mnj-co__summary-rows  { display: flex; flex-direction: column; gap: 8px; }

.mnj-co__summary-row {
    display:         flex;
    justify-content: space-between;
    font-size:       14px;
}

.mnj-co__summary-total {
    display:         flex;
    justify-content: space-between;
    font-size:       18px;
    font-weight:     700;
    padding-top:     10px;
    border-top:      1px solid #ebebeb;
}

/* ── Botão finalizar ── */
.mnj-co__place-order { display: flex; flex-direction: column; gap: 8px; }

/* !important: sobrescreve .woocommerce button e .elementor button — LL-001 */
body.woocommerce-checkout .mnj-co__submit-btn {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             8px;
    width:           100%;
    padding:         15px 24px;
    background:      var(--mnj-black) !important;
    color:           #fff !important;
    border:          none !important;
    border-radius:   999px;
    font-size:       16px;
    font-weight:     600;
    font-family:     inherit;
    cursor:          pointer;
    transition:      background .2s;
}
body.woocommerce-checkout .mnj-co__submit-btn:hover { background: var(--mnj-purple) !important; }

.mnj-co__security {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             5px;
    font-size:       12px;
    color:           #888;
    margin:          0;
}

.mnj-co__terms   { font-size: 12px; color: #999; text-align: center; margin: 0; }
.mnj-co__terms a { color: var(--mnj-purple); }

/* ── Override Asaas — escopado em .mnj-co__gw-fields ─────────
   IDs: asaas-credit-card | asaas-pix | asaas-ticket
─────────────────────────────────────────────────────────────── */
.mnj-co__gw-fields.payment_method_asaas-credit-card p,
.mnj-co__gw-fields.payment_method_asaas-pix p,
.mnj-co__gw-fields.payment_method_asaas-ticket p {
    font-size: 13px;
    color:     #555;
    margin:    0 0 10px;
}

.mnj-co__gw-fields.payment_method_asaas-credit-card label,
.mnj-co__gw-fields.payment_method_asaas-pix label,
.mnj-co__gw-fields.payment_method_asaas-ticket label {
    font-size:     13px;
    font-weight:   500;
    color:         #555;
    display:       block;
    margin-bottom: 4px;
}

.mnj-co__gw-fields.payment_method_asaas-credit-card input[type="text"],
.mnj-co__gw-fields.payment_method_asaas-credit-card input[type="tel"],
.mnj-co__gw-fields.payment_method_asaas-credit-card input[type="number"],
.mnj-co__gw-fields.payment_method_asaas-credit-card select {
    padding:       10px 13px;
    border:        1px solid #ddd;
    border-radius: 42px;
    font-size:     14px;
    font-family:   inherit;
    width:         100%;
    box-sizing:    border-box;
    background:    #fff;
    outline:       none;
    transition:    border-color .2s;
}
.mnj-co__gw-fields.payment_method_asaas-credit-card input:focus,
.mnj-co__gw-fields.payment_method_asaas-credit-card select:focus {
    border-color: var(--mnj-purple);
}

.mnj-co__gw-fields.payment_method_asaas-pix img {
    max-width:     160px;
    height:        auto;
    display:       block;
    margin:        10px 0;
    border-radius: 6px;
}

/* ── Responsivo ── */
@media (max-width: 900px) {
    .mnj-co__layout { grid-template-columns: 1fr; }
    .mnj-co__right  { position: static; order: -1; }
}

@media (max-width: 600px) {
    .mnj-co__form       { padding: 20px 16px; }
    .mnj-co__field-row  { grid-template-columns: 1fr; }
    .mnj-co__coupon-row { flex-direction: column; }
    .mnj-co__coupon-btn { width: 100%; }
    .mnj-co__layout     { gap: 24px; }
}

/* ════════════════════════════════════════════════════════════════
   CARRINHO mnj-cart__*  (MNJ-015)
   Template: woocommerce/cart/cart.php
════════════════════════════════════════════════════════════════ */

/* ── Reset: previne estilos WC/WP padrão em páginas 100% customizadas ── */
body.woocommerce-cart .woocommerce-notices-wrapper { margin: 0; padding: 0; }
body.woocommerce-cart table.shop_table,
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .cross-sells { display: none !important; } /* !important: sobrescreve especificidade WC .woocommerce */

body.woocommerce-checkout .woocommerce-notices-wrapper { margin: 0; padding: 0; }

/* ── Wrapper raiz ── */
.mnj-cart {
    max-width:  1280px;
    margin:     0 auto;
    padding:    40px var(--mnj-container-pad);
    font-family: var(--mnj-font-body);
    color:      var(--mnj-black);
}

/* ── Cabeçalho ── */
.mnj-cart__head {
    margin-bottom: 32px;
}

.mnj-cart__back {
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    font-size:       14px;
    color:           var(--mnj-gray-600);
    text-decoration: none;
    margin-bottom:   16px;
    transition:      color var(--mnj-ease);
}
.mnj-cart__back:hover { color: var(--mnj-purple); }

.mnj-cart__title {
    font-size:   28px;
    font-weight: 700;
    margin:      0;
    display:     flex;
    align-items: baseline;
    gap:         10px;
}

.mnj-cart__count {
    font-size:   14px;
    font-weight: 400;
    color:       var(--mnj-gray-400);
}

/* ── Layout 2 colunas ── */
.mnj-cart__layout {
    display:               grid;
    grid-template-columns: 1fr 380px;
    gap:                   48px;
    align-items:           start;
}

/* ── Coluna principal ── */
.mnj-cart__main {
    display:        flex;
    flex-direction: column;
    gap:            24px;
}

/* ── Bloco por lojista ── */
.mnj-cart__seller-block {
    border:        1px solid var(--mnj-gray-200);
    border-radius: 4px;
    overflow:      hidden;
}

.mnj-cart__seller-header {
    display:      flex;
    align-items:  center;
    gap:          8px;
    padding:      12px 20px;
    background:   var(--mnj-gray-100);
    border-bottom: 1px solid var(--mnj-gray-200);
}

.mnj-cart__seller-name {
    font-size:       13px;
    font-weight:     600;
    color:           var(--mnj-black);
    text-decoration: none;
    transition:      color var(--mnj-ease);
}
a.mnj-cart__seller-name:hover { color: var(--mnj-purple); }

/* ── Item individual ── */
.mnj-cart__item {
    display:       flex;
    gap:           20px;
    padding:       20px;
    border-bottom: 1px solid var(--mnj-gray-200);
}
.mnj-cart__item:last-child { border-bottom: none; }

/* ── Imagem ── */
.mnj-cart__img-wrap {
    position:      relative;
    flex-shrink:   0;
    width:         80px;
    height:        80px;
    border-radius: 4px;
    overflow:      hidden;
    background:    var(--mnj-gray-100);
}
.mnj-cart__img-wrap a {
    display: block;
    width:   100%;
    height:  100%;
}

.mnj-cart__save-badge {
    position:         absolute;
    top:              6px;
    left:             6px;
    background:       var(--mnj-purple);
    color:            var(--mnj-white);
    font-size:        10px;
    font-weight:      600;
    padding:          2px 7px;
    border-radius:    4px;
    letter-spacing:   0.03em;
    pointer-events:   none;
}

/* ── Info do item ── */
.mnj-cart__info {
    flex:           1;
    display:        flex;
    flex-direction: column;
    gap:            12px;
    min-width:      0;
}

.mnj-cart__info-top {
    display:         flex;
    justify-content: space-between;
    align-items:     flex-start;
    gap:             16px;
}

.mnj-cart__info-left {
    flex:    1;
    min-width: 0;
}

.mnj-cart__name {
    font-size:   15px;
    font-weight: 600;
    margin:      0 0 4px;
    line-height: 1.3;
}
.mnj-cart__name a {
    color:           var(--mnj-black);
    text-decoration: none;
    transition:      color var(--mnj-ease);
}
.mnj-cart__name a:hover { color: var(--mnj-purple); }

.mnj-cart__desc {
    font-size:  13px;
    color:      var(--mnj-gray-400);
    margin:     0;
    line-height: 1.4;
}

.mnj-cart__unit-price {
    font-size:   15px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── Controles de quantidade ── */
.mnj-cart__controls {
    display:     flex;
    align-items: center;
    gap:         16px;
}

/* ── Reset global: anula cores do Hello Elementor em páginas WC (LL-001 definitivo) ── */
body.woocommerce-cart input[type="text"],
body.woocommerce-cart input[type="number"],
body.woocommerce-cart input[type="email"],
body.woocommerce-cart input[type="tel"],
body.woocommerce-cart select,
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout select {
    border-color: var(--mnj-gray-200);
    background:   transparent;
}

/* LL-001: seletores qty escopados em body.woocommerce-cart para sobrescrever
   regras globais de button/input do Hello Elementor e WooCommerce */
body.woocommerce-cart .mnj-cart__qty {
    display:       flex;
    align-items:   center;
    gap:           0;
    border:        1px solid var(--mnj-gray-200);
    border-radius: 10px;
    overflow:      hidden;
    height:        38px;
}

/* sobrescreve regra global de botões — ±qty são ícones transparentes */
body.woocommerce-cart .mnj-cart__qty-btn {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           36px;
    height:          100%;
    background:      transparent !important;
    border:          none !important;
    border-radius:   0 !important;
    cursor:          pointer !important;
    color:           var(--mnj-gray-600) !important;
    font-size:       18px;
    font-weight:     400 !important;
    transition:      background var(--mnj-ease), color var(--mnj-ease);
    flex-shrink:     0;
}
body.woocommerce-cart .mnj-cart__qty-btn:hover {
    background: var(--mnj-gray-100) !important;
    color:      var(--mnj-black) !important;
}

/* !important: sobrescreve regras globais de input do WC/Elementor — LL-001 */
body.woocommerce-cart .mnj-cart__qty-input {
    width:           44px !important;
    height:          38px !important;
    border:          none;
    border-left:     1px solid var(--mnj-gray-200);
    border-right:    1px solid var(--mnj-gray-200);
    text-align:      center;
    font-size:       14px;
    font-weight:     500;
    font-family:     var(--mnj-font-body);
    background:      transparent;
    padding:         0 !important;
    -moz-appearance: textfield;
    outline:         none;
}
body.woocommerce-cart .mnj-cart__qty-input::-webkit-inner-spin-button,
body.woocommerce-cart .mnj-cart__qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.mnj-cart__remove {
    font-size:       13px;
    color:           var(--mnj-gray-400);
    text-decoration: none;
    transition:      color var(--mnj-ease);
}
.mnj-cart__remove:hover { color: #c0392b; }

.mnj-cart__subtotal {
    font-size: 13px;
    color:     var(--mnj-gray-600);
    margin:    0;
}
.mnj-cart__subtotal strong {
    font-weight: 600;
    color:       var(--mnj-black);
}

/* ── Cupom — separador interno; sem borda própria (já dentro de .mnj-cart__totals-box com borda) ── */
body.woocommerce-cart .mnj-cart__coupon-section {
    padding:    0;
    border:     none;
    border-top: 1px solid var(--mnj-gray-100);
}

body.woocommerce-cart .mnj-cart__coupon-label {
    font-size:   13px;
    font-weight: 600;
    margin:      0 0 10px;
    color:       var(--mnj-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

body.woocommerce-cart .mnj-cart__coupon-row {
    display: flex;
    gap:     10px;
}

/* !important: sobrescreve input/border globais do Hello Elementor — LL-001 */
body.woocommerce-cart .mnj-cart__coupon-input {
    flex:          1;
    height:        44px;
    padding:       0 16px !important;
    border:        1px solid var(--mnj-gray-200) !important;
    border-radius: 42px;
    font-size:     14px;
    font-family:   var(--mnj-font-body);
    color:         var(--mnj-black) !important;
    background:    var(--mnj-white);
    outline:       none;
    transition:    border-color var(--mnj-ease);
}
body.woocommerce-cart .mnj-cart__coupon-input:focus { border-color: var(--mnj-purple) !important; }
body.woocommerce-cart .mnj-cart__coupon-input::placeholder { color: var(--mnj-gray-400); }

/* !important: sobrescreve button color/border do Hello Elementor — LL-001 */
body.woocommerce-cart .mnj-cart__coupon-btn {
    height:        44px;
    padding:       0 22px;
    background:    var(--mnj-black) !important;
    color:         var(--mnj-white) !important;
    border:        none !important;
    border-radius: 46px;
    font-size:     14px;
    font-weight:   600;
    font-family:   var(--mnj-font-body);
    cursor:        pointer;
    white-space:   nowrap;
    transition:    background var(--mnj-ease);
}
body.woocommerce-cart .mnj-cart__coupon-btn:hover { background: var(--mnj-purple) !important; }

/* ── Sidebar ── */
.mnj-cart__sidebar {
    position: sticky;
    top:      100px;
}

.mnj-cart__totals-box {
    border:        1px solid var(--mnj-gray-200);
    border-radius: 4px;
    padding:       24px;
    display:       flex;
    flex-direction: column;
    gap:           16px;
}

.mnj-cart__totals-title {
    font-size:    18px;
    font-weight:  700;
    margin:       0 0 4px;
    padding-bottom: 16px;
    border-bottom:  1px solid var(--mnj-gray-200);
}

.mnj-cart__totals-rows {
    display:        flex;
    flex-direction: column;
    gap:            10px;
}

.mnj-cart__totals-row {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    font-size:       14px;
    color:           var(--mnj-gray-600);
}

.mnj-cart__totals-row--discount {
    color: var(--mnj-purple);
}

.mnj-cart__remove-coupon {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    margin-left:     6px;
    color:           var(--mnj-gray-400);
    text-decoration: none;
    font-size:       11px;
    transition:      color var(--mnj-ease);
}
.mnj-cart__remove-coupon:hover { color: #c0392b; }

.mnj-cart__totals-total {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    font-size:       18px;
    font-weight:     700;
    padding-top:     16px;
    border-top:      1px solid var(--mnj-gray-200);
}

/* ── Checkout CTA ── */
.mnj-cart__checkout-btn {
    display:         flex;
    align-items:     center;
    justify-content: center;
    gap:             8px;
    width:           100%;
    height:          52px;
    background:      var(--mnj-black);
    color:           var(--mnj-white);
    border:          none;
    border-radius:   46px;
    font-size:       16px;
    font-weight:     700;
    font-family:     var(--mnj-font-body);
    text-decoration: none;
    cursor:          pointer;
    transition:      background var(--mnj-ease);
}
.mnj-cart__checkout-btn:hover { background: var(--mnj-purple); color: var(--mnj-white); }

.mnj-cart__security-note {
    display:     flex;
    align-items: center;
    gap:         6px;
    font-size:   12px;
    color:       var(--mnj-gray-400);
    text-align:  center;
    justify-content: center;
    margin:      0;
}

/* ── Calculadora de frete ── */
.mnj-cart__shipping-calc {
    border-top:  1px solid var(--mnj-gray-200);
    padding-top: 16px;
}

/* toggle frete: botão textual transparente — sobrescreve regra global */
.mnj-cart__shipping-toggle {
    display:       flex;
    align-items:   center;
    gap:           8px;
    background:    transparent !important;
    border:        none !important;
    border-radius: 0 !important;
    padding:       0;
    font-size:     14px;
    font-weight:   500 !important;
    font-family:   var(--mnj-font-body) !important;
    color:         var(--mnj-gray-600) !important;
    cursor:        pointer !important;
    transition:    color var(--mnj-ease);
    width:         100%;
    text-align:    left;
}
.mnj-cart__shipping-toggle:hover {
    background: transparent !important;
    color: var(--mnj-black) !important;
}

.mnj-cart__ship-caret {
    margin-left:    auto;
    flex-shrink:    0;
    transition:     transform var(--mnj-ease);
}
.mnj-cart__shipping-toggle[aria-expanded="true"] .mnj-cart__ship-caret {
    transform: rotate(180deg);
}

.mnj-cart__ship-form {
    padding-top: 14px;
    display:     flex;
    flex-direction: column;
    gap:         10px;
}

.mnj-cart__cep-row {
    display: flex;
    gap:     8px;
}

.mnj-cart__cep-input {
    flex:          1;
    height:        42px;
    padding:       0 14px;
    border:        1px solid var(--mnj-gray-200);
    border-radius: 42px;
    font-size:     14px;
    font-family:   var(--mnj-font-body);
    color:         var(--mnj-black);
    background:    var(--mnj-white);
    outline:       none;
    transition:    border-color var(--mnj-ease);
}
.mnj-cart__cep-input:focus { border-color: var(--mnj-purple); }
.mnj-cart__cep-input::placeholder { color: var(--mnj-gray-400); }

.mnj-cart__cep-btn {
    height:        42px;
    padding:       0 18px;
    background:    var(--mnj-black);
    color:         var(--mnj-white);
    border:        none;
    border-radius: 42px;
    font-size:     13px;
    font-weight:   600;
    font-family:   var(--mnj-font-body);
    cursor:        pointer;
    white-space:   nowrap;
    transition:    background var(--mnj-ease);
}
.mnj-cart__cep-btn:hover { background: var(--mnj-purple); }

.mnj-cart__no-cep {
    font-size:       12px;
    color:           var(--mnj-gray-400);
    text-decoration: underline;
    transition:      color var(--mnj-ease);
}
.mnj-cart__no-cep:hover { color: var(--mnj-purple); }

.mnj-cart__ship-result {
    font-size:  13px;
    color:      var(--mnj-gray-600);
    padding:    10px 14px;
    background: var(--mnj-gray-50);
    border-radius: 8px;
}

/* ── Estado vazio ── */
.mnj-cart__empty {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    justify-content: center;
    padding:        80px 24px;
    text-align:     center;
    gap:            20px;
}

.mnj-cart__empty-msg {
    font-size: 18px;
    color:     var(--mnj-gray-400);
    margin:    0;
}

.mnj-cart__shop-btn {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    height:          48px;
    padding:         0 32px;
    background:      var(--mnj-black);
    color:           var(--mnj-white);
    border-radius:   46px;
    font-size:       15px;
    font-weight:     600;
    text-decoration: none;
    transition:      background var(--mnj-ease);
}
.mnj-cart__shop-btn:hover { background: var(--mnj-purple); color: var(--mnj-white); }

/* ── Modal de login ── */
.mnj-login-modal {
    background:    var(--mnj-white);
    border-radius: 16px;
    padding:       40px 32px;
    max-width:     400px;
    width:         90%;
    position:      relative;
    display:       flex;
    flex-direction: column;
    align-items:   center;
    gap:           16px;
    text-align:    center;
}

/* botão fechar modal: ícone circular transparente — sobrescreve regra global */
.mnj-login-modal__close {
    position:      absolute;
    top:           16px;
    right:         16px;
    background:    transparent !important;
    border:        none !important;
    border-radius: 50% !important;
    cursor:        pointer !important;
    color:         var(--mnj-gray-400) !important;
    display:       flex;
    align-items:   center;
    justify-content: center;
    padding:       4px;
    transition:    color var(--mnj-ease), background var(--mnj-ease);
}
.mnj-login-modal__close:hover {
    background: var(--mnj-gray-100) !important;
    color: var(--mnj-black) !important;
}

.mnj-login-modal__icon {
    width:         64px;
    height:        64px;
    border-radius: 50%;
    background:    var(--mnj-purple-light);
    display:       flex;
    align-items:   center;
    justify-content: center;
}

.mnj-login-modal__title {
    font-size:   20px;
    font-weight: 700;
    margin:      0;
    color:       var(--mnj-black);
}

.mnj-login-modal__text {
    font-size:  14px;
    color:      var(--mnj-gray-600);
    margin:     0;
    line-height: 1.5;
}

.mnj-login-modal__actions {
    display:        flex;
    flex-direction: column;
    gap:            10px;
    width:          100%;
    margin-top:     8px;
}

.mnj-login-modal__btn {
    display:         flex;
    align-items:     center;
    justify-content: center;
    height:          48px;
    border-radius:   46px;
    font-size:       15px;
    font-weight:     600;
    font-family:     var(--mnj-font-body);
    text-decoration: none;
    transition:      background var(--mnj-ease), color var(--mnj-ease), border-color var(--mnj-ease);
}

.mnj-login-modal__btn--primary {
    background: var(--mnj-black);
    color:      var(--mnj-white);
    border:     2px solid var(--mnj-black);
}
.mnj-login-modal__btn--primary:hover { background: var(--mnj-purple); border-color: var(--mnj-purple); color: var(--mnj-white); }

.mnj-login-modal__btn--outline {
    background: transparent;
    color:      var(--mnj-black);
    border:     2px solid var(--mnj-gray-200);
}
.mnj-login-modal__btn--outline:hover { border-color: var(--mnj-black); }

/* ── Responsivo: tablet ── */
@media (max-width: 900px) {
    .mnj-cart__layout { grid-template-columns: 1fr; }
    .mnj-cart__sidebar { position: static; }
}

/* ── Responsivo: mobile ── */
@media (max-width: 600px) {
    .mnj-cart { padding: 24px var(--mnj-container-pad-mob); }
    .mnj-cart__title { font-size: 22px; }
    .mnj-cart__item { flex-direction: column; gap: 14px; }
    .mnj-cart__img-wrap { width: 80px; height: 80px; }
    .mnj-cart__info-top { flex-direction: column; gap: 6px; }
    .mnj-cart__coupon-row { flex-direction: column; }
    body.woocommerce-cart .mnj-cart__coupon-btn { width: 100%; }
    .mnj-login-modal { padding: 32px 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .mnj-cart__back,
    .mnj-cart__checkout-btn,
    body.woocommerce-cart .mnj-cart__coupon-btn,
    .mnj-cart__cep-btn,
    .mnj-cart__shop-btn,
    body.woocommerce-cart .mnj-cart__qty-btn,
    .mnj-cart__ship-caret { transition: none; }
}

/* ── Frete sidebar: resultados por loja (ADR-003) ── */
.mnj-cart__frete-resultados { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.mnj-cart__frete-loja { display: flex; justify-content: space-between; font-size: 13px; color: var(--mnj-gray-600); padding: 6px 0; border-bottom: 1px solid var(--mnj-gray-100); }
.mnj-cart__frete-loja:last-child { border-bottom: none; }
.mnj-cart__frete-loja-nome { font-weight: 500; color: var(--mnj-black); }
.mnj-cart__frete-loja-valor { color: var(--mnj-gray-400); }

/* ═══════════════════════════════════════════════════════════════════
   Thank You Page — mnj-ty__* (ADR-006)
   body class: woocommerce-order-received
   ═══════════════════════════════════════════════════════════════════ */

/* ── Container principal ── */
.mnj-ty {
    max-width:  1200px;
    margin:     0 auto;
    padding:    60px var(--mnj-container-pad);
}

/* ── Header ── */
.mnj-ty__header {
    text-align:    center;
    margin-bottom: 48px;
}
.mnj-ty__icon {
    width:           64px;
    height:          64px;
    border-radius:   50%;
    background:      var(--mnj-black);
    color:           var(--mnj-white);
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    font-size:       28px;
    margin-bottom:   16px;
}
.mnj-ty__title {
    font-size:   28px;
    font-weight: 700;
    margin:      0 0 8px;
}
.mnj-ty__subtitle {
    font-size: 15px;
    color:     var(--mnj-gray-600);
    margin:    0;
}

/* ── Grid 2 colunas ── */
.mnj-ty__grid {
    display:               grid;
    grid-template-columns: 1fr 420px;
    gap:                   32px;
    align-items:           start;
}

/* ── Coluna confirmação ── */
.mnj-ty__confirm {
    background:    var(--mnj-white);
    border:        1px solid var(--mnj-gray-200);
    border-radius: 16px;
    padding:       32px;
}
.mnj-ty__section { margin-bottom: 28px; }
.mnj-ty__section:last-child { margin-bottom: 0; }
.mnj-ty__section-title {
    font-size:      13px;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color:          var(--mnj-gray-400);
    margin:         0 0 16px;
}
.mnj-ty__info-row {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    padding:         12px 0;
    border-bottom:   1px solid var(--mnj-gray-100);
    font-size:       14px;
}
.mnj-ty__info-row:last-child { border-bottom: none; }
.mnj-ty__info-label { color: var(--mnj-gray-600); }
.mnj-ty__info-value { font-weight: 500; }
.mnj-ty__status-badge {
    display:       inline-block;
    padding:       4px 10px;
    border-radius: 20px;
    font-size:     12px;
    font-weight:   600;
    background:    var(--mnj-gray-100);
    color:         var(--mnj-black);
}
.mnj-ty__address {
    font-size:   14px;
    line-height: 1.6;
    color:       var(--mnj-gray-600);
    margin:      0;
}

/* ── Coluna resumo ── */
.mnj-ty__summary {
    background:    var(--mnj-white);
    border:        1px solid var(--mnj-gray-200);
    border-radius: 16px;
    padding:       32px;
    position:      sticky;
    top:           24px;
}
.mnj-ty__items { list-style: none; margin: 0 0 24px; padding: 0; }
.mnj-ty__item {
    display:       flex;
    gap:           12px;
    padding:       12px 0;
    border-bottom: 1px solid var(--mnj-gray-100);
}
.mnj-ty__item:last-child { border-bottom: none; }
.mnj-ty__item-img {
    width:         56px;
    height:        56px;
    border-radius: 8px;
    object-fit:    cover;
    flex-shrink:   0;
}
.mnj-ty__item-info { flex: 1; min-width: 0; }
.mnj-ty__item-name { font-size: 14px; font-weight: 500; margin: 0 0 2px; }
.mnj-ty__item-qty  { font-size: 12px; color: var(--mnj-gray-400); margin: 0; }
.mnj-ty__item-price { font-size: 14px; font-weight: 600; flex-shrink: 0; }

/* ── Totais ── */
.mnj-ty__totals { border-top: 1px solid var(--mnj-gray-200); padding-top: 16px; }
.mnj-ty__total-row {
    display:         flex;
    justify-content: space-between;
    padding:         6px 0;
    font-size:       14px;
}
.mnj-ty__total-row--final {
    font-size:   16px;
    font-weight: 700;
    border-top:  1px solid var(--mnj-gray-200);
    margin-top:  8px;
    padding-top: 12px;
}

/* ── Botões de ação ── */
.mnj-ty__actions {
    display:        flex;
    flex-direction: column;
    gap:            12px;
    margin-top:     32px;
}
/* !important: sobrescreve .woocommerce button — LL-001 */
body.woocommerce-order-received .mnj-ty__btn-primary {
    display:         flex;
    align-items:     center;
    justify-content: center;
    padding:         14px 24px;
    background:      var(--mnj-black) !important;
    color:           var(--mnj-white) !important;
    border:          none !important;
    border-radius:   999px;
    font-size:       15px;
    font-weight:     600;
    text-decoration: none;
    transition:      background .2s;
}
body.woocommerce-order-received .mnj-ty__btn-primary:hover { background: var(--mnj-purple) !important; color: var(--mnj-white) !important; }
body.woocommerce-order-received .mnj-ty__btn-outline {
    display:         flex;
    align-items:     center;
    justify-content: center;
    padding:         14px 24px;
    background:      transparent !important;
    color:           var(--mnj-black) !important;
    border:          2px solid var(--mnj-gray-200) !important;
    border-radius:   999px;
    font-size:       15px;
    font-weight:     600;
    text-decoration: none;
    transition:      border-color .2s, color .2s;
}
body.woocommerce-order-received .mnj-ty__btn-outline:hover { border-color: var(--mnj-black) !important; }

/* ── Responsivo thank you ── */
@media (max-width: 900px) {
    .mnj-ty__grid { grid-template-columns: 1fr; }
    .mnj-ty__summary { position: static; }
}
@media (max-width: 600px) {
    .mnj-ty { padding: 32px var(--mnj-container-pad-mob); }
    .mnj-ty__title { font-size: 22px; }
    .mnj-ty__confirm,
    .mnj-ty__summary { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce-order-received .mnj-ty__btn-primary,
    body.woocommerce-order-received .mnj-ty__btn-outline { transition: none; }
}

/* ==========================================================================
   PRODUTO — Calculadora de frete mnj-sp__* (MNJ-013)
   Escopo: .single-product (tela de produto individual)
   ========================================================================== */

.mnj-sp__ship-calc {
    margin-top: 16px;
    border-top: 1px solid var(--mnj-gray-200);
    padding-top: 16px;
}

.mnj-sp__ship-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-black);
    margin: 0 0 8px;
}

.mnj-sp__cep-row {
    display: flex;
    gap: 8px;
}

.mnj-sp__cep-input {
    flex: 1;
    height: 42px;
    border: 1px solid var(--mnj-gray-200);
    border-radius: 42px;
    padding: 0 16px;
    font-size: 14px;
    color: var(--mnj-black);
    background: transparent;
    font-family: var(--mnj-font-body);
}

.mnj-sp__cep-input:focus {
    outline: none;
    border-color: var(--mnj-purple);
}

.mnj-sp__cep-btn {
    height: 42px;
    padding: 0 20px;
    background: var(--mnj-black);
    color: var(--mnj-white);
    border: none;
    border-radius: 42px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--mnj-font-body);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease;
}

.mnj-sp__cep-btn:hover {
    background: var(--mnj-gray-800);
}

.mnj-sp__cep-btn:focus-visible {
    outline: 2px solid var(--mnj-purple);
    outline-offset: 2px;
}

.mnj-sp__no-cep {
    font-size: 12px;
    color: var(--mnj-gray-400);
    margin: 4px 0 0;
}

.mnj-sp__no-cep a {
    color: var(--mnj-gray-600);
    text-decoration: underline;
}

.mnj-sp__result {
    margin-top: 12px;
}

.mnj-sp__result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--mnj-gray-100);
    font-size: 13px;
}

.mnj-sp__result-item:last-child {
    border-bottom: none;
}

.mnj-sp__carrier {
    font-weight: 600;
    color: var(--mnj-black);
}

.mnj-sp__deadline {
    color: var(--mnj-gray-600);
    font-size: 12px;
}

.mnj-sp__price {
    font-weight: 700;
    color: var(--mnj-black);
}

.mnj-sp__loading {
    font-size: 13px;
    color: var(--mnj-gray-600);
    padding: 8px 0;
}

.mnj-sp__error {
    font-size: 13px;
    color: #c0392b;
    padding: 8px 0;
    role: alert;
}

@media (prefers-reduced-motion: reduce) {
    .mnj-sp__cep-btn { transition: none; }
}

/* ============================================================
   MNJ-027 — SSO via Google (WP Social mnj-sso__*)
   Estiliza o container injetado pelo WP Social (#xs-social-login-container)
   nas páginas de login WC e wp-login.php. BEM mnj-sso__*.
   ============================================================ */

/* Container WP Social — espaçamento superior */
#xs-social-login-container {
    margin-top: 4px;
}

/* Linha separadora "ou" injetada via PHP (mnj_sso_render_divider) */
.mnj-sso__divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0 16px;
    font-size: 12px;
    color: var(--mnj-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.mnj-sso__divider::before,
.mnj-sso__divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--mnj-gray-200);
}

/* Container WP Social — reset e normalização */
#xs-social-login-container .xs-login,
#xs-social-login-container .xs-login--style-1,
#xs-social-login-container .xs-login--style-2,
#xs-social-login-container .xs-login--style-3,
#xs-social-login-container .xs-login--style-4,
#xs-social-login-container .xs-login--style-5 {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
}

/* Botão individual — override completo para design system mnj */
#xs-social-login-container .xs-login__item {
    display: flex !important; /* Elementor especificidade conflita com display do plugin */
    align-items: center !important;
    justify-content: center !important;
    gap: 10px;
    width: 100%;
    height: 44px;
    padding: 0 20px;
    border: 1.5px solid var(--mnj-gray-200) !important;
    border-radius: var(--mnj-radius-full) !important;
    background: var(--mnj-white) !important;
    color: var(--mnj-gray-900) !important;
    font-family: var(--mnj-font-body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease;
    box-sizing: border-box;
}

#xs-social-login-container .xs-login__item:hover {
    background: var(--mnj-gray-50) !important;
    border-color: var(--mnj-gray-400) !important;
    color: var(--mnj-black) !important;
    text-decoration: none !important;
}

#xs-social-login-container .xs-login__item:focus-visible {
    outline: 2px solid var(--mnj-purple);
    outline-offset: 2px;
}

/* Ícone do botão */
#xs-social-login-container .xs-login__item--icon {
    display: flex !important;
    align-items: center;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

#xs-social-login-container .xs-login__item--icon svg,
#xs-social-login-container .xs-login__item--icon img {
    width: 18px;
    height: 18px;
}

/* Label do botão */
#xs-social-login-container .xs-login__item--label {
    font-size: 14px;
    font-weight: 600;
    color: inherit;
    line-height: 1;
}

/* Overlay de ícone (alguns estilos WP Social) — ocultar */
#xs-social-login-container .xs-login__item--icon-overlay {
    display: none !important;
}

/* Responsivo — mobile base já é 100% width, ajuste de padding tablet+ */
@media (min-width: 768px) {
    #xs-social-login-container .xs-login__item {
        max-width: 360px;
        margin: 0 auto;
    }
}

/* Animações — respeita prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    #xs-social-login-container .xs-login__item { transition: none; }
}

/* =============================================================================
   CHECKOUT ACCORDION (MNJ-004)
   Sanfona: dados pessoais / endereço / frete na coluna direita
   ============================================================================= */

.mnj-co__acc {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 24px;
}

.mnj-co__acc-sec {
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-md);
    background: var(--mnj-white);
    overflow: hidden;
    transition: border-color var(--mnj-ease);
}
.mnj-co__acc-sec--open { border-color: var(--mnj-purple); }

/* sobrescreve regra global — accordion toggle é transparente, texto preto */
.mnj-co__acc-hdr {
    width: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    text-align: left;
    font-family: var(--mnj-font-body) !important;
    font-weight: 500 !important;
    color: var(--mnj-black) !important;
    -webkit-appearance: none;
    transition: background var(--mnj-ease);
}
/* anula #c36 do reset.css do Hello Elementor em TODOS os estados */
button.mnj-co__acc-hdr:hover,
button.mnj-co__acc-hdr:focus,
button.mnj-co__acc-hdr:active,
button.mnj-co__acc-hdr:focus:not(:focus-visible) {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--mnj-black) !important;
    box-shadow: none !important;
    outline: none !important;
}
button.mnj-co__acc-hdr:hover {
    background: rgba(100, 25, 198, 0.05) !important;
}
button.mnj-co__acc-hdr:focus-visible {
    outline: 2px solid var(--mnj-purple) !important;
    outline-offset: -2px !important;
    background: transparent !important;
}
.mnj-co__acc-hdr-static {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px 6px;
}

.mnj-co__acc-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--mnj-gray-200);
    color: var(--mnj-gray-600);
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--mnj-ease), color var(--mnj-ease);
}
.mnj-co__acc-sec--open .mnj-co__acc-num,
.mnj-co__acc-sec--done .mnj-co__acc-num {
    background: var(--mnj-purple);
    color: var(--mnj-white);
}

.mnj-co__acc-hdr-text { flex: 1; min-width: 0; }
.mnj-co__acc-hdr-title {
    display: block;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}
.mnj-co__acc-hdr-summary {
    display: block;
    font-size: 12px;
    color: var(--mnj-gray-500);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mnj-co__acc-chevron {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.mnj-co__acc-chevron::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--mnj-gray-400);
    border-bottom: 2px solid var(--mnj-gray-400);
    transform: rotate(45deg);
    margin-top: -4px;
    transition: transform var(--mnj-ease), border-color var(--mnj-ease);
}
.mnj-co__acc-sec--open .mnj-co__acc-chevron::before {
    transform: rotate(-135deg);
    margin-top: 4px;
    border-color: var(--mnj-purple);
}

.mnj-co__acc-body { padding: 0 18px 18px; }

/* Card com endereço salvo */
.mnj-co__addr-card {
    background: var(--mnj-gray-50);
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-sm);
    padding: 14px 16px;
    margin-bottom: 14px;
}
.mnj-co__addr-card-text {
    font-size: 14px;
    color: var(--mnj-black);
    line-height: 1.6;
    margin: 0 0 10px;
}
/* padrão global: preto → roxo hover */
.mnj-co__addr-card-change {
    background: var(--mnj-black) !important;
    border: none !important;
    border-radius: var(--mnj-radius-full) !important;
    padding: 6px 16px;
    font-size: 13px;
    cursor: pointer !important;
    color: var(--mnj-white) !important;
    font-family: var(--mnj-font-body) !important;
    font-weight: 600 !important;
    transition: background var(--mnj-ease), color var(--mnj-ease);
    display: inline-block;
}
.mnj-co__addr-card-change:hover,
button.mnj-co__addr-card-change:hover {
    background: var(--mnj-purple) !important;
    color: var(--mnj-white) !important;
}

/* Campos pré-preenchidos (read-only) */
.mnj-co__input--ro {
    background:   var(--mnj-gray-50) !important;
    color:        var(--mnj-gray-400) !important;
    cursor:       not-allowed !important;
    border-color: var(--mnj-gray-200) !important;
}
.mnj-co__select--ro {
    background:     var(--mnj-gray-50) !important;
    color:          var(--mnj-gray-400) !important;
    pointer-events: none;
    border-color:   var(--mnj-gray-200) !important;
}

/* Opções de frete */
.mnj-co__ship-placeholder,
.mnj-co__ship-loading {
    font-size: 14px;
    color: var(--mnj-gray-400);
    padding: 6px 0;
    font-style: italic;
}
.mnj-co__ship-error { font-size: 13px; color: #dc2626; padding: 6px 0; }

/* Container por lojista no cálculo de frete */
.mnj-co__ship-seller { margin-bottom: 16px; }
.mnj-co__ship-seller:last-child { margin-bottom: 0; }
.mnj-co__ship-seller-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 8px;
}

.mnj-co__ship-rate {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-sm);
    cursor: pointer;
    margin-bottom: 6px;
    transition: border-color var(--mnj-ease);
    background: var(--mnj-white);
}
.mnj-co__ship-rate:last-child { margin-bottom: 0; }
.mnj-co__ship-rate:hover,
.mnj-co__ship-rate--on { border-color: var(--mnj-purple); }
.mnj-co__ship-rate input[type="radio"] {
    width: 16px; height: 16px; flex-shrink: 0;
    accent-color: var(--mnj-purple); cursor: pointer;
}
.mnj-co__ship-rate-lbl  { flex: 1; font-size: 14px; color: var(--mnj-black); cursor: pointer; }
.mnj-co__ship-rate-price { font-size: 14px; font-weight: 600; color: var(--mnj-black); white-space: nowrap; }

/* Calculadora de CEP no checkout (seção Frete) */
.mnj-co__ship-cep-row {
    display: flex;
    gap: 8px;
    margin-bottom: 6px;
}
.mnj-co__ship-cep-input {
    flex: 1;
    max-width: 160px;
}
/* padrão global: preto → roxo hover */
.mnj-co__ship-cep-btn {
    height: 48px;
    padding: 0 18px;
    background: var(--mnj-black) !important;
    color: var(--mnj-white) !important;
    border: none !important;
    border-radius: var(--mnj-radius-full) !important;
    font-size: 14px;
    font-weight: 600 !important;
    font-family: var(--mnj-font-body) !important;
    cursor: pointer !important;
    white-space: nowrap;
    transition: background var(--mnj-ease);
    -webkit-appearance: none;
}
button.mnj-co__ship-cep-btn:hover,
button.mnj-co__ship-cep-btn:focus,
button.mnj-co__ship-cep-btn:active {
    background: var(--mnj-purple) !important;
    color: var(--mnj-white) !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}
button.mnj-co__ship-cep-btn:focus-visible {
    outline: 2px solid var(--mnj-purple) !important;
    outline-offset: 2px !important;
}
.mnj-co__ship-no-cep {
    display: inline-block;
    font-size: 12px;
    color: var(--mnj-gray-400);
    text-decoration: underline;
    margin-bottom: 10px;
    cursor: pointer;
}
.mnj-co__ship-no-cep:hover { color: var(--mnj-purple); }

/* Wrapper do bloco de cálculo de CEP */
.mnj-co__ship-cep-wrap {
    background: var(--mnj-gray-50);
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-sm);
    padding: 14px 16px;
    margin-bottom: 16px;
}
.mnj-co__ship-cep-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 10px;
}

/* Agrupamento de itens por lojista no checkout */
.mnj-co__seller-group {
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-sm);
    margin-bottom: 12px;
    overflow: hidden;
}
.mnj-co__seller-group:last-child { margin-bottom: 0; }
.mnj-co__seller-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--mnj-gray-50);
    padding: 10px 14px;
    border-bottom: 1px solid var(--mnj-gray-200);
}
.mnj-co__seller-hdr svg { color: var(--mnj-gray-400); flex-shrink: 0; }
.mnj-co__seller-hdr-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-gray-600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.mnj-co__seller-group .mnj-co__items { padding: 0 14px; }
.mnj-co__seller-group .mnj-co__item { border-bottom: 1px solid var(--mnj-gray-100); }
.mnj-co__seller-group .mnj-co__item:last-child { border-bottom: none; }
.mnj-co__seller-rates {
    padding: 12px 14px;
    border-top: 1px solid var(--mnj-gray-100);
    background: var(--mnj-white);
}
.mnj-co__ship-placeholder {
    font-size: 13px;
    color: var(--mnj-gray-400);
    margin: 0;
    font-style: italic;
}
.mnj-co__ship-loading {
    font-size: 13px;
    color: var(--mnj-gray-400);
    margin: 0;
    font-style: italic;
}

/* =============================================================================
   MNJ-020 — Minha Conta (mnj-ma__*)
   Escopo: body.woocommerce-account — nunca vaza para cart/checkout/shop
   ============================================================================= */

/* --- Reset: anula floats e estilos WC/HE na área de conta --- */
body.woocommerce-account .woocommerce {
    max-width: var(--mnj-container);
    margin: 0 auto;
    padding: var(--mnj-sp-8) var(--mnj-container-pad-mob);
}
@media (min-width: 1024px) {
    body.woocommerce-account .woocommerce {
        padding: var(--mnj-sp-12) var(--mnj-container-pad);
    }
}

/* Container raiz: grid mobile-first (1 coluna) */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
    float: none; /* reset WC float */
    width: 100%; /* reset WC width */
}

/* Notices WC na Minha Conta: visual alinhado ao design do site */
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-error,
body.woocommerce-account .woocommerce-info {
    list-style: none !important;
    padding: 12px 16px !important;
    margin: 0 0 16px !important;
    border-radius: var(--mnj-radius-sm) !important;
    font-size: 14px !important;
    font-family: var(--mnj-font-body) !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    border-top: none !important;
}
body.woocommerce-account .woocommerce-message {
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #166534 !important;
}
body.woocommerce-account .woocommerce-error {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    color: #991b1b !important;
}
body.woocommerce-account .woocommerce-info {
    background: var(--mnj-purple-light) !important;
    border: 1px solid rgba(100,25,198,0.2) !important;
    color: var(--mnj-purple-dark) !important;
}
body.woocommerce-account .woocommerce-message::before,
body.woocommerce-account .woocommerce-error::before,
body.woocommerce-account .woocommerce-info::before {
    content: none !important;
}
body.woocommerce-account .woocommerce-message a,
body.woocommerce-account .woocommerce-error a,
body.woocommerce-account .woocommerce-info a {
    color: inherit !important;
    text-decoration: underline !important;
    margin-left: auto !important;
}

/* Grid 2 colunas no desktop */
@media (min-width: 768px) {
    body.woocommerce-account .woocommerce {
        display: grid;
        grid-template-columns: 220px 1fr;
        grid-template-rows: auto auto;
        gap: var(--mnj-sp-8);
        align-items: start;
    }
    /* Notices WC: linha 1, largura total */
    body.woocommerce-account .woocommerce-notices-wrapper {
        grid-column: 1 / -1;
        grid-row: 1;
        margin-bottom: 0;
    }
    /* Navegação lateral: coluna 1, linha 2 */
    body.woocommerce-account .woocommerce-MyAccount-navigation {
        grid-column: 1;
        grid-row: 2;
    }
    /* Conteúdo: coluna 2, linha 2 */
    body.woocommerce-account .woocommerce-MyAccount-content {
        grid-column: 2;
        grid-row: 2;
    }
}

/* --- Sidebar nav --- */
.mnj-ma__nav {
    background: var(--mnj-gray-50);
    border: 1px solid var(--mnj-gray-200);
    border-radius: var(--mnj-radius-md);
    overflow: hidden;
}

.mnj-ma__nav-list {
    list-style: none;
    margin: 0;
    padding: var(--mnj-sp-2) 0;
}

.mnj-ma__nav-item {
    margin: 0;
    border-bottom: 1px solid var(--mnj-gray-200);
}

.mnj-ma__nav-item:last-child {
    border-bottom: none;
}

.mnj-ma__nav-link {
    display: block;
    padding: var(--mnj-sp-4) var(--mnj-sp-5);
    color: var(--mnj-gray-600);
    text-decoration: none;
    font-family: var(--mnj-font-body);
    font-size: 14px;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: color var(--mnj-ease), background var(--mnj-ease), border-color var(--mnj-ease);
}

.mnj-ma__nav-link:hover {
    color: var(--mnj-purple);
    background: var(--mnj-purple-light);
    border-left-color: var(--mnj-purple);
    text-decoration: none;
}

.mnj-ma__nav-link:focus-visible {
    outline: 2px solid var(--mnj-purple);
    outline-offset: -2px;
}

.mnj-ma__nav-link--active {
    color: var(--mnj-purple);
    font-weight: 700;
    border-left-color: var(--mnj-purple);
    background: var(--mnj-purple-light);
}

.mnj-ma__nav-link--active:hover {
    background: var(--mnj-purple-light);
    border-left-color: var(--mnj-purple);
}

/* Customer logout — destaque visual */
.mnj-ma__nav-item.woocommerce-MyAccount-navigation-link--customer-logout .mnj-ma__nav-link {
    color: var(--mnj-gray-400);
    font-size: 13px;
}
.mnj-ma__nav-item.woocommerce-MyAccount-navigation-link--customer-logout .mnj-ma__nav-link:hover {
    color: var(--mnj-black);
}

/* --- Área de conteúdo --- */
body.woocommerce-account .woocommerce-MyAccount-content {
    min-width: 0; /* fix grid overflow */
}

body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: var(--mnj-font-body);
    font-size: 18px;
    font-weight: 700;
    color: var(--mnj-black);
    margin-bottom: var(--mnj-sp-5);
    border-bottom: 1px solid var(--mnj-gray-200);
    padding-bottom: var(--mnj-sp-3);
}

/* --- Reset botões WC dentro da conta --- */
body.woocommerce-account .woocommerce-MyAccount-content .button,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"] {
    background: var(--mnj-black) !important; /* WC button default é roxo/cinza */
    color: var(--mnj-white) !important;
    border: none !important;
    border-radius: var(--mnj-radius-full) !important;
    padding: var(--mnj-sp-3) var(--mnj-sp-8) !important;
    font-family: var(--mnj-font-body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: opacity var(--mnj-ease) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-content .button:hover,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover {
    opacity: 0.85 !important;
}
body.woocommerce-account .woocommerce-MyAccount-content .button:focus-visible,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:focus-visible {
    outline: 2px solid var(--mnj-black);
    outline-offset: 2px;
}

/* --- Tabela de pedidos --- */
body.woocommerce-account .woocommerce-orders-table,
body.woocommerce-account .shop_table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--mnj-gray-200) !important; /* WC usa border padrão */
    border-radius: var(--mnj-radius-md);
    overflow: hidden;
    font-size: 14px;
}
body.woocommerce-account .woocommerce-orders-table thead th,
body.woocommerce-account .shop_table thead th {
    background: var(--mnj-gray-50) !important;
    color: var(--mnj-gray-600) !important;
    font-weight: 600;
    padding: var(--mnj-sp-3) var(--mnj-sp-4);
    text-align: left;
    border-bottom: 1px solid var(--mnj-gray-200) !important;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
body.woocommerce-account .woocommerce-orders-table tbody td,
body.woocommerce-account .shop_table tbody td {
    padding: var(--mnj-sp-4);
    border-bottom: 1px solid var(--mnj-gray-200);
    color: var(--mnj-gray-900);
    vertical-align: middle;
}
body.woocommerce-account .woocommerce-orders-table tbody tr:last-child td,
body.woocommerce-account .shop_table tbody tr:last-child td {
    border-bottom: none;
}

/* Botões de ação dos pedidos (Visualizar / Cancelar) */
body.woocommerce-account .woocommerce-orders-table__cell-order-actions {
    white-space: nowrap;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
    display: inline-flex !important;
    align-items: center !important;
    padding: 6px 16px !important;
    border-radius: var(--mnj-radius-sm, 6px) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    transition: background var(--mnj-ease), color var(--mnj-ease), border-color var(--mnj-ease) !important;
    border: 1px solid transparent !important;
}
/* Visualizar — preto → hover roxo */
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button.view,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.view {
    background: var(--mnj-black, #111) !important;
    color: var(--mnj-white, #fff) !important;
    border-color: var(--mnj-black, #111) !important;
    border-radius: var(--mnj-radius-sm, 6px) !important;
    margin-right: 8px !important;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button.view:hover,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.view:hover {
    background: var(--mnj-purple, #6419c6) !important;
    border-color: var(--mnj-purple, #6419c6) !important;
    color: var(--mnj-white, #fff) !important;
}
/* Cancelar — preto → hover roxo (padrão do site) */
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button.cancel,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.cancel {
    background: var(--mnj-black, #111) !important;
    color: var(--mnj-white, #fff) !important;
    border-color: var(--mnj-black, #111) !important;
    border-radius: var(--mnj-radius-sm, 6px) !important;
}
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .woocommerce-button.cancel:hover,
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button.cancel:hover {
    background: var(--mnj-purple, #6419c6) !important;
    border-color: var(--mnj-purple, #6419c6) !important;
    color: var(--mnj-white, #fff) !important;
}

/* --- Formulários: edit-account e edit-address --- */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row label,
body.woocommerce-account .woocommerce-MyAccount-content .form-row label {
    font-family: var(--mnj-font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--mnj-gray-600);
    margin-bottom: var(--mnj-sp-1);
    display: block;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row input,
body.woocommerce-account .woocommerce-MyAccount-content .form-row input,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row select,
body.woocommerce-account .woocommerce-MyAccount-content .form-row select {
    width: 100%;
    border: 1px solid var(--mnj-gray-200) !important;
    border-radius: var(--mnj-radius-sm) !important;
    padding: var(--mnj-sp-3) var(--mnj-sp-4) !important;
    font-family: var(--mnj-font-body) !important;
    font-size: 14px !important;
    color: var(--mnj-black) !important;
    background: var(--mnj-white) !important;
    transition: border-color var(--mnj-ease) !important;
    box-shadow: none !important;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row input:focus,
body.woocommerce-account .woocommerce-MyAccount-content .form-row input:focus,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row select:focus,
body.woocommerce-account .woocommerce-MyAccount-content .form-row select:focus {
    border-color: var(--mnj-purple) !important;
    outline: none !important;
}

/* Dashboard: esconder o parágrafo welcome padrão do WC */
body.woocommerce-account .woocommerce-MyAccount-content p.woocommerce-customer-details--phone,
body.woocommerce-account .woocommerce-MyAccount-content p.woocommerce-customer-details--email {
    font-size: 14px;
    color: var(--mnj-gray-600);
}

/* --- Mobile: nav empilhada acima do conteúdo --- */
@media (max-width: 767px) {
    body.woocommerce-account .woocommerce {
        display: block;
    }
    .mnj-ma__nav {
        margin-bottom: var(--mnj-sp-6);
    }
    .mnj-ma__nav-list {
        display: flex;
        flex-wrap: wrap;
        gap: 0;
    }
    .mnj-ma__nav-item {
        flex: 1 1 50%;
        border-bottom: 1px solid var(--mnj-gray-200);
        border-right: 1px solid var(--mnj-gray-200);
    }
    .mnj-ma__nav-item:nth-child(2n) {
        border-right: none;
    }
    .mnj-ma__nav-link {
        border-left: none;
        border-bottom: 3px solid transparent;
        text-align: center;
        padding: var(--mnj-sp-3) var(--mnj-sp-2);
        font-size: 13px;
    }
    .mnj-ma__nav-link--active {
        border-left: none;
        border-bottom-color: var(--mnj-purple);
    }
    .mnj-ma__nav-link:hover {
        border-left-color: transparent;
        border-bottom-color: var(--mnj-purple);
    }
    body.woocommerce-account .woocommerce-orders-table,
    body.woocommerce-account .shop_table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* --- prefers-reduced-motion --- */
@media (prefers-reduced-motion: reduce) {
    .mnj-ma__nav-link { transition: none; }
    body.woocommerce-account .woocommerce-MyAccount-content .button,
    body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"] { transition: none !important; }
}

/* ============================================================
   MNJ-QA — Páginas Q&A (FAQ Clientes, Onboarding Lojistas, FAQ Revendedores)
   MNJ-022 | 2026-05-26
   ============================================================ */

.mnj-qa__wrapper {
    max-width: 860px;
    margin: 0 auto;
    padding: 24px 16px 64px;
    font-family: var(--mnj-font-body);
    color: var(--mnj-black);
}

/* Seção */
.mnj-qa__section {
    margin-bottom: 48px;
}

.mnj-qa__section-title {
    font-family: var(--mnj-font-body);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--mnj-black);
    border-bottom: 2px solid var(--mnj-black);
    padding-bottom: 10px;
    margin-bottom: 24px;
}

.mnj-qa__section--intro .mnj-qa__section-title {
    border-bottom-color: var(--mnj-purple);
}

/* Item Q&A */
.mnj-qa__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.mnj-qa__item {
    border-bottom: 1px solid #e8e8e8;
}

.mnj-qa__item:first-child {
    border-top: 1px solid #e8e8e8;
}

.mnj-qa__question {
    font-family: var(--mnj-font-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--mnj-black);
    margin: 0;
    padding: 18px 40px 18px 0;
    cursor: pointer;
    position: relative;
    line-height: 1.4;
    user-select: none;
}

.mnj-qa__question::after {
    content: '+';
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--mnj-purple);
    line-height: 1;
    transition: transform 0.2s ease;
}

.mnj-qa__item--open .mnj-qa__question::after {
    transform: translateY(-50%) rotate(45deg);
}

.mnj-qa__answer {
    padding: 0 0 20px;
    color: #444;
    font-size: 0.95rem;
    line-height: 1.7;
    display: none;
}

.mnj-qa__item--open .mnj-qa__answer {
    display: block;
}

.mnj-qa__answer p { margin: 0 0 12px; }
.mnj-qa__answer p:last-child { margin-bottom: 0; }

.mnj-qa__answer ul,
.mnj-qa__answer ol {
    padding-left: 24px;
    margin: 8px 0 12px;
}

.mnj-qa__answer li {
    margin-bottom: 6px;
    line-height: 1.6;
}

/* Passo a passo (Onboarding Lojistas) */
.mnj-qa__steps {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.mnj-qa__step {
    border-left: 3px solid var(--mnj-purple);
    padding: 20px 20px 20px 24px;
    margin-bottom: 16px;
    background: #fafafa;
    border-radius: 0 8px 8px 0;
}

.mnj-qa__step-title {
    font-family: var(--mnj-font-body);
    font-size: 1rem;
    font-weight: 700;
    color: var(--mnj-black);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mnj-qa__step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--mnj-purple);
    color: var(--mnj-white);
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
}

.mnj-qa__step-result {
    background: #f0faf0;
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 0.9rem;
    color: #2d6a2d;
    margin: 12px 0 0;
}

/* Seção intro (sem accordion) */
.mnj-qa__section--intro .mnj-qa__answer {
    display: block;
    padding: 0;
}

/* Desktop */
@media (min-width: 768px) {
    .mnj-qa__wrapper {
        padding: 40px 32px 80px;
    }

    .mnj-qa__section-title {
        font-size: 1.375rem;
    }

    .mnj-qa__question {
        font-size: 1.0625rem;
        padding: 20px 48px 20px 0;
    }

    .mnj-qa__answer {
        font-size: 1rem;
    }
}

@media (min-width: 1024px) {
    .mnj-qa__wrapper {
        padding: 48px 0 96px;
    }
}

/* Acessibilidade — foco visível */
.mnj-qa__question:focus-visible {
    outline: 2px solid var(--mnj-purple);
    outline-offset: 2px;
    border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .mnj-qa__question::after { transition: none; }
    .mnj-qa__answer { transition: none; }
}

/* ══════════════════════════════════════════════════════════════
   OVERRIDES GLOBAIS — botões ícone/fechar sem classe mnj-*
   Sobrescreve regra global de botões para IDs específicos
   ══════════════════════════════════════════════════════════════ */
#mnj-pq-close,
.mnj-modal__close {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    color: inherit !important;
    font-weight: 400 !important;
}
#mnj-pq-close:hover,
.mnj-modal__close:hover {
    background: rgba(0,0,0,0.08) !important;
    color: var(--mnj-black) !important;
}
