.woocommerce ul.products {
    display: grid;
    gap: var(--tcn-space-lg);
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    float: none;
    width: auto;
    margin: 0;
    border: var(--tcn-border-width) solid var(--tcn-color-border);
    border-radius: var(--tcn-radius-md);
    background: var(--tcn-color-background);
    overflow: hidden;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding-inline: var(--tcn-space-md);
    color: var(--tcn-color-text);
    font-size: 1rem;
    line-height: 1.35;
}

.woocommerce ul.products li.product .price {
    padding-inline: var(--tcn-space-md);
    color: var(--tcn-color-primary-dark);
    font-weight: 700;
}

.woocommerce ul.products li.product .button {
    width: calc(100% - (var(--tcn-space-md) * 2));
    margin: 0 var(--tcn-space-md) var(--tcn-space-md);
}

.woocommerce span.onsale {
    min-width: 0;
    min-height: 0;
    padding: 0.35rem 0.55rem;
    border-radius: var(--tcn-radius-sm);
    background: var(--tcn-color-primary-dark);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-top-color: var(--tcn-color-primary);
    background: var(--tcn-color-surface);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--tcn-color-primary-dark);
    font-weight: 700;
}

.woocommerce table.shop_table {
    border-color: var(--tcn-color-border);
    border-radius: var(--tcn-radius-md);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    min-height: 44px;
    border: var(--tcn-border-width) solid var(--tcn-color-border);
    border-radius: var(--tcn-radius-sm);
    background: #ffffff;
}
