/* --------------------------------------------------------------
   Catalog
   -------------------------------------------------------------- */

.catalog-page {
    padding-block:
        var(--space-16);
}


.catalog-page > .container-wide {
    display: grid;

    gap:
        var(--space-10);
}


.catalog-page header {
    max-width:
        760px;
}


.catalog-page header > span {
    display: block;

    margin-bottom:
        var(--space-3);

    color:
        var(--color-primary);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.14em;

    text-transform:
        uppercase;
}


.catalog-page header h1 {
    margin-bottom:
        var(--space-4);

    font-size:
        clamp(2.2rem, 5vw, 4.5rem);

    letter-spacing:
        -0.045em;
}


.catalog-page header p {
    max-width:
        640px;

    margin-bottom:
        0;

    color:
        var(--color-text-muted);

    line-height:
        var(--line-height-relaxed);
}


/* Category navigation
   -------------------------------------------------------------- */

.catalog-category-nav {
    display: flex;
    flex-wrap: wrap;

    gap:
        var(--space-2);
}


.catalog-category-nav a {
    padding:
        var(--space-2)
        var(--space-4);

    border:
        1px solid var(--color-border);

    border-radius:
        var(--radius-pill);

    background:
        var(--color-surface);

    font-size:
        var(--font-size-sm);

    font-weight:
        var(--font-weight-medium);

    text-decoration:
        none;
}


.catalog-category-nav a:hover {
    border-color:
        var(--color-primary);
}


.catalog-category-nav a[aria-current="page"] {
    border-color:
        var(--color-primary);

    background:
        var(--color-primary);

    color:
        var(--color-white);
}


/* Toolbar
   -------------------------------------------------------------- */

.catalog-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap:
        var(--space-6);

    padding-block:
        var(--space-4);

    border-top:
        1px solid var(--color-border);

    border-bottom:
        1px solid var(--color-border);
}


.catalog-result-count {
    margin:
        0;

    color:
        var(--color-text-muted);

    font-size:
        var(--font-size-sm);
}


.catalog-sort {
    display: flex;
    align-items: center;

    gap:
        var(--space-3);
}


.catalog-sort label {
    color:
        var(--color-text-muted);

    font-size:
        var(--font-size-sm);
}


.catalog-sort select {
    min-width:
        210px;

    padding:
        var(--space-3)
        var(--space-4);

    border:
        1px solid var(--color-border);

    border-radius:
        var(--radius-md);

    background:
        var(--color-surface);

    color:
        var(--color-text);

    cursor:
        pointer;
}


/* HTMX interaction states
   -------------------------------------------------------------- */

.catalog-results {
    transition:
        opacity 160ms ease;
}


.catalog-results.htmx-request {
    opacity:
        0.62;

    cursor:
        progress;
}


.catalog-results.htmx-request .catalog-product-grid,
.catalog-results.htmx-request .catalog-empty {
    pointer-events:
        none;
}


.catalog-sort select:disabled {
    cursor:
        wait;

    opacity:
        0.7;
}


/* Product grid
   -------------------------------------------------------------- */

.catalog-product-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        var(--space-6);
}


/* Empty state
   -------------------------------------------------------------- */

.catalog-empty {
    max-width:
        720px;

    padding:
        var(--space-12);

    border:
        1px solid var(--color-border);

    border-radius:
        var(--radius-lg);

    background:
        var(--color-surface);
}


.catalog-empty-eyebrow {
    display: block;

    margin-bottom:
        var(--space-3);

    color:
        var(--color-primary);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.14em;

    text-transform:
        uppercase;
}


.catalog-empty h2 {
    margin-bottom:
        var(--space-4);

    font-size:
        clamp(1.6rem, 3vw, 2.4rem);

    letter-spacing:
        -0.03em;
}


.catalog-empty p {
    max-width:
        560px;

    margin-bottom:
        var(--space-6);

    color:
        var(--color-text-muted);

    line-height:
        var(--line-height-relaxed);
}


.catalog-empty p:last-child {
    margin-bottom:
        0;
}


