/*
 * ==========================================================
 * GUILDA NERDS — CATÁLOGO V12 VISUAL — REVISÃO 2
 * 18/09/2026
 *
 * Substitui o conteúdo da V12 anterior.
 * Somente FRONT-END. Não altera PHP, preços, estoque,
 * carrinho, header ou regras comerciais.
 * ==========================================================
 */

:root {
    --gn-catalog-purple: var(--color-primary, #672bbf);
    --gn-catalog-purple-dark: var(--color-primary-dark, #2e1065);
    --gn-catalog-purple-soft: #f6f1ff;

    --gn-catalog-green: #168451;
    --gn-catalog-green-dark: #12663f;
    --gn-catalog-green-soft: #e3f5ea;

    --gn-catalog-gold: #d99a18;
    --gn-catalog-gold-dark: #704700;
    --gn-catalog-gold-soft: #fff1c8;

    --gn-catalog-text: #211b29;
    --gn-catalog-muted: #665e70;
    --gn-catalog-border: #e6e0eb;
}

/*
 * ==========================================================
 * LISTAGEM
 * ==========================================================
 *
 * A sidebar permanece no DOM porque o drawer desktop
 * aprovado clona os links reais dela.
 */

.catalog-layout {
    display: block !important;
    grid-template-columns: none !important;
}

.catalog-layout > .catalog-sidebar {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.catalog-layout > section {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

.catalog-header {
    margin-bottom: 18px !important;
}

.catalog-header h1 {
    margin-bottom: 5px !important;
}

.catalog-header p {
    color: var(--gn-catalog-muted) !important;
}

.catalog-results-header {
    gap: 16px !important;
    margin-bottom: 16px !important;
    padding-bottom: 13px !important;
    border-bottom: 1px solid #eee9f2 !important;
}

.catalog-results-header h2 {
    color: var(--gn-catalog-text) !important;
}

.catalog-results-count {
    padding: 7px 11px !important;
    border: 1px solid #eee8f4 !important;
    border-radius: 999px !important;
    color: #62596d !important;
    background: #faf8fc !important;
}

/* 3 colunas reais usando toda a largura disponível */
.catalog-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;
}


/*
 * ==========================================================
 * CARD
 * ==========================================================
 */

.product-card {
    position: relative;
    display: flex !important;
    flex-direction: column !important;

    min-width: 0;

    overflow: hidden !important;

    border: 1px solid var(--gn-catalog-border) !important;
    border-radius: 18px !important;

    background: #fff !important;

    box-shadow:
        0 6px 20px
        rgba(42, 27, 70, 0.055) !important;

    transform: none !important;
}

.product-card:hover {
    transform: none !important;

    border-color: #d7cce4 !important;

    box-shadow:
        0 10px 26px
        rgba(42, 27, 70, 0.085) !important;
}


/*
 * ==========================================================
 * GALERIA
 * ==========================================================
 */

.product-card-gallery {
    padding:
        12px
        12px
        8px !important;

    background: #fff !important;
}

.product-main-image-container,
.product-no-image {
    height: 275px !important;

    overflow: hidden !important;

    border-radius: 13px !important;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #faf9fc 100%
        ) !important;
}

.product-main-image-link {
    display: flex !important;

    width: 100% !important;
    height: 100% !important;

    align-items: center !important;
    justify-content: center !important;

    touch-action: pan-y;

    user-select: none;
    -webkit-user-drag: none;
}

.product-main-image {
    display: block !important;

    width: 94% !important;
    height: 94% !important;

    object-fit: contain !important;

    transform: none !important;
    transition: none !important;

    pointer-events: none;

    user-select: none;
    -webkit-user-drag: none;
}

/* ZOOM/MOVIMENTO DESATIVADO EM TODAS AS SITUAÇÕES */
.product-card:hover .product-main-image,
.product-main-image:hover,
.product-main-image-link:hover .product-main-image {
    transform: none !important;
}


/*
 * ==========================================================
 * MINIATURAS
 * ==========================================================
 */

.product-thumbnails {
    display: flex !important;

    gap: 6px !important;

    margin-top: 8px !important;

    padding:
        1px
        1px
        3px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    overscroll-behavior-inline: contain;

    scrollbar-width: thin;

    -webkit-overflow-scrolling: touch;
}

.product-thumbnail-button {
    width: 42px !important;
    height: 42px !important;

    flex:
        0
        0
        42px !important;

    padding: 2px !important;

    overflow: hidden !important;

    border:
        1px solid
        #e2dce8 !important;

    border-radius: 8px !important;

    background: #fff !important;

    opacity: 0.88;
}

.product-thumbnail-button:hover {
    opacity: 1;

    border-color:
        #bda8dd !important;
}

.product-thumbnail-button.is-selected {
    opacity: 1;

    border:
        2px solid
        var(--gn-catalog-purple) !important;

    box-shadow:
        0 0 0 2px
        rgba(103, 43, 191, 0.08) !important;
}


/*
 * ==========================================================
 * SELOS — PALETA APROVADA
 * ==========================================================
 *
 * Destaque   = dourado
 * Lançamento = roxo/lilás
 * PIX OFF    = verde
 */

.product-image-badges {
    gap: 6px !important;
}

.product-image-badge {
    padding:
        6px
        9px !important;

    border:
        1px solid
        #edc96f !important;

    border-radius: 999px !important;

    color:
        var(--gn-catalog-gold-dark) !important;

    background:
        var(--gn-catalog-gold-soft) !important;

    box-shadow:
        0 3px 8px
        rgba(112, 71, 0, 0.10) !important;

    font-size: 0.67rem !important;
    font-weight: 900 !important;
}

.product-image-badge-new {
    border-color:
        #d8c4f5 !important;

    color:
        var(--gn-catalog-purple-dark) !important;

    background:
        #efe7ff !important;

    box-shadow:
        0 3px 8px
        rgba(73, 35, 126, 0.08) !important;
}


/*
 * ==========================================================
 * CONTEÚDO
 * ==========================================================
 */

.product-card-content {
    display: flex !important;

    flex:
        1
        1
        auto !important;

    flex-direction: column !important;

    padding:
        14px
        15px
        15px !important;

    border-top:
        1px solid
        #f0edf3 !important;

    background: #fff !important;
}

.product-category {
    margin:
        0
        0
        4px !important;

    color:
        var(--gn-catalog-purple) !important;

    font-size: 0.69rem !important;
    font-weight: 900 !important;

    letter-spacing: 0.075em !important;

    text-transform: uppercase;
}

.product-card-title {
    min-height: 2.45em !important;

    margin:
        0
        0
        6px !important;

    color:
        var(--gn-catalog-text) !important;

    font-size: 1.04rem !important;
    font-weight: 900 !important;

    line-height: 1.23 !important;
}

.product-short-description {
    margin-bottom: 7px !important;

    color:
        var(--gn-catalog-muted) !important;
}

.product-details-link {
    align-self: flex-start;

    margin:
        1px
        0
        10px !important;

    color:
        var(--gn-catalog-purple) !important;

    font-size: 0.78rem !important;
    font-weight: 900 !important;

    text-decoration: none !important;
}

.product-details-link::after {
    content: " →";
}

.product-details-link:hover {
    color:
        var(--gn-catalog-purple-dark) !important;

    text-decoration: underline !important;
}


/*
 * ==========================================================
 * BLOCO COMERCIAL
 * ==========================================================
 */

.product-card-price-highlight {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        auto !important;

    gap: 12px !important;

    align-items: center !important;

    margin:
        auto
        0
        10px !important;

    padding:
        10px
        11px !important;

    border:
        1px solid
        #e4d8f5 !important;

    border-radius: 12px !important;

    background:
        #f8f4ff !important;
}

.product-card-pix-primary {
    min-width: 0;

    gap: 2px !important;
}

.product-card-pix-label {
    display: flex !important;

    flex-wrap: wrap;

    align-items: center !important;

    gap: 5px !important;

    color:
        #4f4659 !important;

    font-size: 0.66rem !important;
    font-weight: 800 !important;
}

.product-card-price-highlight.has-pix-price
.product-card-pix-label > small {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;

    padding:
        4px
        7px !important;

    border:
        1px solid
        #bfe5cf !important;

    border-radius: 999px !important;

    color:
        var(--gn-catalog-green-dark) !important;

    background:
        var(--gn-catalog-green-soft) !important;

    font-size: 0.61rem !important;
    font-weight: 900 !important;

    line-height: 1 !important;

    white-space: nowrap !important;
}

.product-card-pix-primary > strong,
.product-card-price-highlight > div:first-child > strong {
    color:
        var(--gn-catalog-purple-dark) !important;

    font-size: 1.28rem !important;
    font-weight: 950 !important;

    line-height: 1.08 !important;
}

.product-card-price-condition {
    color:
        var(--gn-catalog-muted) !important;

    font-size: 0.63rem !important;
}

.product-card-regular-price {
    display: flex !important;

    flex-direction: row !important;

    gap: 4px !important;

    align-items: baseline !important;

    color:
        #514858 !important;

    font-size: 0.72rem !important;

    white-space: nowrap !important;
}

.product-card-regular-price strong {
    color:
        var(--gn-catalog-text) !important;

    font-size: 0.83rem !important;
}


/*
 * ==========================================================
 * QUANTIDADE + ADICIONAR
 * ==========================================================
 */

.product-sku.is-single-sku {
    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;
}

.product-add-form {
    display: grid !important;

    grid-template-columns:
        112px
        minmax(0, 1fr) !important;

    gap: 8px !important;

    align-items: stretch !important;

    margin-top: 7px !important;
}

.product-quantity-stepper {
    width: 100% !important;
    min-height: 40px !important;

    grid-template-columns:
        34px
        minmax(30px, 1fr)
        34px !important;

    overflow: hidden;

    border:
        1px solid
        #d9d1e2 !important;

    border-radius: 999px !important;

    background: #fff !important;
}

.product-quantity-stepper input {
    min-width: 0 !important;
    min-height: 40px !important;

    color:
        var(--gn-catalog-purple-dark) !important;

    background: #fff !important;

    font-size: 0.84rem !important;
    font-weight: 900 !important;
}

.product-quantity-stepper-button {
    min-height: 40px !important;

    color:
        var(--gn-catalog-purple) !important;

    background: #fff !important;

    font-size: 1.08rem !important;
    font-weight: 900 !important;
}

.product-add-form > .button {
    width: 100% !important;
    min-height: 40px !important;

    padding:
        8px
        12px !important;

    border-radius: 10px !important;

    color: #fff !important;

    background:
        var(--gn-catalog-purple-dark) !important;

    font-size: 0.78rem !important;
    font-weight: 900 !important;

    white-space: nowrap;
}

.product-add-form > .button:hover {
    color: #fff !important;

    background:
        var(--gn-catalog-purple) !important;
}


/*
 * ==========================================================
 * FEEDBACK DO CARRINHO
 * ==========================================================
 */

.product-cart-feedback {
    border-color:
        #bde4cc !important;

    color:
        var(--gn-catalog-green-dark) !important;

    background:
        #eaf8f0 !important;
}

.product-cart-feedback-icon {
    color: #fff !important;

    background:
        var(--gn-catalog-green) !important;
}


/*
 * ==========================================================
 * TABLET
 * ==========================================================
 */

@media (
    min-width: 681px
)
and (
    max-width: 1050px
) {

    .catalog-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            ) !important;
    }

    .product-main-image-container,
    .product-no-image {
        height: 260px !important;
    }
}


