/* Catalog presentation — DS ProductThumb, StockBadge, Price, ProductCard */

.dc-product-thumb {
    position: relative;
    overflow: hidden;
    border-radius: var(--dc-radius-input);
    background: var(--dc-hueso);
    border: var(--dc-border-width) solid var(--dc-ceniza);
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 4 / 3;
}

.dc-product-thumb--square {
    aspect-ratio: 1;
}

.dc-product-thumb__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dc-product-thumb__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    color: var(--dc-ceniza);
}

.dc-stock-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-family: var(--dc-font-text);
    font-size: 0.75rem;
    font-weight: var(--dc-weight-semibold);
    line-height: var(--dc-lh-caption);
}

.dc-stock-badge__dot {
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: var(--dc-radius-pill);
    flex: 0 0 auto;
}

.dc-stock-badge--ok {
    color: var(--ab2b-success);
}

.dc-stock-badge--ok .dc-stock-badge__dot {
    background: var(--ab2b-success);
}

.dc-stock-badge--low {
    color: var(--ab2b-warning);
}

.dc-stock-badge--low .dc-stock-badge__dot {
    background: var(--ab2b-warning);
}

.dc-stock-badge--order {
    color: var(--ab2b-error);
}

.dc-stock-badge--order .dc-stock-badge__dot {
    background: var(--ab2b-error);
}

.dc-stock-badge--discontinued {
    color: var(--dc-gris);
}

.dc-price {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    font-family: var(--dc-font-text);
}

.dc-price--inline {
    flex-direction: row;
    align-items: baseline;
    gap: var(--ab2b-space-2);
}

.dc-price--locked {
    flex-direction: row;
    align-items: center;
    gap: var(--ab2b-space-2);
}

.dc-price__row {
    display: inline-flex;
    align-items: baseline;
    gap: var(--dc-space-1);
}

.dc-price__amount {
    font-weight: var(--dc-weight-semibold);
    font-size: var(--dc-size-h3);
    color: var(--dc-tinta);
    font-variant-numeric: var(--dc-numeric-tabular);
    letter-spacing: -0.0125rem;
}

.dc-price--lg .dc-price__amount {
    font-size: var(--dc-size-h2);
}

.dc-price__unit {
    font-size: var(--dc-size-small);
    color: var(--dc-gris);
}

.dc-price__meta {
    display: inline-flex;
    align-items: center;
    gap: var(--ab2b-space-2);
    flex-wrap: wrap;
}

.dc-price__tax {
    font-size: 0.75rem;
    color: var(--dc-gris);
    white-space: nowrap;
}

.dc-price__pvr {
    font-size: 0.75rem;
    color: var(--dc-gris);
    font-variant-numeric: var(--dc-numeric-tabular);
}

.dc-price__saving {
    padding: 0.125rem var(--dc-space-2);
    border-radius: var(--dc-radius-pill);
    background: var(--dc-lima-300);
    color: var(--dc-musgo);
    font-size: 0.75rem;
    font-weight: var(--dc-weight-semibold);
}

.dc-price__locked-link {
    font-size: var(--dc-size-body-s);
    font-weight: var(--dc-weight-semibold);
    color: var(--dc-musgo);
    text-decoration: none;
}

a.dc-price__locked-link:visited {
    color: var(--dc-musgo);
}

.dc-price__locked-link:hover,
a.dc-price__locked-link:visited:hover,
.dc-price__locked-link:focus-visible {
    color: var(--dc-pino);
    text-decoration: underline;
}

.dc-product-card {
    display: flex;
    flex-direction: column;
    gap: var(--ab2b-space-3);
    transition:
        border-color var(--dc-transition),
        box-shadow var(--dc-transition),
        transform var(--dc-transition);
}

.dc-product-card:hover,
.dc-product-card:focus-within {
    border-color: var(--dc-musgo);
    box-shadow: var(--dc-shadow-lift);
    transform: translateY(-0.125rem);
}

