/*
 * PARTE 75 -- estructura, espaciado y marca de la ficha de producto (solo single-product).
 * Escala de espacios: 8 / 12 / 16 / 24 / 32. Colores y radios: variables --bk-* con fallback
 * (publicadas en :root por inc/ficha-producto-estructura.php desde el Personalizador).
 * Prefijo body.single-product + !important donde el tema padre (Florial) fuerza margenes/paddings.
 */

/* ---------- (A) Columnas ---------- */
body.single-product .bwp-single-product {
    padding-left: 32px !important;
    padding-right: 32px !important;
    margin-bottom: 48px !important;
    box-sizing: border-box;
}

body.single-product .bwp-single-product > .row {
    margin-left: -16px !important;
    margin-right: -16px !important;
}

body.single-product .bwp-single-product > .row > .bwp-single-image,
body.single-product .bwp-single-product > .row > .bwp-single-info {
    padding: 0 16px !important;
    box-sizing: border-box;
}

/* ---------- (B) Tarjetas de la columna derecha ---------- */
body.single-product .bkl-card,
body.single-product .bkl-card.bkl-card-tamano,
body.single-product #bkl_product_shipping_wrapper.bkl-product-shipping {
    box-sizing: border-box !important;
    padding: 24px !important;
    margin: 0 0 16px !important;
    border-radius: var(--bk-radius-card, 24px) !important;
}

