/**
 * Kingdom Apparel compatibility layer for Bulk Apparel Builder.
 * Loaded after the plugin stylesheet so layout rules remain theme-owned.
 */

.ka-has-bulk-builder.single-product .ka-woocommerce-main {
    padding-top: clamp(24px, 4vw, 48px);
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main > .ka-container {
    width: min(calc(100% - 40px), var(--ka-container)) !important;
    max-width: var(--ka-container) !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr) !important;
    grid-template-rows: auto auto;
    column-gap: clamp(34px, 5vw, 70px) !important;
    row-gap: 24px;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
}

.ka-has-bulk-builder.ka-product-layout-gallery-wide.single-product .ka-woocommerce-main div.product {
    grid-template-columns: minmax(0, 1.22fr) minmax(400px, 1fr) !important;
}

.ka-has-bulk-builder.ka-product-layout-builder-wide.single-product .ka-woocommerce-main div.product {
    grid-template-columns: minmax(0, .82fr) minmax(440px, 1.18fr) !important;
}

.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product {
    grid-template-columns: minmax(0, 1fr) !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product::before,
.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product::after {
    display: none !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .images {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .summary {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 0 30px !important;
}

.ka-has-bulk-builder.ka-product-gallery-right.single-product .ka-woocommerce-main div.product > .images {
    grid-column: 2 !important;
}

.ka-has-bulk-builder.ka-product-gallery-right.single-product .ka-woocommerce-main div.product > .summary {
    grid-column: 1 !important;
}

.ka-has-bulk-builder.ka-product-gallery-right.ka-product-tabs-gallery.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
.ka-has-bulk-builder.ka-product-gallery-right.ka-product-tabs-gallery.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper {
    grid-column: 2 !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper {
    grid-column: 1 !important;
    grid-row: 2 !important;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: clamp(20px, 3vw, 32px) !important;
    border: 1px solid color-mix(in srgb, var(--ka-primary) 12%, var(--ka-border));
    border-radius: var(--ka-radius, 14px) !important;
    background: color-mix(in srgb, var(--ka-surface) 48%, white) !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .related,
.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .upsells {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .related { grid-row: 3 !important; }
.ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .upsells { grid-row: 4 !important; }

.ka-has-bulk-builder.ka-product-tabs-full.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
.ka-has-bulk-builder.ka-product-tabs-full.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper {
    grid-column: 1 / -1 !important;
}

.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .images,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .summary,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .related,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .upsells {
    grid-column: 1 !important;
    grid-row: auto !important;
}

.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .images { order: 1; }
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .summary { order: 2; }
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper { order: 3; }
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .related { order: 4; }
.ka-has-bulk-builder.ka-product-layout-stacked.single-product .ka-woocommerce-main div.product > .upsells { order: 5; }

.ka-has-bulk-builder.single-product .woocommerce-breadcrumb {
    margin-bottom: 18px;
}

.ka-has-bulk-builder.single-product div.product .product_title,
.ka-has-bulk-builder.single-product div.product .summary h1 {
    margin: 0 0 12px !important;
    color: var(--ka-product-title-colour, var(--ka-secondary)) !important;
    font-family: var(--ka-product-title-font, inherit) !important;
    font-size: var(--ka-product-title-size, 34px) !important;
    font-weight: var(--ka-product-title-weight, 850) !important;
    line-height: var(--ka-product-title-line-height, 1.12) !important;
    letter-spacing: var(--ka-product-title-letter-spacing, -.03em) !important;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-product-details__short-description {
    margin-bottom: 20px;
    color: var(--ka-text);
    font-size: 14px;
    line-height: 1.6;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-product-details__short-description ul {
    margin: 0;
    padding-left: 20px;
}

.ka-has-bulk-builder.single-product div.product .product_meta {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid var(--ka-border);
    color: var(--ka-muted);
    font-size: 11px;
    line-height: 1.7;
}

/* Gallery with stable left-hand thumbnails. */
.ka-has-bulk-builder.single-product div.product div.images.woocommerce-product-gallery {
    position: relative;
    box-sizing: border-box;
    padding-left: calc(var(--ka-product-thumb-size, 68px) + 18px);
}

.ka-has-bulk-builder.single-product div.product div.images .flex-viewport,
.ka-has-bulk-builder.single-product div.product div.images .woocommerce-product-gallery__wrapper {
    min-width: 0;
    overflow: hidden;
    border-radius: var(--ka-product-image-radius, 16px);
    background: var(--ka-product-gallery-bg, #f7f7f7);
}

.ka-has-bulk-builder.ka-product-corners-square.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { border-radius: 0; }
.ka-has-bulk-builder.ka-product-corners-soft.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { border-radius: 8px; }
.ka-has-bulk-builder.ka-product-corners-rounded.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { border-radius: 16px; }
.ka-has-bulk-builder.ka-product-corners-custom.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { border-radius: var(--ka-product-image-radius, 16px); }

.ka-has-bulk-builder.ka-product-gallery-frame-border.single-product div.product div.images .flex-viewport,
.ka-has-bulk-builder.ka-product-gallery-frame-border-shadow.single-product div.product div.images .flex-viewport {
    border: 1px solid var(--ka-border);
}

.ka-has-bulk-builder.ka-product-gallery-frame-shadow.single-product div.product div.images .flex-viewport,
.ka-has-bulk-builder.ka-product-gallery-frame-border-shadow.single-product div.product div.images .flex-viewport {
    box-shadow: 0 14px 34px rgb(37 15 44 / 13%);
}

.ka-has-bulk-builder.single-product div.product div.images .woocommerce-product-gallery__image img {
    width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain !important;
}

.ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .flex-viewport,
.ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .woocommerce-product-gallery__wrapper {
    height: var(--ka-product-image-height, 570px) !important;
}

.ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .woocommerce-product-gallery__image,
.ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .woocommerce-product-gallery__image > a {
    height: 100% !important;
}

.ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .woocommerce-product-gallery__image img {
    height: 100% !important;
}

.ka-has-bulk-builder.ka-product-fit-cover.single-product div.product div.images .woocommerce-product-gallery__image img {
    object-fit: cover !important;
}

.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--ka-product-thumb-size, 68px);
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs li {
    float: none !important;
    width: var(--ka-product-thumb-size, 68px) !important;
    margin: 0 !important;
}

.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img {
    width: var(--ka-product-thumb-size, 68px) !important;
    height: calc(var(--ka-product-thumb-size, 68px) * 1.1) !important;
    display: block;
    border: 2px solid transparent;
    border-radius: var(--ka-product-thumb-radius, 8px);
    object-fit: cover !important;
    background: #f7f7f7;
    opacity: .68;
}

.ka-has-bulk-builder.ka-product-thumb-corners-square.single-product div.product div.images .flex-control-thumbs img { border-radius: 0; }
.ka-has-bulk-builder.ka-product-thumb-corners-soft.single-product div.product div.images .flex-control-thumbs img { border-radius: 8px; }
.ka-has-bulk-builder.ka-product-thumb-corners-rounded.single-product div.product div.images .flex-control-thumbs img { border-radius: 16px; }
.ka-has-bulk-builder.ka-product-thumb-corners-circle.single-product div.product div.images .flex-control-thumbs img { border-radius: 50%; aspect-ratio: 1; height: var(--ka-product-thumb-size, 68px) !important; }
.ka-has-bulk-builder.ka-product-thumb-corners-custom.single-product div.product div.images .flex-control-thumbs img { border-radius: var(--ka-product-thumb-radius, 8px); }

/* Dynamic WooCommerce gallery navigation. */
.ka-has-bulk-builder.single-product div.product div.images ul.flex-direction-nav {
    position: absolute;
    z-index: 12;
    inset: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    pointer-events: none;
}

.ka-has-bulk-builder.single-product div.product div.images ul.flex-direction-nav li { list-style: none; }

.ka-has-bulk-builder.single-product div.product div.images a.flex-prev,
.ka-has-bulk-builder.single-product div.product div.images a.flex-next {
    position: absolute;
    top: 50%;
    display: grid;
    visibility: visible;
    width: var(--ka-product-gallery-arrow-size, 42px);
    height: var(--ka-product-gallery-arrow-size, 42px);
    place-items: center;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--ka-product-gallery-arrow-colour, #222) 42%, transparent);
    border-radius: 9px;
    background: color-mix(in srgb, var(--ka-product-gallery-arrow-bg, #fff) 88%, transparent);
    box-shadow: 0 5px 15px rgb(0 0 0 / 12%);
    color: transparent !important;
    font-size: 0;
    opacity: 1;
    transform: translateY(-50%);
    transition: .2s ease;
    pointer-events: auto;
}

.ka-has-bulk-builder.single-product div.product div.images a.flex-prev { left: calc(var(--ka-product-thumb-size, 68px) + 30px); }
.ka-has-bulk-builder.single-product div.product div.images a.flex-next { right: 12px; }
.ka-has-bulk-builder.ka-product-thumbs-bottom.single-product div.product div.images a.flex-prev,
.ka-has-bulk-builder.ka-hide-product-thumbnails.single-product div.product div.images a.flex-prev { left: 12px; }

.ka-has-bulk-builder.single-product div.product div.images a.flex-prev::before,
.ka-has-bulk-builder.single-product div.product div.images a.flex-next::after {
    position: static;
    display: block;
    width: auto;
    height: auto;
    background: none;
    color: var(--ka-product-gallery-arrow-colour, #222);
    font-size: calc(var(--ka-product-gallery-arrow-size, 42px) * .64);
    font-weight: 400;
    line-height: 1;
    opacity: 1;
    transform: none;
}
.ka-has-bulk-builder.single-product div.product div.images a.flex-prev::before { content: "‹"; }
.ka-has-bulk-builder.single-product div.product div.images a.flex-next::after { content: "›"; }

.ka-has-bulk-builder.ka-product-gallery-arrows-solid.single-product div.product div.images :is(a.flex-prev, a.flex-next) {
    border-color: var(--ka-primary);
    background: var(--ka-primary);
}
.ka-has-bulk-builder.ka-product-gallery-arrows-solid.single-product div.product div.images a.flex-prev::before,
.ka-has-bulk-builder.ka-product-gallery-arrows-solid.single-product div.product div.images a.flex-next::after { color: #fff; }
.ka-has-bulk-builder.ka-product-gallery-arrows-outline.single-product div.product div.images :is(a.flex-prev, a.flex-next) { background: transparent; box-shadow: none; }
.ka-has-bulk-builder.ka-product-gallery-arrow-shape-square.single-product div.product div.images :is(a.flex-prev, a.flex-next) { border-radius: 0; }
.ka-has-bulk-builder.ka-product-gallery-arrow-shape-rounded.single-product div.product div.images :is(a.flex-prev, a.flex-next) { border-radius: 9px; }
.ka-has-bulk-builder.ka-product-gallery-arrow-shape-circle.single-product div.product div.images :is(a.flex-prev, a.flex-next) { border-radius: 50%; }
.ka-has-bulk-builder.ka-product-gallery-arrow-position-edge.single-product div.product div.images a.flex-prev { transform: translate(-50%, -50%); }
.ka-has-bulk-builder.ka-product-gallery-arrow-position-edge.single-product div.product div.images a.flex-next { transform: translate(50%, -50%); }
.ka-has-bulk-builder.single-product div.product div.images :is(a.flex-prev, a.flex-next):hover {
    border-color: var(--ka-secondary);
    background: var(--ka-secondary);
}
.ka-has-bulk-builder.single-product div.product div.images :is(a.flex-prev, a.flex-next):hover::before,
.ka-has-bulk-builder.single-product div.product div.images :is(a.flex-prev, a.flex-next):hover::after { color: #fff; }
.ka-has-bulk-builder.ka-product-gallery-arrows-hover.single-product div.product div.images :is(a.flex-prev, a.flex-next) { opacity: 0; }
.ka-has-bulk-builder.ka-product-gallery-arrows-hover.single-product div.product div.images:hover :is(a.flex-prev, a.flex-next),
.ka-has-bulk-builder.ka-product-gallery-arrows-hover.single-product div.product div.images :is(a.flex-prev, a.flex-next):focus-visible { opacity: 1; }
.ka-has-bulk-builder.ka-hide-product-gallery-arrows.single-product div.product div.images ul.flex-direction-nav { display: none !important; }

.ka-has-bulk-builder.ka-product-thumbs-bottom.single-product div.product div.images.woocommerce-product-gallery {
    padding-left: 0;
}

.ka-has-bulk-builder.ka-product-thumbs-bottom.single-product div.product div.images .flex-control-thumbs {
    position: static;
    width: 100%;
    flex-direction: row;
    margin-top: 10px !important;
    overflow-x: auto;
}

.ka-has-bulk-builder.ka-hide-product-thumbnails.single-product div.product div.images.woocommerce-product-gallery {
    padding-left: 0;
}

.ka-has-bulk-builder.ka-hide-product-thumbnails.single-product div.product div.images .flex-control-thumbs {
    display: none !important;
}

.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img.flex-active,
.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img:hover {
    border-color: var(--ka-primary);
    opacity: 1;
}

/* Pricing and builder panels use the live theme palette. */
.ka-has-bulk-builder.single-product #bab-builder,
.ka-has-bulk-builder.single-product .summary form.cart {
    width: 100%;
    max-width: none;
}

/*
 * Shoptimizer-compatible variation flow. This only gives BAB's label and
 * swatch area the full row; BAB still owns swatch appearance and behaviour.
 */
.ka-has-bulk-builder.single-product .summary table.variations,
.ka-has-bulk-builder.single-product .summary table.variations tbody,
.ka-has-bulk-builder.single-product .summary table.variations tr,
.ka-has-bulk-builder.single-product .summary table.variations th,
.ka-has-bulk-builder.single-product .summary table.variations td {
    display: block;
    box-sizing: border-box;
    width: 100%;
}

.ka-has-bulk-builder.single-product .summary table.variations th,
.ka-has-bulk-builder.single-product .summary table.variations td {
    padding: 0;
}

.ka-has-bulk-builder.single-product .summary table.variations th.label {
    margin: 0 0 4px;
    text-align: left;
}

.ka-has-bulk-builder.single-product .summary table.variations td.value {
    padding-bottom: 10px;
}

/*
 * BAB draws the visible circular ring with button::before. Remove only the
 * browser's native square button chrome that Shoptimizer normally resets.
 */
.ka-has-bulk-builder.single-product .summary .cgkit-attribute-swatches
.cgkit-attribute-swatch.cgkit-color > button {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    border-radius: 50%;
    box-shadow: none;
}

.ka-has-bulk-builder.single-product .bab-tier-pricing,
.ka-has-bulk-builder.single-product #bab-builder .bab-step {
    box-sizing: border-box;
    width: 100% !important;
    margin: 0 0 var(--ka-product-panel-gap, 16px) !important;
    padding: clamp(16px, 2.4vw, 22px) !important;
    border: 1px solid color-mix(in srgb, var(--ka-primary) 12%, var(--ka-border)) !important;
    border-radius: var(--ka-product-panel-radius, 14px) !important;
    background: color-mix(in srgb, var(--ka-surface) 50%, white) !important;
    box-shadow: none !important;
}

.ka-has-bulk-builder.ka-product-panels-bordered.single-product .bab-tier-pricing,
.ka-has-bulk-builder.ka-product-panels-bordered.single-product #bab-builder .bab-step {
    border-color: color-mix(in srgb, var(--ka-secondary) 24%, var(--ka-border)) !important;
    background: #fff !important;
}

.ka-has-bulk-builder.ka-product-panels-elevated.single-product .bab-tier-pricing,
.ka-has-bulk-builder.ka-product-panels-elevated.single-product #bab-builder .bab-step {
    border-color: transparent !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgb(38 12 48 / 10%) !important;
}

.ka-has-bulk-builder.ka-product-panels-minimal.single-product .bab-tier-pricing,
.ka-has-bulk-builder.ka-product-panels-minimal.single-product #bab-builder .bab-step {
    padding: 12px 0 !important;
    border-width: 0 0 1px !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.ka-has-bulk-builder.single-product .bab-tier-grid {
    grid-template-columns: repeat(auto-fit, minmax(82px, 1fr)) !important;
    gap: 12px !important;
    padding: 0 !important;
}

.ka-has-bulk-builder.single-product .bab-tier {
    min-width: 0;
    padding: 7px 4px;
    border-radius: 8px;
}

.ka-has-bulk-builder.single-product .bab-tier-price {
    color: var(--ka-text);
    font-weight: 850;
}

.ka-has-bulk-builder.single-product .bab-tier-save {
    color: var(--ka-primary);
    font-weight: 750;
}

.ka-has-bulk-builder.single-product #bab-builder h3,
.ka-has-bulk-builder.single-product #bab-builder .bab-step-title {
    color: var(--ka-text) !important;
    font-size: 15px !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
    text-transform: none !important;
}

.ka-has-bulk-builder.single-product #bab-add-customisation {
    width: auto !important;
    min-height: 44px !important;
    padding: 10px 18px !important;
    border: 2px solid var(--ka-primary) !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--ka-primary) !important;
}

.ka-has-bulk-builder.single-product #bab-builder .bab-step-3-trigger {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.ka-has-bulk-builder.ka-product-custom-button-full.single-product #bab-add-customisation {
    width: 100% !important;
}

.ka-has-bulk-builder.ka-product-custom-button-full.single-product #bab-cancel-customisation {
    width: 100% !important;
}

.ka-has-bulk-builder.single-product #bab-add-customisation:hover {
    background: var(--ka-primary) !important;
    color: #fff !important;
}

.ka-has-bulk-builder.single-product #bab-builder .bab-step-cancel {
    box-sizing: border-box;
    min-height: 76px;
    padding: 15px 20px !important;
    text-align: left;
}

.ka-has-bulk-builder.ka-product-custom-button-align-center.single-product #bab-builder :is(.bab-step-3-trigger, .bab-step-cancel) {
    justify-content: center !important;
    text-align: center;
}

.ka-has-bulk-builder.ka-product-custom-button-align-right.single-product #bab-builder :is(.bab-step-3-trigger, .bab-step-cancel) {
    justify-content: flex-end !important;
    text-align: right;
}

.ka-has-bulk-builder.single-product #bab-cancel-customisation {
    position: static !important;
    width: auto !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 20px !important;
    border: 1px solid var(--ka-primary) !important;
    border-radius: 999px !important;
    background: var(--ka-primary) !important;
    color: #fff !important;
    transform: none !important;
}