/*
 * ==========================================================
 * MOBILE
 * ==========================================================
 */

@media (
    max-width: 680px
) {

    .catalog-header {
        margin-bottom: 12px !important;
    }

    .catalog-results-header {
        gap: 7px !important;

        margin-bottom: 12px !important;

        padding-bottom: 10px !important;
    }

    .catalog-grid {
        grid-template-columns:
            minmax(0, 1fr) !important;

        gap: 14px !important;
    }

    .product-card {
        border-radius: 15px !important;
    }

    .product-card-gallery {
        padding:
            9px
            9px
            7px !important;
    }

    .product-main-image-container,
    .product-no-image {
        height: 220px !important;
    }

    .product-main-image {
        width: 95% !important;
        height: 95% !important;
    }

    .product-thumbnails {
        gap: 6px !important;

        margin-top: 7px !important;
    }

    .product-thumbnail-button {
        width: 40px !important;
        height: 40px !important;

        flex-basis: 40px !important;
    }

    .product-card-content {
        padding:
            12px
            12px
            13px !important;
    }

    .product-card-title {
        min-height: 0 !important;

        font-size: 1rem !important;
    }

    .product-details-link {
        margin-bottom: 9px !important;
    }

    .product-card-price-highlight {
        gap: 8px !important;

        margin-bottom: 9px !important;

        padding:
            9px
            10px !important;
    }

    .product-card-pix-primary > strong,
    .product-card-price-highlight > div:first-child > strong {
        font-size: 1.24rem !important;
    }

    .product-add-form {
        grid-template-columns:
            116px
            minmax(0, 1fr) !important;

        gap: 7px !important;
    }

    .product-add-form > .button {
        padding-inline: 9px !important;

        font-size: 0.76rem !important;
    }
}


/*
 * ==========================================================
 * CELULARES MUITO ESTREITOS
 * ==========================================================
 */

@media (
    max-width: 360px
) {

    .product-add-form {
        grid-template-columns:
            106px
            minmax(0, 1fr) !important;

        gap: 6px !important;
    }

    .product-quantity-stepper {
        grid-template-columns:
            31px
            minmax(28px, 1fr)
            31px !important;
    }

    .product-add-form > .button {
        padding-inline: 7px !important;

        font-size: 0.71rem !important;
    }
}
