/*
 * WooCommerce Core single-product markup styled with the BHW token system.
 * Product truth, gallery, variations and cart handling remain in Core.
 */

.bhw-single-product-main {
    display: flow-root;
    padding-block: var(--bhw-space-6) var(--bhw-layout-section-space);
}

.bhw-single-product-main > .woocommerce-breadcrumb {
    margin-block-end: var(--bhw-space-6);
}

body.single-product .bhw-single-product-main div.product {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: var(--bhw-layout-grid-gap);
    min-width: 0;
}

body.single-product .bhw-single-product-main div.product::before,
body.single-product .bhw-single-product-main div.product::after {
    display: none;
}

body.single-product .bhw-single-product-main div.product div.images,
body.single-product .bhw-single-product-main div.product div.summary {
    float: none;
    width: 100%;
    min-width: 0;
    margin: 0;
}

body.single-product .bhw-single-product-main div.product div.summary {
    align-self: start;
    display: grid;
    gap: var(--bhw-space-5);
    padding: var(--bhw-layout-card-padding);
    border: var(--bhw-border-thin) solid var(--bhw-color-border);
    border-radius: var(--bhw-radius-large);
    background: var(--bhw-color-panel);
    box-shadow: var(--bhw-shadow-card);
}

.bhw-single-product-main .summary > * {
    margin-block: 0;
}

.bhw-single-product-main .product_title {
    min-width: 0;
    overflow-wrap: anywhere;
}

body.single-product .bhw-single-product-main div.product p.price,
.bhw-single-product-main .woocommerce-variation-price {
    color: var(--bhw-color-accent);
    font-size: var(--bhw-text-2-xl);
    font-weight: var(--bhw-weight-bold);
}

.bhw-single-product-main .price del {
    color: var(--bhw-color-text-secondary);
    opacity: 1;
}

.bhw-single-product-main .price ins {
    color: var(--bhw-color-accent);
    text-decoration: none;
}

.bhw-single-product-main .woocommerce-product-details__short-description {
    color: var(--bhw-color-text-secondary);
    font-size: var(--bhw-text-lg);
}

.bhw-single-product-main .woocommerce-product-details__short-description > :first-child,
.bhw-single-product-main .woocommerce-product-details__short-description > :last-child {
    margin-block: 0;
}

.bhw-single-product-main .stock {
    margin: 0;
    font-weight: var(--bhw-weight-semibold);
}

.bhw-single-product-main .stock.in-stock {
    color: var(--bhw-color-success);
}

.bhw-single-product-main .stock.out-of-stock {
    color: var(--bhw-color-error);
}

.bhw-single-product__unavailable {
    display: grid;
    gap: var(--bhw-space-2);
}

.bhw-single-product__unavailable > * {
    margin: 0;
}

body.single-product .bhw-single-product-main form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--bhw-space-3);
    margin: 0;
}

body.single-product .bhw-single-product-main form.cart .quantity {
    display: grid;
    gap: var(--bhw-space-2);
    float: none;
    margin: 0;
}

body.single-product .bhw-single-product-main form.cart .qty {
    width: 6rem;
    min-height: var(--bhw-control-min-size);
    padding: var(--bhw-space-2) var(--bhw-space-3);
    border: var(--bhw-border-thin) solid var(--bhw-color-border-strong);
    border-radius: var(--bhw-radius-small);
    background: var(--bhw-color-background-secondary);
    color: var(--bhw-color-text-primary);
}

body.single-product .bhw-single-product-main .single_add_to_cart_button {
    min-height: var(--bhw-control-min-size);
    padding-inline: var(--bhw-space-5);
}

body.single-product .bhw-single-product-main .single_add_to_cart_button:disabled,
body.single-product .bhw-single-product-main .single_add_to_cart_button.disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.bhw-single-product-main .variations_form {
    display: grid;
    gap: var(--bhw-space-4);
}

body.single-product .bhw-single-product-main table.variations {
    width: 100%;
    margin: 0;
}

body.single-product .bhw-single-product-main table.variations tr {
    display: grid;
    grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);
    gap: var(--bhw-space-3);
}