.ka-has-bulk-builder.single-product #bab-cancel-customisation:hover {
    border-color: var(--ka-secondary) !important;
    background: var(--ka-secondary) !important;
}

.ka-has-bulk-builder.single-product div.product form.cart .single_add_to_cart_button {
    width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    background: var(--ka-primary) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 850 !important;
}

.ka-has-bulk-builder.ka-product-buttons-rounded.single-product #bab-add-customisation,
.ka-has-bulk-builder.ka-product-buttons-rounded.single-product #bab-cancel-customisation,
.ka-has-bulk-builder.ka-product-buttons-rounded.single-product div.product form.cart .single_add_to_cart_button {
    border-radius: 10px !important;
}

.ka-has-bulk-builder.ka-product-buttons-square.single-product #bab-add-customisation,
.ka-has-bulk-builder.ka-product-buttons-square.single-product #bab-cancel-customisation,
.ka-has-bulk-builder.ka-product-buttons-square.single-product div.product form.cart .single_add_to_cart_button {
    border-radius: 0 !important;
}

.ka-has-bulk-builder.single-product div.product form.cart .single_add_to_cart_button:hover {
    background: var(--ka-secondary) !important;
}

.ka-has-bulk-builder.single-product div.product form.cart .single_add_to_cart_button.disabled,
.ka-has-bulk-builder.single-product div.product form.cart .single_add_to_cart_button:disabled {
    background: color-mix(in srgb, var(--ka-primary) 35%, white) !important;
    opacity: 1 !important;
}