/* Home Catálogo / Los más pedidos: sin elevación (maqueta A1). */
.dc-home-catalog .dc-product-card:hover,
.dc-home-catalog .dc-product-card:focus-within,
.dc-home-featured .dc-product-card:hover,
.dc-home-featured .dc-product-card:focus-within {
    border-color: var(--ab2b-border);
    box-shadow: var(--dc-shadow-1);
    transform: none;
}

/* Catalog index (A2): sin elevación en tarjetas del grid. */
main#dc-catalog-main .dc-catalog-index__card .dc-product-card:hover,
main#dc-catalog-main .dc-catalog-index__card .dc-product-card:focus-within {
    border-color: var(--dc-ceniza);
    box-shadow: var(--dc-shadow-1);
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .dc-product-card {
        transition: border-color var(--dc-transition);
    }

    .dc-product-card:hover,
    .dc-product-card:focus-within {
        transform: none;
    }
}

.dc-product-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.dc-product-card__ref {
    font-size: var(--dc-size-caption);
    letter-spacing: var(--dc-ls-caption);
    text-transform: uppercase;
    color: var(--dc-gris);
    font-weight: var(--dc-weight-semibold);
    font-variant-numeric: var(--dc-numeric-tabular);
}

.dc-product-card__title {
    font-family: var(--dc-font-display);
    font-weight: var(--dc-weight-bold);
    font-size: var(--dc-size-h3);
    line-height: var(--dc-lh-h3);
    color: var(--dc-tinta);
    margin: 0;
}

.dc-product-card__title-link,
.dc-product-card__title-link:visited {
    color: inherit;
    font: inherit;
    text-decoration: none;
}

.dc-product-card__title-link:hover,
.dc-product-card__title-link:focus-visible {
    color: var(--dc-musgo);
    text-decoration: none;
}

.dc-product-card__attrs {
    font-size: var(--dc-size-small);
    color: var(--dc-gris);
    line-height: var(--dc-lh-small);
}

.dc-product-card__footer {
    display: flex;
    flex-direction: column;
    gap: var(--ab2b-space-3);
    margin-top: auto;
}

/* A2 index + A3 listing — shared grid card skin (inner .dc-product-card; commerce uses outer shell only) */
.dc-catalog-index__card .dc-product-card,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card:not(.dc-catalog-grid__card--commerce) .dc-product-card {
    flex: 1 1 auto;
    height: 100%;
    margin: 0;
    gap: var(--dc-space-3);
}

.dc-catalog-index__card .dc-product-card__title,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__title,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-card__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-size: var(--dc-size-h3);
    line-height: var(--dc-lh-h3);
}

.dc-catalog-index__card .dc-product-thumb,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-thumb,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-thumb {
    aspect-ratio: 4 / 3;
    width: 100%;
    border-radius: var(--dc-radius-input);
    overflow: hidden;
    line-height: 0;
}

.dc-catalog-index__card .dc-product-thumb img,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-thumb img,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dc-catalog-index__card .dc-product-card__footer,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__footer,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-card__footer {
    gap: var(--dc-space-2);
}

.dc-catalog-index__card .dc-product-card__finish,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__finish,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-card__finish {
    display: flex;
    align-items: center;
    gap: var(--dc-space-2);
    min-width: 0;
}

.dc-catalog-index__card .dc-product-card__swatch,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__swatch,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-card__swatch {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    border-radius: var(--dc-radius-pill);
    border: 1px solid var(--dc-ceniza);
}

.dc-catalog-index__card .dc-product-card__finish-label,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__finish-label,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card--commerce .dc-product-card__finish-label {
    font-size: var(--dc-size-small);
    color: var(--dc-gris);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dc-catalog-index__card .dc-product-card__detail,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__detail {
    box-sizing: border-box;
    width: 100%;
    margin-top: 0;
    background: transparent;
    border: var(--dc-border-width-strong) solid var(--dc-pino);
}

.dc-catalog-index__card .dc-product-card__detail:hover,
.dc-catalog-index__card .dc-product-card__detail:focus-visible,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__detail:hover,
.dc-catalog-listing-page.dc-catalog-a3-responsive .dc-catalog-grid__card .dc-product-card__detail:focus-visible {
    background: var(--dc-lima-300);
    color: var(--dc-pino);
}