body.single-product .bhw-single-product-main table.variations th,
body.single-product .bhw-single-product-main table.variations td {
    display: block;
    padding: 0;
    text-align: start;
}

.bhw-single-product-main .variations label {
    display: inline-block;
    padding-block: var(--bhw-space-2);
}

body.single-product .bhw-single-product-main table.variations select {
    width: 100%;
    min-height: var(--bhw-control-min-size);
    margin: 0;
    padding: var(--bhw-space-2) var(--bhw-space-3);
    border: var(--bhw-border-thin) solid var(--bhw-color-border-strong);
    border-radius: var(--bhw-radius-small);
    background: var(--bhw-color-background-secondary);
    color: var(--bhw-color-text-primary);
}

.bhw-single-product-main .reset_variations {
    display: inline-flex;
    align-items: center;
    min-height: var(--bhw-control-min-size);
    margin-block-start: var(--bhw-space-2);
}

.bhw-single-product-main .single_variation_wrap,
.bhw-single-product-main .woocommerce-variation,
.bhw-single-product-main .woocommerce-variation-add-to-cart {
    display: grid;
    gap: var(--bhw-space-3);
}

.bhw-single-product-main .woocommerce-variation-description > :first-child,
.bhw-single-product-main .woocommerce-variation-description > :last-child {
    margin-block: 0;
}

.bhw-single-product-main .product_meta {
    display: grid;
    gap: var(--bhw-space-2);
    padding-block-start: var(--bhw-space-4);
    border-block-start: var(--bhw-border-thin) solid var(--bhw-color-border);
    color: var(--bhw-color-text-secondary);
    overflow-wrap: anywhere;
}

.bhw-single-product-main .product_meta > span {
    display: block;
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    min-width: 0;
    margin-block-start: var(--bhw-space-7);
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bhw-space-2);
    margin: 0;
    padding: 0;
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs ul.tabs::before {
    display: none;
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs ul.tabs li {
    margin: 0;
    padding: 0;
    border: var(--bhw-border-thin) solid var(--bhw-color-border);
    border-radius: var(--bhw-radius-small);
    background: var(--bhw-color-background-secondary);
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs ul.tabs li a {
    display: inline-flex;
    align-items: center;
    min-height: var(--bhw-control-min-size);
    padding: var(--bhw-space-2) var(--bhw-space-4);
}

body.single-product .bhw-single-product-main div.product .woocommerce-tabs .panel {
    width: min(100%, var(--bhw-layout-reading-max));
    min-width: 0;
    margin-block: var(--bhw-space-5) 0;
    padding: var(--bhw-layout-card-padding);
    border: var(--bhw-border-thin) solid var(--bhw-color-border);
    border-radius: var(--bhw-radius-large);
    background: var(--bhw-color-background-secondary);
    overflow-wrap: anywhere;
}

.bhw-single-product-main .woocommerce-tabs .panel > :first-child {
    margin-block-start: 0;
}

.bhw-single-product-main .woocommerce-tabs .panel > :last-child {
    margin-block-end: 0;
}

.bhw-single-product-main .woocommerce-product-attributes {
    width: 100%;
    border-collapse: collapse;
}

.bhw-single-product-main .woocommerce-product-attributes th,
.bhw-single-product-main .woocommerce-product-attributes td {
    padding: var(--bhw-space-3);
    border-block-end: var(--bhw-border-thin) solid var(--bhw-color-border);
    text-align: start;
}

@media (max-width: 47.999rem) {
    body.single-product .bhw-single-product-main div.product {
        grid-template-columns: minmax(0, 1fr);
    }

    body.single-product .bhw-single-product-main div.product .woocommerce-tabs {
        grid-column: auto;
    }
}

@media (max-width: 34.999rem) {
    body.single-product .bhw-single-product-main table.variations tr {
        grid-template-columns: minmax(0, 1fr);
    }

    body.single-product .bhw-single-product-main form.cart,
    body.single-product .bhw-single-product-main .single_add_to_cart_button {
        width: 100%;
    }

    body.single-product .bhw-single-product-main form.cart .quantity,
    body.single-product .bhw-single-product-main form.cart .qty {
        width: 100%;
    }
}