body.single-product .bkl-card:not(.bkl-card-tamano) {
    background: var(--bk-card-bg, #fff);
}

body.single-product .bkl-card > :first-child {
    margin-top: 0 !important;
}

body.single-product .bkl-card > :last-child {
    margin-bottom: 0 !important;
}

/* ---------- (C) Encabezado ---------- */
body.single-product .bkl-card-encabezado .breadcrumb-noheading,
body.single-product .bkl-card-encabezado .breadcrumb-noheading .container,
body.single-product .bkl-card-encabezado .breadcrumb-noheading .breadcrumb {
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .bkl-card-encabezado .breadcrumb-noheading {
    margin-bottom: 16px !important;
}

body.single-product .bkl-card-encabezado .product_title {
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(26px, 2.3vw, 34px) !important;
    line-height: 1.15 !important;
    color: var(--bk-text, #3b1f4a);
}

body.single-product .bkl-card-encabezado .price-single {
    margin: 16px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* El tema deja el bloque de precio vacio (17-43px) cuando no hay precio que mostrar. */
body.single-product .bkl-card-encabezado .price-single:not(:has(.amount)) {
    display: none !important;
}

body.single-product .bkl-card-encabezado .description {
    margin: 16px 0 0 !important;
    padding: 0 !important;
}

body.single-product .bkl-card-encabezado .description > :last-child {
    margin-bottom: 0 !important;
}

/* ---------- (D) Tamano de arreglo ---------- */
body.single-product .bkl-card-tamano table.variations,
body.single-product .bkl-card-tamano table.variations tbody,
body.single-product .bkl-card-tamano table.variations tr,
body.single-product .bkl-card-tamano table.variations td {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-sizing: border-box;
}

body.single-product .bkl-card-tamano table.variations td.label {
    margin-bottom: 12px !important;
}

body.single-product .bkl-card-tamano table.variations td.label label {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    margin: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3;
    color: var(--bk-text, #3b1f4a) !important;
}

body.single-product .bkl-card-tamano table.variations td.label label::before {
    order: 2;
    flex-shrink: 0;
    margin: 0 !important;
}

/*
 * Tarjetas de presentacion (Variation Swatches de terceros: .tawcvs-swatches > .swatch-item-wrapper >
 * .swatch.swatch-label). Unica fuente de verdad del LAYOUT de las tarjetas (ancho, rejilla, margenes,
 * posicion de la insignia de descuento); el aspecto interno (colores, bordes, tipografia) vive en
 * inc/fix-precio-en-swatch-atributo.php.
 *
 * El prefijo largo es a proposito: el CSS del plugin de terceros usa !important con selectores como
 * ".woocommerce div.product .cart.variations_form .tawcvs-swatches". Ojo: NO anteponer "html body" --
 * ".woocommerce" esta en el propio <body> y el selector dejaria de coincidir.
 */
.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano table.variations td.label {
    padding: 0 0 22px !important;
}

.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano table.variations td.value .tawcvs-swatches {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .swatch-item-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    min-width: 0 !important;
}

.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .swatch-item-wrapper .swatch.swatch-label {
    min-width: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* Insignia de descuento: arriba a la derecha de cada tarjeta, sin tapar el rotulo ni el nombre. */
.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .bkl-swatch-discount {
    top: -10px !important;
    left: auto !important;
    right: 10px !important;
}

/* Precio tachado + vigente: si no caben en una linea bajan a dos centradas, sin partir cada cifra. */
.woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .swatch-item-wrapper .bukets-swatch-price {
    flex-wrap: wrap !important;
    justify-content: center !important;
    column-gap: 6px !important;
    row-gap: 0 !important;
}

body.single-product .bkl-card-tamano .woocommerce-variation.single_variation {
    margin: 16px 0 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}

body.single-product .bkl-card-tamano .woocommerce-variation.single_variation:not(:has(*)) {
    display: none !important;
}

body.single-product .bkl-card-tamano .woocommerce-variation-availability,
body.single-product .bkl-card-tamano .woocommerce-variation-availability .stock {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ---------- (E) Compra ---------- */
body.single-product .bkl-card-compra {
    gap: 0 !important;
}

body.single-product .single_variation_wrap {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 12px;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .single_variation_wrap > .woocommerce-variation {
    grid-column: 1 / -1;
    margin: 0 !important;
}

body.single-product .single_variation_wrap > .woocommerce-variation:not(:has(*)) {
    display: none !important;
}

body.single-product .single_variation_wrap > .variations_button {
    grid-column: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .single_variation_wrap .quantity-button {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .bkl-card-compra .quantity,
body.single-product .single_variation_wrap .quantity {
    display: inline-flex !important;
    align-items: center;
    flex: 0 0 auto;
    height: 52px !important;
    margin: 0 !important;
    overflow: hidden;
    box-sizing: border-box;
    background: #fff;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-radius: var(--bk-radius-control, 12px) !important;
}

body.single-product .single_add_to_cart_button {
    flex: 1 1 auto;
    height: 52px !important;
    min-height: 52px;
    margin: 0 !important;
    padding: 0 16px !important;
    box-sizing: border-box;
    border: 0 !important;
    border-radius: var(--bk-radius-control, 12px) !important;
    background-color: var(--bk-accent, #582e6a) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-align: center;
}

body.single-product .single_add_to_cart_button.disabled,
body.single-product .single_add_to_cart_button:disabled,
body.single-product .single_add_to_cart_button.wc-variation-selection-needed,
body.single-product .single_add_to_cart_button.wc-variation-is-unavailable {
    background-color: #c9b5d8 !important;
    background-color: color-mix(in srgb, var(--bk-accent, #582e6a) 40%, #fff) !important;
    color: #fff !important;
    opacity: 1 !important;
    cursor: not-allowed;
}

body.single-product .single_variation_wrap .woosw-btn,
body.single-product .bkl-card-compra .woosw-btn {
    grid-column: 2;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 52px !important;
    min-width: 52px;
    height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
    background: #fff;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-radius: var(--bk-radius-control, 12px) !important;
}

body.single-product .single_variation_wrap .quick-buy,
body.single-product .bkl-card-compra .quick-buy {
    grid-column: 1 / -1;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 52px !important;
    min-height: 52px;
    margin: 0 !important;
    padding: 0 16px !important;
    box-sizing: border-box;
    background-color: #fff !important;
    border: 1.5px solid var(--bk-accent, #582e6a) !important;
    border-radius: var(--bk-radius-control, 12px) !important;
    color: var(--bk-accent, #582e6a) !important;
    font-weight: 700 !important;
}

body.single-product .single_variation_wrap .quick-buy:hover,
body.single-product .bkl-card-compra .quick-buy:hover {
    background-color: var(--bk-accent-soft, #f3edf8) !important;
    color: var(--bk-accent, #582e6a) !important;
}

/* Producto MIX / simple: fila de botones armada por JS (rediseno-tarjetas-producto.php). */
body.single-product .bkl-card-compra-botones {
    display: flex;
    align-items: center;
    gap: 12px;
}

body.single-product .bkl-card-compra-botones + .quick-buy {
    margin-top: 12px !important;
}

body.single-product .bukets-aclaracion-botones-compra {
    margin: 16px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    color: var(--bk-text-soft, #6b5a78) !important;
}

/* ---------- (F) Meta y Compartir ---------- */
body.single-product .product_meta {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start !important;
    gap: 12px !important;
    margin: 16px 0 0 !important;
    padding: 0 0 0 24px !important;
    border: 0 !important;
}

body.single-product .product_meta > span {
    margin: 0 !important;
}

body.single-product .social-icon {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 0 !important;
    padding: 0 0 0 24px !important;
}

body.single-product .social-icon > label {
    margin: 0 !important;
}

/* ---------- (G) Navegacion anterior / siguiente ---------- */
body.single-product .bukets-product-nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 16px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-sizing: border-box;
}

body.single-product .bukets-product-nav-prev,
body.single-product .bukets-product-nav-next {
    display: flex !important;
    align-items: center;
    gap: 12px;
    min-width: 0;
    min-height: 72px;
    padding: 12px 16px !important;
    box-sizing: border-box;
    background: #fff !important;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
    color: var(--bk-text, #3b1f4a);
    text-decoration: none;
    transition: background-color .15s ease;
}

body.single-product .bukets-product-nav-next {
    flex-direction: row-reverse;
    text-align: right;
}

/* Un solo vecino (catalogo de 2 productos): una tarjeta "Siguiente", en la columna derecha. */
body.single-product .bukets-product-nav-solo .bukets-product-nav-next {
    grid-column: 2;
}

body.single-product .bukets-product-nav-prev:hover,
body.single-product .bukets-product-nav-next:hover {
    background: var(--bk-accent-soft, #f3edf8) !important;
    box-shadow: none !important;
}

body.single-product .bukets-product-nav-thumb {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 8px;
}

body.single-product .bukets-product-nav-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

body.single-product .bukets-product-nav-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--bk-accent, #582e6a);
}

body.single-product .bukets-product-nav-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    color: var(--bk-text, #3b1f4a);
}

/* ---------- (H) Pestanas ---------- */
body.single-product .woocommerce-tabs.wc-tabs-wrapper {
    box-sizing: border-box;
    margin: 16px 0 0 !important;
    padding: 24px !important;
    background: var(--bk-card-bg, #fff) !important;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-radius: var(--bk-radius-card, 24px) !important;
}

body.single-product .woocommerce-tabs .content-woocommerce-tabs {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .woocommerce-tabs .content-ul-tab,
body.single-product .woocommerce-tabs .content-tab {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    gap: 8px;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none;
}

body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after,
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
    content: none !important;
    display: none !important;
}

body.single-product .woocommerce-tabs ul.tabs li {
    float: none !important;
    display: inline-flex !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--bk-accent-soft, #f3edf8) !important;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-radius: 999px !important;
}

body.single-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 9px 18px !important;
    background: none !important;
    border: 0 !important;
    color: var(--bk-accent, #582e6a) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3;
    text-transform: none;
}

body.single-product .woocommerce-tabs ul.tabs li:hover {
    background: var(--bk-accent-soft-hover, #e6d8f2) !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active,
body.single-product .woocommerce-tabs ul.tabs li.active:hover {
    background: var(--bk-accent, #582e6a) !important;
    border-color: var(--bk-accent, #582e6a) !important;
}

body.single-product .woocommerce-tabs ul.tabs li.active a {
    color: #fff !important;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none;
    box-shadow: none;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1.5px solid var(--bk-border, #d7c6e6) !important;
    border-collapse: separate !important;
    border-spacing: 0;
    border-radius: 16px !important;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes th,
body.single-product .woocommerce-tabs table.woocommerce-product-attributes td {
    padding: 14px 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bk-border, #d7c6e6) !important;
    text-align: left;
    vertical-align: middle;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes th {
    width: 38%;
    background: var(--bk-accent-soft, #f3edf8) !important;
    color: var(--bk-text, #3b1f4a);
    font-weight: 700 !important;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes td {
    background: #fff !important;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes td p {
    margin: 0 !important;
}

body.single-product .woocommerce-tabs table.woocommerce-product-attributes tr:last-child th,
body.single-product .woocommerce-tabs table.woocommerce-product-attributes tr:last-child td {
    border-bottom: 0 !important;
}

/* ---------- (J) Responsive ---------- */
@media (max-width: 991px) {
    body.single-product .bwp-single-product > .row > .bwp-single-image,
    body.single-product .bwp-single-product > .row > .bwp-single-info {
        flex: 0 0 100%;
        max-width: 100%;
    }

    body.single-product .bwp-single-product > .row > .bwp-single-info {
        position: static !important;
        margin-top: 24px;
    }
}

@media (max-width: 768px) {
    body.single-product .bwp-single-product {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.single-product .bkl-card,
    body.single-product .bkl-card.bkl-card-tamano,
    body.single-product #bkl_product_shipping_wrapper.bkl-product-shipping,
    body.single-product .woocommerce-tabs.wc-tabs-wrapper {
        padding: 16px !important;
        border-radius: calc(var(--bk-radius-card, 24px) - 4px) !important;
    }

    body.single-product .bukets-product-nav {
        grid-template-columns: minmax(0, 1fr);
    }

    body.single-product .bukets-product-nav-solo .bukets-product-nav-next {
        grid-column: 1;
    }

    body.single-product .woocommerce-tabs ul.tabs li a {
        padding: 8px 14px !important;
    }

    body.single-product .woocommerce-tabs table.woocommerce-product-attributes th,
    body.single-product .woocommerce-tabs table.woocommerce-product-attributes td {
        padding: 12px !important;
    }

    body.single-product .product_meta,
    body.single-product .social-icon {
        padding-left: 16px !important;
    }
}

@media (max-width: 480px) {
    /* Tarjetas de presentacion en 320-480 px: siguen en 2 columnas (rejilla de arriba), solo se
       compacta el relleno y el precio para que no desborden ni partan el texto. */
    .woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano table.variations td.value .tawcvs-swatches {
        gap: 10px !important;
    }

    .woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .swatch-item-wrapper .swatch-label .text {
        padding: 14px 6px 8px !important;
        font-size: 11px !important;
    }

    .woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .swatch-item-wrapper .bukets-swatch-price {
        padding: 8px 6px 10px !important;
        font-size: 16px !important;
    }

    .woocommerce div.product form.cart.variations_form .bkl-card.bkl-card-tamano .bkl-swatch-discount {
        right: 6px !important;
    }

    body.single-product .woocommerce-tabs ul.tabs li a {
        font-size: 13px !important;
    }

    body.single-product .woocommerce-tabs table.woocommerce-product-attributes th {
        width: 42%;
    }

    body.single-product .bukets-product-nav-thumb {
        width: 40px;
        height: 40px;
    }
}