.ka-has-bulk-builder.single-product .ka-product-reassurance {
    display: grid;
    gap: 4px;
    margin: 18px 0;
    padding: 16px 18px;
    border: 1px solid var(--ka-border);
    border-radius: var(--ka-product-panel-radius, 14px);
    background: #fff;
    color: var(--ka-text);
}
.ka-has-bulk-builder.ka-product-reassurance-style-soft.single-product .ka-product-reassurance {
    border-color: color-mix(in srgb,var(--ka-primary) 18%,var(--ka-border));
    background: color-mix(in srgb,var(--ka-surface) 36%,white);
}
.ka-has-bulk-builder.ka-product-reassurance-style-minimal.single-product .ka-product-reassurance {
    padding-inline: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.ka-has-bulk-builder.ka-product-reassurance-align-center.single-product .ka-product-reassurance {
    text-align: center;
}
.ka-has-bulk-builder.ka-product-reassurance-align-right.single-product .ka-product-reassurance {
    text-align: right;
}
.ka-has-bulk-builder.ka-product-reassurance-align-center.single-product .ka-product-reassurance__benefits,
.ka-has-bulk-builder.ka-product-reassurance-align-right.single-product .ka-product-reassurance__benefits {
    display: inline-grid;
    text-align: left;
}
.ka-has-bulk-builder.ka-product-reassurance-align-left.single-product .ka-product-reassurance__checkout img {
    margin-right: auto;
}
.ka-has-bulk-builder.ka-product-reassurance-align-center.single-product .ka-product-reassurance__checkout img {
    margin-inline: auto;
}
.ka-has-bulk-builder.ka-product-reassurance-align-right.single-product .ka-product-reassurance__checkout img {
    margin-left: auto;
}

.ka-has-bulk-builder.single-product .ka-product-reassurance__title {
    font-weight: 850;
}

.ka-has-bulk-builder.single-product .ka-product-reassurance__benefits {
    display: grid;
    gap: 7px;
    margin: 5px 0 12px;
    padding: 0;
    list-style: none;
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__benefits li {
    position: relative;
    padding-left: 22px;
    font-size: 13px;
    line-height: 1.5;
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__benefits li::before {
    position: absolute;
    left: 0;
    content: "✓";
    color: var(--ka-primary);
    font-weight: 900;
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__checkout {
    display: grid;
    justify-items: center;
    gap: 10px;
    margin-top: 5px;
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__checkout span {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__checkout span::before,
.ka-has-bulk-builder.single-product .ka-product-reassurance__checkout span::after {
    height: 1px;
    flex: 1;
    background: var(--ka-border);
    content: "";
}
.ka-has-bulk-builder.single-product .ka-product-reassurance__checkout img {
    display: block;
    width: min(100%,var(--ka-product-reassurance-image-width,620px));
    height: auto;
    object-fit: contain;
}

@media (min-width: 901px) {
    .ka-has-bulk-builder.ka-product-sticky-summary.single-product .ka-woocommerce-main div.product > .summary {
        position: sticky;
        top: 24px;
        max-height: calc(100vh - 48px);
        overflow-y: auto;
        scrollbar-width: thin;
    }
}

/* Tabs are a compact product-information panel below the gallery. */
.ka-has-bulk-builder.single-product div.product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin: 0 0 20px !important;
    padding: 0 !important;
    border: 0 !important;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    padding: 0 0 7px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--ka-secondary) !important;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-tabs ul.tabs li a {
    padding: 0 !important;
    color: var(--ka-text) !important;
    font-size: 13px !important;
    font-weight: 750 !important;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-tabs .panel {
    box-sizing: border-box;
    width: 100% !important;
    min-height: var(--ka-tabs-content-height, 190px);
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    color: var(--ka-text);
    font-size: 13px;
    line-height: 1.65;
}

.ka-has-bulk-builder.single-product div.product .woocommerce-tabs .panel > :first-child { margin-top: 0; }

@media (max-width: 900px) {
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
        row-gap: 28px;
        min-width: 0 !important;
        overflow: visible !important;
    }

    /*
     * Bulk Apparel Builder also supports Shoptimizer's optional
     * .product-details-wrapper. Reset its desktop floats and widths so both
     * markup variants use the same full-width mobile product stack.
     */
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .product-details-wrapper {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 28px;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .images,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .summary,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .images,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .woocommerce-product-gallery,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .summary,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .woocommerce-tabs,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .wc-tabs-wrapper,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .related,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .upsells {
        grid-column: 1 !important;
        grid-row: auto !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .images { order: 1; }
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .summary { order: 2; }
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .images,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .woocommerce-product-gallery { order: 1; }
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .summary { order: 2; }
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .woocommerce-tabs,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .product-details-wrapper > .wc-tabs-wrapper { order: 3; }

    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .summary,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .summary > *,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product .woocommerce-product-details__short-description {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ka-has-bulk-builder.single-product div.product .product_title,
    .ka-has-bulk-builder.single-product div.product .summary h1,
    .ka-has-bulk-builder.single-product div.product .woocommerce-product-details__short-description,
    .ka-has-bulk-builder.single-product div.product .woocommerce-product-details__short-description li {
        word-break: normal !important;
        overflow-wrap: break-word !important;
        white-space: normal !important;
    }

    .ka-has-bulk-builder.single-product div.product .woocommerce-product-details__short-description ul {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding-left: 21px !important;
    }
}

@media (max-width: 560px) {
    .ka-has-bulk-builder.single-product .ka-woocommerce-main > .ka-container {
        width: min(calc(100% - 28px), var(--ka-container)) !important;
    }

    .ka-has-bulk-builder.single-product div.product div.images.woocommerce-product-gallery {
        padding-left: 0;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        opacity: 1 !important;
    }

    .ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs {
        position: static;
        order: 2;
        width: 100%;
        flex-direction: row;
        gap: 8px;
        margin-top: 10px !important;
        overflow-x: auto;
    }

    .ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs li {
        flex: 0 0 62px;
        width: 62px !important;
    }

    .ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img {
        width: 62px !important;
        height: 68px !important;
    }

    .ka-has-bulk-builder.single-product div.product div.images a.flex-prev {
        left: 10px;
    }

    .ka-has-bulk-builder.single-product div.product div.images a.flex-next {
        right: 10px;
    }

    .ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .flex-viewport,
    .ka-has-bulk-builder.ka-product-image-fixed.single-product div.product div.images .woocommerce-product-gallery__wrapper {
        width: 100% !important;
        height: min(var(--ka-product-image-height, 570px), calc(100vw - 28px)) !important;
        max-height: 560px;
        min-height: 280px;
    }

    .ka-has-bulk-builder.single-product div.product div.images .woocommerce-product-gallery__wrapper,
    .ka-has-bulk-builder.single-product div.product div.images .flex-viewport {
        order: 1;
        width: 100% !important;
        max-width: 100% !important;
    }

    .ka-has-bulk-builder.single-product div.product .product_title,
    .ka-has-bulk-builder.single-product div.product .summary h1 {
        padding-right: 0 !important;
        font-size: var(--ka-product-title-mobile-size, 24px) !important;
        line-height: var(--ka-product-title-line-height, 1.12) !important;
    }

    .ka-has-bulk-builder.single-product .ka-product-prevnext {
        position: static;
        justify-content: flex-end;
        margin: 0 0 10px auto;
    }

    .ka-has-bulk-builder.single-product .bab-tier-pricing,
    .ka-has-bulk-builder.single-product #bab-builder,
    .ka-has-bulk-builder.single-product #bab-builder .bab-step,
    .ka-has-bulk-builder.single-product .summary form.cart,
    .ka-has-bulk-builder.single-product .summary table.variations,
    .ka-has-bulk-builder.single-product .summary table.variations tbody,
    .ka-has-bulk-builder.single-product .summary table.variations tr,
    .ka-has-bulk-builder.single-product .summary table.variations td {
        box-sizing: border-box;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .ka-has-bulk-builder.single-product .bab-tier-pricing,
    .ka-has-bulk-builder.single-product #bab-builder .bab-step {
        padding: 15px !important;
    }

    .ka-has-bulk-builder.single-product .bab-tier-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .ka-has-bulk-builder.single-product #bab-add-customisation {
        width: 100% !important;
    }

    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .woocommerce-tabs,
    .ka-has-bulk-builder.single-product .ka-woocommerce-main div.product > .wc-tabs-wrapper {
        padding: 18px !important;
    }
}

/* Dynamic native WooCommerce thumbnail designer. */
.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs {
    gap: var(--ka-product-thumb-gap, 8px) !important;
}
.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs li {
    width: var(--ka-product-thumb-width, 68px) !important;
}
.ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img {
    width: var(--ka-product-thumb-width, 68px) !important;
    height: var(--ka-product-thumb-height, 68px) !important;
    object-fit: contain !important;
}
.ka-has-bulk-builder.ka-product-thumb-fit-cover.single-product div.product div.images .flex-control-thumbs img {
    object-fit: cover !important;
}
.ka-has-bulk-builder.ka-product-thumbs-right.single-product div.product div.images.woocommerce-product-gallery {
    padding-right: calc(var(--ka-product-thumb-width, 68px) + var(--ka-product-thumb-gap, 8px)) !important;
    padding-left: 0 !important;
}
.ka-has-bulk-builder.ka-product-thumbs-right.single-product div.product div.images .flex-control-thumbs {
    right: 0 !important;
    left: auto !important;
    width: var(--ka-product-thumb-width, 68px) !important;
}
.ka-has-bulk-builder.ka-product-thumb-active-border.single-product div.product div.images .flex-control-thumbs img.flex-active {
    border: var(--ka-product-thumb-active-width, 2px) solid var(--ka-product-thumb-active-colour, var(--ka-primary)) !important;
    box-shadow: none !important;
}
.ka-has-bulk-builder.ka-product-thumb-active-outline.single-product div.product div.images .flex-control-thumbs img.flex-active {
    border-color: transparent !important;
    box-shadow: 0 0 0 var(--ka-product-thumb-active-width, 2px) var(--ka-product-thumb-active-colour, var(--ka-primary)) !important;
}
.ka-has-bulk-builder.ka-product-thumb-active-glow.single-product div.product div.images .flex-control-thumbs img.flex-active {
    border-color: var(--ka-product-thumb-active-colour, var(--ka-primary)) !important;
    box-shadow: 0 0 0 var(--ka-product-thumb-active-width, 2px) color-mix(in srgb, var(--ka-product-thumb-active-colour, var(--ka-primary)) 28%, transparent), 0 8px 22px color-mix(in srgb, var(--ka-product-thumb-active-colour, var(--ka-primary)) 24%, transparent) !important;
}
.ka-has-bulk-builder.ka-product-thumb-active-none.single-product div.product div.images .flex-control-thumbs img.flex-active {
    border-color: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 770px) {
    .ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs li,
    .ka-has-bulk-builder.single-product div.product div.images .flex-control-thumbs img {
        flex: 0 0 var(--ka-product-mobile-thumb-width, 68px) !important;
        width: var(--ka-product-mobile-thumb-width, 68px) !important;
        height: var(--ka-product-mobile-thumb-height, 68px) !important;
    }
    .ka-has-bulk-builder.ka-product-mobile-thumbs-hidden.single-product div.product div.images .flex-control-thumbs {
        display: none !important;
    }
    .ka-has-bulk-builder:is(.ka-product-mobile-thumbs-left, .ka-product-mobile-thumbs-right).single-product div.product div.images.woocommerce-product-gallery {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: var(--ka-product-thumb-gap, 8px) !important;
    }
    .ka-has-bulk-builder:is(.ka-product-mobile-thumbs-left, .ka-product-mobile-thumbs-right).single-product div.product div.images .flex-control-thumbs {
        position: static !important;
        flex: 0 0 var(--ka-product-mobile-thumb-width, 68px) !important;
        flex-direction: column !important;
        width: var(--ka-product-mobile-thumb-width, 68px) !important;
        max-height: var(--ka-product-image-height, 570px);
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }
    .ka-has-bulk-builder.ka-product-mobile-thumbs-left.single-product div.product div.images .flex-control-thumbs { order: 1 !important; }
    .ka-has-bulk-builder.ka-product-mobile-thumbs-left.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { order: 2 !important; }
    .ka-has-bulk-builder.ka-product-mobile-thumbs-right.single-product div.product div.images :is(.flex-viewport, .woocommerce-product-gallery__wrapper) { order: 1 !important; }
    .ka-has-bulk-builder.ka-product-mobile-thumbs-right.single-product div.product div.images .flex-control-thumbs { order: 2 !important; }
}