@media (max-width: 1000px) {

    .catalog-product-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


@media (max-width: 760px) {

    .catalog-page {
        padding-block:
            var(--space-10);
    }


    .catalog-toolbar {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .catalog-sort {
        justify-content:
            space-between;
    }


    .catalog-sort select {
        min-width:
            0;

        width:
            min(100%, 240px);
    }


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

}


@media (max-width: 480px) {

    .catalog-product-grid {
        grid-template-columns:
            1fr;
    }


    .catalog-sort {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .catalog-sort select {
        width:
            100%;
    }

}


/* --------------------------------------------------------------
   Catalog responsive refinements
   -------------------------------------------------------------- */

@media (min-width: 761px) {

    .catalog-page {
        padding-block:
            var(--space-12)
            var(--space-16);
    }


    .catalog-page > .container-wide {
        gap:
            var(--space-8);
    }


    .catalog-page header h1 {
        max-width:
            720px;

        font-size:
            clamp(2.75rem, 4.5vw, 4rem);
    }


    .catalog-product-grid {
        align-items:
            start;
    }

}


@media (max-width: 760px) {

    .catalog-page {
        padding-block:
            var(--space-8)
            var(--space-12);
    }


    .catalog-page > .container-wide {
        gap:
            var(--space-8);
    }


    .catalog-page header h1 {
        font-size:
            clamp(2rem, 10vw, 2.75rem);

        line-height:
            1.02;
    }


    .catalog-page header p {
        line-height:
            var(--line-height-normal);
    }


    .catalog-toolbar {
        gap:
            var(--space-4);

        padding-block:
            var(--space-4);
    }


    .catalog-sort {
        gap:
            var(--space-2);
    }


    .catalog-sort select {
        min-height:
            44px;
    }


    .catalog-empty {
        padding:
            var(--space-8);
    }

}


@media (max-width: 480px) {

    .catalog-page > .container-wide {
        gap:
            var(--space-6);
    }


    .catalog-category-nav {
        gap:
            var(--space-2);
    }


    .catalog-product-grid {
        width:
            100%;
    }


    .catalog-product-grid .product-card-media {
        aspect-ratio:
            4 / 3;
    }


    .catalog-product-grid .product-card-media img {
        object-fit:
            contain;

        padding:
            var(--space-6);
    }


    .catalog-product-grid .product-card-info {
        padding:
            var(--space-5);
    }


    .catalog-empty {
        padding:
            var(--space-6);
    }

}
/* Pulso v1.2 — catalog heading typography */
.catalog-page h1, .catalog-page h2 {
    font-family: var(--font-family-display, Georgia, serif);
}

/* J8: catálogo compacto no mobile, consistente com favoritos. */
@media (max-width: 600px) {
  .catalog-product-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .catalog-product-grid > * {min-width:0;}
  .catalog-product-grid .product-card-media {aspect-ratio:1/1;}
  .catalog-product-grid .product-card-media img {padding:10px;object-fit:contain;}
  .catalog-product-grid .product-card-info {padding:10px 10px 0;}
  .catalog-product-grid .product-card-info h3 {font-size:clamp(.88rem,3.8vw,1.05rem);overflow-wrap:anywhere;}
  .catalog-product-grid .product-card-actions {grid-template-columns:minmax(0,1fr) 38px;gap:5px;padding-inline:8px;}
  .catalog-product-grid .product-card-actions button {font-size:.73rem;min-height:38px;padding:5px;}
  .catalog-product-grid .product-card-price {font-size:clamp(.83rem,3.5vw,1rem);}
}

/* PULSO426_DISCOUNT */
.pulso-card-discount{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;color:#657269;font-size:.82rem}.pulso-discount-tag{display:inline-block;background:#dbeed9;color:#204a35;border-radius:999px;padding:.2rem .5rem;font:700 .75rem/1.4 sans-serif}

/* PULSO426B_DISCOUNT_READABILITY */
.pulso-discount-tag{background:#204a35!important;color:#fff!important;border:1px solid #204a35!important;border-radius:999px;padding:.35rem .65rem;font-size:.9rem;font-weight:800;line-height:1.3;white-space:nowrap;letter-spacing:.01em}
.pulso-price-saving{color:#204a35;font-size:.95rem;font-weight:500}.pulso-price-saving strong{font-weight:800}
.pulso-card-discount .pulso-discount-tag{font-size:.85rem;padding:.25rem .5rem}
